OpenVDB 11.0.0
Loading...
Searching...
No Matches
FastSweeping< SdfGridT, ExtValueT >::SweepingKernel Struct Reference

Private class of FastSweeping to perform concurrent fast sweeping in two directions. More...

#include <openvdb/tools/FastSweeping.h>

Classes

struct  NN
 

Public Member Functions

 SweepingKernel (FastSweeping &parent)
 
 SweepingKernel (const SweepingKernel &)=delete
 
SweepingKerneloperator= (const SweepingKernel &)=delete
 
template<typename HashOp >
void computeVoxelSlices (HashOp hash)
 Main method that performs concurrent bi-directional sweeps.
 
template<typename ExtT = ExtValueT, typename SdfT = SdfValueT, typename std::enable_if< std::is_same< ExtT, int >::value, int >::type = 0>
ExtT twoNghbr (const NN &d1, const NN &d2, const SdfT &, const ExtT &v1, const ExtT &v2) const
 
template<typename ExtT = ExtValueT, typename SdfT = SdfValueT, typename std::enable_if<!std::is_same< ExtT, int >::value, int >::type = 0>
ExtT twoNghbr (const NN &d1, const NN &d2, const SdfT &w, const ExtT &v1, const ExtT &v2) const
 
template<typename ExtT = ExtValueT, typename SdfT = SdfValueT, typename std::enable_if< std::is_same< ExtT, int >::value, int >::type = 0>
ExtT threeNghbr (const NN &d1, const NN &d2, const NN &d3, const SdfT &, const ExtT &v1, const ExtT &v2, const ExtT &v3) const
 
template<typename ExtT = ExtValueT, typename SdfT = SdfValueT, typename std::enable_if<!std::is_same< ExtT, int >::value, int >::type = 0>
ExtT threeNghbr (const NN &d1, const NN &d2, const NN &d3, const SdfT &w, const ExtT &v1, const ExtT &v2, const ExtT &v3) const
 
void sweep ()
 

Detailed Description

template<typename SdfGridT, typename ExtValueT = typename SdfGridT::ValueType>
struct openvdb::v11_0::tools::FastSweeping< SdfGridT, ExtValueT >::SweepingKernel

Private class of FastSweeping to perform concurrent fast sweeping in two directions.

Constructor & Destructor Documentation

◆ SweepingKernel() [1/2]

template<typename SdfGridT , typename ExtValueT = typename SdfGridT::ValueType>
SweepingKernel ( FastSweeping & parent)
inline

◆ SweepingKernel() [2/2]

template<typename SdfGridT , typename ExtValueT = typename SdfGridT::ValueType>
SweepingKernel ( const SweepingKernel & )
delete

Member Function Documentation

◆ computeVoxelSlices()

template<typename SdfGridT , typename ExtValueT = typename SdfGridT::ValueType>
template<typename HashOp >
void computeVoxelSlices ( HashOp hash)
inline

Main method that performs concurrent bi-directional sweeps.

◆ operator=()

template<typename SdfGridT , typename ExtValueT = typename SdfGridT::ValueType>
SweepingKernel & operator= ( const SweepingKernel & )
delete

◆ sweep()

template<typename SdfGridT , typename ExtValueT = typename SdfGridT::ValueType>
void sweep ( )
inline

◆ threeNghbr() [1/2]

template<typename SdfGridT , typename ExtValueT = typename SdfGridT::ValueType>
template<typename ExtT = ExtValueT, typename SdfT = SdfValueT, typename std::enable_if< std::is_same< ExtT, int >::value, int >::type = 0>
ExtT threeNghbr ( const NN & d1,
const NN & d2,
const NN & d3,
const SdfT & ,
const ExtT & v1,
const ExtT & v2,
const ExtT & v3 ) const
inline
Note
Extending an integer field is based on the nearest-neighbor interpolation

◆ threeNghbr() [2/2]

template<typename SdfGridT , typename ExtValueT = typename SdfGridT::ValueType>
template<typename ExtT = ExtValueT, typename SdfT = SdfValueT, typename std::enable_if<!std::is_same< ExtT, int >::value, int >::type = 0>
ExtT threeNghbr ( const NN & d1,
const NN & d2,
const NN & d3,
const SdfT & w,
const ExtT & v1,
const ExtT & v2,
const ExtT & v3 ) const
inline
Note
Extending a non-integer field is based on a weighted interpolation

◆ twoNghbr() [1/2]

template<typename SdfGridT , typename ExtValueT = typename SdfGridT::ValueType>
template<typename ExtT = ExtValueT, typename SdfT = SdfValueT, typename std::enable_if< std::is_same< ExtT, int >::value, int >::type = 0>
ExtT twoNghbr ( const NN & d1,
const NN & d2,
const SdfT & ,
const ExtT & v1,
const ExtT & v2 ) const
inline
Note
Extending an integer field is based on the nearest-neighbor interpolation

◆ twoNghbr() [2/2]

template<typename SdfGridT , typename ExtValueT = typename SdfGridT::ValueType>
template<typename ExtT = ExtValueT, typename SdfT = SdfValueT, typename std::enable_if<!std::is_same< ExtT, int >::value, int >::type = 0>
ExtT twoNghbr ( const NN & d1,
const NN & d2,
const SdfT & w,
const ExtT & v1,
const ExtT & v2 ) const
inline
Note
Extending a non-integer field is based on a weighted interpolation