summaryrefslogtreecommitdiff
path: root/public/movieobjects/dmetransform.h
blob: d539ab583ef07f05d0a5c3a5b28b2a529d228bdc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// A class representing a transform
//
//=============================================================================

#ifndef DMETRANSFORM_H
#define DMETRANSFORM_H
#ifdef _WIN32
#pragma once
#endif

#include "datamodel/dmelement.h"


//-----------------------------------------------------------------------------
// Forward declarations
//-----------------------------------------------------------------------------
struct matrix3x4_t;


//-----------------------------------------------------------------------------
// A class representing a transformation matrix
//-----------------------------------------------------------------------------
class CDmeTransform : public CDmElement
{
	DEFINE_ELEMENT( CDmeTransform, CDmElement );

public:
	// FIXME: Replace this with actual methods to do editing
	// (scale/shear, etc.)
	void SetTransform( const matrix3x4_t &transform );
	void GetTransform( matrix3x4_t &transform );

	const Vector &GetPosition() const;
	void SetPosition( const Vector &vecPosition );
	const Quaternion &GetOrientation() const;
	void SetOrientation( const Quaternion &orientation );

	CDmAttribute *GetPositionAttribute();
	CDmAttribute *GetOrientationAttribute();

private:
	CDmaVar<Vector> m_Position;
	CDmaVar<Quaternion> m_Orientation;
};


#endif // DMETRANSFORM_H