7 #include <SDL_stdinc.h>
20 #ifdef DEBUG_BOUNDING_SPHERES
49 m_needUpdateVBOs = (
nullptr != m_heights);
56 for (
int i = 0; i < NUM_KIDS; i++) {
57 if (m_kids[i].get() == child)
return i;
66 return (m_v0 + x * (1.0 - y) * (m_v1 - m_v0) + x * y * (m_v2 - m_v0) + (1.0 - x) * y * (m_v3 - m_v0)).
Normalized();
75 for (
int i = 0; i < NUM_KIDS; i++) {
76 merge &= m_kids[i]->canBeMerged();
79 merge &= !(m_HasJobRequest);
90 inline bool HasHeightData()
const {
return (m_heights.get() !=
nullptr); }
92 static const int NUM_KIDS = 4;
95 const vector3d m_v0, m_v1, m_v2, m_v3;
96 std::unique_ptr<double[]> m_heights;
97 std::unique_ptr<vector3f[]> m_normals;
98 std::unique_ptr<Color3ub[]> m_colors;
99 std::unique_ptr<Graphics::VertexBuffer> m_vertexBuffer;
100 std::unique_ptr<GeoPatch> m_kids[NUM_KIDS];
103 double m_roughLength;
104 vector3d m_clipCentroid, m_centroid;
107 bool m_needUpdateVBOs;
111 bool m_HasJobRequest;
112 #ifdef DEBUG_BOUNDING_SPHERES
113 std::unique_ptr<Graphics::Drawables::Sphere3D> m_boundsphere;
Definition: GeoPatchJobs.h:258
Definition: GeoPatchContext.h:17
Definition: GeoPatchID.h:9
Definition: GeoPatch.h:39
vector3d GetSpherePoint(const double x, const double y) const
Definition: GeoPatch.h:64
void UpdateVBOs(Graphics::Renderer *renderer)
Definition: GeoPatch.cpp:77
void Render(Graphics::Renderer *r, const vector3d &campos, const matrix4x4d &modelView, const Graphics::Frustum &frustum)
Definition: GeoPatch.cpp:261
void NeedToUpdateVBOs()
Definition: GeoPatch.h:47
bool canBeMerged() const
Definition: GeoPatch.h:71
void ReceiveJobHandle(Job::Handle job)
Definition: GeoPatch.cpp:447
void ReceiveHeightmaps(SQuadSplitResult *psr)
Definition: GeoPatch.cpp:393
GeoPatch(const RefCountedPtr< GeoPatchContext > &_ctx, GeoSphere *gs, const vector3d &v0_, const vector3d &v1_, const vector3d &v2_, const vector3d &v3_, const int depth, const GeoPatchID &ID_)
Definition: GeoPatch.cpp:31
~GeoPatch()
Definition: GeoPatch.cpp:66
void RequestSinglePatch()
Definition: GeoPatch.cpp:382
void LODUpdate(const vector3d &campos, const Graphics::Frustum &frustum)
Definition: GeoPatch.cpp:314
bool HasHeightData() const
Definition: GeoPatch.h:90
void ReceiveHeightmap(const SSingleSplitResult *psr)
Definition: GeoPatch.cpp:432
int GetChildIdx(const GeoPatch *child) const
Definition: GeoPatch.h:54
Definition: GeoSphere.h:29
Definition: Renderer.h:39
Definition: JobQueue.h:37
Definition: GeoPatchJobs.h:170
Definition: GeoPatchJobs.h:213
vector3 Normalized() const
Definition: vector3.h:121
Definition: Background.h:13