Pioneer
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Body Class Referenceabstract

#include <Body.h>

Inheritance diagram for Body:
Inheritance graph
[legend]
Collaboration diagram for Body:
Collaboration graph
[legend]

Public Types

enum  { FLAG_CAN_MOVE_FRAME = (1 << 0) , FLAG_LABEL_HIDDEN = (1 << 1) , FLAG_DRAW_LAST = (1 << 2) , FLAG_DRAW_EXCLUDE = (1 << 3) }
 

Public Member Functions

virtual ObjectType GetType () const
 
virtual bool IsType (ObjectType c) const
 
 Body ()
 
 Body (const Json &jsonObj, Space *space)
 
virtual ~Body ()
 
void ToJson (Json &jsonObj, Space *space)
 
virtual void PostLoadFixup (Space *space)
 
virtual void SetPosition (const vector3d &p)
 
vector3d GetPosition () const
 
virtual void SetOrient (const matrix3x3d &r)
 
const matrix3x3d & GetOrient () const
 
virtual void SetVelocity (const vector3d &v)
 
virtual vector3d GetVelocity () const
 
virtual void SetAngVelocity (const vector3d &v)
 
virtual vector3d GetAngVelocity () const
 
void SetPhysRadius (double r)
 
double GetPhysRadius () const
 
void SetClipRadius (double r)
 
double GetClipRadius () const
 
virtual double GetMass () const
 
virtual bool OnCollision (Body *o, Uint32 flags, double relVel)
 
virtual bool OnDamage (Body *attacker, float kgDamage, const CollisionContact &contactData)
 
virtual void NotifyRemoved (const Body *const removedBody)
 
virtual void StaticUpdate (const float timeStep)
 
virtual void TimeStepUpdate (const float timeStep)
 
virtual void Render (Graphics::Renderer *r, const Camera *camera, const vector3d &viewCoords, const matrix4x4d &viewTransform)=0
 
virtual void SetFrame (FrameId f)
 
FrameId GetFrame () const
 
void SwitchToFrame (FrameId newFrame)
 
void UpdateFrame ()
 
vector3d GetVelocityRelTo (const Body *) const
 
vector3d GetVelocityRelTo (FrameId) const
 
vector3d GetPositionRelTo (FrameId) const
 
vector3d GetPositionRelTo (const Body *) const
 
matrix3x3d GetOrientRelTo (FrameId) const
 
virtual const SystemBody * GetSystemBody () const
 
void OrientOnSurface (double radius, double latitude, double longitude)
 
virtual void SetLabel (const std::string &label)
 
const std::string & GetLabel () const
 
unsigned int GetFlags () const
 
void SetFlag (unsigned int flag, bool enable)
 
template<typename T >
bool HasComponent () const
 
template<typename T >
T * GetComponent () const
 
template<typename T >
T * AddComponent ()
 
uint64_t GetComponentList () const
 
void MarkDead ()
 
bool IsDead () const
 
virtual bool IsInSpace () const
 
const matrix3x3d & GetInterpOrient () const
 
vector3d GetInterpPosition () const
 
vector3d GetInterpPositionRelTo (FrameId relToId) const
 
vector3d GetInterpPositionRelTo (const Body *relTo) const
 
matrix3x3d GetInterpOrientRelTo (FrameId relToId) const
 
virtual void UpdateInterpTransform (double alpha)
 
virtual vector3d GetTargetIndicatorPosition () const
 
- Public Member Functions inherited from DeleteEmitter
 DeleteEmitter ()
 
virtual ~DeleteEmitter ()
 
- Public Member Functions inherited from LuaWrappable
virtual ~LuaWrappable ()
 
- Public Member Functions inherited from PropertiedObject
PropertyMap & Properties ()
 
const PropertyMap & Properties () const
 

Static Public Member Functions

static constexpr ObjectType StaticType ()
 
static Body * FromJson (const Json &jsonObj, Space *space)
 

Protected Member Functions

virtual void SaveToJson (Json &jsonObj, Space *space)
 

Protected Attributes

unsigned int m_flags = 0
 
vector3d m_interpPos
 
matrix3x3d m_interpOrient
 

Additional Inherited Members

