76 lines
2.8 KiB
C++
76 lines
2.8 KiB
C++
#pragma once
|
|
|
|
struct TransformationBindings
|
|
{
|
|
static TransformationBindings CreateDefault()
|
|
{
|
|
TransformationBindings bindings;
|
|
bindings.WorldMatrixSemanticName = "WorldMatrix";
|
|
bindings.LocalMatrixSemanticName = "LocalMatrix";
|
|
bindings.WorldPositionSemanticName = "WorldPosition";
|
|
bindings.LocalPositionSemanticName = "LocalPosition";
|
|
bindings.WorldDirectionSemanticName = "WorldDirection";
|
|
bindings.LocalDirectionSemanticName = "LocalDirection";
|
|
bindings.WorldUpDirectionSemanticName = "WorldUpDirection";
|
|
bindings.LocalUpDirectionSemanticName = "LocalUpDirection";
|
|
bindings.WorldRightDirectionSemanticName = "WorldUpDirection";
|
|
bindings.LocalRightDirectionSemanticName = "LocalUpDirection";
|
|
return bindings;
|
|
}
|
|
|
|
string8 WorldMatrixSemanticName;
|
|
string8 LocalMatrixSemanticName;
|
|
|
|
string8 WorldPositionSemanticName;
|
|
string8 LocalPositionSemanticName;
|
|
|
|
string8 WorldDirectionSemanticName;
|
|
string8 LocalDirectionSemanticName;
|
|
|
|
string8 WorldUpDirectionSemanticName;
|
|
string8 LocalUpDirectionSemanticName;
|
|
|
|
string8 WorldRightDirectionSemanticName;
|
|
string8 LocalRightDirectionSemanticName;
|
|
};
|
|
|
|
|
|
struct __declspec(novtable) ITransformation
|
|
{
|
|
virtual void set_TransformationBindings(const TransformationBindings& argData) = 0;
|
|
virtual TransformationBindings get_TransformationBindings() const = 0;
|
|
|
|
virtual void set_LocalPosition(const D3DXVECTOR3& argValue) = 0;
|
|
virtual const D3DXVECTOR3& get_LocalPosition() const = 0;
|
|
virtual const D3DXVECTOR3& get_WorldPosition() const = 0;
|
|
|
|
virtual void set_LocalRotationYPR(const D3DXVECTOR3& argValue) = 0;
|
|
virtual const D3DXVECTOR3& get_LocalRotationYPR() const = 0;
|
|
|
|
virtual void set_LocalRotation(const D3DXQUATERNION& argValue) = 0;
|
|
virtual const D3DXQUATERNION& get_LocalRotation() const = 0;
|
|
virtual const D3DXQUATERNION& get_WorldRotation() const = 0;
|
|
|
|
virtual const D3DXVECTOR3& get_LocalDirection() const = 0;
|
|
virtual const D3DXVECTOR3& get_WorldDirection() const = 0;
|
|
|
|
virtual const D3DXVECTOR3& get_LocalUpDirection() const = 0;
|
|
virtual const D3DXVECTOR3& get_WorldUpDirection() const = 0;
|
|
|
|
virtual D3DXVECTOR3 get_LocalRightDirection() const = 0;
|
|
virtual D3DXVECTOR3 get_WorldRightDirection() const = 0;
|
|
|
|
virtual void set_LocalScale(const D3DXVECTOR3& argValue) = 0;
|
|
virtual const D3DXVECTOR3& get_LocalScale() const = 0;
|
|
virtual const D3DXVECTOR3& get_WorldScale() const = 0;
|
|
|
|
virtual const D3DXMATRIX& get_WorldMatrix() const = 0;
|
|
virtual const D3DXMATRIX& get_LocalMatrix() const = 0;
|
|
|
|
virtual void set_TransformationParent(ITransformation* argValue) = 0;
|
|
virtual ITransformation* get_TransformationParent() const = 0;
|
|
virtual void AddTransformation(ITransformation& argTransformation) = 0;
|
|
virtual void RemoveTransformation(ITransformation& argTransformation) = 0;
|
|
virtual const std::vector<ITransformation*>& get_Transformations() const = 0;
|
|
};
|