vOOlkan
An object oriented approach to Vulkan
Vulkan::Physics::CircleHitbox Class Reference

A CircleHitbox is the Hitbox for circular-like objects. It is idendified by its center and radius. More...

#include <Hitbox.h>

Inheritance diagram for Vulkan::Physics::CircleHitbox:
Vulkan::Physics::Hitbox Vulkan::Physics::Cinematicable Vulkan::Physics::Moveable

Public Member Functions

 CircleHitbox (float radius, Position position={ 0.0f, 0.0f, 0.0f }, float scaleFactor=1.0f, Mass mass=std::numeric_limits< float >::max()/10.0f, Speed initialSpeed={0.0f, 0.0f, 0.0f}, Acceleration initialAcceleration={0.0f, 0.0f, 0.0f}, Force internalForce={0.0f, 0.0f, 0.0f}, Field emittedField=Field{{0.0f, 0.0f, 0.0f}, FieldFunctions::emptyField})
 
float getRadius () const
 
void setRadius (float radius)
 
virtual void setScaleFactor (float scaleFactor) override
 
- Public Member Functions inherited from Vulkan::Physics::Hitbox
 Hitbox (Position position={0.0f, 0.0f, 0.0f}, float scaleFactor=1.0f, Mass mass=1.0f, Speed initialSpeed={0.0f, 0.0f, 0.0f}, Acceleration initialAcceleration={0.0f, 0.0f, 0.0f}, Force internalForce={0.0f, 0.0f, 0.0f}, Field emittedField=Field{ {0.0f, 0.0f, 0.0f}, FieldFunctions::emptyField })
 
virtual float getScaleFactor () const
 
virtual void setScaleFactor (float scaleFactor)
 
virtual void onCollision (Hitbox &collidingObject)
 
virtual void setCollisionAction (const std::function< void(Hitbox &)> &action)
 
- Public Member Functions inherited from Vulkan::Physics::Cinematicable
 Cinematicable (Position position={ 0.0f, 0.0f, 0.0f }, glm::vec3 rotationEuler={ 0.0f, 0.0f, 0.0f }, Mass mass=1.0f, Speed initialSpeed={ 0.0f, 0.0f, 0.0f }, Acceleration initialAcceleration={ 0.0f, 0.0f, 0.0f }, Force internalForce={ 0.0f, 0.0f, 0.0f }, float angularSpeed=0.0f, Field emittedField=Field{ {0.0f, 0.0f, 0.0f}, FieldFunctions::emptyField })
 
virtual void setMass (Mass mass)
 
virtual Mass getMass () const
 
virtual void setSpeed (Speed speed)
 
virtual const SpeedgetSpeed () const
 
virtual void setAcceleration (Acceleration acceleration)
 
virtual const AccelerationgetAcceleration () const
 
virtual void setInternalForce (Force internalForce)
 
virtual const ForcegetInternalForce () const
 
virtual Field getEmittedField ()
 
virtual void setPosition (Position position) override
 
virtual Cinematicabletranslate (DeltaSpace delta) override
 
virtual float getAngularSpeed () const
 
virtual void setAngularSpeed (float angularSpeed)
 
virtual void addExternalForce (Force externalForce)
 Sums to the already present external forces the argument. More...
 
virtual void reset (Position position)
 
virtual void move (Time elapsedTime)
 Computes the new position of the object based on its current speed and the forces which are acting on the object. More...
 
- Public Member Functions inherited from Vulkan::Physics::Moveable
 Moveable (Position position={ 0.0f, 0.0f, 0.0f }, glm::vec3 rotationEuler={ 0.0f, 0.0f, 0.0f })
 
virtual Moveabletranslate (DeltaSpace delta)
 
virtual const PositiongetPosition () const
 
virtual void setPosition (Position position)
 
virtual Moveablerotate (float angle, glm::vec3 axis)
 
virtual const glm::quat & getRotation () const
 
virtual const glm::vec3 & getRotationEuler () const
 
virtual void setRotation (glm::quat rotation)
 
virtual void setRotation (glm::vec3 eulerAngles)
 
std::mutex & getMutex ()
 

Additional Inherited Members

- Protected Attributes inherited from Vulkan::Physics::Hitbox
float scaleFactor
 
std::function< void(Hitbox &)> onCollisionAction
 
- Protected Attributes inherited from Vulkan::Physics::Cinematicable
Mass mass
 
Speed speed
 
Acceleration acceleration
 
Force internalForce
 
Force impulsiveForce
 
Field emittedField
 
float angularSpeed
 
- Protected Attributes inherited from Vulkan::Physics::Moveable
std::mutex mutex
 

Detailed Description

A CircleHitbox is the Hitbox for circular-like objects. It is idendified by its center and radius.

Constructor & Destructor Documentation

◆ CircleHitbox()

Vulkan::Physics::CircleHitbox::CircleHitbox ( float  radius,
Position  position = { 0.0f, 0.0f, 0.0f },
float  scaleFactor = 1.0f,
Mass  mass = std::numeric_limits<float>::max()/10.0f,
Speed  initialSpeed = {0.0f, 0.0f, 0.0f},
Acceleration  initialAcceleration = {0.0f, 0.0f, 0.0f},
Force  internalForce = {0.0f, 0.0f, 0.0f},
Field  emittedField = Field{{0.0f, 0.0f, 0.0f}, FieldFunctions::emptyField} 
)
inline

Member Function Documentation

◆ getRadius()

float Vulkan::Physics::CircleHitbox::getRadius ( ) const
inline

◆ setRadius()

void Vulkan::Physics::CircleHitbox::setRadius ( float  radius)
inline

◆ setScaleFactor()

virtual void Vulkan::Physics::CircleHitbox::setScaleFactor ( float  scaleFactor)
inlineoverridevirtual

Reimplemented from Vulkan::Physics::Hitbox.


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