Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Divide::ITransform Class Referenceabstract

#include <TransformInterface.h>

+ Inheritance diagram for Divide::ITransform:

Public Member Functions

virtual ~ITransform ()=default
 
virtual void setPosition (const vec3< F32 > &position)=0
 Set the local X,Y and Z position.
 
virtual void setPosition (F32 x, F32 y, F32 z)=0
 Set the local X,Y and Z position.
 
virtual void setPositionX (F32 positionX)=0
 Set the object's position on the X axis.
 
virtual void setPositionY (F32 positionY)=0
 Set the object's position on the Y axis.
 
virtual void setPositionZ (F32 positionZ)=0
 Set the object's position on the Z axis.
 
virtual void translate (const vec3< F32 > &axisFactors)=0
 Add the specified translation factors to the current local position.
 
virtual void setScale (const vec3< F32 > &amount)=0
 Set the local X,Y and Z scale factors.
 
virtual void setScaleX (F32 amount)=0
 Set the scaling factor on the X axis.
 
virtual void setScaleY (F32 amount)=0
 Set the scaling factor on the Y axis.
 
virtual void setScaleZ (F32 amount)=0
 Set the scaling factor on the Z axis.
 
virtual void scale (const vec3< F32 > &axisFactors)=0
 Add the specified scale factors to the current local position.
 
virtual void scaleX (F32 amount)=0
 Increase the scaling factor on the X axis by the specified factor.
 
virtual void scaleY (F32 amount)=0
 Increase the scaling factor on the Y axis by the specified factor.
 
virtual void scaleZ (F32 amount)=0
 Increase the scaling factor on the Z axis by the specified factor.
 
virtual void setRotation (const vec3< F32 > &axis, Angle::DEGREES< F32 > degrees)=0
 
virtual void setRotation (Angle::DEGREES< F32 > pitch, Angle::DEGREES< F32 > yaw, Angle::DEGREES< F32 > roll)=0
 
virtual void setRotation (const Quaternion< F32 > &quat)=0
 Set the local orientation so that it matches the specified quaternion.
 
virtual void setRotationX (Angle::DEGREES< F32 > angle)=0
 
virtual void setRotationY (Angle::DEGREES< F32 > angle)=0
 
virtual void setRotationZ (Angle::DEGREES< F32 > angle)=0
 
virtual void rotate (const vec3< F32 > &axis, Angle::DEGREES< F32 > degrees)=0
 
virtual void rotate (Angle::DEGREES< F32 > pitch, Angle::DEGREES< F32 > yaw, Angle::DEGREES< F32 > roll)=0
 
virtual void rotate (const Quaternion< F32 > &quat)=0
 Apply the specified Quaternion rotation starting from the current orientation.
 
virtual void rotateSlerp (const Quaternion< F32 > &quat, D64 deltaTime)=0
 Perform a SLERP rotation towards the specified quaternion.
 
virtual void rotateX (Angle::DEGREES< F32 > angle)=0
 Rotate on the X axis (Axis-Angle used) by the specified angle (either degrees or radians)
 
virtual void rotateY (Angle::DEGREES< F32 > angle)=0
 Rotate on the Y axis (Axis-Angle used) by the specified angle (either degrees or radians)
 
virtual void rotateZ (Angle::DEGREES< F32 > angle)=0
 Rotate on the Z axis (Axis-Angle used) by the specified angle (either degrees or radians)
 
void setScale (F32 amount)
 Set an uniform scale on all three axis.
 
void setScale (F32 x, F32 y, F32 z)
 Set a scaling factor for each axis.
 
void setRotationEuler (const vec3< F32 > &euler)
 Set the euler rotation in degrees.
 
void translate (F32 x, F32 y, F32 z)
 Translate the object on each axis by the specified amount.
 
void translateX (F32 positionX)
 Translate the object on the X axis by the specified amount.
 
void translateY (F32 positionY)
 Translate the object on the Y axis by the specified amount.
 
void translateZ (F32 positionZ)
 Translate the object on the Z axis by the specified amount.
 
void scale (F32 amount)
 Increase the scaling factor on all three axis by an uniform factor.
 
void scale (F32 x, F32 y, F32 z)
 Increase the scaling factor on all three axis by the specified amounts.
 
void rotate (F32 xAxis, F32 yAxis, F32 zAxis, Angle::DEGREES< F32 > degrees)
 Apply an axis-angle rotation.
 
void rotate (const vec3< F32 > &euler)
 Apply an euler rotation.
 
virtual void getScale (vec3< F32 > &scaleOut) const =0
 Return the scale factor.
 
virtual void getPosition (vec3< F32 > &posOut) const =0
 Return the position.
 
