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;
104 void CreateAtmosphereMaterial();
109 enum EGSInitialisationStage {
110 eBuildFirstPatches = 0,
111 eRequestedFirstPatches,
112 eReceivedFirstPatches,
115 EGSInitialisationStage m_initStage;
void Output(const char *message, Args... args)
Definition: Log.h:118
Definition: BaseSphere.h:21
RefCountedPtr< Terrain > m_terrain
Definition: BaseSphere.h:54
Definition: GeoPatchContext.h:18
Definition: GeoPatch.h:40
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:113
Sint32 GetMaxDepth() const
Definition: GeoSphere.h:68
bool AddSingleSplitResult(SSingleSplitResult *res)
Definition: GeoSphere.cpp:216
virtual double GetMaxFeatureHeight() const override final
Definition: GeoSphere.h:60
bool AddQuadSplitResult(SQuadSplitResult *res)
Definition: GeoSphere.cpp:204
virtual ~GeoSphere()
Definition: GeoSphere.cpp:197
virtual void Update() override
Definition: GeoSphere.cpp:327
static bool OnAddQuadSplitResult(const SystemPath &path, SQuadSplitResult *res)
Definition: GeoSphere.cpp:95
virtual void Reset() override
Definition: GeoSphere.cpp:130
void AddQuadSplitRequest(double, SQuadSplitRequest *, GeoPatch *)
Definition: GeoSphere.cpp:361
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:377
static void Init()
Definition: GeoSphere.cpp:43
void ProcessSplitResults()
Definition: GeoSphere.cpp:228
static void OnChangeDetailLevel()
Definition: GeoSphere.cpp:74
Definition: Renderer.h:45
Definition: RefCounted.h:36
Definition: GeoPatchJobs.h:54
Definition: GeoPatchJobs.h:170
Definition: GeoPatchJobs.h:213
Definition: SystemBody.h:137
Definition: SystemPath.h:13
Definition: Background.h:14