HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Todo List
Member GEO_Detail::findInternalNormalAttribute () const
Remove internalN code path with the H11 viewport?
Member GEO_PrimVDB::getUniqueId () const
Because serial numbers are currently 32-bit, it is possible, though unlikely, for two primitives to have the same serial number.
File Morphology.h
Extend erosion with 18 and 26 neighbors (coming soon!)
Member openvdb::OPENVDB_VERSION_NAME::Grid< typename >::memUsage () const override
Add transform().memUsage()
Member openvdb::OPENVDB_VERSION_NAME::Grid< typename >::readBuffers (std::istream &, const CoordBBox &) override
Refactor this and the readBuffers() above once support for ABI 2 compatibility is dropped.
Member openvdb::OPENVDB_VERSION_NAME::io::Archive::writeHeader (std::ostream &, bool seekable) const
This method should not be const since it actually redefines the UUID!
Member openvdb::OPENVDB_VERSION_NAME::io::File::write (const GridCPtrVec &, const MetaMap &=MetaMap()) const override

GridPtrVec readAllGridsPartial(const Name&)

GridPtrVec readAllGrids(const Name&)

Member openvdb::OPENVDB_VERSION_NAME::io::StreamMetadata::transferTo (std::ios_base &) const
Deprecate direct transfer; use StreamMetadata structs everywhere.
Member openvdb::OPENVDB_VERSION_NAME::io::writeCompressedValues (std::ostream &os, ValueT *srcBuf, Index srcCount, const MaskT &valueMask, const MaskT &childMask, bool toHalf)

Consider all values, not just inactive values?

Save the selection mask as long as most of the inactive values are one of two values?

Save the selection mask as long as most of the inactive values are one of two values?

Member openvdb::OPENVDB_VERSION_NAME::io::writeData< std::string > (std::ostream &os, const std::string *data, Index count, uint32_t)
add compression
Member openvdb::OPENVDB_VERSION_NAME::math::CoordBBox::extents () const
deprecate - use dim instead
Class openvdb::OPENVDB_VERSION_NAME::math::MapAdapter< MapType, OpType, ResultType >
For now, the operator's result type must be specified explicitly, but eventually it should be possible, via traits, to derive the result type from the operator type.
Member openvdb::OPENVDB_VERSION_NAME::math::NonlinearFrustumMap::NonlinearFrustumMap (const Vec3d &position, const Vec3d &direction, const Vec3d &up, double aspect, double z_near, double depth, Coord::ValueType x_count, Coord::ValueType z_count)

check that depth > 0

check up.length > 0

check that direction dot up = 0

