Pioneer
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
SpaceStation Class Reference

#include <SpaceStation.h>

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

Public Types

enum class  DockingRefusedReason { ClearanceAlreadyGranted , TooFarFromStation , NoBaysAvailable }
 
- Public Types inherited from Body
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

 OBJDEF (SpaceStation, ModelBody, SPACESTATION)
 
 SpaceStation ()=delete
 
 SpaceStation (const SystemBody *)
 
 SpaceStation (const Json &jsonObj, Space *space)
 
virtual ~SpaceStation ()
 
virtual vector3d GetAngVelocity () const override
 
virtual bool OnCollision (Body *b, Uint32 flags, double relVel) override
 
bool DoShipDamage (Ship *s, Uint32 flags, double relVel)
 
virtual void Render (Graphics::Renderer *r, const Camera *camera, const vector3d &viewCoords, const matrix4x4d &viewTransform) override
 
virtual void StaticUpdate (const float timeStep) override
 
virtual void TimeStepUpdate (const float timeStep) override
 
virtual const SystemBody * GetSystemBody () const override
 
virtual void PostLoadFixup (Space *space) override
 
virtual void NotifyRemoved (const Body *const removedBody) override
 
virtual void SetLabel (const std::string &label) override
 
bool LaunchShip (Ship *ship, const int port)
 
void SetDocked (Ship *ship, const int port)
 
void SwapDockedShipsPort (const int oldPort, const int newPort)
 
int GetNearbyTraffic (double radius)
 
bool GetDockingClearance (Ship *s)
 
int GetDockingPortCount () const
 
int GetFreeDockingPort (const Ship *s) const
 
int GetMyDockingPort (const Ship *s) const
 
int NumShipsDocked () const
 
const SpaceStationType * GetStationType () const
 
bool IsGroundStation () const
 
bool AllocateStaticSlot (int &slot)
 
vector3d GetTargetIndicatorPosition () const override
 
virtual void UpdateInterpTransform (double alpha) override
 
- Public Member Functions inherited from ModelBody
 OBJDEF (ModelBody, Body, MODELBODY)
 
 ModelBody ()
 
 ModelBody (const Json &jsonObj, Space *space)
 
virtual ~ModelBody ()
 
void SetPosition (const vector3d &p) override
 
void SetOrient (const matrix3x3d &r) override
 
virtual void SetFrame (FrameId fId) override
 
void SetColliding (bool colliding)
 
bool IsColliding () const
 
void SetStatic (bool isStatic)
 
bool IsStatic () const
 
const Aabb & GetAabb () const
 
SceneGraph::Model * GetModel () const
 
CollMesh * GetCollMesh ()
 
Geom * GetGeom () const
 
void SetModel (const char *modelName)
 
void RenderModel (Graphics::Renderer *r, const Camera *camera, const vector3d &viewCoords, const matrix4x4d &viewTransform, const bool setLighting=true)
 
virtual void TimeStepUpdate (const float timeStep) override
 
- Public Member Functions inherited from Body
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 void Init ()
 
- Static Public Member Functions inherited from Body
static constexpr ObjectType StaticType ()
 
static Body * FromJson (const Json &jsonObj, Space *space)
 

Protected Member Functions

virtual void SaveToJson (Json &jsonObj, Space *space) override
 
- Protected Member Functions inherited from ModelBody
virtual void SaveToJson (Json &jsonObj, Space *space) override
 
void SetLighting (Graphics::Renderer *r, const Camera *camera, std::vector< float > &oldIntensity, Color &oldAmbient)
 
void ResetLighting (Graphics::Renderer *r, const std::vector< float > &oldIntensity, const Color &oldAmbient)
 
Shields * GetShields () const
 
virtual void SaveToJson (Json &jsonObj, Space *space)
 

Additional Inherited Members

- Public Attributes inherited from DeleteEmitter
sigc::signal< void > onDelete
 
- Protected Attributes inherited from Body
unsigned int m_flags = 0
 
vector3d m_interpPos
 
matrix3x3d m_interpOrient
 

Member Enumeration Documentation

◆ DockingRefusedReason

Enumerator
ClearanceAlreadyGranted 
TooFarFromStation 
NoBaysAvailable 

Constructor & Destructor Documentation

◆ SpaceStation() [1/3]

SpaceStation::SpaceStation ( )
delete

◆ SpaceStation() [2/3]