- Public Attributes inherited from DeleteEmitter
sigc::signal< void > onDelete
 

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
FLAG_CAN_MOVE_FRAME 
FLAG_LABEL_HIDDEN 
FLAG_DRAW_LAST 
FLAG_DRAW_EXCLUDE 

Constructor & Destructor Documentation

◆ Body() [1/2]

Body::Body ( )
Here is the call graph for this function:

◆ Body() [2/2]

Body::Body ( const Json &  jsonObj,
Space *  space 
)
Here is the call graph for this function:

◆ ~Body()

Body::~Body ( )
virtual
Here is the call graph for this function:

Member Function Documentation

◆ AddComponent()

template<typename T >
T * Body::AddComponent ( )
inline

◆ FromJson()

Body * Body::FromJson ( const Json &  jsonObj,
Space *  space 
)
static
Here is the call graph for this function:

◆ GetAngVelocity()

virtual vector3d Body::GetAngVelocity ( ) const
inlinevirtual

Reimplemented in DynamicBody, and SpaceStation.

◆ GetClipRadius()

double Body::GetClipRadius ( ) const
inline

◆ GetComponent()

template<typename T >
T * Body::GetComponent ( ) const
inline

◆ GetComponentList()

uint64_t Body::GetComponentList ( ) const
inline

◆ GetFlags()

unsigned int Body::GetFlags ( ) const
inline

◆ GetFrame()

FrameId Body::GetFrame ( ) const
inline

◆ GetInterpOrient()

const matrix3x3d & Body::GetInterpOrient ( ) const
inline

◆ GetInterpOrientRelTo()

matrix3x3d Body::GetInterpOrientRelTo ( FrameId  relToId) const
Here is the call graph for this function:

◆ GetInterpPosition()

vector3d Body::GetInterpPosition ( ) const
inline

◆ GetInterpPositionRelTo() [1/2]

vector3d Body::GetInterpPositionRelTo ( const Body *  relTo) const
Here is the call graph for this function:

◆ GetInterpPositionRelTo() [2/2]

vector3d Body::GetInterpPositionRelTo ( FrameId  relToId) const
Here is the call graph for this function:

◆ GetLabel()

const std::string & Body::GetLabel ( ) const
inline

◆ GetMass()

virtual double Body::GetMass ( ) const
inlinevirtual

Reimplemented in DynamicBody, and TerrainBody.

◆ GetOrient()

const matrix3x3d & Body::GetOrient ( ) const
inline

◆ GetOrientRelTo()

matrix3x3d Body::GetOrientRelTo ( FrameId  relToId) const
Here is the call graph for this function:

◆ GetPhysRadius()

double Body::GetPhysRadius ( ) const
inline

◆ GetPosition()

vector3d Body::GetPosition ( ) const
inline

◆ GetPositionRelTo() [1/2]

vector3d Body::GetPositionRelTo ( const Body *  relTo) const
Here is the call graph for this function:

◆ GetPositionRelTo() [2/2]

vector3d Body::GetPositionRelTo ( FrameId  relToId) const
Here is the call graph for this function:

◆ GetSystemBody()

virtual const SystemBody * Body::GetSystemBody ( ) const
inlinevirtual

Reimplemented in SpaceStation, and TerrainBody.

◆ GetTargetIndicatorPosition()

vector3d Body::GetTargetIndicatorPosition ( ) const
virtual

Reimplemented in SpaceStation.

◆ GetType()

virtual ObjectType Body::GetType ( ) const
inlinevirtual

◆ GetVelocity()

virtual vector3d Body::GetVelocity ( ) const
inlinevirtual

Reimplemented in DynamicBody, and HyperspaceCloud.

◆ GetVelocityRelTo() [1/2]

vector3d Body::GetVelocityRelTo ( const Body *  relTo) const
Here is the call graph for this function:

◆ GetVelocityRelTo() [2/2]

vector3d Body::GetVelocityRelTo ( FrameId  relToId) const
Here is the call graph for this function:

◆ HasComponent()

template<typename T >
bool Body::HasComponent ( ) const
inline

◆ IsDead()

bool Body::IsDead ( ) const
inline

◆ IsInSpace()

virtual bool Body::IsInSpace ( ) const
inlinevirtual

