libigl v2.5.0
Loading...
Searching...
No Matches
igl::WindingNumberAABB< Scalar, Index > 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< Scalar, Index >:
igl::WindingNumberTree< Scalar, Index >

Public Types

enum  SplitMethod { CENTER_ON_LONGEST_AXIS = 0 , MEDIAN_ON_LONGEST_AXIS = 1 , NUM_SPLIT_METHODS = 2 }
Public Types inherited from igl::WindingNumberTree< Scalar, Index >
using Point = Eigen::Matrix<Scalar,1,3>

Public Member Functions

 WindingNumberAABB ()
template<typename DerivedV, typename DerivedF>
 WindingNumberAABB (const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F)
 Constructor.
 WindingNumberAABB (const WindingNumberTree< Scalar, Index > &parent, const typename WindingNumberTree< Scalar, Index >::MatrixXF &F)
template<typename DerivedV, typename DerivedF>
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 ()
Scalar max_abs_winding_number (const Point &p) const
Scalar max_simple_abs_winding_number (const Point &p) const
Public Member Functions inherited from igl::WindingNumberTree< Scalar, Index >
 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)
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 cached_winding_number (const WindingNumberTree &that, const Point &p) const

Public Attributes

enum igl::WindingNumberAABB::SplitMethod split_method

Protected Types

using Point = typename WindingNumberTree<Scalar,Index>::Point
using MatrixXF = typename WindingNumberTree<Scalar,Index>::MatrixXF
Protected Types inherited from igl::WindingNumberTree< Scalar, Index >
typedef Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > MatrixXS
typedef Eigen::Matrix< Index, Eigen::Dynamic, Eigen::Dynamic > MatrixXF

Protected Attributes

Point min_corner
Point max_corner
Scalar total_positive_area
Protected Attributes inherited from igl::WindingNumberTree< Scalar, Index >
WindingNumberMethod method
const WindingNumberTreeparent
std::list< WindingNumberTree * > children
MatrixXS SV
std::shared_ptr< MatrixXSVptr
MatrixXF F
MatrixXF cap
Scalar radius
Point center

Additional Inherited Members

Static Public Attributes inherited from igl::WindingNumberTree< Scalar, Index >
static std::map< std::pair< const WindingNumberTree *, const WindingNumberTree * >, Scalar > cached

Detailed Description

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

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

2013].

Member Typedef Documentation

◆ Point

template<typename Scalar, typename Index>
using igl::WindingNumberAABB< Scalar, Index >::Point = typename WindingNumberTree<Scalar,Index>::Point
protected

◆ MatrixXF

template<typename Scalar, typename Index>
using igl::WindingNumberAABB< Scalar, Index >::MatrixXF = typename WindingNumberTree<Scalar,Index>::MatrixXF
protected

Member Enumeration Documentation

◆ SplitMethod

template<typename Scalar, typename Index>
enum igl::WindingNumberAABB::SplitMethod
Enumerator
CENTER_ON_LONGEST_AXIS 
MEDIAN_ON_LONGEST_AXIS 
NUM_SPLIT_METHODS 

Constructor & Destructor Documentation

◆ WindingNumberAABB() [1/3]

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

◆ WindingNumberAABB() [2/3]

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

Constructor.

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

◆ WindingNumberAABB() [3/3]

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

Member Function Documentation

◆ set_mesh()

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

Initialize the hierarchy to a given mesh.

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

◆ init()

template<typename Scalar, typename Index>
void igl::WindingNumberAABB< Scalar, Index >::init ( )
inline

◆ inside()

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

◆ grow()

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

◆ compute_min_max_corners()

template<typename Scalar, typename Index>
void igl::WindingNumberAABB< Scalar, Index >::compute_min_max_corners ( )
inline

◆ max_abs_winding_number()

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

◆ max_simple_abs_winding_number()

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

Member Data Documentation

◆ min_corner

template<typename Scalar, typename Index>
Point igl::WindingNumberAABB< Scalar, Index >::min_corner
protected

◆ max_corner

template<typename Scalar, typename Index>
Point igl::WindingNumberAABB< Scalar, Index >::max_corner
protected

◆ total_positive_area

template<typename Scalar, typename Index>
Scalar igl::WindingNumberAABB< Scalar, Index >::total_positive_area
protected

◆ split_method

template<typename Scalar, typename Index>
enum igl::WindingNumberAABB::SplitMethod igl::WindingNumberAABB< Scalar, Index >::split_method

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