OpenVDB 12.1.0

Loading...
Searching...
No Matches
TubeComplexVoxelizer< GridType, ScalarType, InterruptT, PerSegmentRadii > Class Template Reference

Class used to generate a grid of type `GridType` containing a narrow-band level set representation of a tube complex. More...

`#include <openvdb/tools/impl/LevelSetTubesImpl.h>`

## Public Member Functions
| TubeComplexVoxelizer (const std::vector< Vec3T > &vertices, const std::vector< Vec2I > &segments, ScalarType radius, float voxelSize, float halfWidth, InterruptT *interrupter)
| Constructor for constant radius.
| TubeComplexVoxelizer (const std::vector< Vec3T > &vertices, const std::vector< Vec2I > &segments, const std::vector< ScalarType > &radii, float voxelSize, float halfWidth, InterruptT *interrupter)
| Constructor for varying radii.
| TubeComplexVoxelizer (TubeComplexVoxelizer &other, tbb::split)
template<bool PSR = PerSegmentRadii>
std::enable_if_t< PSR, void > | operator() (const tbb::blocked_range< size_t > &rng)
template<bool PSR = PerSegmentRadii>
std::enable_if_t<!PSR, void > | operator() (const tbb::blocked_range< size_t > &rng)
void | join (TubeComplexVoxelizer &other)
Index64 | bucketSize () const
GridPtr | getGrid () const

## Detailed Description

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PerSegmentRadii = true>
class openvdb::v12_1::tools::lvlset::TubeComplexVoxelizer< GridType, ScalarType, InterruptT, PerSegmentRadii >

Class used to generate a grid of type `GridType` containing a narrow-band level set representation of a tube complex.

Note
  `GridType::ValueType` must be a floating-point scalar.
  `ScalarType` represents the capsule complex vertex and radius type and must be a floating-point scalar.
  Setting `PerSegmentRadii` to `true` gives a complex of capsules and a complex of tapered capsules otherwise.

## Constructor & Destructor Documentation

## ◆ TubeComplexVoxelizer() [1/3]

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PerSegmentRadii = true>

TubeComplexVoxelizer | ( | const std::vector< Vec3T > & | vertices,
|  | const std::vector< Vec2I > & | segments,
|  | ScalarType | radius,
|  | float | voxelSize,
|  | float | halfWidth,
|  | InterruptT * | interrupter )
| inline

Constructor for constant radius.

Parameters

  vertices | endpoint vertices in the tube complex in world units
  segments | segment indices in the tube complex
  radius | radius of all tubes in world units
  voxelSize | voxel size in world units
  background | background value in voxel units
  interrupter | pointer to optional interrupter. Use template argument util::NullInterrupter if no interruption is desired.

## ◆ TubeComplexVoxelizer() [2/3]

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PerSegmentRadii = true>

TubeComplexVoxelizer | ( | const std::vector< Vec3T > & | vertices,
|  | const std::vector< Vec2I > & | segments,
|  | const std::vector< ScalarType > & | radii,
|  | float | voxelSize,
|  | float | halfWidth,
|  | InterruptT * | interrupter )
| inline

Constructor for varying radii.

Parameters

  vertices | endpoint vertices in the tube complex in world units
  segments | segment indices in the tube complex
  radii | radii specification for all tubes in world units
  voxelSize | voxel size in world units
  halfWidth | half-width value in voxel units
  interrupter | pointer to optional interrupter. Use template argument util::NullInterrupter if no interruption is desired.

Note
  If `PerSegmentRadii` is set to `true` then `segments` and `radii` must have the same size. If `PerSegmentRadii` is set to `false` then `vertices` and `radii` must have the same size.

## ◆ TubeComplexVoxelizer() [3/3]

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PerSegmentRadii = true>

TubeComplexVoxelizer | ( | TubeComplexVoxelizer< GridType, ScalarType, InterruptT, PerSegmentRadii > & | other,
|  | tbb::split | )
| inline

## Member Function Documentation

## ◆ bucketSize()

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PerSegmentRadii = true>

Index64 bucketSize | ( |  | ) | const
| inline

## ◆ getGrid()

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PerSegmentRadii = true>

GridPtr getGrid | ( |  | ) | const
| inline

## ◆ join()

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PerSegmentRadii = true>

void join | ( | TubeComplexVoxelizer< GridType, ScalarType, InterruptT, PerSegmentRadii > & | other | ) |
| inline

## ◆ operator()() [1/2]

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PerSegmentRadii = true>
template<bool PSR = PerSegmentRadii>

std::enable_if_t< PSR, void > operator() | ( | const tbb::blocked_range< size_t > & | rng | ) |
| inline

## ◆ operator()() [2/2]

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PerSegmentRadii = true>
template<bool PSR = PerSegmentRadii>

std::enable_if_t<!PSR, void > operator() | ( | const tbb::blocked_range< size_t > & | rng | ) |
| inline