PeriDyno 1.0.0
Loading...
Searching...
No Matches
dyno::DistanceField3D< TDataType > Class Template Reference

#include <DistanceField3D.h>

Public Types

typedef TDataType::Real Real
 
typedef TDataType::Coord Coord
 

Public Member Functions

 DistanceField3D ()
 
 DistanceField3D (std::string filename)
 
 ~DistanceField3D ()
 Should not release data here, call release() explicitly.
 
void release ()
 Release m_distance Should be explicitly called before destruction to avoid GPU memory leak.
 
void translate (const Coord &t)
 Translate the distance field with a displacement.
 
void scale (const Real s)
 Scale the distance field.
 
GPU_FUNC void getDistance (const Coord &p, Real &d, Coord &normal)
 Query the signed distance for p.
 
DYN_FUNC uint nx ()
 
DYN_FUNC uint ny ()
 
DYN_FUNC uint nz ()
 
void loadSDF (std::string filename, bool inverted=false)
 load signed distance field from a file
 
void loadBox (Coord &lo, Coord &hi, bool inverted=false)
 load signed distance field from a Box (lo, hi)
 
void loadCylinder (Coord &center, Real radius, Real height, int axis, bool inverted=false)
 
void loadSphere (Coord &center, Real radius, bool inverted=false)
 
void setSpace (const Coord p0, const Coord p1, Real h)
 
Coord lowerBound ()
 
Coord upperBound ()
 
void assign (DistanceField3D< TDataType > &sdf)
 
DArray3D< Real > & distances ()
 
void setDistance (CArray3D< Real > distance)
 
Real getGridSpacing ()
 
void invertSDF ()
 Invert the signed distance field.
 

Private Member Functions

GPU_FUNC Real lerp (Real a, Real b, Real alpha) const
 

Private Attributes

Coord mOrigin
 Lower left corner.
 
Real mH
 grid spacing
 
bool mInverted = false
 
DArray3D< RealmDistances
 Storing the signed distance field as a 3D array.
 

Detailed Description

template<typename TDataType>
class dyno::DistanceField3D< TDataType >

Definition at line 22 of file DistanceField3D.h.

Member Typedef Documentation

◆ Coord

template<typename TDataType>
typedef TDataType::Coord dyno::DistanceField3D< TDataType >::Coord

Definition at line 25 of file DistanceField3D.h.

◆ Real

template<typename TDataType>
typedef TDataType::Real dyno::DistanceField3D< TDataType >::Real

Definition at line 24 of file DistanceField3D.h.

Constructor & Destructor Documentation

◆ DistanceField3D() [1/2]

template<typename TDataType>
dyno::DistanceField3D< TDataType >::DistanceField3D ( )
Here is the caller graph for this function:

◆ DistanceField3D() [2/2]

template<typename TDataType>
dyno::DistanceField3D< TDataType >::DistanceField3D ( std::string filename)

◆ ~DistanceField3D()

template<typename TDataType>
dyno::DistanceField3D< TDataType >::~DistanceField3D ( )

Should not release data here, call release() explicitly.

Member Function Documentation

◆ assign()

template<typename TDataType>
void dyno::DistanceField3D< TDataType >::assign ( DistanceField3D< TDataType > & sdf)
inline

Definition at line 98 of file DistanceField3D.h.

Here is the call graph for this function:

◆ distances()

template<typename TDataType>
DArray3D< Real > & dyno::DistanceField3D< TDataType >::distances ( )
inline

Definition at line 105 of file DistanceField3D.h.

◆ getDistance()

template<typename TDataType>
GPU_FUNC void dyno::DistanceField3D< TDataType >::getDistance ( const Coord & p,
Real & d,
Coord & normal )

Query the signed distance for p.

Parameters
pposition
dreturn the signed distance at position p
normalreturn the normal at position p

Definition at line 146 of file DistanceField3D.h.

Here is the call graph for this function:

◆ getGridSpacing()

template<typename TDataType>
Real dyno::DistanceField3D< TDataType >::getGridSpacing ( )
inline

