neoGFX
C++ GPU-oriented GUI library and app/game creation framework.
neogfx::i_physical_object Class Referenceabstract

#include <i_physical_object.hpp>

Inheritance diagram for neogfx::i_physical_object:
neogfx::i_collidable_object neogfx::i_game_object neogfx::i_sprite neogfx::physical_object neogfx::sprite neogfx::sprite

Public Types

typedef scalar time_interval
 
typedef boost::optional< time_intervaloptional_time_interval
 
typedef int64_t step_time_interval
 
typedef boost::optional< step_time_intervaloptional_step_time_interval
 

Public Member Functions

virtual ~i_physical_object ()
 
virtual vec3 origin () const =0
 
virtual vec3 position () const =0
 
virtual vec3 angle_radians () const =0
 
virtual vec3 angle_degrees () const =0
 
virtual vec3 velocity () const =0
 
virtual vec3 acceleration () const =0
 
virtual vec3 spin_radians () const =0
 
virtual vec3 spin_degrees () const =0
 
virtual scalar mass () const =0
 
virtual void set_origin (const vec3 &aOrigin)=0
 
virtual void set_position (const vec3 &aPosition)=0
 
virtual void set_angle_radians (const vec3 &aAngle)=0
 
virtual void set_angle_degrees (const vec3 &aAngle)=0
 
virtual void set_velocity (const vec3 &aVelocity)=0
 
virtual void set_acceleration (const vec3 &aAcceleration)=0
 
virtual void set_spin_radians (const vec3 &aSpin)=0
 
virtual void set_spin_degrees (const vec3 &aSpin)=0
 
virtual void set_mass (scalar aMass)=0
 
virtual void clear_vertices_cache ()=0
 
virtual bool update (const optional_time_interval &aNow, const vec3 &aForce)=0
 
virtual const optional_time_intervalupdate_time () const =0
 
virtual void set_update_time (const optional_time_interval &aLastUpdateTime)=0
 
void set_angle_radians (scalar aAngle)
 
void set_angle_degrees (scalar aAngle)
 
void set_spin_radians (scalar aSpin)
 
void set_spin_degrees (scalar aSpin)
 
- Public Member Functions inherited from neogfx::i_collidable_object
virtual const neogfx::aabbaabb () const =0
 
virtual const neogfx::aabbsaved_aabb () const =0
 
virtual void save_aabb ()=0
 
virtual void clear_saved_aabb ()=0
 
virtual bool collidable () const =0
 
virtual uint64_t collision_mask () const
 
virtual void set_collision_mask (uint64_t)
 
virtual bool has_collided (const i_collidable_object &aOther) const =0
 
virtual void collided (i_collidable_object &aOther)=0
 
virtual uint32_t collision_update_id () const =0
 
virtual void set_collision_update_id (uint32_t aCollisionCheckId)=0
 
virtual void clear_aabb_cache ()=0
 
- Public Member Functions inherited from neogfx::i_game_object
virtual ~i_game_object ()
 
virtual object_category category () const =0
 
virtual const i_shapeas_shape () const =0
 
virtual i_shapeas_shape ()=0
 
virtual const i_collidable_objectas_collidable_object () const =0
 
virtual i_collidable_objectas_collidable_object ()=0
 
virtual const i_physical_objectas_physical_object () const =0
 
virtual i_physical_objectas_physical_object ()=0
 
virtual const object_typetype () const
 
virtual bool killed () const =0
 
virtual void kill ()=0
 

Detailed Description

Definition at line 30 of file i_physical_object.hpp.

Member Typedef Documentation

◆ optional_step_time_interval

◆ optional_time_interval

Definition at line 35 of file i_physical_object.hpp.

◆ step_time_interval

Definition at line 36 of file i_physical_object.hpp.

◆ time_interval

Constructor & Destructor Documentation

◆ ~i_physical_object()

virtual neogfx::i_physical_object::~i_physical_object ( )
inlinevirtual

Definition at line 40 of file i_physical_object.hpp.

Member Function Documentation

◆ acceleration()

