44 #define OBJDEF(__thisClass, __parentClass, __TYPE) \
45 virtual ObjectType GetType() const override { return ObjectType::__TYPE; } \
46 virtual bool IsType(ObjectType c) const override \
48 if (__thisClass::GetType() == (c)) \
51 return __parentClass::IsType(c); \
111 void OrientOnSurface(
double radius,
double latitude,
double longitude);
113 virtual void SetLabel(
const std::string &label);
114 const std::string &
GetLabel()
const {
return m_label; }
ObjectType
Definition: Body.h:27
nlohmann::json Json
Definition: Json.h:8
void OrientOnSurface(double radius, double latitude, double longitude)
Definition: Body.cpp:201
virtual vector3d GetTargetIndicatorPosition() const
Definition: Body.cpp:254
vector3d GetPositionRelTo(FrameId) const
Definition: Body.cpp:142
virtual void PostLoadFixup(Space *space)
Definition: Body.h:64
const matrix3x3d & GetOrient() const
Definition: Body.h:69
virtual void TimeStepUpdate(const float timeStep)
Definition: Body.h:94
void SetPhysRadius(double r)
Definition: Body.h:73
virtual void SetOrient(const matrix3x3d &r)
Definition: Body.h:68
vector3d GetInterpPositionRelTo(FrameId relToId) const
Definition: Body.cpp:151
double GetPhysRadius() const
Definition: Body.h:74
virtual vector3d GetVelocity() const
Definition: Body.h:71
virtual void Render(Graphics::Renderer *r, const Camera *camera, const vector3d &viewCoords, const matrix4x4d &viewTransform)=0
virtual void NotifyRemoved(const Body *const removedBody)
Definition: Body.h:88
virtual void SetVelocity(const vector3d &v)
Definition: Body.h:70
virtual void SetPosition(const vector3d &p)
Definition: Body.h:66
vector3d GetPosition() const
Definition: Body.h:67
vector3d GetVelocityRelTo(const Body *) const
Definition: Body.cpp:196
virtual void SaveToJson(Json &jsonObj, Space *space)
Definition: Body.cpp:64
void SwitchToFrame(FrameId newFrame)
Definition: Body.cpp:210
virtual bool OnDamage(Body *attacker, float kgDamage, const CollisionContact &contactData)
Definition: Body.h:86
virtual double GetMass() const
Definition: Body.h:77
vector3d m_interpPos
Definition: Body.h:165
virtual bool IsInSpace() const
Definition: Body.h:131
virtual bool OnCollision(Body *o, Uint32 flags, double relVel)
Definition: Body.h:84
matrix3x3d GetInterpOrientRelTo(FrameId relToId) const
Definition: Body.cpp:178
Body()
Definition: Body.cpp:20
vector3d GetInterpPosition() const
Definition: Body.h:135
void ToJson(Json &jsonObj, Space *space)
Definition: Body.cpp:81
void UpdateFrame()
Definition: Body.cpp:226
const std::string & GetLabel() const
Definition: Body.h:114
virtual void StaticUpdate(const float timeStep)
Definition: Body.h:93
virtual void UpdateInterpTransform(double alpha)
Definition: Body.h:142
void SetFlag(unsigned int flag, bool enable)
Definition: Body.h:118
static Body * FromJson(const Json &jsonObj, Space *space)
Definition: Body.cpp:102
void MarkDead()
Definition: Body.h:127
const matrix3x3d & GetInterpOrient() const
Definition: Body.h:134
virtual ~Body()
Definition: Body.cpp:60
virtual void SetLabel(const std::string &label)
Definition: Body.cpp:259
unsigned int m_flags
Definition: Body.h:162
matrix3x3d GetOrientRelTo(FrameId) const
Definition: Body.cpp:170
virtual const SystemBody * GetSystemBody() const
Definition: Body.h:109
@ FLAG_CAN_MOVE_FRAME
Definition: Body.h:154
@ FLAG_LABEL_HIDDEN
Definition: Body.h:155
@ FLAG_DRAW_EXCLUDE
Definition: Body.h:157
@ FLAG_DRAW_LAST
Definition: Body.h:156
void SetClipRadius(double r)
Definition: Body.h:75
double GetClipRadius() const
Definition: Body.h:76
bool IsDead() const
Definition: Body.h:128
unsigned int GetFlags() const
Definition: Body.h:116
matrix3x3d m_interpOrient
Definition: Body.h:166
virtual ObjectType GetType() const
Definition: Body.h:56
virtual void SetFrame(FrameId f)
Definition: Body.h:97
FrameId GetFrame() const
Definition: Body.h:98
virtual bool IsType(ObjectType c) const
Definition: Body.h:57
Definition: DeleteEmitter.h:16
Definition: Renderer.h:39
Definition: PropertiedObject.h:11
Definition: SystemBody.h:19
Definition: Background.h:13
vector3< double > vector3d
Definition: vector3.h:286