40#ifndef OPENVDB_POINTS_RASTERIZE_SDF_HAS_BEEN_INCLUDED 
   41#define OPENVDB_POINTS_RASTERIZE_SDF_HAS_BEEN_INCLUDED 
   51#include <openvdb/thread/Threading.h> 
   55#include <unordered_map> 
   57#include <tbb/task_group.h> 
   58#include <tbb/parallel_reduce.h> 
   77template <
typename PointDataGridT,
 
   78    typename SdfT = 
typename PointDataGridT::template ValueConverter<float>::Type,
 
   79    typename FilterT = NullFilter,
 
   80    typename InterrupterT = util::NullInterrupter>
 
   84             const Real halfband = LEVEL_SET_HALF_WIDTH,
 
   85             math::Transform::Ptr transform = 
nullptr,
 
   86             const FilterT& filter = NullFilter(),
 
   87             InterrupterT* interrupter = 
nullptr);
 
  101template <
typename PointDataGridT,
 
  102    typename RadiusT = float,
 
  103    typename SdfT = 
typename PointDataGridT::template ValueConverter<float>::Type,
 
  104    typename FilterT = NullFilter,
 
  105    typename InterrupterT = util::NullInterrupter>
 
  108             const std::string& radius,
 
  109             const Real scale = 1.0,
 
  110             const Real halfband = LEVEL_SET_HALF_WIDTH,
 
  111             math::Transform::Ptr transform = 
nullptr,
 
  112             const FilterT& filter = NullFilter(),
 
  113             InterrupterT* interrupter = 
nullptr);
 
  139template <
typename PointDataGridT,
 
  141    typename SdfT = 
typename PointDataGridT::template ValueConverter<float>::Type,
 
  142    typename FilterT = NullFilter,
 
  143    typename InterrupterT = util::NullInterrupter>
 
  147             const std::vector<std::string>& attributes,
 
  148             const Real halfband = LEVEL_SET_HALF_WIDTH,
 
  149             math::Transform::Ptr transform = 
nullptr,
 
  150             const FilterT& filter = NullFilter(),
 
  151             InterrupterT* interrupter = 
nullptr);
 
  177template <
typename PointDataGridT,
 
  179    typename RadiusT = float,
 
  180    typename SdfT = 
typename PointDataGridT::template ValueConverter<float>::Type,
 
  181    typename FilterT = NullFilter,
 
  182    typename InterrupterT = util::NullInterrupter>
 
  185             const std::string& radius,
 
  186             const std::vector<std::string>& attributes,
 
  187             const Real scale = 1.0,
 
  188             const Real halfband = LEVEL_SET_HALF_WIDTH,
 
  189             math::Transform::Ptr transform = 
nullptr,
 
  190             const FilterT& filter = NullFilter(),
 
  191             InterrupterT* interrupter = 
nullptr);
 
  211template <
typename PointDataGridT,
 
  212    typename SdfT = 
typename PointDataGridT::template ValueConverter<float>::Type,
 
  213    typename FilterT = NullFilter,
 
  214    typename InterrupterT = util::NullInterrupter>
 
  218             const Real searchRadius,
 
  219             const Real halfband = LEVEL_SET_HALF_WIDTH,
 
  220             math::Transform::Ptr transform = 
nullptr,
 
  221             const FilterT& filter = NullFilter(),
 
  222             InterrupterT* interrupter = 
nullptr);
 
  247template <
typename PointDataGridT,
 
  248    typename RadiusT = float,
 
  249    typename SdfT = 
typename PointDataGridT::template ValueConverter<float>::Type,
 
  250    typename FilterT = NullFilter,
 
  251    typename InterrupterT = util::NullInterrupter>
 
  254                 const std::string& radius,
 
  255                 const Real radiusScale,
 
  256                 const Real searchRadius,
 
  257                 const Real halfband = LEVEL_SET_HALF_WIDTH,
 
  258                 math::Transform::Ptr transform = 
nullptr,
 
  259                 const FilterT& filter = NullFilter(),
 
  260                 InterrupterT* interrupter = 
nullptr);
 
  293template <
typename PointDataGridT,
 
  295    typename SdfT = 
typename PointDataGridT::template ValueConverter<float>::Type,
 
  296    typename FilterT = NullFilter,
 
  297    typename InterrupterT = util::NullInterrupter>
 
  301                 const Real searchRadius,
 
  302                 const std::vector<std::string>& attributes,
 
  303                 const Real halfband = LEVEL_SET_HALF_WIDTH,
 
  304                 math::Transform::Ptr transform = 
nullptr,
 
  305                 const FilterT& filter = NullFilter(),
 
  306                 InterrupterT* interrupter = 
nullptr);
 
  343template <
typename PointDataGridT,
 
  345    typename RadiusT = float,
 
  346    typename SdfT = 
typename PointDataGridT::template ValueConverter<float>::Type,
 
  347    typename FilterT = NullFilter,
 
  348    typename InterrupterT = util::NullInterrupter>
 
  351                 const std::string& radius,
 
  352                 const Real radiusScale,
 
  353                 const Real searchRadius,
 
  354                 const std::vector<std::string>& attributes,
 
  355                 const Real halfband = LEVEL_SET_HALF_WIDTH,
 
  356                 math::Transform::Ptr transform = 
nullptr,
 
  357                 const FilterT& filter = NullFilter(),
 
  358                 InterrupterT* interrupter = 
nullptr);
 
Attribute-owned data structure for points. Point attributes are stored in leaf nodes and ordered by v...
Functions to perform multi threaded reductions and analysis of arbitrary point attribute types....
Framework methods for rasterizing PointDataGrid data to Trees.
Defined various multi-threaded utility functions for trees.
SdfT::Ptr rasterizeSmoothSpheres(const PointDataGridT &points, const Real radius, const Real searchRadius, const Real halfband=LEVEL_SET_HALF_WIDTH, math::Transform::Ptr transform=nullptr, const FilterT &filter=NullFilter(), InterrupterT *interrupter=nullptr)
Smoothed point distribution based sphere stamping with a uniform radius.
Definition PointRasterizeSDFImpl.h:1209
SdfT::Ptr rasterizeSpheres(const PointDataGridT &points, const Real radius, const Real halfband=LEVEL_SET_HALF_WIDTH, math::Transform::Ptr transform=nullptr, const FilterT &filter=NullFilter(), InterrupterT *interrupter=nullptr)
Narrow band sphere stamping with a uniform radius.
Definition PointRasterizeSDFImpl.h:1061
std::vector< GridBase::Ptr > GridPtrVec
Definition Grid.h:508
NumericAttributeTypes:: Append< Vec3AttributeTypes >:: Append< Mat3AttributeTypes >:: Append< Mat4AttributeTypes >:: Append< QuatAttributeTypes >:: Append< points::GroupAttributeArray >:: Append< points::StringAttributeArray >:: Append< points::TypedAttributeArray< bool > > AttributeTypes
The attribute array types which OpenVDB will register by default.
Definition openvdb.h:178
Definition Exceptions.h:13
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition version.h.in:121
#define OPENVDB_USE_VERSION_NAMESPACE
Definition version.h.in:218