Class openvdb::OPENVDB_VERSION_NAME::math::Transform
void calculateBounds(const Transform& t, const Vec3d& center, const Real radius, Vec3d& minIS, Vec3d& maxIS);
Member openvdb::OPENVDB_VERSION_NAME::MetaMap::MetaMap ()
this should really iterate over a map of Metadata::ConstPtrs
Member openvdb::OPENVDB_VERSION_NAME::operator+ (const std::string &s, bool)
These won't be needed if we eliminate StringGrids.
Member openvdb::OPENVDB_VERSION_NAME::tools::erodeVoxels (TreeType &tree, int iterations=1, NearestNeighbors nn=NN_FACE)
Currently operates only on leaf voxels; need to extend to tiles.
Class openvdb::OPENVDB_VERSION_NAME::tools::LevelSetRayIntersector< GridT, SearchImplT, NodeLevel, RayT >
Add TrilinearSearchImpl, as an alternative to LinearSearchImpl, that performs analytical 3D trilinear intersection tests, i.e., solves cubic equations. This is slower but also more accurate than the 1D linear interpolation in LinearSearchImpl.
Member openvdb::OPENVDB_VERSION_NAME::tools::Morphology< TreeType >::dilateVoxels18 ()
Currently operates only on leaf voxels; need to extend to tiles.
Member openvdb::OPENVDB_VERSION_NAME::tools::Morphology< TreeType >::dilateVoxels6 ()
Currently operates only on leaf voxels; need to extend to tiles.
Member openvdb::OPENVDB_VERSION_NAME::tools::Morphology< TreeType >::doErosion (NearestNeighbors nn)
Currently operates only on leaf voxels; need to extend to tiles.
Member openvdb::OPENVDB_VERSION_NAME::tools::PointIndexLeafNode< T, Log2Dim >::readBuffers (std::istream &is, const CoordBBox &, bool fromHalf=false)
If any voxels were deactivated as a result of clipping in the call to BaseLeaf::readBuffers(), the point index list will need to be regenerated.
Member openvdb::OPENVDB_VERSION_NAME::tools::poisson::solveWithBoundaryConditionsAndPreconditioner (const TreeType &, const DomainTreeType &, const BoundaryOp &, math::pcg::State &, Interrupter &)
if (state.success) ... ?
Member openvdb::OPENVDB_VERSION_NAME::tools::QuadraticSampler::triquadraticInterpolation (ValueT(&data)[N][N][N], const Vec3R &uvw)
For vector types, interpolate over each component independently.
Class openvdb::OPENVDB_VERSION_NAME::tools::stats_internal::IterTraits< IterT, AuxT >
This traits class is needed because tree::TreeValueIteratorBase uses the name ValueT for the type of the value to which the iterator points, whereas node-level iterators use the name ValueType.
Member openvdb::OPENVDB_VERSION_NAME::tools::stats_internal::MathOp< IterT, OpT, StatsT >::operator() (const IterT &it)
This could be specialized to be done more efficiently for some operators. For example, all voxels in the interior of a tile (i.e., not on the borders) have gradient zero, so there's no need to apply the operator to every voxel.
Member openvdb::OPENVDB_VERSION_NAME::tree::InternalNode< _ChildNodeType, Log2Dim >::IteratorBase< MaskOnIterator, InternalNode >
Make mask accessors public?
Member openvdb::OPENVDB_VERSION_NAME::tree::LeafNode< bool, Log2Dim >::IteratorBase< MaskOnIter, LeafNode >
Make mask accessors public?
Member openvdb::OPENVDB_VERSION_NAME::tree::LeafNode< bool, Log2Dim >::LeafNode (PartialCreate, const Coord &xyz, bool value=false, bool active=false)
For now, this is identical to the non-PartialCreate constructor. Consider modifying the Buffer class to allow it to be constructed without allocating a bitmask.
Member openvdb::OPENVDB_VERSION_NAME::tree::LeafNode< bool, Log2Dim >::LeafNode (const LeafNode< ValueT, Log2Dim > &other)
Consider using a value conversion functor passed as an argument instead.
Member openvdb::OPENVDB_VERSION_NAME::tree::LeafNode< T, Log2Dim >::IteratorBase< MaskOnIterator, LeafNode >
Make mask accessors public?
Member openvdb::OPENVDB_VERSION_NAME::tree::LeafNode< T, Log2Dim >::LeafNode (const LeafNode< OtherValueType, Log2Dim > &other)
Consider using a value conversion functor passed as an argument instead.
Member openvdb::OPENVDB_VERSION_NAME::tree::LeafNode< ValueMask, Log2Dim >::IteratorBase< MaskOnIter, LeafNode >
Make mask accessors public?
Member openvdb::OPENVDB_VERSION_NAME::tree::RootNodeCopyHelper< RootT, OtherRootT, true >::copyWithValueConversion (RootT &self, const OtherRootT &other)
Consider using a value conversion functor passed as an argument instead.
Member openvdb::OPENVDB_VERSION_NAME::tree::Tree< _RootNodeType >::print (std::ostream &os=std::cout, int verboseLevel=1) const override

Consider using hboost::io::ios_precision_saver instead.

not accurate for BoolTree (and probably should count tile values)

File Tree.h
Optimize Tree::evalMinMax