#include "ortoolconstraintrelation_tool.h"
#define ORTOOLCONSTRAINTRELATION__CLASS ORTOOLCONSTRAINTRELATION__CLASSNAME
#define ORTOOLCONSTRAINTRELATION__LABEL "Constraint Relation"
#define ORTOOLCONSTRAINTRELATION__DESC "FBSDK - Tool Constraint Relation Description"
ORTOOLCONSTRAINTRELATION__LABEL,
ORTOOLCONSTRAINTRELATION__DESC,
bool ORToolConstraintRelation::FBCreate()
{
StartSize[0] = 150;
StartSize[1] = 68;
AddRegion(
"ButtonTest",
"ButtonTest", 10,
kFBAttachLeft,
"", 1.0,
SetControl( "ButtonTest", mButtonTest );
mButtonTest.OnClick.Add(
this, (
FBCallback) &ORToolConstraintRelation::EventButtonTestClick );
mButtonTest.Caption = "Create Scene";
OnShow.Add (
this, (
FBCallback) &ORToolConstraintRelation::EventToolShow );
OnIdle.Add (
this, (
FBCallback) &ORToolConstraintRelation::EventToolIdle );
OnResize.Add(
this, (
FBCallback) &ORToolConstraintRelation::EventToolResize );
OnPaint.Add (
this, (
FBCallback) &ORToolConstraintRelation::EventToolPaint );
OnInput.Add (
this, (
FBCallback) &ORToolConstraintRelation::EventToolInput );
mState=0;
return true;
}
void ORToolConstraintRelation::FBDestroy()
{
OnShow.Remove (
this, (
FBCallback) &ORToolConstraintRelation::EventToolShow );
OnIdle.Remove (
this, (
FBCallback) &ORToolConstraintRelation::EventToolIdle );
OnPaint.Remove (
this, (
FBCallback) &ORToolConstraintRelation::EventToolPaint );
OnInput.Remove (
this, (
FBCallback) &ORToolConstraintRelation::EventToolInput );
OnResize.Remove (
this, (
FBCallback) &ORToolConstraintRelation::EventToolResize);
}
void ORToolConstraintRelation::EventButtonTestClick(
HISender pSender,
HKEvent pEvent )
{
FBBox* lPlaceHolderBox =
NULL;
FBBox* lSineRampBox =
NULL;
FBBox* lNumberToVectorBox =
NULL;
switch( mState )
{
case 0:
{
mHdlModel = new FBModelMarker("Constraint Relation Model");
mHdlModel->Translation.SetAnimated(true);
mHdlModel->Show = true;
mHdlConstraint = (FBConstraintRelation*)FBConstraintManager::TheOne().TypeCreateConstraint("Relation");
lSineRampBox = mHdlConstraint->CreateFunctionBox("Sources", "Sine Ramp");
mHdlConstraint->SetBoxPosition(lSineRampBox, 30, 30);
lNumberToVectorBox = mHdlConstraint->CreateFunctionBox("Converters", "Number to Vector");
mHdlConstraint->SetBoxPosition(lNumberToVectorBox, 400, 30);
lPlaceHolderBox = mHdlConstraint->ConstrainObject(mHdlModel);
mHdlConstraint->SetBoxPosition(lPlaceHolderBox, 700, 30);
FBAnimationNode* lSineRampOut = lSineRampBox->AnimationNodeOutGet()->Nodes.Find("Result");
FBAnimationNode* lNumberToVectorIn = lNumberToVectorBox->AnimationNodeInGet()->Nodes.Find("Y");
FBAnimationNode* lNumberToVectorOut = lNumberToVectorBox->AnimationNodeOutGet()->Nodes.Find("Result");
FBAnimationNode* lModelIn = lPlaceHolderBox->AnimationNodeInGet()->Nodes.Find("Translation");
mHdlConstraint->Active = true;
mButtonTest.Caption = "Destroy Scene";
}
break;
case 1:
{
if( mHdlConstraint.Ok() )
{
mHdlConstraint->Active = false;
mHdlConstraint->FBDelete();
}
if( mHdlModel.Ok() )
{
mHdlModel->Show = false;
mHdlModel->FBDelete();
}
mButtonTest.Caption = "Create Scene";
}
break;
}
mState++;
mState %= 2;
}
void ORToolConstraintRelation::EventToolIdle(
HISender pSender,
HKEvent pEvent )
{
}
void ORToolConstraintRelation::EventToolShow(
HISender pSender,
HKEvent pEvent )
{
FBEventShow lEvent( pEvent );
if( lEvent.Shown )
{
}
else
{
}
}
void ORToolConstraintRelation::EventToolPaint(
HISender pSender,
HKEvent pEvent )
{
}
void ORToolConstraintRelation::EventToolResize(
HISender pSender,
HKEvent pEvent )
{
}
void ORToolConstraintRelation::EventToolInput(
HISender pSender,
HKEvent pEvent )
{
}
bool ORToolConstraintRelation::FbxStore ( FBFbxObject* pFbxObject,
kFbxObjectStore pStoreWhat )
{
pFbxObject->FieldWriteBegin( "ORToolConstraintRelationSection" );
{
pFbxObject->FieldWriteC( mButtonTest.Caption );
}
pFbxObject->FieldWriteEnd();
return true;
}
bool ORToolConstraintRelation::FbxRetrieve( FBFbxObject* pFbxObject,
kFbxObjectStore pStoreWhat )
{
pFbxObject->FieldReadBegin( "ORToolConstraintRelationSection" );
{
mButtonTest.Caption = pFbxObject->FieldReadC();
}
pFbxObject->FieldReadEnd();
return true;
}