|
libigl v2.5.0
|
Class for computing the self-intersections of a mesh. More...
#include <SelfIntersectMesh.h>
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) | |
| Constructs (VV,FF) a new mesh with self-intersections of (V,F) subdivided. | |
| void | box_intersect (const Box &a, const Box &b) |
| Callback function called during box self intersections test. | |
| void | process_intersecting_boxes () |
| Process all of the intersecting boxes. | |
Static Public Member Functions | |
| static void | box_intersect_static (SelfIntersectMesh *SIM, const Box &a, const Box &b) |
| Static function that captures a SelfIntersectMesh instance to pass to cgal. | |
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 |
Class for computing the self-intersections of a mesh.
| Kernel | is a CGAL kernel like: CGAL::Exact_predicates_inexact_constructions_kernel or CGAL::Exact_predicates_exact_constructions_kernel |
| typedef CGAL::Point_3<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Point_3 |
| typedef CGAL::Segment_3<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Segment_3 |
| typedef CGAL::Triangle_3<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Triangle_3 |
| typedef CGAL::Plane_3<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Plane_3 |
| typedef CGAL::Tetrahedron_3<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Tetrahedron_3 |
| typedef CGAL::Point_2<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Point_2 |
| typedef CGAL::Segment_2<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Segment_2 |
| typedef CGAL::Triangle_2<Kernel> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Triangle_2 |
| typedef CGAL::Exact_intersections_tag igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Itag |
| typedef std::vector<Triangle_3> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Triangles |
| typedef Triangles::iterator igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::TrianglesIterator |
| typedef Triangles::const_iterator igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::TrianglesConstIterator |
| 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 DerivedF::Index igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::Index |
| typedef std::vector<std::pair<Index, CGAL::Object> > igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::ObjectList |
| typedef std::vector<Index> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::IndexList |
| 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 std::map<EMK,EMV> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::EdgeMap |
|
inline |
Constructs (VV,FF) a new mesh with self-intersections of (V,F) subdivided.
| [in] | V | V by 3 list of vertex positions |
| [in] | F | F by 3 list of triangle indices into V |
| [in] | params | parameters |
| [out] | VV | #VV by 3 list of vertex positions |
| [out] | FF | #FF by 3 list of triangle indices into VV |
| [out] | IF | #IF by 2 list of edge indices into VV |
| [out] | J | F list of indices into FF of birth parents |
| [out] | IM | #VV list of indices into V of birth parents |
|
inline |
Callback function called during box self intersections test.
Means boxes a and b intersect. This method then checks if the triangles in each box intersect and if so, then processes the intersections
| [in] | a | box containing a triangle |
| [in] | b | box containing a triangle |
|
inline |
Process all of the intersecting boxes.
|
inlinestatic |
Static function that captures a SelfIntersectMesh instance to pass to cgal.
| [in] | SIM | pointer to SelfIntersectMesh instance |
| [in] | a | box containing a triangle |
| [in] | b | box containing a triangle |
| const Eigen::MatrixBase<DerivedV>& igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::V |
| const Eigen::MatrixBase<DerivedF>& igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::F |
| Index igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::count |
| Triangles igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::T |
| IndexList igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::lIF |
| std::map<Index,ObjectList> igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::offending |
| std::vector<std::pair<TrianglesIterator, TrianglesIterator> > igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::candidate_triangle_pairs |
| RemeshSelfIntersectionsParam igl::copyleft::cgal::SelfIntersectMesh< Kernel, DerivedV, DerivedF, DerivedVV, DerivedFF, DerivedIF, DerivedJ, DerivedIM >::params |