summaryrefslogtreecommitdiff
path: root/movieobjects/dmetransform.cpp
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /movieobjects/dmetransform.cpp
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'movieobjects/dmetransform.cpp')
-rw-r--r--movieobjects/dmetransform.cpp82
1 files changed, 82 insertions, 0 deletions
diff --git a/movieobjects/dmetransform.cpp b/movieobjects/dmetransform.cpp
new file mode 100644
index 0000000..ab7c456
--- /dev/null
+++ b/movieobjects/dmetransform.cpp
@@ -0,0 +1,82 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================
+#include "movieobjects/dmetransform.h"
+#include "tier0/dbg.h"
+#include "datamodel/dmelementfactoryhelper.h"
+#include "mathlib/vector.h"
+#include "mathlib/mathlib.h"
+
+// memdbgon must be the last include file in a .cpp file!!!
+#include "tier0/memdbgon.h"
+
+
+//-----------------------------------------------------------------------------
+// Expose this class to the scene database
+//-----------------------------------------------------------------------------
+IMPLEMENT_ELEMENT_FACTORY( DmeTransform, CDmeTransform );
+
+
+//-----------------------------------------------------------------------------
+// Constructor, destructor
+//-----------------------------------------------------------------------------
+void CDmeTransform::OnConstruction()
+{
+ m_Position.Init( this, "position" );
+ m_Orientation.Init( this, "orientation" );
+}
+
+void CDmeTransform::OnDestruction()
+{
+}
+
+
+//-----------------------------------------------------------------------------
+// FIXME: Replace this with actual methods to do editing
+//-----------------------------------------------------------------------------
+void CDmeTransform::SetTransform( const matrix3x4_t &transform )
+{
+ Vector origin;
+ Quaternion angles;
+ MatrixAngles( transform, angles, origin );
+ m_Orientation.Set( angles );
+ m_Position.Set( origin );
+}
+
+void CDmeTransform::GetTransform( matrix3x4_t &transform )
+{
+ QuaternionMatrix( m_Orientation.Get(), m_Position.Get(), transform );
+}
+
+const Vector &CDmeTransform::GetPosition() const
+{
+ return m_Position.Get();
+}
+
+void CDmeTransform::SetPosition( const Vector &vecPosition )
+{
+ m_Position = vecPosition;
+}
+
+const Quaternion &CDmeTransform::GetOrientation() const
+{
+ return m_Orientation.Get();
+}
+
+void CDmeTransform::SetOrientation( const Quaternion &orientation )
+{
+ m_Orientation = orientation;
+}
+
+
+CDmAttribute *CDmeTransform::GetPositionAttribute()
+{
+ return m_Position.GetAttribute();
+}
+
+CDmAttribute *CDmeTransform::GetOrientationAttribute()
+{
+ return m_Orientation.GetAttribute();
+}