SpaceStation::SpaceStation ( const SystemBody *  sbody)

◆ SpaceStation() [3/3]

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

◆ ~SpaceStation()

SpaceStation::~SpaceStation ( )
virtual

Member Function Documentation

◆ AllocateStaticSlot()

bool SpaceStation::AllocateStaticSlot ( int &  slot)
Here is the call graph for this function:

◆ DoShipDamage()

bool SpaceStation::DoShipDamage ( Ship *  s,
Uint32  flags,
double  relVel 
)

◆ GetAngVelocity()

virtual vector3d SpaceStation::GetAngVelocity ( ) const
inlineoverridevirtual

Reimplemented from Body.

Here is the call graph for this function:

◆ GetDockingClearance()

bool SpaceStation::GetDockingClearance ( Ship *  s)
Here is the call graph for this function:

◆ GetDockingPortCount()

int SpaceStation::GetDockingPortCount ( ) const
inline
Here is the call graph for this function:

◆ GetFreeDockingPort()

int SpaceStation::GetFreeDockingPort ( const Ship *  s) const
Here is the call graph for this function:

◆ GetMyDockingPort()

int SpaceStation::GetMyDockingPort ( const Ship *  s) const

◆ GetNearbyTraffic()

int SpaceStation::GetNearbyTraffic ( double  radius)
Here is the call graph for this function:

◆ GetStationType()

const SpaceStationType * SpaceStation::GetStationType ( ) const
inline

◆ GetSystemBody()

virtual const SystemBody * SpaceStation::GetSystemBody ( ) const
inlineoverridevirtual

Reimplemented from Body.

◆ GetTargetIndicatorPosition()

vector3d SpaceStation::GetTargetIndicatorPosition ( ) const
overridevirtual

Reimplemented from Body.

Here is the call graph for this function:

◆ Init()

void SpaceStation::Init ( )
static
Here is the call graph for this function:

◆ IsGroundStation()

bool SpaceStation::IsGroundStation ( ) const
Here is the call graph for this function:

◆ LaunchShip()

bool SpaceStation::LaunchShip ( Ship *  ship,
const int  port 
)
Here is the call graph for this function:

◆ NotifyRemoved()

void SpaceStation::NotifyRemoved ( const Body *const  removedBody)
overridevirtual

Reimplemented from Body.

◆ NumShipsDocked()

int SpaceStation::NumShipsDocked ( ) const

◆ OBJDEF()

SpaceStation::OBJDEF ( SpaceStation  ,
ModelBody  ,
SPACESTATION   
)

◆ OnCollision()

bool SpaceStation::OnCollision ( Body *  b,
Uint32  flags,
double  relVel 
)
overridevirtual

Reimplemented from Body.

Here is the call graph for this function:

◆ PostLoadFixup()

void SpaceStation::PostLoadFixup ( Space *  space)
overridevirtual

Reimplemented from Body.

Here is the call graph for this function:

◆ Render()

void SpaceStation::Render ( Graphics::Renderer *  r,
const Camera *  camera,
const vector3d &  viewCoords,
const matrix4x4d &  viewTransform 
)
overridevirtual

Implements Body.

Here is the call graph for this function:

◆ SaveToJson()

void SpaceStation::SaveToJson ( Json &  jsonObj,
Space *  space 
)
overrideprotectedvirtual

Reimplemented from ModelBody.

Here is the call graph for this function:

◆ SetDocked()

void SpaceStation::SetDocked ( Ship *  ship,
const int  port 
)
Here is the call graph for this function:

◆ SetLabel()

void SpaceStation::SetLabel ( const std::string &  label)
overridevirtual

Reimplemented from Body.

Here is the call graph for this function:

◆ StaticUpdate()

void SpaceStation::StaticUpdate ( const float  timeStep)
overridevirtual

Reimplemented from Body.

◆ SwapDockedShipsPort()

void SpaceStation::SwapDockedShipsPort ( const int  oldPort,
const int  newPort 
)
Here is the call graph for this function:

◆ TimeStepUpdate()

void SpaceStation::TimeStepUpdate ( const float  timeStep)
overridevirtual

Reimplemented from ModelBody.

Here is the call graph for this function:

◆ UpdateInterpTransform()

void SpaceStation::UpdateInterpTransform ( double  alpha)
overridevirtual

Reimplemented from Body.

Here is the call graph for this function:

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