Definition at line 111 of file DistanceField3D.h.

◆ invertSDF()

template<typename TDataType>
void dyno::DistanceField3D< TDataType >::invertSDF ( )

Invert the signed distance field.

◆ lerp()

template<typename TDataType>
GPU_FUNC Real dyno::DistanceField3D< TDataType >::lerp ( Real a,
Real b,
Real alpha ) const
inlineprivate

Definition at line 120 of file DistanceField3D.h.

◆ loadBox()

template<typename TDataType>
void dyno::DistanceField3D< TDataType >::loadBox ( Coord & lo,
Coord & hi,
bool inverted = false )

load signed distance field from a Box (lo, hi)

Parameters
invertedindicated whether the signed distance field should be positive in outside. default: +[—]+

◆ loadCylinder()

template<typename TDataType>
void dyno::DistanceField3D< TDataType >::loadCylinder ( Coord & center,
Real radius,
Real height,
int axis,
bool inverted = false )

◆ loadSDF()

template<typename TDataType>
void dyno::DistanceField3D< TDataType >::loadSDF ( std::string filename,
bool inverted = false )

load signed distance field from a file

Parameters
filename
invertedindicated whether the signed distance field should be inverted after initialization

◆ loadSphere()

template<typename TDataType>
void dyno::DistanceField3D< TDataType >::loadSphere ( Coord & center,
Real radius,
bool inverted = false )

◆ lowerBound()

template<typename TDataType>
Coord dyno::DistanceField3D< TDataType >::lowerBound ( )
inline

Definition at line 93 of file DistanceField3D.h.

◆ nx()

template<typename TDataType>
DYN_FUNC uint dyno::DistanceField3D< TDataType >::nx ( )
inline

Definition at line 65 of file DistanceField3D.h.

◆ ny()

template<typename TDataType>
DYN_FUNC uint dyno::DistanceField3D< TDataType >::ny ( )
inline

Definition at line 67 of file DistanceField3D.h.

◆ nz()

template<typename TDataType>
DYN_FUNC uint dyno::DistanceField3D< TDataType >::nz ( )
inline

Definition at line 69 of file DistanceField3D.h.

◆ release()

template<typename TDataType>
void dyno::DistanceField3D< TDataType >::release ( )

Release m_distance Should be explicitly called before destruction to avoid GPU memory leak.

◆ scale()

template<typename TDataType>
void dyno::DistanceField3D< TDataType >::scale ( const Real s)

Scale the distance field.

Parameters
sscaling factor

◆ setDistance()

template<typename TDataType>
void dyno::DistanceField3D< TDataType >::setDistance ( CArray3D< Real > distance)
inline

Definition at line 107 of file DistanceField3D.h.

Here is the caller graph for this function:

◆ setSpace()

template<typename TDataType>
void dyno::DistanceField3D< TDataType >::setSpace ( const Coord p0,
const Coord p1,
Real h )
Here is the caller graph for this function:

◆ translate()

template<typename TDataType>
void dyno::DistanceField3D< TDataType >::translate ( const Coord & t)

Translate the distance field with a displacement.

Parameters
tdisplacement

◆ upperBound()

template<typename TDataType>
Coord dyno::DistanceField3D< TDataType >::upperBound ( )
inline

Definition at line 95 of file DistanceField3D.h.

Member Data Documentation

◆ mDistances

template<typename TDataType>
DArray3D<Real> dyno::DistanceField3D< TDataType >::mDistances
private

Storing the signed distance field as a 3D array.

Definition at line 142 of file DistanceField3D.h.

◆ mH

template<typename TDataType>
Real dyno::DistanceField3D< TDataType >::mH
private

grid spacing

Definition at line 134 of file DistanceField3D.h.

◆ mInverted

template<typename TDataType>
bool dyno::DistanceField3D< TDataType >::mInverted = false
private

Definition at line 136 of file DistanceField3D.h.

◆ mOrigin

template<typename TDataType>
Coord dyno::DistanceField3D< TDataType >::mOrigin
private

Lower left corner.

Definition at line 128 of file DistanceField3D.h.


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