libigl v2.5.0
Loading...
Searching...
No Matches
igl::WindingNumberAABB< Point, DerivedV, DerivedF > Class Template Reference

Class for building an AABB tree to implement the divide and conquer algorithm described in [Jacobson et al. More...

#include <WindingNumberAABB.h>

Inheritance diagram for igl::WindingNumberAABB< Point, DerivedV, DerivedF >:
igl::WindingNumberTree< Point, DerivedV, DerivedF >

Public Types

enum  SplitMethod { CENTER_ON_LONGEST_AXIS = 0 , MEDIAN_ON_LONGEST_AXIS = 1 , NUM_SPLIT_METHODS = 2 }
 

Public Member Functions

 WindingNumberAABB ()
 
 WindingNumberAABB (const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F)
 Constructor.
 
 WindingNumberAABB (const WindingNumberTree< Point, DerivedV, DerivedF > &parent, const Eigen::MatrixBase< DerivedF > &F)
 
void set_mesh (const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F)
 Initialize the hierarchy to a given mesh.
 
void init ()
 
bool inside (const Point &p) const
 
virtual void grow ()
 
void compute_min_max_corners ()
 
DerivedV::Scalar max_abs_winding_number (const Point &p) const
 
DerivedV::Scalar max_simple_abs_winding_number (const Point &p) const
 
 WindingNumberAABB (const Eigen::MatrixBase< Eigen::Matrix< double, -1, 2, 0, -1, 2 > > &, const Eigen::MatrixBase< Eigen::Matrix< int, -1, 2, 0, -1, 2 > > &)
 
void grow ()
 
void init ()
 
- Public Member Functions inherited from igl::WindingNumberTree< Point, DerivedV, DerivedF >
 WindingNumberTree ()
 
 WindingNumberTree (const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F)
 
 WindingNumberTree (const WindingNumberTree< Point, DerivedV, DerivedF > &parent, const Eigen::MatrixBase< DerivedF > &F)
 
virtual ~WindingNumberTree ()
 
void delete_children ()
 
void set_method (const WindingNumberMethod &m)
 
const DerivedV & getV () const
 
const MatrixXFgetF () const
 
const MatrixXFgetcap () const
 
DerivedV::Scalar winding_number (const Point &p) const
 
DerivedV::Scalar winding_number_all (const Point &p) const
 
DerivedV::Scalar winding_number_boundary (const Point &p) const
 
void print (const char *tab="")
 
virtual DerivedV::Scalar cached_winding_number (const WindingNumberTree &that, const Point &p) const
 

Public Attributes

enum igl::WindingNumberAABB::SplitMethod split_method
 

Protected Attributes

Point min_corner
 
Point max_corner
 
DerivedV::Scalar total_positive_area
 
- Protected Attributes inherited from igl::WindingNumberTree< Point, DerivedV, DerivedF >
WindingNumberMethod method
 
const WindingNumberTreeparent
 
std::list< WindingNumberTree * > children
 
DerivedV & V
 
MatrixXS SV
 
MatrixXF F
 
MatrixXF cap
 
DerivedV::Scalar radius
 
Point center
 

Additional Inherited Members

- Static Public Attributes inherited from igl::WindingNumberTree< Point, DerivedV, DerivedF >
static std::map< std::pair< const WindingNumberTree *, const WindingNumberTree * >, typename DerivedV::Scalar > cached
 
static DerivedV dummyV
 
- Protected Types inherited from igl::WindingNumberTree< Point, DerivedV, DerivedF >
typedef Eigen::Matrix< typename DerivedV::Scalar, Eigen::Dynamic, Eigen::Dynamic > MatrixXS
 
typedef Eigen::Matrix< typename DerivedF::Scalar, Eigen::Dynamic, Eigen::Dynamic > MatrixXF
 

Detailed Description

template<typename Point, typename DerivedV, typename DerivedF>
class igl::WindingNumberAABB< Point, DerivedV, DerivedF >

Class for building an AABB tree to implement the divide and conquer algorithm described in [Jacobson et al.

2013].

Member Enumeration Documentation

◆ SplitMethod

template<typename Point , typename DerivedV , typename DerivedF >
enum igl::WindingNumberAABB::SplitMethod
Enumerator
CENTER_ON_LONGEST_AXIS 
MEDIAN_ON_LONGEST_AXIS 
NUM_SPLIT_METHODS 

Constructor & Destructor Documentation

◆ WindingNumberAABB() [1/4]

template<typename Point , typename DerivedV , typename DerivedF >
igl::WindingNumberAABB< Point, DerivedV, DerivedF >::WindingNumberAABB ( )
inline

◆ WindingNumberAABB() [2/4]

template<typename Point , typename DerivedV , typename DerivedF >
igl::WindingNumberAABB< Point, DerivedV, DerivedF >::WindingNumberAABB ( const Eigen::MatrixBase< DerivedV > &  V,
const Eigen::MatrixBase< DerivedF > &  F 
)
inline

Constructor.

Parameters
[in]VV by 3 list of vertex positions
[in]FF by 3 list of triangle indices into V

◆ WindingNumberAABB() [3/4]

template<typename Point , typename DerivedV , typename DerivedF >
igl::WindingNumberAABB< Point, DerivedV, DerivedF >::WindingNumberAABB ( const WindingNumberTree< Point, DerivedV, DerivedF > &  parent,
const Eigen::MatrixBase< DerivedF > &  F 
)
inline

◆ WindingNumberAABB() [4/4]

igl::WindingNumberAABB< Eigen::Matrix< double, 1, 3, 1, 1, 3 >, Eigen::Matrix< double,-1, 2, 0,-1, 2 >, Eigen::Matrix< int,-1, 2, 0,-1, 2 > >::WindingNumberAABB ( const Eigen::MatrixBase< Eigen::Matrix< double, -1, 2, 0, -1, 2 > > &  ,
const Eigen::MatrixBase< Eigen::Matrix< int, -1, 2, 0, -1, 2 > > &   
)
inline

Member Function Documentation

◆ set_mesh()

template<typename Point , typename DerivedV , typename DerivedF >
void igl::WindingNumberAABB< Point, DerivedV, DerivedF >::set_mesh ( const Eigen::MatrixBase< DerivedV > &  V,
const Eigen::MatrixBase< DerivedF > &  F 
)
inlinevirtual

Initialize the hierarchy to a given mesh.

Parameters
[in]VV by 3 list of vertex positions
[in]FF by 3 list of triangle indices into V

Reimplemented from igl::WindingNumberTree< Point, DerivedV, DerivedF >.

◆ init() [1/2]

template<typename Point , typename DerivedV , typename DerivedF >
void igl::WindingNumberAABB< Point, DerivedV, DerivedF >::init ( )
inline

◆ inside()

template<typename Point , typename DerivedV , typename DerivedF >
bool igl::WindingNumberAABB< Point, DerivedV, DerivedF >::inside ( const Point &  p) const
inlinevirtual

◆ grow() [1/2]

template<typename Point , typename DerivedV , typename DerivedF >
void igl::WindingNumberAABB< Point, DerivedV, DerivedF >::grow ( )
inlinevirtual

◆ compute_min_max_corners()

template<typename Point , typename DerivedV , typename DerivedF >
void igl::WindingNumberAABB< Point, DerivedV, DerivedF >::compute_min_max_corners ( )
inline

◆ max_abs_winding_number()

template<typename Point , typename DerivedV , typename DerivedF >
DerivedV::Scalar igl::WindingNumberAABB< Point, DerivedV, DerivedF >::max_abs_winding_number ( const Point &  p) const
inlinevirtual

◆ max_simple_abs_winding_number()

template<typename Point , typename DerivedV , typename DerivedF >
DerivedV::Scalar igl::WindingNumberAABB< Point, DerivedV, DerivedF >::max_simple_abs_winding_number ( const Point &  p) const
inlinevirtual

◆ grow() [2/2]

void igl::WindingNumberAABB< Eigen::Matrix< double, 1, 3, 1, 1, 3 >, Eigen::Matrix< double,-1, 2, 0,-1, 2 >, Eigen::Matrix< int,-1, 2, 0,-1, 2 > >::grow ( )
inlinevirtual

◆ init() [2/2]

void igl::WindingNumberAABB< Eigen::Matrix< double, 1, 3, 1, 1, 3 >, Eigen::Matrix< double,-1, 2, 0,-1, 2 >, Eigen::Matrix< int,-1, 2, 0,-1, 2 > >::init ( )
inline

Member Data Documentation

◆ min_corner

template<typename Point , typename DerivedV , typename DerivedF >
Point igl::WindingNumberAABB< Point, DerivedV, DerivedF >::min_corner
protected

◆ max_corner

template<typename Point , typename DerivedV , typename DerivedF >
Point igl::WindingNumberAABB< Point, DerivedV, DerivedF >::max_corner
protected

◆ total_positive_area

template<typename Point , typename DerivedV , typename DerivedF >
DerivedV::Scalar igl::WindingNumberAABB< Point, DerivedV, DerivedF >::total_positive_area
protected

◆ split_method

template<typename Point , typename DerivedV , typename DerivedF >
enum igl::WindingNumberAABB::SplitMethod igl::WindingNumberAABB< Point, DerivedV, DerivedF >::split_method

The documentation for this class was generated from the following file: