| 
    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 |