OpenVDB  12.0.0
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
ValueAccessorBase< TreeType, IsSafe > Class Template Referenceabstract

This base class for ValueAccessors manages registration of an accessor with a tree so that the tree can automatically clear the accessor whenever one of its nodes is deleted. More...

#include <openvdb/tree/ValueAccessor.h>

Inherited by ValueAccessorImpl< TreeType >.

Public Member Functions

 ValueAccessorBase (TreeType &tree)
 Construct from a tree. Should rarely be invoked directly, the drived implementation class calls this. Remains public for backwards compatibility. More...
 
virtual ~ValueAccessorBase ()
 
 ValueAccessorBase (const ValueAccessorBase &other)
 Copy constructor - if IsSafe, then the copy also registers itself against the tree it is accessing. More...
 
ValueAccessorBaseoperator= (const ValueAccessorBase &other)
 
TreeType * getTree () const
 Return a pointer to the tree associated with this accessor. More...
 
TreeType & tree () const
 Return a reference to the tree associated with this accessor. More...
 
virtual void clear ()=0
 Pure virtual method, clears the derived accessor. More...
 

Static Public Member Functions

static constexpr bool isSafe ()
 Return true if this accessor is safe, i.e. registered by the tree from which it is constructed. Un-registered accessors can in rare cases be faster because it avoids the (small) overhead of registration, but they are unsafe if the tree is modified. So unless you're an expert it is highly recommended to set IsSafe = true (which is the default). More...
 

Static Public Attributes

static constexpr bool IsConstTree = std::is_const<TreeType>::value
 Returns true if this accessor is operating on a const tree type. More...
 

Protected Member Functions

virtual void release ()
 

Protected Attributes

TreeType * mTree
 

Friends

template<typename >
class Tree
 

Detailed Description

template<typename TreeType, bool IsSafe>
class openvdb::v12_0::tree::ValueAccessorBase< TreeType, IsSafe >

This base class for ValueAccessors manages registration of an accessor with a tree so that the tree can automatically clear the accessor whenever one of its nodes is deleted.

Constructor & Destructor Documentation

ValueAccessorBase ( TreeType &  tree)
inline

Construct from a tree. Should rarely be invoked directly, the drived implementation class calls this. Remains public for backwards compatibility.

virtual ~ValueAccessorBase ( )
inlinevirtual
ValueAccessorBase ( const ValueAccessorBase< TreeType, IsSafe > &  other)
inline

Copy constructor - if IsSafe, then the copy also registers itself against the tree it is accessing.

Member Function Documentation

virtual void clear ( )
pure virtual
TreeType* getTree ( ) const
inline

Return a pointer to the tree associated with this accessor.

The pointer will be null only if the tree from which this accessor was constructed was subsequently deleted (which generally leaves the accessor in an unsafe state).

static constexpr bool isSafe ( )
inlinestatic

Return true if this accessor is safe, i.e. registered by the tree from which it is constructed. Un-registered accessors can in rare cases be faster because it avoids the (small) overhead of registration, but they are unsafe if the tree is modified. So unless you're an expert it is highly recommended to set IsSafe = true (which is the default).

ValueAccessorBase& operator= ( const ValueAccessorBase< TreeType, IsSafe > &  other)
inline
virtual void release ( )
inlineprotectedvirtual
TreeType& tree ( ) const
inline

Return a reference to the tree associated with this accessor.

Friends And Related Function Documentation

friend class Tree
friend

Member Data Documentation

constexpr bool IsConstTree = std::is_const<TreeType>::value
static

Returns true if this accessor is operating on a const tree type.

TreeType* mTree
protected