HBhvInterpolatorColorMorph Class Reference

The HBhvInterpolatorColorMorph class performs an interpolation on the face colors of your target object. More...

#include <HBhvInterpolator.h>

Public Member Functions

virtual void AddMorphData (HPoint *md, int pnum, HBaseModel *model, int pos=-1)
 
virtual HBhvInterpolatorCreateInstance (HBhvAnimation *ainst)
 
VArray< void * > GetMorphData ()
 
int GetMorphDataLength ()
 
const char * GetType ()
 
 HBhvInterpolatorColorMorph (HBhvAnimation *animation=0, const char *name=0)
 
void Insert (char *mident, int l=0)
 
void InsertDiscrete (char *mident, int l=0)
 
virtual void Interpolate (int keyframe, float fraction)
 
void Replace (char *t, int l)
 
virtual void Serialize (HUtilityXMLGenerator *xmlgen)
 
virtual void SetUseFIndex (bool tf)
 
- Public Member Functions inherited from HBhvInterpolator
void Append (HKeyframe *piece)
 
void Copy (int pos, int adpos, bool replace)
 
void Duplicate (int pos, bool replace, bool next)
 
virtual void Evaluate (int keyframe, float fraction, bool &hasPos, HPoint &pos, bool &hasQuat, HQuat &quat, bool &hasScale, HPoint &scale)
 
HBhvAnimationGetAnimation ()
 
HKeyframe ** GetArray ()
 
virtual int GetArrayLength ()
 
virtual HKeyframeGetAt (int pos)
 
const char * GetName ()
 
void GetRotationFromMatrix (HQuat &rotation)
 
void GetTranslationFromMatrix (HPoint &translation)
 
 HBhvInterpolator (HBhvAnimation *animation=0, const char *name=0)
 
void Insert (HKeyframe *piece, int pos=0)
 
void Remove (int pos)
 
void Replace (HKeyframe *c, int pos)
 
virtual void Reset ()
 
void SetAnimation (HBhvAnimation *animation)
 
void SetInstancedInterpolator (HBhvInterpolator *interpolator)
 

Static Public Member Functions

static void * XMLCallback (HUtilityXMLTag *xt, bool open, void *m_pExtraData)
 

Additional Inherited Members

- Protected Member Functions inherited from HBhvInterpolator
void AddPositionToMatrix (HPoint &trans)
 
void AddRotationToMatrix (float rot[16])
 
void AddScaleToMatrix (HPoint &scale)
 
void SetTarget ()
 
- Protected Attributes inherited from HBhvInterpolator
char m_Name [BHV_MAX_NAME_LENGTH]
 
HBhvAnimationm_pAnimation
 
VArray< HKeyframe * > m_pArray
 
HBhvInterpolatorm_pInterpolatorInstance
 
HC_KEY m_pTarget
 

Detailed Description

The HBhvInterpolatorColorMorph class performs an interpolation on the face colors of your target object.

Constructor & Destructor Documentation

◆ HBhvInterpolatorColorMorph()

HBhvInterpolatorColorMorph::HBhvInterpolatorColorMorph ( HBhvAnimation animation = 0,
const char *  name = 0 
)

Constructs an HBhvInterpolatorColorMorph object.

Parameters
animationThe animation that this interpolator belongs to.
nameThe name of the interpolator.

Member Function Documentation

◆ AddMorphData()

virtual void HBhvInterpolatorColorMorph::AddMorphData ( HPoint md,
int  pnum,
HBaseModel model,
int  pos = -1 
)
virtual

This method adds an array of colors for the vertices in the target object to morph data array. Use this method to morph your data so that it can be added to the keyframe array for this interpolator. Note Insert() and Replace() take the morph data in the form of its indexed position in the morph data array.

Parameters
mdThe array of colors. For an HPoint, pass the r, g and b values in the x, y and z parameters if you have set the UseFIndex flag to false. If UseFIndex is true, then pass an index to the color lookup table for the x parameter of each HPoint in the array.
pnumNumber of items in array.
modelA pointer to the base model. The point array is stored as a shell in a special MorphData segment underneath the model segment.
posOptional index into the Morph Data array which indicates where to put the point array.

◆ CreateInstance()

virtual HBhvInterpolator* HBhvInterpolatorColorMorph::CreateInstance ( HBhvAnimation ainst)
virtual

In special cases, you may want an interpolator that references this interpolator without changing it. Use this method to create the new interpolator passing a pointer to the animation that you want it to be associated with.

Parameters
ainstThe animation instance that this interpolator is associated with.
Returns
The newly created interpolator that references this interpolator.

Implements HBhvInterpolator.

◆ GetMorphData()

VArray< void *> HBhvInterpolatorColorMorph::GetMorphData ( )
inline
Returns
A pointer to the morph data array.

◆ GetMorphDataLength()

int HBhvInterpolatorColorMorph::GetMorphDataLength ( )
inline
Returns
The number of entries in the morph data array.

◆ GetType()

const char* HBhvInterpolatorColorMorph::GetType ( )
virtual
Returns
The type of the interpolator which is 'ColorMorph'.

Implements HBhvInterpolator.

◆ Insert()

void HBhvInterpolatorColorMorph::Insert ( char *  mident,
int  l = 0 
)
inline

This method creates a new keyframe with the passed Morph Data position index and then inserts it after the passed position l into the keyframe array. To use this method, you must first add your face color information to the Morph Data using AddMorphData(). Once you have done that, note the position index that your vertex information was added to the Morph Data array. This will be the value of the parameter mident.

Parameters
midentThe Morph Data position index to your vertex array to use for the new keyframe. Note that although the index is an int, you can use itoa() to convert the index position.
lThe array position to insert item after.

References HKeyframeString::SetTarget().

◆ Interpolate()

virtual void HBhvInterpolatorColorMorph::Interpolate ( int  keyframe,
float  fraction 
)
virtual

Performs an interpolation on the animation target.

Parameters
keyframeThe reference keyframe for this interpolation.
fractionThe fraction value from the specified keyframe to the next keyframe. The value is from 0 to 1.

Reimplemented from HBhvInterpolator.

◆ Replace()

void HBhvInterpolatorColorMorph::Replace ( char *  t,
int  l 
)
inline

Replaces the item at the given position in the keyframe array with a new keyframe that was created with the passed morph identifier. To use this method, you must first add your face color information to the Morph Data using AddMorphData(). Once you have done that, note the position index that your vertex information was added to the Morph Data array. This will be the value of the parameter t.

Parameters
tThe Morph Data position index to your vertex array to use for the replace keyframe. Note that although the index is an int, you can use itoa() to convert the index position.
lThe array position to replace.

References HKeyframeString::SetTarget().

◆ Serialize()

virtual void HBhvInterpolatorColorMorph::Serialize ( HUtilityXMLGenerator *  xmlgen)
virtual

Writes XML data to a buffer using the passed XML generator.

Reimplemented from HBhvInterpolator.

◆ SetUseFIndex()

virtual void HBhvInterpolatorColorMorph::SetUseFIndex ( bool  tf)
virtual

Use this method to indicate that HOOPS should use a lookup table for colors in this interpolation. When creating morph data in AddMorphData, instead of passing RGB values in the x,y,z parameters of HPoint, pass the color lookup index in x parameter.

Parameters
tfPass true to use a lookup table or false to use RGB values.

◆ XMLCallback()

static void* HBhvInterpolatorColorMorph::XMLCallback ( HUtilityXMLTag *  xt,
bool  open,
void *  m_pExtraData 
)
static

This is XML read callback which parses XML data and then populates the member variables with the associated values.


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