Lagrange
FastWindingNumber Class Reference

Fast winding number computation for triangle soups. More...

#include <lagrange/winding/FastWindingNumber.h>

Classes

struct  Impl
 

Public Member Functions

template<typename Scalar , typename Index >
 FastWindingNumber (const SurfaceMesh< Scalar, Index > &mesh)
 Constructs an acceleration structure on a given mesh to speed up winding number queries. More...
 
 FastWindingNumber ()
 Constructs a new instance.
 
 ~FastWindingNumber ()
 Destroys the object.
 
 FastWindingNumber (FastWindingNumber &&other) noexcept
 Constructs a new instance. More...
 
FastWindingNumberoperator= (FastWindingNumber &&other) noexcept
 Assignment operator. More...
 
 FastWindingNumber (const FastWindingNumber &other)=delete
 Constructs a new instance. More...
 
FastWindingNumberoperator= (const FastWindingNumber &other)=delete
 Assignment operator. More...
 
bool is_inside (const std::array< float, 3 > &pos) const
 Determines whether the specified query point is inside the volume. More...
 
float solid_angle (const std::array< float, 3 > &pos) const
 Computes the solid angle at the query point. More...
 

Protected Attributes

value_ptr< Implm_impl
 PIMPL to hide internal data structures.
 

Detailed Description

Fast winding number computation for triangle soups.

Constructor & Destructor Documentation

◆ FastWindingNumber() [1/3]

FastWindingNumber ( const SurfaceMesh< Scalar, Index > &  mesh)

Constructs an acceleration structure on a given mesh to speed up winding number queries.

Note
Internally, point coordinates are converted to float and vertex indices are converted to int.
Parameters
[in]meshTriangle mesh used to initialize the fast winding number acceleration structure.
Template Parameters
ScalarMesh scalar type.
IndexMesh index type.

◆ FastWindingNumber() [2/3]

FastWindingNumber ( FastWindingNumber &&  other)
defaultnoexcept

Constructs a new instance.

Parameters
otherInstance to move from.

◆ FastWindingNumber() [3/3]

FastWindingNumber ( const FastWindingNumber other)
delete

Constructs a new instance.

Parameters
[in]otherInstance to copy from.

Member Function Documentation

◆ operator=() [1/2]

FastWindingNumber & operator= ( FastWindingNumber &&  other)
defaultnoexcept

Assignment operator.

Parameters
otherInstance to move from.
Returns
The result of the assignment.

◆ operator=() [2/2]

FastWindingNumber & operator= ( const FastWindingNumber other)
delete

Assignment operator.

Parameters
[in]otherInstance to copy from.
Returns
The result of the assignment.

◆ is_inside()

bool is_inside ( const std::array< float, 3 > &  pos) const

Determines whether the specified query point is inside the volume.

Parameters
[in]posQuery position.
Returns
True if the specified point is inside, False otherwise.

◆ solid_angle()

float solid_angle ( const std::array< float, 3 > &  pos) const

Computes the solid angle at the query point.

Parameters
[in]posQuery position.
Returns
Solid angle at the query point.

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