tge/lib/dtsSDKPlus/appSequence.h
2017-04-17 06:17:10 -06:00

103 lines
2.4 KiB
C++
Executable File

//-----------------------------------------------------------------------------
// Torque Game Engine
// Copyright (C) GarageGames.com, Inc.
//-----------------------------------------------------------------------------
#ifndef DTSAPPSEQUENCE_H_
#define DTSAPPSEQUENCE_H_
#include "DTSTypes.h"
#include "DTSShape.h"
#include "DTSPlusTypes.h"
#include "appTime.h"
namespace DTS
{
// Enum for Triggers...
namespace TriggerState
{
enum { StateOn = 1 << 31, InvertOnReverse = 1 << 30, StateMask = 0x1f };
};
class AppSequence;
class AppNode;
struct AppSequenceData
{
bool cyclic;
bool blend;
bool ignoreGround;
bool enableMorph;
bool enableTVert;
bool enableVis;
bool enableTransform;
bool enableScale;
bool enableUniformScale;
bool enableAlignedScale;
bool enableArbitraryScale;
bool enableIFL;
bool forceMorph;
bool forceTVert;
bool forceVis;
bool forceTransform;
bool forceScale;
AppTime duration;
AppTime delta;
AppTime startTime;
AppTime endTime;
AppTime blendReferenceTime;
AppTime groundDelta;
S32 numFrames;
S32 groundNumFrames;
F32 frameRate;
F32 groundFrameRate;
F32 overrideDuration;
F32 priority;
};
class AppSequence
{
public:
virtual const char * getName() = 0;
virtual void getSequenceData(AppSequenceData *) = 0;
virtual S32 getNumTriggers() = 0;
virtual Trigger getTrigger(S32 idx) = 0;
virtual void setTSSequence(Sequence *);
};
// Create a sequence from an appropriately outfitted node
// Uses property values to figure everything out.
// This system is adequate for all dts features and will
// work in any 3d package which supports naming nodes and adding
// property values to nodes. Specific 3d apps can add support
// guis to manipulate these sequence objects.
class AppSequenceNode : public AppSequence
{
AppNode * mAppNode;
public:
AppSequenceNode(AppNode * node) { mAppNode=node; }
const char * getName();
void getSequenceData(AppSequenceData *);
S32 getNumTriggers();
Trigger getTrigger(S32 idx);
};
};
#endif // DTSAPPSEQUENCE_H_