virtual vec3 neogfx::i_physical_object::acceleration ( ) const
pure virtual

Implemented in neogfx::physical_object.

◆ angle_degrees()

virtual vec3 neogfx::i_physical_object::angle_degrees ( ) const
pure virtual

Implemented in neogfx::physical_object.

◆ angle_radians()

virtual vec3 neogfx::i_physical_object::angle_radians ( ) const
pure virtual

Implemented in neogfx::physical_object.

◆ clear_vertices_cache()

virtual void neogfx::i_physical_object::clear_vertices_cache ( )
pure virtual

◆ mass()

virtual scalar neogfx::i_physical_object::mass ( ) const
pure virtual

Implemented in neogfx::physical_object.

◆ origin()

virtual vec3 neogfx::i_physical_object::origin ( ) const
pure virtual

◆ position()

virtual vec3 neogfx::i_physical_object::position ( ) const
pure virtual

◆ set_acceleration()

virtual void neogfx::i_physical_object::set_acceleration ( const vec3 aAcceleration)
pure virtual

Implemented in neogfx::physical_object.

◆ set_angle_degrees() [1/2]

virtual void neogfx::i_physical_object::set_angle_degrees ( const vec3 aAngle)
pure virtual

Implemented in neogfx::physical_object.

◆ set_angle_degrees() [2/2]

void neogfx::i_physical_object::set_angle_degrees ( scalar  aAngle)
inline

Definition at line 73 of file i_physical_object.hpp.

◆ set_angle_radians() [1/2]

virtual void neogfx::i_physical_object::set_angle_radians ( const vec3 aAngle)
pure virtual

Implemented in neogfx::physical_object.

◆ set_angle_radians() [2/2]

void neogfx::i_physical_object::set_angle_radians ( scalar  aAngle)
inline

Definition at line 69 of file i_physical_object.hpp.

◆ set_mass()

virtual void neogfx::i_physical_object::set_mass ( scalar  aMass)
pure virtual

Implemented in neogfx::physical_object.

◆ set_origin()

virtual void neogfx::i_physical_object::set_origin ( const vec3 aOrigin)
pure virtual

◆ set_position()

virtual void neogfx::i_physical_object::set_position ( const vec3 aPosition)
pure virtual

◆ set_spin_degrees() [1/2]

virtual void neogfx::i_physical_object::set_spin_degrees ( const vec3 aSpin)
pure virtual

Implemented in neogfx::physical_object.

◆ set_spin_degrees() [2/2]

void neogfx::i_physical_object::set_spin_degrees ( scalar  aSpin)
inline

Definition at line 81 of file i_physical_object.hpp.

◆ set_spin_radians() [1/2]

virtual void neogfx::i_physical_object::set_spin_radians ( const vec3 aSpin)
pure virtual

Implemented in neogfx::physical_object.

◆ set_spin_radians() [2/2]

void neogfx::i_physical_object::set_spin_radians ( scalar  aSpin)
inline

Definition at line 77 of file i_physical_object.hpp.

◆ set_update_time()

virtual void neogfx::i_physical_object::set_update_time ( const optional_time_interval aLastUpdateTime)
pure virtual

◆ set_velocity()

virtual void neogfx::i_physical_object::set_velocity ( const vec3 aVelocity)
pure virtual

Implemented in neogfx::physical_object.

◆ spin_degrees()

virtual vec3 neogfx::i_physical_object::spin_degrees ( ) const
pure virtual

Implemented in neogfx::physical_object.

◆ spin_radians()

virtual vec3 neogfx::i_physical_object::spin_radians ( ) const
pure virtual

Implemented in neogfx::physical_object.

◆ update()

virtual bool neogfx::i_physical_object::update ( const optional_time_interval aNow,
const vec3 aForce 
)
pure virtual

◆ update_time()

virtual const optional_time_interval& neogfx::i_physical_object::update_time ( ) const
pure virtual

◆ velocity()

virtual vec3 neogfx::i_physical_object::velocity ( ) const
pure virtual

Implemented in neogfx::physical_object.


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