csgo-2018-source/public/mdlobjects/dmeanimcmd.h
2021-07-24 21:11:47 -07:00

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