virtual void getOrientation (Quaternion< F32 > &quatOut) const =0
 Return the orientation quaternion.
 

Detailed Description

Definition at line 57 of file TransformInterface.h.

Constructor & Destructor Documentation

◆ ~ITransform()

virtual Divide::ITransform::~ITransform ( )
virtualdefault

Member Function Documentation

◆ getOrientation()

virtual void Divide::ITransform::getOrientation ( Quaternion< F32 > &  quatOut) const
pure virtual

Return the orientation quaternion.

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ getPosition()

virtual void Divide::ITransform::getPosition ( vec3< F32 > &  posOut) const
pure virtual

Return the position.

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ getScale()

virtual void Divide::ITransform::getScale ( vec3< F32 > &  scaleOut) const
pure virtual

Return the scale factor.

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ rotate() [1/5]

virtual void Divide::ITransform::rotate ( Angle::DEGREES< F32 pitch,
Angle::DEGREES< F32 yaw,
Angle::DEGREES< F32 roll 
)
pure virtual

Apply the specified Euler rotation starting from the current orientation. The angles can be in either degrees(default) or radians

Implemented in Divide::Transform, Divide::TransformComponent, Divide::PhysXActor, Divide::TransformComponent, and Divide::PhysXActor.

◆ rotate() [2/5]

virtual void Divide::ITransform::rotate ( const Quaternion< F32 > &  quat)
pure virtual

Apply the specified Quaternion rotation starting from the current orientation.

Implemented in Divide::Transform, Divide::TransformComponent, Divide::PhysXActor, Divide::TransformComponent, and Divide::PhysXActor.

◆ rotate() [3/5]

virtual void Divide::ITransform::rotate ( const vec3< F32 > &  axis,
Angle::DEGREES< F32 degrees 
)
pure virtual

Apply the specified Axis-Angle rotation starting from the current orientation. The angles can be in either degrees(default) or radians

Implemented in Divide::Transform, Divide::TransformComponent, Divide::PhysXActor, Divide::TransformComponent, and Divide::PhysXActor.

◆ rotate() [4/5]

void Divide::ITransform::rotate ( const vec3< F32 > &  euler)
inline

Apply an euler rotation.

Definition at line 122 of file TransformInterface.inl.

◆ rotate() [5/5]

void Divide::ITransform::rotate ( F32  xAxis,
F32  yAxis,
F32  zAxis,
Angle::DEGREES< F32 degrees 
)
inline

Apply an axis-angle rotation.

Definition at line 117 of file TransformInterface.inl.

◆ rotateSlerp()

virtual void Divide::ITransform::rotateSlerp ( const Quaternion< F32 > &  quat,
D64  deltaTime 
)
pure virtual

Perform a SLERP rotation towards the specified quaternion.

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ rotateX()

virtual void Divide::ITransform::rotateX ( Angle::DEGREES< F32 angle)
pure virtual

Rotate on the X axis (Axis-Angle used) by the specified angle (either degrees or radians)

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ rotateY()

virtual void Divide::ITransform::rotateY ( Angle::DEGREES< F32 angle)
pure virtual

Rotate on the Y axis (Axis-Angle used) by the specified angle (either degrees or radians)

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ rotateZ()

virtual void Divide::ITransform::rotateZ ( Angle::DEGREES< F32 angle)
pure virtual

Rotate on the Z axis (Axis-Angle used) by the specified angle (either degrees or radians)

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ scale() [1/3]

virtual void Divide::ITransform::scale ( const vec3< F32 > &  axisFactors)
pure virtual

Add the specified scale factors to the current local position.

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ scale() [2/3]

void Divide::ITransform::scale ( F32  amount)
inline

Increase the scaling factor on all three axis by an uniform factor.

Definition at line 107 of file TransformInterface.inl.

◆ scale() [3/3]

void Divide::ITransform::scale ( F32  x,
F32  y,
F32  z 
)
inline

Increase the scaling factor on all three axis by the specified amounts.

Definition at line 112 of file TransformInterface.inl.

◆ scaleX()

virtual void Divide::ITransform::scaleX ( F32  amount)
pure virtual

Increase the scaling factor on the X axis by the specified factor.

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ scaleY()

virtual void Divide::ITransform::scaleY ( F32  amount)
pure virtual

Increase the scaling factor on the Y axis by the specified factor.

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ scaleZ()

virtual void Divide::ITransform::scaleZ ( F32  amount)
pure virtual

Increase the scaling factor on the Z axis by the specified factor.

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ setPosition() [1/2]

virtual void Divide::ITransform::setPosition ( const vec3< F32 > &  position)
pure virtual

◆ setPosition() [2/2]

