#include "ortool_fcurveevent_tool.h"
#define ORTOOLTEMPLATE__CLASS ORTOOLTEMPLATE__CLASSNAME
#define ORTOOLTEMPLATE__LABEL "FCurveEvent"
#define ORTOOLTEMPLATE__DESC "FBSDK - Tool FCurve Event Description"
ORTOOLTEMPLATE__LABEL,
ORTOOLTEMPLATE__DESC,
#define VAR_NOT_USED(X) (void)X;
bool ORTool_FCurveEvent::FBCreate()
{
StartSize[0] = 160;
StartSize[1] = 95;
int lB = 10;
int lW = 150;
int lH = 18;
AddRegion( "Label", "Label",
SetControl( "Label", mLabel );
mLabel.Caption = "FCurve event tracked\n";
FBFCurveEventManager::TheOne().OnFCurveEvent.Add(
this, (
FBCallback) &ORTool_FCurveEvent::EventFCurveChanged);
FBFCurveEventManager::TheOne().OnPropertyEvent.Add(
this, (
FBCallback) &ORTool_FCurveEvent::EventPropertyChanged);
mCube = new FBModelCube("Cube");
mCube->Show = true;
FBFCurveEventManager::TheOne().RegisterProperty((FBPropertyAnimatable*)&mCube->Translation);
FBFCurveEventManager::TheOne().RegisterProperty((FBPropertyAnimatable*)&mCube->Visibility);
FBFCurveEventManager::TheOne().RegisterProperty(lProp);
mCube2 = new FBModelCube("Cube2");
mCube2->Show = true;
FBFCurveEventManager::TheOne().RegisterProperty((FBPropertyAnimatable*)&mCube2->Translation);
FBFCurveEventManager::TheOne().RegisterProperty((FBPropertyAnimatable*)&mCube2->Visibility);
return true;
}
void ORTool_FCurveEvent::FBDestroy()
{
FBFCurveEventManager::TheOne().OnFCurveEvent.Remove(
this, (
FBCallback) &ORTool_FCurveEvent::EventFCurveChanged);
FBFCurveEventManager::TheOne().OnPropertyEvent.Remove(
this, (
FBCallback) &ORTool_FCurveEvent::EventFCurveChanged);
}
void ORTool_FCurveEvent::EventPropertyChanged(
HISender pSender,
HKEvent pEvent )
{
FBPropertyStateEvent lEvent(pEvent);
FBComponent* lComponent = lEvent.GetParentComponent();
if(lEvent.GetProperty())
FBTrace(
"lProperty Name = %s\n", lEvent.GetProperty()->GetName());
if(lComponent)
FBTrace(
"lComponent = %s\n", FBComponentGetName(lComponent));
{
FBTrace(
"kFBPropertyStateEventTypeUnknownOperation\n");
}
{
FBTrace(
"kFBPropertyStateEventTypeAttached\n");
}
{
FBTrace(
"kFBPropertyStateEventTypeDetached\n");
}
{
FBTrace(
"kFBPropertyStateEventTypeDestroyed\n");
}
{
FBTrace(
"kFBPropertyStateEventTypeMassOperation\n");
}
FBTrace(
"End of New Property Event\n\n");
}
void ORTool_FCurveEvent::EventFCurveChanged(
HISender pSender,
HKEvent pEvent )
{
FBFCurveEvent lEvent(pEvent);
FBProperty* lProperty = lEvent.GetParentProperty();
FBComponent* lComponent = lEvent.GetParentComponent();
FBFCurve* lCurve = lEvent.Curve;
VAR_NOT_USED( lCurve );
int lStart = lEvent.KeyIndexStart;
int lStop = lEvent.KeyIndexStop;
if(lComponent)
FBTrace(
"lComponent = %s\n", FBComponentGetName(lComponent));
if(lProperty)
FBTrace(
"lProperty Name = %s\n", lProperty->GetName());
const char* lCurveName = lEvent.CurveName;
FBTrace(
"Curve Name = %s\n", lCurveName);
int lIndex = lEvent.CurveIndex;
FBTrace(
"Curve Index = %d\n", lIndex);
FBTrace(
"First Key = %d\n", lStart);
{
FBTrace(
"kFBFCurveEventTypeUnknownOperation\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyAdded\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyRemoved\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyTimeChanged\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyValueChanged\n");
}
{
FBTrace(
"kFBFCurveEventTypeDerivativedChanged\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyTensionChanged\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyContinuityChanged\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyBiasChanged\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyInterpolationChanged\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyTangentChanged\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyTangentBreakChanged\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyTangentClampModeChanged\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyTangentConstantChanged\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyVelocityChanged\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyWeightChanged\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyPreExtrapolationChanged\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyPostExtrapolationChanged\n");
}
{
FBTrace(
"kFBFCurveEventTypeKeyMassOperation\n");
}
FBTrace(
"End of New Key Event\n\n");
}