113 lines
3.8 KiB
C++
113 lines
3.8 KiB
C++
/************************************************************************************//*!
|
|
\file Transform.hxx
|
|
\author Tng Kah Wei, kahwei.tng, 390009620
|
|
\par email: kahwei.tng\@digipen.edu
|
|
\date Sep 23, 2022
|
|
\brief Contains the definition of the managed Transform class with the
|
|
declaration of functions for working with it.
|
|
|
|
Note: This file is written in C++17/CLI.
|
|
|
|
Copyright (C) 2022 DigiPen Institute of Technology.
|
|
Reproduction or disclosure of this file or its contents without the prior written consent
|
|
of DigiPen Institute of Technology is prohibited.
|
|
*//*************************************************************************************/
|
|
#pragma once
|
|
|
|
// Project Includes
|
|
#include "Components/Component.hxx"
|
|
#include "Math/Vector3.hxx"
|
|
#include "Math/Quaternion.hxx"
|
|
// External Dependencies
|
|
#include "Math/Transform/SHTransformComponent.h"
|
|
|
|
namespace SHADE
|
|
{
|
|
/// <summary>
|
|
/// CLR version of the SHADE Engine's TransformComponent.
|
|
/// </summary>
|
|
public ref class Transform : public Component<SHTransformComponent>
|
|
{
|
|
internal:
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* Constructors */
|
|
/*-----------------------------------------------------------------------------*/
|
|
/// <summary>
|
|
/// Constructs a Transform Component that represents a native Transform component
|
|
/// tied to the specified Entity.
|
|
/// </summary>
|
|
/// <param name="entity">Entity that this Component will be tied to.</param>
|
|
Transform(Entity entity);
|
|
|
|
public:
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* Properties */
|
|
/*-----------------------------------------------------------------------------*/
|
|
/// <summary>
|
|
/// Local position stored by this Transform.
|
|
/// </summary>
|
|
property Vector3 LocalPosition
|
|
{
|
|
Vector3 get();
|
|
void set(Vector3 val);
|
|
}
|
|
/// <summary>
|
|
/// Local rotation quaternion stored by this Transform.
|
|
/// </summary>
|
|
property Quaternion LocalRotation
|
|
{
|
|
Quaternion get();
|
|
void set(Quaternion val);
|
|
}
|
|
/// <summary>
|
|
/// Local euler angle rotations stored by this Transform.
|
|
/// </summary>
|
|
property Vector3 LocalEulerAngles
|
|
{
|
|
Vector3 get();
|
|
void set(Vector3 val);
|
|
}
|
|
/// <summary>
|
|
/// Local scale stored by this Transform.
|
|
/// </summary>
|
|
property Vector3 LocalScale
|
|
{
|
|
Vector3 get();
|
|
void set(Vector3 val);
|
|
}
|
|
/// <summary>
|
|
/// Global position stored by this Transform.
|
|
/// </summary>
|
|
property Vector3 GlobalPosition
|
|
{
|
|
Vector3 get();
|
|
void set(Vector3 val);
|
|
}
|
|
/// <summary>
|
|
/// Global rotation quaternion stored by this Transform.
|
|
/// </summary>
|
|
property Quaternion GlobalRotation
|
|
{
|
|
Quaternion get();
|
|
void set(Quaternion val);
|
|
}
|
|
/// <summary>
|
|
/// Global euler angle rotations stored by this Transform.
|
|
/// </summary>
|
|
property Vector3 GlobalEulerAngles
|
|
{
|
|
Vector3 get();
|
|
void set(Vector3 val);
|
|
}
|
|
/// <summary>
|
|
/// Global scale stored by this Transform.
|
|
/// </summary>
|
|
property Vector3 GlobalScale
|
|
{
|
|
Vector3 get();
|
|
void set(Vector3 val);
|
|
}
|
|
};
|
|
}
|
|
|