![]() |
Prusa Slicer 2.6.0
|
#include <src/libigl/igl/copyleft/cgal/SelfIntersectMesh.h>
Collaboration diagram for igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >:Public Types | |
| typedef CGAL::Point_3< Kernel > | Point_3 |
| typedef CGAL::Segment_3< Kernel > | Segment_3 |
| typedef CGAL::Triangle_3< Kernel > | Triangle_3 |
| typedef CGAL::Plane_3< Kernel > | Plane_3 |
| typedef CGAL::Tetrahedron_3< Kernel > | Tetrahedron_3 |
| typedef CGAL::Point_2< Kernel > | Point_2 |
| typedef CGAL::Segment_2< Kernel > | Segment_2 |
| typedef CGAL::Triangle_2< Kernel > | Triangle_2 |
| typedef CGAL::Exact_intersections_tag | Itag |
| typedef std::vector< Triangle_3 > | Triangles |
| typedef Triangles::iterator | TrianglesIterator |
| typedef Triangles::const_iterator | TrianglesConstIterator |
| typedef CGAL::Box_intersection_d::Box_with_handle_d< double, 3, TrianglesIterator > | Box |
| typedef DerivedF::Index | Index |
| typedef std::vector< std::pair< Index, CGAL::Object > > | ObjectList |
| typedef std::vector< Index > | IndexList |
| typedef std::pair< Index, Index > | EMK |
| typedef std::vector< Index > | EMV |
| typedef std::map< EMK, EMV > | EdgeMap |
Public Member Functions | |
| SelfIntersectMesh (const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, const RemeshSelfIntersectionsParam ¶ms, Eigen::PlainObjectBase< DerivedVV > &VV, Eigen::PlainObjectBase< DerivedFF > &FF, Eigen::PlainObjectBase< DerivedIF > &IF, Eigen::PlainObjectBase< DerivedJ > &J, Eigen::PlainObjectBase< DerivedIM > &IM) | |
| void | box_intersect (const Box &a, const Box &b) |
| void | process_intersecting_boxes () |
Static Public Member Functions | |
| static void | box_intersect_static (SelfIntersectMesh *SIM, const Box &a, const Box &b) |
Public Attributes | |
| const Eigen::MatrixBase< DerivedV > & | V |
| const Eigen::MatrixBase< DerivedF > & | F |
| Index | count |
| Triangles | T |
| IndexList | lIF |
| std::map< Index, ObjectList > | offending |
| std::vector< std::pair< TrianglesIterator, TrianglesIterator > > | candidate_triangle_pairs |
| RemeshSelfIntersectionsParam | params |
Private Types | |
| typedef SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM > | Self |
Private Member Functions | |
| void | mark_offensive (const Index f) |
| void | count_intersection (const Index fa, const Index fb) |
| bool | intersect (const Triangle_3 &A, const Triangle_3 &B, const Index fa, const Index fb) |
| bool | single_shared_vertex (const Triangle_3 &A, const Triangle_3 &B, const Index fa, const Index fb, const Index va, const Index vb) |
| bool | single_shared_vertex (const Triangle_3 &A, const Triangle_3 &B, const Index fa, const Index fb, const Index va) |
| bool | double_shared_vertex (const Triangle_3 &A, const Triangle_3 &B, const Index fa, const Index fb, const std::vector< std::pair< Index, Index > > shared) |
Private Attributes | |
| std::mutex | m_offending_lock |
| typedef CGAL::Box_intersection_d::Box_with_handle_d<double,3,TrianglesIterator> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Box |
| typedef std::map<EMK,EMV> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::EdgeMap |
| typedef std::pair<Index,Index> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::EMK |
| typedef std::vector<Index> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::EMV |
| typedef DerivedF::Index igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Index |
| typedef std::vector<Index> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::IndexList |
| typedef CGAL::Exact_intersections_tag igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Itag |
| typedef std::vector<std::pair<Index, CGAL::Object> > igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::ObjectList |
| typedef CGAL::Plane_3<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Plane_3 |
| typedef CGAL::Point_2<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Point_2 |
| typedef CGAL::Point_3<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Point_3 |
| typedef CGAL::Segment_2<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Segment_2 |
| typedef CGAL::Segment_3<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Segment_3 |
|
private |
| typedef CGAL::Tetrahedron_3<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Tetrahedron_3 |
| typedef CGAL::Triangle_2<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Triangle_2 |
| typedef CGAL::Triangle_3<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Triangle_3 |
| typedef std::vector<Triangle_3> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Triangles |
| typedef Triangles::const_iterator igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::TrianglesConstIterator |
| typedef Triangles::iterator igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::TrianglesIterator |
|
inline |
References igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::box_intersect_static(), igl::count(), igl::copyleft::cgal::RemeshSelfIntersectionsParam::detect_only, igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::F, igl::get_seconds(), IGL_FIRST_HIT_EXCEPTION, igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::lIF, igl::copyleft::cgal::mesh_to_cgal_triangle_list(), igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::offending, igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::params, igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::process_intersecting_boxes(), igl::copyleft::cgal::remesh_intersections(), Eigen::PlainObjectBase< Derived >::resize(), igl::copyleft::cgal::RemeshSelfIntersectionsParam::stitch_all, igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::T, igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::V, and void().
Here is the call graph for this function:
|
inline |
Here is the caller graph for this function:
|
inlinestatic |
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
References igl::count(), and IGL_FIRST_HIT_EXCEPTION.
Here is the call graph for this function:
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inline |
References igl::intersect(), and igl::unique().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
References igl::intersect(), REDRUM, and void().
Here is the call graph for this function:
|
inlineprivate |
| std::vector<std::pair<TrianglesIterator, TrianglesIterator> > igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::candidate_triangle_pairs |
| Index igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::count |
| const Eigen::MatrixBase<DerivedF>& igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::F |
| IndexList igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::lIF |
|
private |
| std::map<Index,ObjectList> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::offending |
| RemeshSelfIntersectionsParam igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::params |
| Triangles igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::T |
| const Eigen::MatrixBase<DerivedV>& igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::V |