|
@ -12,6 +12,7 @@ |
|
|
|
|
|
|
|
|
template <typename T> |
|
|
template <typename T> |
|
|
using marked_subface_ptr_t = marked_ptr<T, 1>; |
|
|
using marked_subface_ptr_t = marked_ptr<T, 1>; |
|
|
|
|
|
using aabb_t = Eigen::AlignedBox<double, 3>; |
|
|
|
|
|
|
|
|
enum class sign_t : uint8_t { positive = 1, negative = 2, zero = 0 }; |
|
|
enum class sign_t : uint8_t { positive = 1, negative = 2, zero = 0 }; |
|
|
|
|
|
|
|
@ -52,17 +53,14 @@ EXTERN_C struct PE_API primitive { |
|
|
virtual primitive_type get_type() const = 0; |
|
|
virtual primitive_type get_type() const = 0; |
|
|
virtual marked_subface_ptr_t<subface> *get_subface() const = 0; |
|
|
virtual marked_subface_ptr_t<subface> *get_subface() const = 0; |
|
|
virtual size_t get_subface_count() const = 0; |
|
|
virtual size_t get_subface_count() const = 0; |
|
|
|
|
|
aabb_t m_aabb = aabb_t(Eigen::Vector3d(-1, -1, -1), Eigen::Vector3d(1, 1, 1)); |
|
|
|
|
|
|
|
|
// sign_t judge_sign_by_subface_sdf(const std::vector<double> &) const;
|
|
|
// sign_t judge_sign_by_subface_sdf(const std::vector<double> &) const;
|
|
|
// sign_t judge_sign_by_subface_sdf_sign(const std::vector<sign_t> &) const;
|
|
|
// sign_t judge_sign_by_subface_sdf_sign(const std::vector<sign_t> &) const;
|
|
|
dynamic_bitset_mp<> judge_sign_by_subface_sign(stl_vector_mp<dynamic_bitset_mp<>>) const; |
|
|
dynamic_bitset_mp<> judge_sign_by_subface_sign(stl_vector_mp<dynamic_bitset_mp<>>) const; |
|
|
|
|
|
|
|
|
// for simple primitive: sphere, cylinder, cone, box
|
|
|
|
|
|
// we use world_to_local as OBB and judge inside/outside by [-1, 1]^3
|
|
|
aabb_t fetch_aabb() const; |
|
|
// so we don't need to fetch aabb anymore
|
|
|
|
|
|
// aabb fetch_aabb() const;
|
|
|
|
|
|
// CAUTION: keep characteristics local_to_world as the first subface's part
|
|
|
|
|
|
const internal::transform_block &get_identity_local_to_world() const; |
|
|
|
|
|
|
|
|
|
|
|
void apply_transform(internal::transform_type, Eigen::Vector4d); |
|
|
void apply_transform(internal::transform_type, Eigen::Vector4d); |
|
|
|
|
|
|
|
|