69 Uint32
GetNumBodies()
const {
return static_cast<Uint32
>(m_bodies.size()); }
80 return m_bodyNearFinder.GetBodiesMaybeNear(b, dist);
84 return m_bodyNearFinder.GetBodiesMaybeNear(pos, dist);
116 void UpdateStarSystemCache(
const SystemPath *here);
117 void GenBody(
const double at_time,
SystemBody *b,
FrameId fId, std::vector<vector3d> &posAccum);
122 void CollideFrame(
FrameId fId);
134 std::vector<Body *> m_bodies;
137 enum class BodyAssignation {
143 std::vector<std::pair<Body *, BodyAssignation>> m_assignedBodies;
145 void RebuildBodyIndex();
146 void RebuildSystemBodyIndex();
150 bool m_bodyIndexValid, m_sbodyIndexValid;
151 std::vector<Body *> m_bodyIndex;
152 std::vector<SystemBody *> m_sbodyIndex;
156 std::unique_ptr<Background::Container> m_background;
159 class BodyNearFinder {
161 BodyNearFinder(
const Space *space) :
170 const Space *m_space;
171 std::vector<BodyDist> m_bodyDist;
172 std::vector<Body *> m_nearBodies;
175 BodyNearFinder m_bodyNearFinder;
180 bool m_processingFinalizationQueue;
ObjectType
Definition: Body.h:29
IterationProxy< Container > MakeIterationProxy(Container &container)
Definition: IterationProxy.h:51
nlohmann::json Json
Definition: Json.h:8
Definition: Background.h:90
Definition: IterationProxy.h:13
Definition: RefCounted.h:36
~Space()
Definition: Space.cpp:309
void UpdateBodies()
Definition: Space.cpp:1090
Body * FindNearestTo(const Body *b, ObjectType t) const
Definition: Space.cpp:555
void GetHyperspaceExitParams(const SystemPath &source, const SystemPath &dest, vector3d &pos, vector3d &vel) const
Definition: Space.cpp:492
std::vector< BodyDist > BodiesInAngle(const Body *b, const vector3d &offset, const vector3d &dir, double cosOfMaxAngle) const
Definition: Space.cpp:572
vector3d GetHyperspaceExitPoint(const SystemPath &source) const
Definition: Space.h:60
Background::Container * GetBackground()
Definition: Space.h:73
void KillBody(Body *)
Definition: Space.cpp:473
void RefreshBackground()
Definition: Space.cpp:324
BodyNearList GetBodiesMaybeNear(const vector3d &pos, double dist)
Definition: Space.h:82
FrameId GetRootFrame() const
Definition: Space.h:44
Uint32 GetIndexForSystemBody(const SystemBody *sbody) const
Definition: Space.cpp:407
Uint32 GetNumBodies() const
Definition: Space.h:69
vector3d GetHyperspaceExitPoint(const SystemPath &source, const SystemPath &dest) const
Definition: Space.h:54
IterationProxy< std::vector< Body * > > GetBodies()
Definition: Space.h:70
SystemBody * GetSystemBodyByIndex(Uint32 idx) const
Definition: Space.cpp:390
Body * GetBodyByIndex(Uint32 idx) const
Definition: Space.cpp:379
void ToJson(Json &jsonObj)
Definition: Space.cpp:339
void AddBody(Body *)
Definition: Space.cpp:457
const std::vector< Body * > BodyNearList
Definition: Space.h:77
void RemoveBody(Body *)
Definition: Space.cpp:465
void TimeStep(float step)
Definition: Space.cpp:1055
RefCountedPtr< StarSystem > GetStarSystem() const
Definition: Space.h:42
void DebugDumpFrames(bool details)
Definition: Space.cpp:1147
const IterationProxy< const std::vector< Body * > > GetBodies() const
Definition: Space.h:71
BodyNearList GetBodiesMaybeNear(const Body *b, double dist)
Definition: Space.h:78
Body * FindBodyForPath(const SystemPath *path) const
Definition: Space.cpp:594
Uint32 GetIndexForBody(const Body *body) const
Definition: Space.cpp:397
Definition: SystemBody.h:137
Definition: SystemPath.h:13
bool operator<(const BodyDist &a) const
Definition: Space.h:96
Body * body
Definition: Space.h:93
friend bool operator<(double d, const BodyDist &a)
Definition: Space.h:99
BodyDist(Body *_body, double _dist)
Definition: Space.h:90
double dist
Definition: Space.h:94
friend bool operator<(const BodyDist &a, double d)
Definition: Space.h:98