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.
112 lines
2.9 KiB
112 lines
2.9 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// game model input - gets its values from an MDL within the game
|
|
//
|
|
//=============================================================================
|
|
|
|
#ifndef DMEGAMEMODELINPUT_H
|
|
#define DMEGAMEMODELINPUT_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "datamodel/dmelement.h"
|
|
#include "datamodel/dmattribute.h"
|
|
#include "datamodel/dmattributevar.h"
|
|
#include "movieobjects/dmeinput.h"
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeGameModelInput : public CDmeInput
|
|
{
|
|
DEFINE_ELEMENT( CDmeGameModelInput, CDmeInput );
|
|
|
|
public:
|
|
virtual bool IsDirty(); // ie needs to operate
|
|
virtual void Operate();
|
|
|
|
virtual void GetOutputAttributes( CUtlVector< CDmAttribute * > &attrs );
|
|
|
|
public:
|
|
void AddBone( const Vector& pos, const Quaternion& rot );
|
|
void SetBone( uint index, const Vector& pos, const Quaternion& rot );
|
|
void SetRootBone( const Vector& pos, const Quaternion& rot );
|
|
uint NumBones() const;
|
|
|
|
void SetFlexWeights( uint nFlexWeights, const float* flexWeights );
|
|
uint NumFlexWeights() const;
|
|
|
|
const Vector& GetViewTarget() const;
|
|
void SetViewTarget( const Vector &viewTarget );
|
|
|
|
void SetFlags( int nFlags );
|
|
|
|
public:
|
|
CDmaVar< int > m_skin;
|
|
CDmaVar< int > m_body;
|
|
CDmaVar< int > m_sequence;
|
|
CDmaVar< bool > m_visible;
|
|
|
|
protected:
|
|
CDmaVar< int > m_flags;
|
|
CDmaArray< float > m_flexWeights;
|
|
CDmaVar< Vector > m_viewTarget;
|
|
CDmaArray< Vector > m_bonePositions;
|
|
CDmaArray< Quaternion > m_boneRotations;
|
|
CDmaVar< Vector > m_position;
|
|
CDmaVar< Quaternion > m_rotation;
|
|
};
|
|
|
|
|
|
class CDmeGameSpriteInput : public CDmeInput
|
|
{
|
|
DEFINE_ELEMENT( CDmeGameSpriteInput, CDmeInput );
|
|
|
|
public:
|
|
virtual bool IsDirty(); // ie needs to operate
|
|
virtual void Operate();
|
|
|
|
virtual void GetOutputAttributes( CUtlVector< CDmAttribute * > &attrs );
|
|
|
|
public:
|
|
void SetState( bool bVisible, float nFrame, int nRenderMode, int nRenderFX, float flRenderScale, float flProxyRadius, const Vector &pos, const Quaternion &rot, const Color &color );
|
|
|
|
protected:
|
|
|
|
CDmaVar< bool > m_visible;
|
|
CDmaVar< float > m_frame;
|
|
CDmaVar< int > m_rendermode;
|
|
CDmaVar< int > m_renderfx;
|
|
CDmaVar< float > m_renderscale;
|
|
CDmaVar< float > m_proxyRadius;
|
|
CDmaVar< Vector > m_position;
|
|
CDmaVar< Quaternion > m_rotation;
|
|
CDmaVar< Color > m_color;
|
|
};
|
|
|
|
|
|
class CDmeGameCameraInput : public CDmeInput
|
|
{
|
|
DEFINE_ELEMENT( CDmeGameCameraInput, CDmeInput );
|
|
|
|
public:
|
|
virtual bool IsDirty(); // ie needs to operate
|
|
virtual void Operate();
|
|
|
|
virtual void GetOutputAttributes( CUtlVector< CDmAttribute * > &attrs );
|
|
|
|
public:
|
|
void SetPosition( const Vector& pos );
|
|
void SetOrientation( const Quaternion& rot );
|
|
void SetFOV( float fov );
|
|
|
|
protected:
|
|
CDmaVar< Vector > m_position;
|
|
CDmaVar< Quaternion > m_rotation;
|
|
CDmaVar< float > m_fov;
|
|
};
|
|
|
|
|
|
#endif // DMEGAMEMODELINPUT_H
|