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 matrix3x3dGetOrient () 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 SystemBodyGetSystemBody () 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 matrix3x3dGetInterpOrient () 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
PropertyMapProperties ()
 
const PropertyMapProperties () const
 

Static Public Member Functions

static constexpr ObjectType StaticType ()
 
static BodyFromJson (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: