HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GA_AIFStdInterp Class Referenceabstract

Generic implementation of the GA_AIFInterp interface using AIFTuple. More...

#include <GA_AIFStdInterp.h>

+ Inheritance diagram for GA_AIFStdInterp:

Public Member Functions

 GA_AIFStdInterp ()
 
 ~GA_AIFStdInterp () override
 
bool startSum (GA_Attribute &d, GA_Offset di, const GA_WeightedSum &sum) const override=0
 
bool addSum (GA_Attribute &d, GA_Offset di, const GA_WeightedSum &sum, const GA_Attribute &a, GA_Offset ai) const override=0
 
bool endSum (GA_Attribute &d, GA_Offset di, const GA_WeightedSum &sum, fpreal scale_factor=1) const override=0
 
bool lerp (GA_Attribute &d, GA_Offset di, const GA_Attribute &a, GA_Offset ai, const GA_Attribute &b, GA_Offset bi, fpreal t) const override
 
bool lerp (GA_Attribute &d, const GA_Range &di, const GA_Attribute &a, const GA_Range &ai, const GA_Attribute &b, const GA_Range &bi, fpreal t) const override
 
bool lerp (GA_Attribute &d, const GA_Range &di, const GA_Attribute &a, const GA_Range &ai, const GA_Attribute &b, const GA_Range &bi, const GA_Attribute &t, const GA_Range &ti) const override
 
bool smooth (GA_Attribute &d, GA_Offset di, fpreal min, fpreal max, const GA_Attribute &a, GA_Offset ai) const override=0
 
bool smooth (GA_Attribute &d, const GA_Range &di, fpreal min, fpreal max, const GA_Attribute &a, const GA_Range &ai) const override
 
bool fit (GA_Attribute &d, GA_Offset di, const GA_Attribute &a, GA_Offset ai, fpreal omin, fpreal omax, fpreal nmin, fpreal nmax) const override=0
 
bool fit (GA_Attribute &d, const GA_Range &di, const GA_Attribute &a, const GA_Range &ai, fpreal omin, fpreal omax, fpreal nmin, fpreal nmax) const override=0
 

Detailed Description

Generic implementation of the GA_AIFInterp interface using AIFTuple.

The GA_AIFInterp class provides a pure virtual implementation requiring developers to implement all specializations of the methods. This class provides these specializations using the AIFTuple methods to get/set data.

As a developer, you may want to provide the GA_AIFInterp interface, but may not want to have to provide all the specialized methods. You can subclass from this interface (rather than GA_AIFInterp directly).

However, be warned that if the GA_AIFInterp iterface changes, you may end up missing opportunities for specialization.

See Also
GA_AIFMath, GA_AIFStdMath

Definition at line 40 of file GA_AIFStdInterp.h.

Constructor & Destructor Documentation

GA_AIFStdInterp::GA_AIFStdInterp ( )
inline

Definition at line 43 of file GA_AIFStdInterp.h.

GA_AIFStdInterp::~GA_AIFStdInterp ( )
override

Member Function Documentation

bool GA_AIFStdInterp::addSum ( GA_Attribute d,
GA_Offset  di,
const GA_WeightedSum sum,
const GA_Attribute a,
GA_Offset  ai 
) const
overridepure virtual
bool GA_AIFStdInterp::endSum ( GA_Attribute d,
GA_Offset  di,
const GA_WeightedSum sum,
fpreal  scale_factor = 1 
) const
overridepure virtual
bool GA_AIFStdInterp::fit ( GA_Attribute d,
GA_Offset  di,
const GA_Attribute a,
GA_Offset  ai,
fpreal  omin,
fpreal  omax,
fpreal  nmin,
fpreal  nmax 
) const
overridepure virtual
bool GA_AIFStdInterp::fit ( GA_Attribute d,
const GA_Range di,
const GA_Attribute a,
const GA_Range ai,
fpreal  omin,
fpreal  omax,
fpreal  nmin,
fpreal  nmax 
) const
overridepure virtual
bool GA_AIFStdInterp::lerp ( GA_Attribute d,
GA_Offset  di,
const GA_Attribute a,
GA_Offset  ai,
const GA_Attribute b,
GA_Offset  bi,
fpreal  t 
) const
override
bool GA_AIFStdInterp::lerp ( GA_Attribute d,
const GA_Range di,
const GA_Attribute a,
const GA_Range ai,
const GA_Attribute b,
const GA_Range bi,
fpreal  t 
) const
override
bool GA_AIFStdInterp::lerp ( GA_Attribute d,
const GA_Range di,
const GA_Attribute a,
const GA_Range ai,
const GA_Attribute b,
const GA_Range bi,
const GA_Attribute t,
const GA_Range ti 
) const
override
bool GA_AIFStdInterp::smooth ( GA_Attribute d,
GA_Offset  di,
fpreal  min,
fpreal  max,
const GA_Attribute a,
GA_Offset  ai 
) const
overridepure virtual
bool GA_AIFStdInterp::smooth ( GA_Attribute d,
const GA_Range di,
fpreal  min,
fpreal  max,
const GA_Attribute a,
const GA_Range ai 
) const
override
bool GA_AIFStdInterp::startSum ( GA_Attribute d,
GA_Offset  di,
const GA_WeightedSum sum 
) const
overridepure virtual

Note: Weighted sums can only be performed on a single element, and thus don't have a generic GA_AttributeOperand method. These methods must be implemented for an interpolation interface.


The documentation for this class was generated from the following file: