66 const std::string &
GetLabel()
const {
return m_label; }
67 void SetLabel(
const char *label) { m_label = label; }
77 void SetAngSpeed(
const double angspeed) { m_angSpeed = angspeed; }
79 void SetRadius(
double radius) { m_radius = radius; }
99 unsigned GetNumChildren()
const {
return static_cast<Uint32
>(m_children.size()); }
138 void UpdateRootRelativeVars();
141 std::vector<FrameId> m_children;
154 double m_oldAngDisplacement;
158 std::unique_ptr<CollisionSpace> m_collisionSpace;
166 int m_astroBodyIndex;
168 static std::vector<Frame> s_frames;
169 static std::vector<CollisionSpace *> s_collisionSpaces;
174 madeWithFactory(false)
177 bool madeWithFactory;
IterationProxy< Container > MakeIterationProxy(Container &container)
Definition: IterationProxy.h:51
nlohmann::json Json
Definition: Json.h:8
Definition: CollisionSpace.h:28
void SetPosition(const vector3d &pos)
Definition: Frame.h:69
static FrameId FromJson(const Json &jsonObj, Space *space, FrameId parent, double at_time)
Definition: Frame.cpp:178
void UpdateInterpTransform(double alpha)
Definition: Frame.cpp:436
void AddStaticGeom(Geom *)
Definition: Frame.cpp:326
static void CollideFrames(void(*callback)(CollisionContact *))
Definition: Frame.cpp:300
void SetBodies(SystemBody *s, Body *b)
Definition: Frame.h:88
FrameId GetParent() const
Definition: Frame.h:84
vector3d GetPositionRelTo(FrameId relTo) const
Definition: Frame.cpp:351
const IterationProxy< const std::vector< FrameId > > GetChildren() const
Definition: Frame.h:101
static Frame * GetFrame(FrameId FId)
Definition: Frame.cpp:248
double GetAngSpeed() const
Definition: Frame.h:78
CollisionSpace * GetCollisionSpace() const
Definition: Frame.cpp:333
const std::string & GetLabel() const
Definition: Frame.h:66
vector3d GetVelocityRelTo(FrameId relTo) const
Definition: Frame.cpp:339
vector3d GetPosition() const
Definition: Frame.h:70
vector3d GetInterpPositionRelTo(FrameId relTo) const
Definition: Frame.cpp:380
void SetRadius(double radius)
Definition: Frame.h:79
vector3d GetStasisVelocity(const vector3d &pos) const
Definition: Frame.h:118
matrix3x3d GetOrientRelTo(FrameId relTo) const
Definition: Frame.cpp:407
void RemoveChild(FrameId fId)
Definition: Frame.cpp:313
void SetPlanetGeom(double radius, Body *)
Definition: Frame.cpp:328
Body * GetBody() const
Definition: Frame.h:94
matrix4x4d GetTransformRelTo(FrameId relTo) const
Definition: Frame.cpp:426
static void GetFrameTransform(FrameId fFrom, FrameId fTo, matrix4x4d &m)
Definition: Frame.cpp:462
std::unique_ptr< SfxManager > m_sfx
Definition: Frame.h:133
void SetVelocity(const vector3d &vel)
Definition: Frame.h:75
bool HasChildren() const
Definition: Frame.h:98
FrameId GetNonRotFrame() const
Definition: Frame.h:85
void ClearMovement()
Definition: Frame.cpp:470
void RemoveStaticGeom(Geom *)
Definition: Frame.cpp:327
bool HasRotFrame() const
Definition: Frame.h:82
Frame(const Frame &)=delete
double GetRadius() const
Definition: Frame.h:80
@ FLAG_DEFAULT
Definition: Frame.h:46
@ FLAG_ROTATING
Definition: Frame.h:47
@ FLAG_HAS_ROT
Definition: Frame.h:48
void RemoveGeom(Geom *)
Definition: Frame.cpp:325
unsigned GetNumChildren() const
Definition: Frame.h:99
const matrix3x3d & GetOrient() const
Definition: Frame.h:73
static void DeleteCameraFrame(FrameId camera)
Definition: Frame.cpp:267
vector3d GetVelocity() const
Definition: Frame.h:76
static void PostUnserializeFixup(FrameId fId, Space *space)
Definition: Frame.cpp:289
static FrameId CreateCameraFrame(FrameId parent)
Definition: Frame.cpp:258
void AddChild(FrameId fId)
Definition: Frame.h:96
matrix3x3d GetInterpOrientRelTo(FrameId relTo) const
Definition: Frame.cpp:413
void SetAngSpeed(const double angspeed)
Definition: Frame.h:77
FrameId GetRotFrame() const
Definition: Frame.h:86
void SetLabel(const char *label)
Definition: Frame.h:67
static void DeleteFrames()
Definition: Frame.cpp:235
void SetOrient(const matrix3x3d &m, double time)
Definition: Frame.cpp:525
void AddGeom(Geom *)
Definition: Frame.cpp:324
static FrameId CreateFrame(FrameId parent, const char *label, unsigned int flags=FLAG_DEFAULT, double radius=0.0)
Definition: Frame.cpp:169
IterationProxy< std::vector< FrameId > > GetChildren()
Definition: Frame.h:100
matrix4x4d GetInterpTransformRelTo(FrameId relTo) const
Definition: Frame.cpp:431
FrameId GetId() const
Definition: Frame.h:64
void SetInitialOrient(const matrix3x3d &m, double time)
Definition: Frame.cpp:513
SystemBody * GetSystemBody() const
Definition: Frame.h:93
bool IsRotFrame() const
Definition: Frame.h:81
static void ToJson(Json &jsonObj, FrameId fId, Space *space)
Definition: Frame.cpp:133
static void UpdateOrbitRails(double time, double timestep)
Definition: Frame.cpp:480
const matrix3x3d & GetInterpOrient() const
Definition: Frame.h:74
Definition: IterationProxy.h:13
Definition: SystemBody.h:137
vector3 Cross(const vector3 &b) const
Definition: vector3.h:128
vector3< double > vector3d
Definition: vector3.h:329