OpenVDB 12.0.0
 
Loading...
Searching...
No Matches
CombineArgs< AValueType, BValueType > Class Template Reference

This struct collects both input and output arguments to "grid combiner" functors used with the tree::TypedGrid::combineExtended() and combine2Extended() methods. AValueType and BValueType are the value types of the two grids being combined. More...

#include <openvdb/Types.h>

Public Types

using AValueT = AValueType
 
using BValueT = BValueType
 

Public Member Functions

 CombineArgs ()
 
 CombineArgs (const AValueType &a, const BValueType &b, AValueType &result, bool aOn=false, bool bOn=false)
 Use this constructor when the result value is stored externally.
 
 CombineArgs (const AValueType &a, const BValueType &b, bool aOn=false, bool bOn=false)
 Use this constructor when the result value should be stored in this struct.
 
const AValueType & a () const
 Get the A input value.
 
const BValueType & b () const
 Get the B input value.
 
const AValueType & result () const
 Get the output value.
 
AValueType & result ()
 
CombineArgssetResult (const AValueType &val)
 Set the output value.
 
CombineArgssetARef (const AValueType &a)
 Redirect the A value to a new external source.
 
CombineArgssetBRef (const BValueType &b)
 Redirect the B value to a new external source.
 
CombineArgssetResultRef (AValueType &val)
 Redirect the result value to a new external destination.
 
bool aIsActive () const
 
bool bIsActive () const
 
bool resultIsActive () const
 
CombineArgssetAIsActive (bool b)
 Set the active state of the A value.
 
CombineArgssetBIsActive (bool b)
 Set the active state of the B value.
 
CombineArgssetResultIsActive (bool b)
 Set the active state of the output value.
 

Protected Member Functions

void updateResultActive ()
 

Protected Attributes

const AValueType * mAValPtr
 
const BValueType * mBValPtr
 
AValueType mResultVal
 
AValueType * mResultValPtr
 
bool mAIsActive
 
bool mBIsActive
 
bool mResultIsActive
 

Detailed Description

template<typename AValueType, typename BValueType = AValueType>
class openvdb::v12_0::CombineArgs< AValueType, BValueType >

This struct collects both input and output arguments to "grid combiner" functors used with the tree::TypedGrid::combineExtended() and combine2Extended() methods. AValueType and BValueType are the value types of the two grids being combined.

See also
openvdb/tree/Tree.h for usage information.

Setter methods return references to this object, to facilitate the following usage:

myCombineOp(args.setARef(aVal).setBRef(bVal).setAIsActive(true).setBIsActive(false));
CombineArgs & setARef(const AValueType &a)
Redirect the A value to a new external source.
Definition Types.h:621
CombineArgs & setBIsActive(bool b)
Set the active state of the B value.
Definition Types.h:637
CombineArgs & setBRef(const BValueType &b)
Redirect the B value to a new external source.
Definition Types.h:623
CombineArgs()
Definition Types.h:574
CombineArgs & setAIsActive(bool b)
Set the active state of the A value.
Definition Types.h:635

Member Typedef Documentation

◆ AValueT

template<typename AValueType, typename BValueType = AValueType>
using AValueT = AValueType

◆ BValueT

template<typename AValueType, typename BValueType = AValueType>
using BValueT = BValueType

Constructor & Destructor Documentation

◆ CombineArgs() [1/3]

template<typename AValueType, typename BValueType = AValueType>
CombineArgs ( )
inline

◆ CombineArgs() [2/3]

template<typename AValueType, typename BValueType = AValueType>
CombineArgs ( const AValueType & a,
const BValueType & b,
AValueType & result,
bool aOn = false,
bool bOn = false )
inline

Use this constructor when the result value is stored externally.

◆ CombineArgs() [3/3]

template<typename AValueType, typename BValueType = AValueType>
CombineArgs ( const AValueType & a,
const BValueType & b,
bool aOn = false,
bool bOn = false )
inline

Use this constructor when the result value should be stored in this struct.

Member Function Documentation

◆ a()

template<typename AValueType, typename BValueType = AValueType>
const AValueType & a ( ) const
inline

Get the A input value.

◆ aIsActive()

template<typename AValueType, typename BValueType = AValueType>
bool aIsActive ( ) const
inline
Returns
true if the A value is active

◆ b()

template<typename AValueType, typename BValueType = AValueType>
const BValueType & b ( ) const
inline

Get the B input value.

◆ bIsActive()

template<typename AValueType, typename BValueType = AValueType>
bool bIsActive ( ) const
inline
Returns
true if the B value is active

◆ result() [1/2]

template<typename AValueType, typename BValueType = AValueType>
AValueType & result ( )
inline

◆ result() [2/2]

template<typename AValueType, typename BValueType = AValueType>
const AValueType & result ( ) const
inline

Get the output value.

◆ resultIsActive()

template<typename AValueType, typename BValueType = AValueType>
bool resultIsActive ( ) const
inline
Returns
true if the output value is active

◆ setAIsActive()

template<typename AValueType, typename BValueType = AValueType>
CombineArgs & setAIsActive ( bool b)
inline

Set the active state of the A value.

◆ setARef()

template<typename AValueType, typename BValueType = AValueType>
CombineArgs & setARef ( const AValueType & a)
inline

Redirect the A value to a new external source.

◆ setBIsActive()

template<typename AValueType, typename BValueType = AValueType>
CombineArgs & setBIsActive ( bool b)
inline

Set the active state of the B value.

◆ setBRef()

template<typename AValueType, typename BValueType = AValueType>
CombineArgs & setBRef ( const BValueType & b)
inline

Redirect the B value to a new external source.

◆ setResult()

template<typename AValueType, typename BValueType = AValueType>
CombineArgs & setResult ( const AValueType & val)
inline

Set the output value.

◆ setResultIsActive()

template<typename AValueType, typename BValueType = AValueType>
CombineArgs & setResultIsActive ( bool b)
inline

Set the active state of the output value.

◆ setResultRef()

template<typename AValueType, typename BValueType = AValueType>
CombineArgs & setResultRef ( AValueType & val)
inline

Redirect the result value to a new external destination.

◆ updateResultActive()

template<typename AValueType, typename BValueType = AValueType>
void updateResultActive ( )
inlineprotected

By default, the result value is active if either of the input values is active, but this behavior can be overridden by calling setResultIsActive().

Member Data Documentation

◆ mAIsActive

template<typename AValueType, typename BValueType = AValueType>
bool mAIsActive
protected

◆ mAValPtr

template<typename AValueType, typename BValueType = AValueType>
const AValueType* mAValPtr
protected

◆ mBIsActive

template<typename AValueType, typename BValueType = AValueType>
bool mBIsActive
protected

◆ mBValPtr

template<typename AValueType, typename BValueType = AValueType>
const BValueType* mBValPtr
protected

◆ mResultIsActive

template<typename AValueType, typename BValueType = AValueType>
bool mResultIsActive
protected

◆ mResultVal

template<typename AValueType, typename BValueType = AValueType>
AValueType mResultVal
protected

◆ mResultValPtr

template<typename AValueType, typename BValueType = AValueType>
AValueType* mResultValPtr
protected