34 virtual void Update()
override;
45 Output(
"GetHeight({ %f, %f, %f }) returned %f\n", p.x, p.y, p.z, h);
66 virtual void Reset()
override;
73 void BuildFirstPatches();
74 void CalculateMaxPatchDepth();
77 return m_terrain->GetColor(p, height, norm);
79 void ProcessQuadSplitRequests();
81 std::unique_ptr<GeoPatch> m_patches[6];
82 struct TDistanceRequest {
86 mpRequester(pRequester) {}
91 std::deque<TDistanceRequest> mQuadSplitRequests;
93 static const uint32_t MAX_SPLIT_OPERATIONS = 128;
94 std::deque<SQuadSplitResult *> mQuadSplitResults;
95 std::deque<SSingleSplitResult *> mSingleSplitResults;
103 virtual void SetUpMaterials()
override;
108 enum EGSInitialisationStage {
109 eBuildFirstPatches = 0,
110 eRequestedFirstPatches,
111 eReceivedFirstPatches,
114 EGSInitialisationStage m_initStage;
Definition BaseSphere.h:21
RefCountedPtr< Terrain > m_terrain
Definition BaseSphere.h:54
Definition GeoPatchContext.h:18
Definition GeoSphere.h:29
virtual double GetHeight(const vector3d &p) const override final
Definition GeoSphere.h:37
static bool OnAddSingleSplitResult(const SystemPath &path, SSingleSplitResult *res)
Definition GeoSphere.cpp:108
Sint32 GetMaxDepth() const
Definition GeoSphere.h:68
bool AddSingleSplitResult(SSingleSplitResult *res)
Definition GeoSphere.cpp:211
virtual double GetMaxFeatureHeight() const override final
Definition GeoSphere.h:60
bool AddQuadSplitResult(SQuadSplitResult *res)
Definition GeoSphere.cpp:199
virtual ~GeoSphere()
Definition GeoSphere.cpp:192
virtual void Update() override
Definition GeoSphere.cpp:322
static bool OnAddQuadSplitResult(const SystemPath &path, SQuadSplitResult *res)
Definition GeoSphere.cpp:90
virtual void Reset() override
Definition GeoSphere.cpp:125
void AddQuadSplitRequest(double, SQuadSplitRequest *, GeoPatch *)
Definition GeoSphere.cpp:356
static void Uninit()
Definition GeoSphere.cpp:48
static void UpdateAllGeoSpheres()
Definition GeoSphere.cpp:65
virtual void Render(Graphics::Renderer *renderer, const matrix4x4d &modelView, vector3d campos, const float radius, const std::vector< Camera::Shadow > &shadows) override
Definition GeoSphere.cpp:372
static void Init()
Definition GeoSphere.cpp:43
void ProcessSplitResults()
Definition GeoSphere.cpp:223
static void OnChangeDetailLevel()
Definition GeoSphere.cpp:74
Definition RefCounted.h:36
Definition GeoPatchJobs.h:54
Definition GeoPatchJobs.h:170
Definition GeoPatchJobs.h:213
Definition SystemBody.h:19
Definition SystemPath.h:13
Definition Background.h:14
void Output(const char *message, Args... args)
Definition utils.h:41