CubbyFlow::AnisotropicPointsToImplicit2 Class Referencefinal

2-D points-to-implicit converter using Anisotropic kernels. More...

#include <Core/PointsToImplicit/AnisotropicPointsToImplicit2.hpp>

Inheritance diagram for CubbyFlow::AnisotropicPointsToImplicit2:
CubbyFlow::PointsToImplicit2

Public Member Functions

 AnisotropicPointsToImplicit2 (double kernelRadius=1.0, double cutOffDensity=0.5, double positionSmoothingFactor=0.5, size_t minNumNeighbors=8, bool isOutputSDF=true)
 Constructs the converter with given parameters. More...
 
void Convert (const ConstArrayView1< Vector2D > &points, ScalarGrid2 *output) const override
 Converts the given points to implicit surface scalar field. More...
 
- Public Member Functions inherited from CubbyFlow::PointsToImplicit2
 PointsToImplicit2 ()=default
 Default constructor. More...
 
 PointsToImplicit2 (const PointsToImplicit2 &)=default
 Default copy constructor. More...
 
 PointsToImplicit2 (PointsToImplicit2 &&) noexcept=default
 Default move constructor. More...
 
virtual ~PointsToImplicit2 ()=default
 Default virtual destructor. More...
 
PointsToImplicit2operator= (const PointsToImplicit2 &)=default
 Default copy assignment operator. More...
 
PointsToImplicit2operator= (PointsToImplicit2 &&) noexcept=default
 Default move assignment operator. More...
 

Detailed Description

2-D points-to-implicit converter using Anisotropic kernels.

This class converts 2-D points to implicit surface using anisotropic kernels so that the kernels are oriented and stretched to reflect the point distribution more naturally (thus less bumps). The implementation is based on Yu and Turk's 2013 paper with some modifications.

See also
Yu, Jihun, and Greg Turk. "Reconstructing surfaces of particle-based fluids using anisotropic kernels." ACM Transactions on Graphics (TOG) 32.1 (2013): 5.

Constructor & Destructor Documentation

◆ AnisotropicPointsToImplicit2()

CubbyFlow::AnisotropicPointsToImplicit2::AnisotropicPointsToImplicit2 ( double  kernelRadius = 1.0,
double  cutOffDensity = 0.5,
double  positionSmoothingFactor = 0.5,
size_t  minNumNeighbors = 8,
bool  isOutputSDF = true 
)

Constructs the converter with given parameters.

Parameters
kernelRadiusKernel radius for interpolations.
cutOffDensityIso-contour density value.
positionSmoothingFactorPosition smoothing factor.
minNumNeighborsMinimum number of neighbors to enable anisotropic kernel.
isOutputSDFTrue if the output should be signed-distance field.

Member Function Documentation

◆ Convert()

void CubbyFlow::AnisotropicPointsToImplicit2::Convert ( const ConstArrayView1< Vector2D > &  points,
ScalarGrid2 output 
) const
overridevirtual

Converts the given points to implicit surface scalar field.

Implements CubbyFlow::PointsToImplicit2.


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