#include "orboxquaternion_box.h"
#define ORBOXROTQUAT__CLASS ORBOXROTQUAT__CLASSNAME
#define ORBOXROTQUAT__NAME ORBOXROTQUAT__CLASSSTR
#define ORBOXROTQUAT__LOCATION "Plugins"
#define ORBOXROTQUAT__LABEL "OR - Rotation to Quaternion"
#define ORBOXROTQUAT__DESC "OR - Rotation to Quaternion Description"
#define ORBOXQUATROT__CLASS ORBOXQUATROT__CLASSNAME
#define ORBOXQUATROT__NAME ORBOXQUATROT__CLASSSTR
#define ORBOXQUATROT__LOCATION "Plugins"
#define ORBOXQUATROT__LABEL "OR - Quaternion to Rotation"
#define ORBOXQUATROT__DESC "OR - Quaternion to Rotation Description"
ORBOXROTQUAT__CLASS,
ORBOXROTQUAT__LOCATION,
ORBOXROTQUAT__LABEL,
ORBOXROTQUAT__DESC,
ORBOXQUATROT__CLASS,
ORBOXQUATROT__LOCATION,
ORBOXQUATROT__LABEL,
ORBOXQUATROT__DESC,
bool ORBoxRotationQuaternion::FBCreate()
{
if( FBBox::FBCreate() )
{
return true;
}
return false;
}
void ORBoxRotationQuaternion::FBDestroy()
{
FBBox::FBDestroy();
}
bool ORBoxRotationQuaternion::AnimationNodeNotify( FBAnimationNode* pAnimationNode, FBEvaluateInfo* pEvaluateInfo )
{
double lRot[3];
int lStatus;
lStatus = mR->ReadData( lRot, pEvaluateInfo );
if( lStatus )
{
mQ[0]->WriteData( &lQuaternion[0], pEvaluateInfo );
mQ[1]->WriteData( &lQuaternion[1], pEvaluateInfo );
mQ[2]->WriteData( &lQuaternion[2], pEvaluateInfo );
mQ[3]->WriteData( &lQuaternion[3], pEvaluateInfo );
return true;
}
return false;
}
bool ORBoxQuaternionRotation::FBCreate()
{
if( FBBox::FBCreate() )
{
return true;
}
return false;
}
void ORBoxQuaternionRotation::FBDestroy()
{
FBBox::FBDestroy();
}
bool ORBoxQuaternionRotation::AnimationNodeNotify( FBAnimationNode* pAnimationNode, FBEvaluateInfo* pEvaluateInfo )
{
double lRot[3];
bool lStatus[5];
lStatus[0] = mQ[0]->ReadData( &lQuaternion[0], pEvaluateInfo );
lStatus[1] = mQ[1]->ReadData( &lQuaternion[1], pEvaluateInfo );
lStatus[2] = mQ[2]->ReadData( &lQuaternion[2], pEvaluateInfo );
lStatus[3] = mQ[3]->ReadData( &lQuaternion[3], pEvaluateInfo );
lStatus[4] = lStatus[0] && lStatus[1] && lStatus[2] && lStatus[3] ;
if( lStatus[4] )
{
lRot[0] = lRotation[0];
lRot[1] = lRotation[1];
lRot[2] = lRotation[2];
mR->WriteData( lRot, pEvaluateInfo );
return true;
}
return false;
}