271 lines
7.3 KiB
C++
271 lines
7.3 KiB
C++
//===== Copyright (c) 1996-2009, Valve Corporation, All rights reserved. ====
|
|
//
|
|
// Animation commands
|
|
//
|
|
//===========================================================================
|
|
|
|
|
|
#ifndef DMEANIMCMD_H
|
|
#define DMEANIMCMD_H
|
|
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
|
|
// Valve includes
|
|
#include "datamodel/dmelement.h"
|
|
#include "datamodel/dmattributevar.h"
|
|
#include "movieobjects/dmelog.h"
|
|
|
|
|
|
// Forward declarations
|
|
class CDmeMotionControl;
|
|
class CDmeSequenceBase;
|
|
class CDmeSequence;
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Animation commands
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimCmd : public CDmElement
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimCmd, CDmElement );
|
|
|
|
public:
|
|
static const char *GetAssemblyDmElementTypeString() { return ""; }
|
|
|
|
bool HasAssemblyDmElement() const { return Q_strcmp( "", GetAssemblyDmElementTypeString() ) != 0; }
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// QC fixuploop
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimCmdFixupLoop : public CDmeAnimCmd
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimCmdFixupLoop, CDmeAnimCmd );
|
|
|
|
public:
|
|
static const char *GetAssemblyDmElementTypeString();
|
|
|
|
CDmaVar< int > m_nStartFrame;
|
|
CDmaVar< int > m_nEndFrame;
|
|
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// QC weightlisrt
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimCmdWeightList : public CDmeAnimCmd
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimCmdWeightList, CDmeAnimCmd );
|
|
|
|
public:
|
|
static const char *GetAssemblyDmElementTypeString() { return ""; }
|
|
|
|
CDmaString m_sWeightListName;
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// QC subtract
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimCmdSubtract : public CDmeAnimCmd
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimCmdSubtract, CDmeAnimCmd );
|
|
|
|
public:
|
|
static const char *GetAssemblyDmElementTypeString();
|
|
|
|
CDmaElement< CDmeSequenceBase > m_eAnimation;
|
|
CDmaVar< int > m_nFrame;
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// QC presubtract
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimCmdPreSubtract : public CDmeAnimCmdSubtract
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimCmdPreSubtract, CDmeAnimCmdSubtract );
|
|
|
|
public:
|
|
static const char *GetAssemblyDmElementTypeString();
|
|
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// QC align, alignto, alignbone, alignboneto
|
|
//
|
|
// align animationName, boneName = "", any motion, sourceFrame, destinationFrame
|
|
// alignTo animationName, boneName = "", motion = X | Y, sourceFrame = 0, destinationFrame = 0
|
|
// alignBone animationName, bone, any motion, sourceFrame, destinationFrame
|
|
// alignBoneTo animationName, bone, motion = X | Y, sourceFrame = 0, destinationFrame = 0
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimCmdAlign : public CDmeAnimCmd
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimCmdAlign, CDmeAnimCmd );
|
|
|
|
public:
|
|
static const char *GetAssemblyDmElementTypeString() { return ""; }
|
|
|
|
CDmaElement< CDmeSequenceBase > m_eAnimation;
|
|
CDmaString m_sBoneName;
|
|
CDmaVar< int > m_nSourceFrame;
|
|
CDmaVar< int > m_nDestinatonFrame;
|
|
CDmaElement< CDmeMotionControl > m_eMotionControl;
|
|
};
|
|
|
|
|
|
// TODO: QC match
|
|
// TODO: QC matchblend
|
|
// TODO: QC worldspaceblend
|
|
// TODO: QC worldspaceblendloop
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// QC rotateTo
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimCmdRotateTo : public CDmeAnimCmd
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimCmdRotateTo, CDmeAnimCmd );
|
|
|
|
public:
|
|
static const char *GetAssemblyDmElementTypeString();
|
|
|
|
CDmaVar< float > m_flAngle; // Specified in degrees
|
|
};
|
|
|
|
|
|
// ikRule, ikFixup handled separately
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// QC walkframe
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimCmdWalkFrame : public CDmeAnimCmd
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimCmdWalkFrame, CDmeAnimCmd );
|
|
|
|
public:
|
|
static const char *GetAssemblyDmElementTypeString() { return ""; }
|
|
|
|
CDmaElement< CDmeMotionControl > m_eMotionControl;
|
|
CDmaVar< int > m_nEndFrame;
|
|
};
|
|
|
|
// TODO: QC walkalignto
|
|
// TODO: QC walkalign
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// QC derivative
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimCmdDerivative : public CDmeAnimCmd
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimCmdDerivative, CDmeAnimCmd );
|
|
|
|
public:
|
|
static const char *GetAssemblyDmElementTypeString() { return ""; }
|
|
|
|
CDmaVar< float > m_flScale;
|
|
};
|
|
|
|
// TODO: QC noanimation
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// QC lineardelta
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimCmdLinearDelta : public CDmeAnimCmd
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimCmdLinearDelta, CDmeAnimCmd );
|
|
|
|
public:
|
|
static const char *GetAssemblyDmElementTypeString() { return ""; }
|
|
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// QC splinedelta
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimCmdSplineDelta : public CDmeAnimCmd
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimCmdSplineDelta, CDmeAnimCmd );
|
|
|
|
public:
|
|
static const char *GetAssemblyDmElementTypeString() { return ""; }
|
|
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// QC compress
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimCmdCompress : public CDmeAnimCmd
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimCmdCompress, CDmeAnimCmd );
|
|
|
|
public:
|
|
static const char *GetAssemblyDmElementTypeString() { return ""; }
|
|
|
|
CDmaVar< int > m_nSkipFrames;
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// QC numframes
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimCmdNumFrames : public CDmeAnimCmd
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimCmdNumFrames, CDmeAnimCmd );
|
|
|
|
public:
|
|
static const char *GetAssemblyDmElementTypeString() { return ""; }
|
|
|
|
CDmaVar< int > m_nFrames;
|
|
};
|
|
|
|
// TODO: counterrotate
|
|
// TODO: counterrotateto
|
|
// TODO: localhierarchy
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimCmdLocalHierarchy : public CDmeAnimCmd
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimCmdLocalHierarchy, CDmeAnimCmd );
|
|
|
|
public:
|
|
static const char *GetAssemblyDmElementTypeString() { return ""; }
|
|
|
|
CDmaString m_sBoneName;
|
|
CDmaString m_sParentBoneName;
|
|
CDmaVar< float > m_flStartFrame;
|
|
CDmaVar< float > m_flPeakFrame;
|
|
CDmaVar< float > m_flTailFrame;
|
|
CDmaVar< float > m_flEndFrame;
|
|
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimCmdNoAnimation : public CDmeAnimCmd
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimCmdNoAnimation, CDmeAnimCmd );
|
|
|
|
public:
|
|
static const char *GetAssemblyDmElementTypeString() { return ""; }
|
|
|
|
CDmaVar< bool > m_bNullAttr;
|
|
};
|
|
|
|
|
|
#endif // DMEANIMCMD_H
|