Vigilante Game Framework  1.0.0.8
A 2D/3D C++ Game Framework using SFML.
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
V3DObject Class Reference

Base 3D Object. More...

#include <V3DObject.h>

Inheritance diagram for V3DObject:
VBase V3DModel V3DObjModel

Public Types

typedef VBase VSUPERCLASS
 Used to call parent class functions when they are overrided in class.
 

Public Member Functions

 V3DObject (sf::Vector3f position, sf::Vector3f rotation, sf::Vector3f scale)
 
 V3DObject (float posX=0, float posY=0, float posZ=0, float rotX=0, float rotY=0, float rotZ=0, float scaleX=1, float scaleY=1, float scaleZ=1)
 
sf::Vector3f GetMinimum ()
 
sf::Vector3f GetMaximum ()
 
virtual void Reset (sf::Vector3f newPos)
 
virtual void Reset (float x, float y, float z)
 
virtual void Hurt (float damage)
 
virtual void UpdateShader (V3DShader *shader, V3DCamera *camera)
 
virtual void Update (float dt) override
 
virtual void Draw (sf::RenderTarget &RenderTarget) override
 
- Public Member Functions inherited from VBase
virtual void Destroy ()
 Destroys object and any data that must be destroyed.
 
virtual void Kill ()
 
virtual void Revive ()
 Revives the object by setting both alive and exists back to true.
 

Public Attributes

sf::Vector3f Position
 Position Transform.
 
sf::Vector3f Rotation
 Rotation Transform.
 
sf::Vector3f Scale
 Scale transform.
 
sf::Vector3f Last
 Last Position.
 
sf::Vector3f AngleVelocity
 Velocity of Rotation.
 
sf::Vector3f AngleAcceleration
 Acceleration of Rotation.
 
sf::Vector3f AngleDrag
 Drag of Rotation.
 
sf::Vector3f AngleMax
 Max Velocity of Rotation.
 
bool Moves = true
 If true, position and rotation transforms will be updated.
 
sf::Vector3f Velocity
 Velocity of Movement.
 
sf::Vector3f Acceleration
 Acceleration of Movement.
 
sf::Vector3f Drag
 Drag of Movement.
 
sf::Vector3f MaxVelocity
 Max Velocity of Movement.
 
float Health = 100
 Standard health value (object dies if health is <= 0)
 
float Radius
 Radius from the centre of the object as a sphere.
 
sf::Vector3f Origin
 Centre of the 3D object, useful for collisions.
 
- Public Attributes inherited from VBase
bool active = true
 Base can be updated using Update if true.
 
bool visible = true
 Base can be rendered using Draw if true.
 
bool alive = true
 Helper member that is mainly used filter out behaviours to objects which aren't alive in the scene.
 
bool exists = true
 Base can be updated and rendered if true, else it would no longer be treated as being part of the scene.
 
VType type = NONE
 Base object type, typically set in the constructor of an inherited object to specify what type it is.
 
uint32_t RefCount = 0
 Counts the amount of times the object is referenced in groups, ensures an object is only destroyed when no longer part of a single group.
 

Protected Member Functions

virtual void updateMotion (float dt)
 
virtual void updateTransform ()
 Update the tranform.
 

Protected Attributes

sf::Vector3f minimum
 Minimum size of the object bounding box.
 
sf::Vector3f maximum
 Maximum size of the object bounding box.
 

Additional Inherited Members

- Static Public Member Functions inherited from VBase
static const wchar_t * VString (const char *fmt,...)
 
static void VLog (const char *fmt,...)
 
static void VLogError (const char *fmt,...)
 
static void VClearLog ()
 

Detailed Description

Base 3D Object.

Constructor & Destructor Documentation

◆ V3DObject() [1/2]

V3DObject::V3DObject ( sf::Vector3f  position,
sf::Vector3f  rotation,
sf::Vector3f  scale 
)
Parameters
positionPosition of the object.
rotationAngle of the object.
scaleScale of the object.

◆ V3DObject() [2/2]

V3DObject::V3DObject ( float  posX = 0,
float  posY = 0,
float  posZ = 0,
float  rotX = 0,
float  rotY = 0,
float  rotZ = 0,
float  scaleX = 1,
float  scaleY = 1,
float  scaleZ = 1 
)
Parameters
posXX position of the object.
posYY position of the object.
posZZ position of the object.
rotXX angle of the object.
rotYY angle of the object.
rotZZ angle of the object.
scaleXX scale of the object.
scaleYY scale of the object.
scaleZZ scale of the object.

Member Function Documentation

◆ Draw()

virtual void V3DObject::Draw ( sf::RenderTarget &  RenderTarget)
overridevirtual

Draws 3D object.

Parameters
RenderTargetThe game's sf::RenderTarget object to render data onto.

Reimplemented from VBase.

Reimplemented in V3DModel, and V3DObjModel.

◆ GetMaximum()

sf::Vector3f V3DObject::GetMaximum ( )
Returns
Maximum size of the object bounding box.

◆ GetMinimum()

sf::Vector3f V3DObject::GetMinimum ( )
Returns
Minimum size of the object bounding box.

◆ Hurt()

virtual void V3DObject::Hurt ( float  damage)
virtual

Reduces Health and Kills Object if Health is <= 0.

Parameters
damageThe value to subtract from Healh.

◆ Reset() [1/2]

virtual void V3DObject::Reset ( sf::Vector3f  newPos)
virtual

Resets object

Parameters
newPosSets Position with a new sf::Vector3f.

◆ Reset() [2/2]

virtual void V3DObject::Reset ( float  x,
float  y,
float  z 
)
virtual

Resets object

Parameters
xSets Position.x.
ySets Position.y.
zSets Position.z.

◆ Update()

virtual void V3DObject::Update ( float  dt)
overridevirtual

Updates 3D object and any data it contains.

Parameters
dtDelta Time between the previous and current frame.

Reimplemented from VBase.

◆ updateMotion()

virtual void V3DObject::updateMotion ( float  dt)
protectedvirtual

Updates the position and rotation of object. By default all velocity values will be set using the computeVelocity function + velocity * delta time.

Parameters
dtDelta Time between the previous and current frame.

◆ UpdateShader()

virtual void V3DObject::UpdateShader ( V3DShader shader,
V3DCamera camera 
)
virtual

Updates the shader with the current camera and object specific values.

Parameters
shaderThe scene shader.
cameraThe scene camera.

Reimplemented in V3DModel, and V3DObjModel.


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