Counter Strike : Global Offensive Source Code
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.
 
 
 
 
 
 

150 lines
4.3 KiB

//====== Copyright (c) 1996-2009, Valve Corporation, All rights reserved. =====
//
// Purpose:
//
//=============================================================================
#ifndef DMEMATSYSROOT_H
#define DMEMATSYSROOT_H
#if defined( _WIN32 )
#pragma once
#endif
// Valve includes
#include "datamodel/dmattributevar.h"
#include "datamodel/dmelement.h"
#include "mathlib/mathlib.h"
#include "movieobjects/dmedag.h"
#include "movieobjects/dmeshape.h"
#include "movieobjects/dmemdl.h"
//=============================================================================
// CDmeMatSysSettings
//=============================================================================
class CDmeMatSysPanelSettings : public CDmElement
{
DEFINE_ELEMENT( CDmeMatSysPanelSettings, CDmElement );
public:
CDmaVar< Color > m_cBackgroundColor;
CDmaVar< Color > m_cAmbientColor;
CDmaVar< bool > m_bDrawGroundPlane;
CDmaVar< bool > m_bDrawOriginAxis;
};
//=============================================================================
// CDmeMatSysRoot
//=============================================================================
class CDmeMatSysRoot : public CDmeDag
{
DEFINE_ELEMENT( CDmeMatSysRoot, CDmeDag );
public:
CDmaElement< CDmeMatSysPanelSettings > m_Settings;
};
//=============================================================================
//
//=============================================================================
class IDmeMatSysModel
{
virtual void GetSequenceList( CUtlVector< CUtlString > *pOutList ) = 0;
virtual void GetActivityList( CUtlVector< CUtlString > *pOutList ) = 0;
// Returns number of frame or -1 for error
virtual int SelectSequence( const char *pszSequenceName );
virtual void SetTime( DmeTime_t dmeTime );
virtual void SetFrame( float flFrame );
};
//=============================================================================
// CDmeMatSysMDLDag
//=============================================================================
class CDmeMatSysMDLDag : public IDmeMatSysModel, public CDmeDag
{
DEFINE_ELEMENT( CDmeMatSysMDLDag, CDmeDag );
public:
studiohdr_t *GetStudioHdr() const;
// From IDmeMatSysModel
virtual void GetSequenceList( CUtlVector< CUtlString > *pOutList );
virtual void GetActivityList( CUtlVector< CUtlString > *pOutList );
virtual int SelectSequence( const char *pszSequenceName );
virtual void SetTime( DmeTime_t dmeTime );
virtual void SetFrame( float flFrame );
// Convenience Functions calling into CDmeMDL which is the shape
void SetMDL( MDLHandle_t hMDL );
MDLHandle_t GetMDL() const;
protected:
CDmeMDL *GetDmeMDL() const;
};
//=============================================================================
// CDmeMatSysDMXDag
//=============================================================================
class CDmeMatSysDMXDag : public IDmeMatSysModel, public CDmeDag
{
DEFINE_ELEMENT( CDmeMatSysDMXDag, CDmeDag );
public:
// From CDmeDag
virtual void Draw( CDmeDrawSettings *pDrawSettings = NULL );
// From IDmeMatSysModel
virtual void GetSequenceList( CUtlVector< CUtlString > *pOutList );
virtual void GetActivityList( CUtlVector< CUtlString > *pOutList );
void SetDmxRoot( CDmElement *pDmxRoot );
protected:
CDmaElement< CDmElement > m_eDmxRoot;
DmElementHandle_t m_hDmxModel;
};
//=============================================================================
// CDmeMatSysMPPDag
//=============================================================================
class CDmeMatSysMPPDag : public IDmeMatSysModel, public CDmeDag
{
DEFINE_ELEMENT( CDmeMatSysMPPDag, CDmeDag );
public:
// From CDmeDag
virtual void Draw( CDmeDrawSettings *pDrawSettings = NULL );
// From IDmeMatSysModel
virtual void GetSequenceList( CUtlVector< CUtlString > *pOutList );
virtual void GetActivityList( CUtlVector< CUtlString > *pOutList );
virtual int SelectSequence( const char *pszSequenceName );
virtual void SetTime( DmeTime_t dmeTime );
virtual void SetFrame( float flFrame );
void SetMppRoot( CDmElement *pMppRoot );
protected:
CDmaElement< CDmElement > m_eMppRoot;
DmElementHandle_t m_hDmeBodyGroupList;
DmElementHandle_t m_hDmeSequenceList;
CUtlVector< DmElementHandle_t > m_hChildren;
// These are used for animation playback
DmElementHandle_t m_hDmeSequence;
CUtlVector< IDmeOperator * > m_dmeOperatorList;
void RemoveNullAndImplicitChildren();
};
#endif // DMEMATSYSROOT_H