You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
154 lines
3.8 KiB
154 lines
3.8 KiB
//====== Copyright (c) 1996-2009, Valve Corporation, All rights reserved. =====
|
|
//
|
|
// DmeAnimationAssemblyCommand
|
|
//
|
|
//=============================================================================
|
|
|
|
|
|
#ifndef DMEANIMATIONASSEMBLYCOMMAND_H
|
|
#define DMEANIMATIONASSEMBLYCOMMAND_H
|
|
|
|
|
|
#if defined( _WIN32 )
|
|
#pragma once
|
|
#endif
|
|
|
|
|
|
// Valve includes
|
|
#include "mdlobjects/dmeassemblycommand.h"
|
|
#include "mdlobjects/dmesequence.h"
|
|
#include "movieobjects/dmelog.h"
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Forward Declarations
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeSequence;
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeAnimationAssemblyCommand : public CDmeAssemblyCommand
|
|
{
|
|
DEFINE_ELEMENT( CDmeAnimationAssemblyCommand, CDmeAssemblyCommand );
|
|
|
|
public:
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeFixupLoop : public CDmeAnimationAssemblyCommand
|
|
{
|
|
DEFINE_ELEMENT( CDmeFixupLoop, CDmeAnimationAssemblyCommand );
|
|
|
|
public:
|
|
// From CDmeAssemblyCommand
|
|
virtual bool Apply( CDmElement *pDmElement );
|
|
|
|
CDmaVar< int > m_nStartFrame;
|
|
CDmaVar< int > m_nEndFrame;
|
|
|
|
protected:
|
|
template< class T > void Apply(
|
|
CDmeTypedLog< T > *pDmeTypedLog,
|
|
const DmeTime_t &dmeTimeStart,
|
|
const DmeTime_t &dmeTimeEnd ) const;
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeSubtract : public CDmeAnimationAssemblyCommand
|
|
{
|
|
DEFINE_ELEMENT( CDmeSubtract, CDmeAnimationAssemblyCommand );
|
|
|
|
public:
|
|
// From CDmeAssemblyCommand
|
|
virtual bool Apply( CDmElement *pDmElement );
|
|
|
|
CDmaElement< CDmeSequenceBase > m_eSequence;
|
|
CDmaVar< int > m_nFrame;
|
|
|
|
protected:
|
|
template< class T > void Subtract(
|
|
CDmeTypedLog< T > *pDmeTypedLogDst,
|
|
const CDmeTypedLog< T > *pDmeTypedLogSrc,
|
|
const DmeTime_t &dmeTimeSrc ) const;
|
|
|
|
virtual void Subtract(
|
|
Vector &vResult,
|
|
const Vector &vDst,
|
|
const Vector &vSrc ) const;
|
|
|
|
virtual void Subtract(
|
|
Quaternion &vResult,
|
|
const Quaternion &vDst,
|
|
const Quaternion &vSrc ) const;
|
|
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
class CDmePreSubtract : public CDmeSubtract
|
|
{
|
|
DEFINE_ELEMENT( CDmePreSubtract, CDmeSubtract );
|
|
|
|
public:
|
|
|
|
protected:
|
|
virtual void Subtract(
|
|
Vector &vResult,
|
|
const Vector &vDst,
|
|
const Vector &vSrc ) const;
|
|
|
|
virtual void Subtract(
|
|
Quaternion &vResult,
|
|
const Quaternion &vDst,
|
|
const Quaternion &vSrc ) const;
|
|
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeRotateTo : public CDmeAnimationAssemblyCommand
|
|
{
|
|
DEFINE_ELEMENT( CDmeRotateTo, CDmeAnimationAssemblyCommand );
|
|
|
|
public:
|
|
// From CDmeAssemblyCommand
|
|
virtual bool Apply( CDmElement *pDmElement );
|
|
|
|
CDmaVar< float > m_flAngle; // Specified in degrees
|
|
|
|
protected:
|
|
void SubApply( CDmeDag *pDmeDag, CDmeChannelsClip *pDmeChannelsClip, bool bZUp );
|
|
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeBoneMaskCmd : public CDmeAnimationAssemblyCommand
|
|
{
|
|
DEFINE_ELEMENT( CDmeBoneMaskCmd, CDmeAnimationAssemblyCommand );
|
|
|
|
public:
|
|
// From CDmeAssemblyCommand
|
|
virtual bool Apply( CDmElement *pDmElement );
|
|
|
|
protected:
|
|
void SubApply( CDmeChannelsClip *pDmeChannelsClip, CDmeDag *pDmeDag, CDmeBoneMask *pDmeBoneMask );
|
|
|
|
};
|
|
|
|
|
|
#endif // DMEANIMATIONASSEMBLYCOMMAND_H
|