Reimplemented in Ship.

◆ IsType()

virtual bool Body::IsType ( ObjectType  c) const
inlinevirtual
Here is the call graph for this function:

◆ MarkDead()

void Body::MarkDead ( )
inline

◆ NotifyRemoved()

virtual void Body::NotifyRemoved ( const Body *const  removedBody)
inlinevirtual

Reimplemented in Missile, Player, Ship, SpaceStation, Beam, and Projectile.

◆ OnCollision()

virtual bool Body::OnCollision ( Body *  o,
Uint32  flags,
double  relVel 
)
inlinevirtual

◆ OnDamage()

virtual bool Body::OnDamage ( Body *  attacker,
float  kgDamage,
const CollisionContact &  contactData 
)
inlinevirtual

Reimplemented in CargoBody, Missile, Player, and Ship.

◆ OrientOnSurface()

void Body::OrientOnSurface ( double  radius,
double  latitude,
double  longitude 
)
Here is the call graph for this function:

◆ PostLoadFixup()

virtual void Body::PostLoadFixup ( Space *  space)
inlinevirtual

◆ Render()

virtual void Body::Render ( Graphics::Renderer *  r,
const Camera *  camera,
const vector3d &  viewCoords,
const matrix4x4d &  viewTransform 
)
pure virtual

◆ SaveToJson()

void Body::SaveToJson ( Json &  jsonObj,
Space *  space 
)
protectedvirtual

Reimplemented in CargoBody, DynamicBody, HyperspaceCloud, Missile, ModelBody, Player, Ship, SpaceStation, TerrainBody, Beam, and Projectile.

Here is the call graph for this function:

◆ SetAngVelocity()

virtual void Body::SetAngVelocity ( const vector3d &  v)
inlinevirtual

Reimplemented in DynamicBody.

◆ SetClipRadius()

void Body::SetClipRadius ( double  r)
inline

◆ SetFlag()

void Body::SetFlag ( unsigned int  flag,
bool  enable 
)
inline

◆ SetFrame()

virtual void Body::SetFrame ( FrameId  f)
inlinevirtual

Reimplemented in DynamicBody, ModelBody, Ship, and TerrainBody.

◆ SetLabel()

void Body::SetLabel ( const std::string &  label)
virtual

Reimplemented in CargoBody, Ship, and SpaceStation.

Here is the call graph for this function:

◆ SetOrient()

virtual void Body::SetOrient ( const matrix3x3d &  r)
inlinevirtual

Reimplemented in ModelBody.

◆ SetPhysRadius()

void Body::SetPhysRadius ( double  r)
inline

◆ SetPosition()

virtual void Body::SetPosition ( const vector3d &  p)
inlinevirtual

Reimplemented in ModelBody.

◆ SetVelocity()

virtual void Body::SetVelocity ( const vector3d &  v)
inlinevirtual

Reimplemented in DynamicBody, and HyperspaceCloud.

◆ StaticType()

static constexpr ObjectType Body::StaticType ( )
inlinestaticconstexpr

◆ StaticUpdate()

virtual void Body::StaticUpdate ( const float  timeStep)
inlinevirtual

Reimplemented in Missile, Player, Ship, SpaceStation, Beam, and Projectile.

◆ SwitchToFrame()

void Body::SwitchToFrame ( FrameId  newFrame)
Here is the call graph for this function:

◆ TimeStepUpdate()

virtual void Body::TimeStepUpdate ( const float  timeStep)
inlinevirtual

◆ ToJson()

void Body::ToJson ( Json &  jsonObj,
Space *  space 
)
Here is the call graph for this function:

◆ UpdateFrame()

void Body::UpdateFrame ( )
Here is the call graph for this function:

◆ UpdateInterpTransform()

virtual void Body::UpdateInterpTransform ( double  alpha)
inlinevirtual

Reimplemented in DynamicBody, HyperspaceCloud, SpaceStation, Beam, and Projectile.

Here is the call graph for this function:

Member Data Documentation

◆ m_flags

unsigned int Body::m_flags = 0
protected

◆ m_interpOrient

matrix3x3d Body::m_interpOrient
protected

◆ m_interpPos

vector3d Body::m_interpPos
protected

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