Classes | |
| struct | RayIntersector |
| struct | RayIntersectorHits |
| struct | IndexedTriangleSetDistancer |
Functions | |
| template<typename Derivedsource, typename Deriveddir, typename Scalar> | |
| bool | ray_box_intersect_invdir (const Eigen::MatrixBase< Derivedsource > &origin, const Eigen::MatrixBase< Deriveddir > &inv_dir, Eigen::AlignedBox< Scalar, 3 > box, const Scalar &t0, const Scalar &t1) |
| template<typename V, typename W> | |
| std::enable_if_t< std::is_same< typename V::Scalar, double >::value &&std::is_same< typename W::Scalar, double >::value, bool > | intersect_triangle (const V &orig, const V &dir, const W &vert0, const W &vert1, const W &vert2, double &t, double &u, double &v, double eps) |
| template<typename V, typename W> | |
| std::enable_if_t< std::is_same< typename V::Scalar, double >::value &&!std::is_same< typename W::Scalar, double >::value, bool > | intersect_triangle (const V &origin, const V &dir, const W &v0, const W &v1, const W &v2, double &t, double &u, double &v, double eps) |
| template<typename V, typename W> | |
| std::enable_if_t<! std::is_same< typename V::Scalar, double >::value &&std::is_same< typename W::Scalar, double >::value, bool > | intersect_triangle (const V &origin, const V &dir, const W &v0, const W &v1, const W &v2, double &t, double &u, double &v, double eps) |
| template<typename V, typename W> | |
| std::enable_if_t<! std::is_same< typename V::Scalar, double >::value &&! std::is_same< typename W::Scalar, double >::value, bool > | intersect_triangle (const V &origin, const V &dir, const W &v0, const W &v1, const W &v2, double &t, double &u, double &v, double eps) |
| template<typename Tree> | |
| double | intersect_triangle_epsilon (const Tree &tree) |
| template<typename RayIntersectorType, typename Scalar> | |
| static bool | intersect_ray_recursive_first_hit (RayIntersectorType &ray_intersector, size_t node_idx, Scalar min_t, igl::Hit< float > &hit) |
| template<typename RayIntersectorType> | |
| static void | intersect_ray_recursive_all_hits (RayIntersectorType &ray_intersector, size_t node_idx) |
| template<typename Vector> | |
| static Vector | closest_point_to_triangle (const Vector &p, const Vector &a, const Vector &b, const Vector &c) |
| template<typename IndexedPrimitivesDistancerType, typename Scalar> | |
| static Scalar | squared_distance_to_indexed_primitives_recursive (IndexedPrimitivesDistancerType &distancer, size_t node_idx, Scalar low_sqr_d, Scalar up_sqr_d, size_t &i, Eigen::PlainObjectBase< typename IndexedPrimitivesDistancerType::VectorType > &c) |
| template<typename IndexedPrimitivesDistancerType, typename Scalar> | |
| static void | indexed_primitives_within_distance_squared_recurisve (const IndexedPrimitivesDistancerType &distancer, size_t node_idx, Scalar squared_distance_limit, std::vector< size_t > &found_primitives_indices) |
| template<int Dims, typename T, typename Pred, typename Fn> | |
| bool | traverse_recurse (const Tree< Dims, T > &tree, size_t idx, Pred &&pred, Fn &&callback) |
| struct Slic3r::AABBTreeIndirect::detail::RayIntersector |
| Class Members | ||
|---|---|---|
| typedef AIndexedFaceType | IndexedFaceType AIndexedFaceType | |
| typedef ATreeType | TreeType ATreeType | |
| typedef AVectorType | VectorType AVectorType | |
| typedef AVertexType | VertexType AVertexType | |
| Class Members | ||
|---|---|---|
| const VectorType | dir | |
| const double | eps | |
| const vector< IndexedFaceType > & | faces | |
| const VectorType | invdir | |
| const VectorType | origin | |
| const TreeType & | tree | |
| const vector< VertexType > & | vertices | |
|
inlinestatic |
|
inlinestatic |
References indexed_primitives_within_distance_squared_recurisve().
Referenced by Slic3r::AABBTreeLines::all_lines_in_radius(), Slic3r::AABBTreeIndirect::all_triangles_in_radius(), and indexed_primitives_within_distance_squared_recurisve().
|
inlinestatic |
References Slic3r::cast(), intersect_ray_recursive_all_hits(), intersect_triangle(), and ray_box_intersect_invdir().
Referenced by Slic3r::AABBTreeIndirect::intersect_ray_all_hits(), and intersect_ray_recursive_all_hits().
|
inlinestatic |
References Slic3r::cast(), intersect_ray_recursive_first_hit(), intersect_triangle(), and ray_box_intersect_invdir().
Referenced by Slic3r::AABBTreeIndirect::intersect_ray_first_hit(), and intersect_ray_recursive_first_hit().
| std::enable_if_t< std::is_same< typename V::Scalar, double >::value &&std::is_same< typename W::Scalar, double >::value, bool > Slic3r::AABBTreeIndirect::detail::intersect_triangle | ( | const V & | orig, |
| const V & | dir, | ||
| const W & | vert0, | ||
| const W & | vert1, | ||
| const W & | vert2, | ||
| double & | t, | ||
| double & | u, | ||
| double & | v, | ||
| double | eps ) |
Referenced by intersect_ray_recursive_all_hits(), intersect_ray_recursive_first_hit(), intersect_triangle(), and Slic3r::anonymous_namespace{Model.cpp}::mesh_contains_point_linear().
| std::enable_if_t<! std::is_same< typename V::Scalar, double >::value &&! std::is_same< typename W::Scalar, double >::value, bool > Slic3r::AABBTreeIndirect::detail::intersect_triangle | ( | const V & | origin, |
| const V & | dir, | ||
| const W & | v0, | ||
| const W & | v1, | ||
| const W & | v2, | ||
| double & | t, | ||
| double & | u, | ||
| double & | v, | ||
| double | eps ) |
References Slic3r::cast(), and intersect_triangle().
| std::enable_if_t<! std::is_same< typename V::Scalar, double >::value &&std::is_same< typename W::Scalar, double >::value, bool > Slic3r::AABBTreeIndirect::detail::intersect_triangle | ( | const V & | origin, |
| const V & | dir, | ||
| const W & | v0, | ||
| const W & | v1, | ||
| const W & | v2, | ||
| double & | t, | ||
| double & | u, | ||
| double & | v, | ||
| double | eps ) |
References Slic3r::cast(), and intersect_triangle().
| std::enable_if_t< std::is_same< typename V::Scalar, double >::value &&!std::is_same< typename W::Scalar, double >::value, bool > Slic3r::AABBTreeIndirect::detail::intersect_triangle | ( | const V & | origin, |
| const V & | dir, | ||
| const W & | v0, | ||
| const W & | v1, | ||
| const W & | v2, | ||
| double & | t, | ||
| double & | u, | ||
| double & | v, | ||
| double | eps ) |
References Slic3r::cast(), and intersect_triangle().
| double Slic3r::AABBTreeIndirect::detail::intersect_triangle_epsilon | ( | const Tree & | tree | ) |
References Slic3r::AABBTreeIndirect::Tree< ANumDimensions, ACoordType >::empty(), and Slic3r::AABBTreeIndirect::Tree< ANumDimensions, ACoordType >::nodes().
|
inline |
Referenced by intersect_ray_recursive_all_hits(), and intersect_ray_recursive_first_hit().
|
inlinestatic |
References Slic3r::cast(), and squared_distance_to_indexed_primitives_recursive().
Referenced by Slic3r::AABBTreeIndirect::is_any_triangle_in_radius(), Slic3r::AABBTreeLines::squared_distance_to_indexed_lines(), squared_distance_to_indexed_primitives_recursive(), and Slic3r::AABBTreeIndirect::squared_distance_to_indexed_triangle_set().
| bool Slic3r::AABBTreeIndirect::detail::traverse_recurse | ( | const Tree< Dims, T > & | tree, |
| size_t | idx, | ||
| Pred && | pred, | ||
| Fn && | callback ) |
References Slic3r::AABBTreeIndirect::Tree< ANumDimensions, ACoordType >::Node::is_leaf(), Slic3r::AABBTreeIndirect::Tree< ANumDimensions, ACoordType >::Node::is_valid(), Slic3r::AABBTreeIndirect::Tree< ANumDimensions, ACoordType >::left_child_idx(), Slic3r::AABBTreeIndirect::Tree< ANumDimensions, ACoordType >::node(), Slic3r::AABBTreeIndirect::Tree< ANumDimensions, ACoordType >::right_child_idx(), and traverse_recurse().
Referenced by Slic3r::AABBTreeIndirect::traverse(), and traverse_recurse().