OpenVDB: ClosestSurfacePoint< GridT > Class Template Reference

OpenVDB 9.0.0

Public Types | Public Member Functions | Static Public Member Functions | List of all members
ClosestSurfacePoint< GridT > Class Template Reference

Accelerated closest surface point queries for narrow band level sets. More...

`#include <openvdb/tools/VolumeToSpheres.h>`

## Public Types
using | Ptr = std::unique_ptr< ClosestSurfacePoint >
using | TreeT = typename GridT::TreeType
using | BoolTreeT = typename TreeT::template ValueConverter< bool >::Type
using | Index32TreeT = typename TreeT::template ValueConverter< Index32 >::Type
using | Int16TreeT = typename TreeT::template ValueConverter< Int16 >::Type

## Public Member Functions
bool | search (const std::vector< Vec3R > &points, std::vector< float > &distances)
| Compute the distance from each input point to its closest surface point. More...
bool | searchAndReplace (std::vector< Vec3R > &points, std::vector< float > &distances)
| Overwrite each input point with its closest surface point. More...
const Index32TreeT & | indexTree () const
| Tree accessor. More...
const Int16TreeT & | signTree () const
| Tree accessor. More...

## Static Public Member Functions
template<typename InterrupterT = util::NullInterrupter>
static Ptr | create (const GridT &grid, float isovalue=0.0, InterrupterT *interrupter=nullptr)
| Extract surface points and construct a spatial acceleration structure. More...

## Detailed Description

template<typename GridT>
class openvdb::v9_0::tools::ClosestSurfacePoint< GridT >

Accelerated closest surface point queries for narrow band level sets.

Supports queries that originate at arbitrary world-space locations, is not confined to the narrow band region of the input volume geometry.

## Member Typedef Documentation

## ◆ BoolTreeT

using BoolTreeT = typename TreeT::template ValueConverter<bool>::Type

## ◆ Index32TreeT

using Index32TreeT = typename TreeT::template ValueConverter<Index32>::Type

## ◆ Int16TreeT

using Int16TreeT = typename TreeT::template ValueConverter<Int16>::Type

## ◆ Ptr

using Ptr = std::unique_ptr<ClosestSurfacePoint>

## ◆ TreeT

using TreeT = typename GridT::TreeType

## Member Function Documentation

## ◆ create()

ClosestSurfacePoint< GridT >::Ptr create | ( | const GridT & | grid,
|  | float | isovalue = `0.0`,
|  | InterrupterT * | interrupter = `nullptr`
| ) |  |
| static

Extract surface points and construct a spatial acceleration structure.

Returns
  a null pointer if the initialization fails for any reason, otherwise a unique pointer to a newly-allocated ClosestSurfacePoint object.

Parameters

  grid | a scalar level set or fog volume
  isovalue | the voxel value that determines the surface of the volume The default value of zero works for signed distance fields, while fog volumes require a larger positive value (0.5 is a good initial guess).
  interrupter | pointer to an object adhering to the util::NullInterrupter interface.

## ◆ indexTree()

const Index32TreeT & indexTree | ( |  | ) | const
| inline

Tree accessor.

## ◆ search()

bool search | ( | const std::vector< Vec3R > & | points,
|  | std::vector< float > & | distances
| ) |  |

Compute the distance from each input point to its closest surface point.

Parameters

  points | input list of points in world space
  distances | output list of closest surface point distances

## ◆ searchAndReplace()

bool searchAndReplace | ( | std::vector< Vec3R > & | points,
|  | std::vector< float > & | distances
| ) |  |

Overwrite each input point with its closest surface point.

Parameters

  points | input/output list of points in world space
  distances | output list of closest surface point distances

## ◆ signTree()

const Int16TreeT & signTree | ( |  | ) | const
| inline

Tree accessor.