libigl v2.5.0
Loading...
Searching...
No Matches
igl::WindingNumberTree< Scalar, Index > Class Template Reference

Space partitioning tree for computing winding number hierarchically. More...

#include <WindingNumberTree.h>

Inheritance diagram for igl::WindingNumberTree< Scalar, Index >:
igl::WindingNumberAABB< Scalar, Index >

Public Types

using Point = Eigen::Matrix<Scalar,1,3>

Public Member Functions

 WindingNumberTree ()
template<typename DerivedV, typename DerivedF>
 WindingNumberTree (const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F)
 WindingNumberTree (const WindingNumberTree< Scalar, Index > &parent, const typename igl::WindingNumberTree< Scalar, Index >::MatrixXF &F)
virtual ~WindingNumberTree ()
void delete_children ()
template<typename DerivedV, typename DerivedF>
void set_mesh (const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F)
void set_method (const WindingNumberMethod &m)
virtual void grow ()
virtual bool inside (const Point &p) const
Scalar winding_number (const Point &p) const
Scalar winding_number_all (const Point &p) const
Scalar winding_number_boundary (const Point &p) const
void print (const char *tab="")
virtual Scalar max_abs_winding_number (const Point &p) const
virtual Scalar max_simple_abs_winding_number (const Point &p) const
virtual Scalar cached_winding_number (const WindingNumberTree &that, const Point &p) const

Static Public Attributes

static std::map< std::pair< const WindingNumberTree *, const WindingNumberTree * >, Scalar > cached

Protected Types

typedef Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > MatrixXS
typedef Eigen::Matrix< Index, Eigen::Dynamic, Eigen::Dynamic > MatrixXF

Protected Attributes

WindingNumberMethod method
const WindingNumberTreeparent
std::list< WindingNumberTree * > children
MatrixXS SV
std::shared_ptr< MatrixXSVptr
MatrixXF F
MatrixXF cap
Scalar radius
Point center

Detailed Description

template<typename Scalar, typename Index>
class igl::WindingNumberTree< Scalar, Index >

Space partitioning tree for computing winding number hierarchically.

Member Typedef Documentation

◆ Point

template<typename Scalar, typename Index>
using igl::WindingNumberTree< Scalar, Index >::Point = Eigen::Matrix<Scalar,1,3>

◆ MatrixXS

template<typename Scalar, typename Index>
typedef Eigen::Matrix<Scalar,Eigen::Dynamic,Eigen::Dynamic> igl::WindingNumberTree< Scalar, Index >::MatrixXS
protected

◆ MatrixXF

template<typename Scalar, typename Index>
typedef Eigen::Matrix<Index,Eigen::Dynamic,Eigen::Dynamic> igl::WindingNumberTree< Scalar, Index >::MatrixXF
protected

Constructor & Destructor Documentation

◆ WindingNumberTree() [1/3]

template<typename Scalar, typename Index>
igl::WindingNumberTree< Scalar, Index >::WindingNumberTree ( )
inline

◆ WindingNumberTree() [2/3]

template<typename Scalar, typename Index>
template<typename DerivedV, typename DerivedF>
igl::WindingNumberTree< Scalar, Index >::WindingNumberTree ( const Eigen::MatrixBase< DerivedV > & V,
const Eigen::MatrixBase< DerivedF > & F )
inline

◆ WindingNumberTree() [3/3]

template<typename Scalar, typename Index>
igl::WindingNumberTree< Scalar, Index >::WindingNumberTree ( const WindingNumberTree< Scalar, Index > & parent,
const typename igl::WindingNumberTree< Scalar, Index >::MatrixXF & F )
inline

◆ ~WindingNumberTree()

template<typename Scalar, typename Index>
igl::WindingNumberTree< Scalar, Index >::~WindingNumberTree ( )
inlinevirtual

Member Function Documentation

◆ delete_children()

template<typename Scalar, typename Index>
void igl::WindingNumberTree< Scalar, Index >::delete_children ( )
inline

◆ set_mesh()

template<typename Scalar, typename Index>
template<typename DerivedV, typename DerivedF>
void igl::WindingNumberTree< Scalar, Index >::set_mesh ( const Eigen::MatrixBase< DerivedV > & V,
const Eigen::MatrixBase< DerivedF > & F )
inline

◆ set_method()

template<typename Scalar, typename Index>
void igl::WindingNumberTree< Scalar, Index >::set_method ( const WindingNumberMethod & m)
inline

◆ grow()

template<typename Scalar, typename Index>
void igl::WindingNumberTree< Scalar, Index >::grow ( )
inlinevirtual

◆ inside()

template<typename Scalar, typename Index>
bool igl::WindingNumberTree< Scalar, Index >::inside ( const Point & p) const
inlinevirtual

◆ winding_number()

template<typename Scalar, typename Index>
Scalar igl::WindingNumberTree< Scalar, Index >::winding_number ( const Point & p) const
inline

◆ winding_number_all()

template<typename Scalar, typename Index>
Scalar igl::WindingNumberTree< Scalar, Index >::winding_number_all ( const Point & p) const
inline

◆ winding_number_boundary()

template<typename Scalar, typename Index>
Scalar igl::WindingNumberTree< Scalar, Index >::winding_number_boundary ( const Point & p) const
inline

◆ print()

template<typename Scalar, typename Index>
void igl::WindingNumberTree< Scalar, Index >::print ( const char * tab = "")
inline

◆ max_abs_winding_number()

template<typename Scalar, typename Index>
Scalar igl::WindingNumberTree< Scalar, Index >::max_abs_winding_number ( const Point & p) const
inlinevirtual

◆ max_simple_abs_winding_number()

template<typename Scalar, typename Index>
Scalar igl::WindingNumberTree< Scalar, Index >::max_simple_abs_winding_number ( const Point & p) const
inlinevirtual

◆ cached_winding_number()

template<typename Scalar, typename Index>
Scalar igl::WindingNumberTree< Scalar, Index >::cached_winding_number ( const WindingNumberTree< Scalar, Index > & that,
const Point & p ) const
inlinevirtual

Member Data Documentation

◆ cached

template<typename Scalar, typename Index>
std::map< std::pair< const igl::WindingNumberTree< Scalar, Index > *, const igl::WindingNumberTree< Scalar, Index > * >, Scalar > igl::WindingNumberTree< Scalar, Index >::cached
static

◆ method

template<typename Scalar, typename Index>
WindingNumberMethod igl::WindingNumberTree< Scalar, Index >::method
protected

◆ parent

template<typename Scalar, typename Index>
const WindingNumberTree* igl::WindingNumberTree< Scalar, Index >::parent
protected

◆ children

template<typename Scalar, typename Index>
std::list<WindingNumberTree * > igl::WindingNumberTree< Scalar, Index >::children
protected

◆ SV

template<typename Scalar, typename Index>
MatrixXS igl::WindingNumberTree< Scalar, Index >::SV
protected

◆ Vptr

template<typename Scalar, typename Index>
std::shared_ptr<MatrixXS> igl::WindingNumberTree< Scalar, Index >::Vptr
protected

◆ F

template<typename Scalar, typename Index>
MatrixXF igl::WindingNumberTree< Scalar, Index >::F
protected

◆ cap

template<typename Scalar, typename Index>
MatrixXF igl::WindingNumberTree< Scalar, Index >::cap
protected

◆ radius

template<typename Scalar, typename Index>
Scalar igl::WindingNumberTree< Scalar, Index >::radius
protected

◆ center

template<typename Scalar, typename Index>
Point igl::WindingNumberTree< Scalar, Index >::center
protected

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