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);
110 void UpdateStarSystemCache(
const SystemPath *here);
111 void GenBody(
const double at_time,
SystemBody *b,
FrameId fId, std::vector<vector3d> &posAccum);
117 void CollideFrame(
FrameId fId);
129 std::vector<Body *> m_bodies;
132 enum class BodyAssignation {
137 std::vector<std::pair<Body *, BodyAssignation>> m_assignedBodies;
139 void RebuildBodyIndex();
140 void RebuildSystemBodyIndex();
144 bool m_bodyIndexValid, m_sbodyIndexValid;
145 std::vector<Body *> m_bodyIndex;
146 std::vector<SystemBody *> m_sbodyIndex;
150 std::unique_ptr<Background::Container> m_background;
153 class BodyNearFinder {
155 BodyNearFinder(
const Space *space) :
164 const Space *m_space;
165 std::vector<BodyDist> m_bodyDist;
166 std::vector<Body *> m_nearBodies;
169 BodyNearFinder m_bodyNearFinder;
174 bool m_processingFinalizationQueue;
ObjectType
Definition Body.h:28
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
Body * FindNearestTo(const Body *b, ObjectType t) const
Definition Space.cpp:525
void GetHyperspaceExitParams(const SystemPath &source, const SystemPath &dest, vector3d &pos, vector3d &vel) const
Definition Space.cpp:462
std::vector< BodyDist > BodiesInAngle(const Body *b, const vector3d &offset, const vector3d &dir, double cosOfMaxAngle) const
Definition Space.cpp:542
vector3d GetHyperspaceExitPoint(const SystemPath &source) const
Definition Space.h:60
Background::Container * GetBackground()
Definition Space.h:73
void KillBody(Body *)
Definition Space.cpp:443
void RefreshBackground()
Definition Space.cpp:318
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:380
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:363
Body * GetBodyByIndex(Uint32 idx) const
Definition Space.cpp:352
void ToJson(Json &jsonObj)
Definition Space.cpp:327
void AddBody(Body *)
Definition Space.cpp:430
const std::vector< Body * > BodyNearList
Definition Space.h:77
void RemoveBody(Body *)
Definition Space.cpp:435
void TimeStep(float step)
Definition Space.cpp:1022
RefCountedPtr< StarSystem > GetStarSystem() const
Definition Space.h:42
void DebugDumpFrames(bool details)
Definition Space.cpp:1110
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:564
Uint32 GetIndexForBody(const Body *body) const
Definition Space.cpp:370
Definition SystemBody.h:19
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