Class bvh_tree¶
Defined in File bvh_tree.h
Inheritance Relationships¶
Base Type¶
public ifcopenshell::geom::tree(Class tree)
Class Documentation¶
-
class bvh_tree : public ifcopenshell::geom::tree¶
Public Functions
-
inline virtual std::string backend_id() const override¶
-
inline virtual void add_file(ifcopenshell::file &file, const ifcopenshell::geom::settings &settings) override¶
-
inline virtual std::vector<clash> clash_intersection_many(const std::vector<express::base> &set_a, const std::vector<express::base> &set_b, double tolerance = 0.002, bool check_all = true) const override¶
Protected Functions
-
inline bool is_point_in_shape(const gp_Pnt &v, const opencascade::handle<BVH_Tree<double, 3, BVH_BinaryTree>> &bvh, const std::vector<std::array<int, 3>> &tris, const std::vector<gp_Pnt> &verts, bool should_check_again = false) const¶
-
inline std::tuple<double, std::array<double, 3>, std::array<double, 3>> pierce_shape(const gp_Vec &e1, const gp_Vec &e2, const opencascade::handle<BVH_Tree<double, 3, BVH_BinaryTree>> &bvh, const std::vector<std::array<int, 3>> &tris, const std::vector<gp_Pnt> &verts, const std::vector<gp_Vec> &normals) const¶
-
inline bool is_point_on_line(const gp_Pnt &point, const gp_Pnt &lineStart, const gp_Pnt &lineEnd) const¶
-
inline bool is_point_on_line(const gp_Vec &point, const gp_Vec &lineStart, const gp_Vec &lineEnd) const¶
-
inline std::unordered_map<int, std::vector<int>> clash_bvh(opencascade::handle<BVH_Tree<double, 3, BVH_BinaryTree>> bvh_a, opencascade::handle<BVH_Tree<double, 3, BVH_BinaryTree>> bvh_b, double extend = 0.0) const¶
-
inline clash test_intersection(const express::base &tA, const express::base &tB, double tolerance, bool check_all = true) const¶
-
inline clash test_collision(const express::base &tA, const express::base &tB, bool allow_touching) const¶
-
inline clash test_clearance(const express::base &tA, const express::base &tB, double clearance, bool check_all) const¶
-
inline std::unique_ptr<BVH_BoxSet<double, 3>> build_box_set(const std::vector<express::base> &elements) const¶
-
inline std::vector<std::vector<clash_task>> allocate_tasks_to_threads(std::vector<clash_task> &task_queue) const¶
-
inline void add_triangulation_element(ifcopenshell::geom::triangulation_element *elem)¶
Protected Attributes
-
mutable long long tri_count_ = 0¶
-
inline virtual std::string backend_id() const override¶