virtual void Divide::ITransform::setPosition ( F32  x,
F32  y,
F32  z 
)
pure virtual

◆ setPositionX()

virtual void Divide::ITransform::setPositionX ( F32  positionX)
pure virtual

Set the object's position on the X axis.

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ setPositionY()

virtual void Divide::ITransform::setPositionY ( F32  positionY)
pure virtual

Set the object's position on the Y axis.

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ setPositionZ()

virtual void Divide::ITransform::setPositionZ ( F32  positionZ)
pure virtual

Set the object's position on the Z axis.

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ setRotation() [1/3]

virtual void Divide::ITransform::setRotation ( Angle::DEGREES< F32 pitch,
Angle::DEGREES< F32 yaw,
Angle::DEGREES< F32 roll 
)
pure virtual

Set the local orientation using the Euler system. The angles can be in either degrees(default) or radians

Implemented in Divide::Transform, Divide::TransformComponent, Divide::PhysXActor, Divide::TransformComponent, and Divide::PhysXActor.

◆ setRotation() [2/3]

virtual void Divide::ITransform::setRotation ( const Quaternion< F32 > &  quat)
pure virtual

Set the local orientation so that it matches the specified quaternion.

Implemented in Divide::Transform, Divide::TransformComponent, Divide::PhysXActor, Divide::TransformComponent, and Divide::PhysXActor.

◆ setRotation() [3/3]

virtual void Divide::ITransform::setRotation ( const vec3< F32 > &  axis,
Angle::DEGREES< F32 degrees 
)
pure virtual

Set the local orientation using the Axis-Angle system. The angle can be in either degrees(default) or radians

Implemented in Divide::Transform, Divide::TransformComponent, Divide::PhysXActor, Divide::TransformComponent, and Divide::PhysXActor.

◆ setRotationEuler()

void Divide::ITransform::setRotationEuler ( const vec3< F32 > &  euler)
inline

Set the euler rotation in degrees.

Definition at line 82 of file TransformInterface.inl.

◆ setRotationX()

virtual void Divide::ITransform::setRotationX ( Angle::DEGREES< F32 angle)
pure virtual

Set the rotation on the X axis (Axis-Angle used) by the specified angle (either degrees or radians)

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ setRotationY()

virtual void Divide::ITransform::setRotationY ( Angle::DEGREES< F32 angle)
pure virtual

Set the rotation on the Y axis (Axis-Angle used) by the specified angle (either degrees or radians)

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ setRotationZ()

virtual void Divide::ITransform::setRotationZ ( Angle::DEGREES< F32 angle)
pure virtual

Set the rotation on the Z axis (Axis-Angle used) by the specified angle (either degrees or radians)

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ setScale() [1/3]

virtual void Divide::ITransform::setScale ( const vec3< F32 > &  amount)
pure virtual

◆ setScale() [2/3]

void Divide::ITransform::setScale ( F32  amount)
inline

Set an uniform scale on all three axis.

Definition at line 72 of file TransformInterface.inl.

◆ setScale() [3/3]

void Divide::ITransform::setScale ( F32  x,
F32  y,
F32  z 
)
inline

Set a scaling factor for each axis.

Definition at line 77 of file TransformInterface.inl.

◆ setScaleX()

virtual void Divide::ITransform::setScaleX ( F32  amount)
pure virtual

Set the scaling factor on the X axis.

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ setScaleY()

virtual void Divide::ITransform::setScaleY ( F32  amount)
pure virtual

Set the scaling factor on the Y axis.

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ setScaleZ()

virtual void Divide::ITransform::setScaleZ ( F32  amount)
pure virtual

Set the scaling factor on the Z axis.

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ translate() [1/2]

virtual void Divide::ITransform::translate ( const vec3< F32 > &  axisFactors)
pure virtual

Add the specified translation factors to the current local position.

Implemented in Divide::Transform, Divide::TransformComponent, and Divide::PhysXActor.

◆ translate() [2/2]

void Divide::ITransform::translate ( F32  x,
F32  y,
F32  z 
)
inline

Translate the object on each axis by the specified amount.

Definition at line 87 of file TransformInterface.inl.

◆ translateX()

void Divide::ITransform::translateX ( F32  positionX)
inline

Translate the object on the X axis by the specified amount.

Definition at line 92 of file TransformInterface.inl.

◆ translateY()

void Divide::ITransform::translateY ( F32  positionY)
inline

Translate the object on the Y axis by the specified amount.

Definition at line 97 of file TransformInterface.inl.

◆ translateZ()

void Divide::ITransform::translateZ ( F32  positionZ)
inline

Translate the object on the Z axis by the specified amount.

Definition at line 102 of file TransformInterface.inl.


The documentation for this class was generated from the following files: