22 const uint32_t depth_,
const SystemPath &sysPath_,
const GeoPatchID &patchID_,
const int edgeLen_,
const double fracStep_,
38 inline int NUMVERTICES(
const int el)
const {
return el * el; }
57 const uint32_t depth_,
const SystemPath &sysPath_,
const GeoPatchID &patchID_,
const int edgeLen_,
const double fracStep_,
59 SBaseRequest(v0_, v1_, v2_, v3_, cn, depth_, sysPath_, patchID_, edgeLen_, fracStep_, pTerrain_)
62 for (
int i = 0; i < 4; ++i) {
63 heights[i] =
new double[numVerts];
77 const int edgeLen,
const int xoff,
const int yoff,
const int borderedEdgeLen)
const;
96 const uint32_t depth_,
const SystemPath &sysPath_,
const GeoPatchID &patchID_,
const int edgeLen_,
const double fracStep_,
98 SBaseRequest(v0_, v1_, v2_, v3_, cn, depth_, sysPath_, patchID_, edgeLen_, fracStep_, pTerrain_)
101 heights =
new double[numVerts];
171 static const int NUM_RESULT_DATA = 4;
181 assert(kidIdx >= 0 && kidIdx < NUM_RESULT_DATA);
189 for (
int i = 0; i < NUM_RESULT_DATA; ++i) {
190 if (
mData[i].heights) {
194 if (
mData[i].normals) {
198 if (
mData[i].colors) {
278 virtual void OnRun();
282 std::unique_ptr<SSingleSplitRequest> mData;
298 virtual void OnRun();
302 std::unique_ptr<SQuadSplitRequest> mData;
#define BORDER_SIZE
Definition GeoPatchJobs.h:17
Definition GeoPatchJobs.h:258
virtual void OnCancel()
Definition GeoPatchJobs.h:263
BasePatchJob()
Definition GeoPatchJobs.h:260
virtual void OnRun()
Definition GeoPatchJobs.h:261
virtual void OnFinish()
Definition GeoPatchJobs.h:262
Definition GeoPatchID.h:9
Definition GeoSphere.h:29
Definition GeoPatchJobs.h:289
~QuadPatchJob()
Definition GeoPatchJobs.cpp:179
QuadPatchJob(SQuadSplitRequest *data)
Definition GeoPatchJobs.h:291
virtual void OnRun()
Definition GeoPatchJobs.cpp:134
virtual void OnFinish()
Definition GeoPatchJobs.cpp:127
Definition RefCounted.h:36
Definition GeoPatchJobs.h:19
const SystemPath sysPath
Definition GeoPatchJobs.h:43
const vector3d v1
Definition GeoPatchJobs.h:40
SBaseRequest(const SBaseRequest &r)=delete
const vector3d v0
Definition GeoPatchJobs.h:40
const uint32_t depth
Definition GeoPatchJobs.h:42
SBaseRequest(const vector3d &v0_, const vector3d &v1_, const vector3d &v2_, const vector3d &v3_, const vector3d &cn, const uint32_t depth_, const SystemPath &sysPath_, const GeoPatchID &patchID_, const int edgeLen_, const double fracStep_, Terrain *pTerrain_)
Definition GeoPatchJobs.h:21
const double fracStep
Definition GeoPatchJobs.h:46
const GeoPatchID patchID
Definition GeoPatchJobs.h:44
const vector3d v3
Definition GeoPatchJobs.h:40
const int edgeLen
Definition GeoPatchJobs.h:45
const vector3d v2
Definition GeoPatchJobs.h:40
int NUMVERTICES(const int el) const
Definition GeoPatchJobs.h:38
RefCountedPtr< Terrain > pTerrain
Definition GeoPatchJobs.h:47
const vector3d centroid
Definition GeoPatchJobs.h:41
Definition GeoPatchJobs.h:148
const int32_t mFace
Definition GeoPatchJobs.h:166
virtual ~SBaseSplitResult()
Definition GeoPatchJobs.h:153
SBaseSplitResult(const int32_t face_, const int32_t depth_)
Definition GeoPatchJobs.h:150
int32_t face() const
Definition GeoPatchJobs.h:155
virtual void OnCancel()=0
SBaseSplitResult(const SBaseSplitResult &r)
Definition GeoPatchJobs.h:162
const int32_t mDepth
Definition GeoPatchJobs.h:167
int32_t depth() const
Definition GeoPatchJobs.h:156
Definition GeoPatchJobs.h:54
Color3ub * colors[4]
Definition GeoPatchJobs.h:81
SQuadSplitRequest(const vector3d &v0_, const vector3d &v1_, const vector3d &v2_, const vector3d &v3_, const vector3d &cn, const uint32_t depth_, const SystemPath &sysPath_, const GeoPatchID &patchID_, const int edgeLen_, const double fracStep_, Terrain *pTerrain_)
Definition GeoPatchJobs.h:56
std::unique_ptr< vector3d[]> borderVertexs
Definition GeoPatchJobs.h:86
SQuadSplitRequest(const SQuadSplitRequest &r)=delete
void GenerateBorderedData() const
Definition GeoPatchJobs.cpp:189
double * heights[4]
Definition GeoPatchJobs.h:82
vector3f * normals[4]
Definition GeoPatchJobs.h:80
std::unique_ptr< double[]> borderHeights
Definition GeoPatchJobs.h:85
void GenerateSubPatchData(const int quadrantIndex, const vector3d &v0, const vector3d &v1, const vector3d &v2, const vector3d &v3, const int edgeLen, const int xoff, const int yoff, const int borderedEdgeLen) const
Definition GeoPatchJobs.cpp:214
Definition GeoPatchJobs.h:170
virtual void OnCancel()
Definition GeoPatchJobs.h:187
SQuadSplitResult(const SQuadSplitResult &r)
Definition GeoPatchJobs.h:207
SSplitResultData mData[NUM_RESULT_DATA]
Definition GeoPatchJobs.h:210
void addResult(const int kidIdx, double *h_, vector3f *n_, Color3ub *c_, const vector3d &v0_, const vector3d &v1_, const vector3d &v2_, const vector3d &v3_, const GeoPatchID &patchID_)
Definition GeoPatchJobs.h:179
const SSplitResultData & data(const int32_t idx) const
Definition GeoPatchJobs.h:185
SQuadSplitResult(const int32_t face_, const int32_t depth_)
Definition GeoPatchJobs.h:174
Definition GeoPatchJobs.h:93
SSingleSplitRequest(const vector3d &v0_, const vector3d &v1_, const vector3d &v2_, const vector3d &v3_, const vector3d &cn, const uint32_t depth_, const SystemPath &sysPath_, const GeoPatchID &patchID_, const int edgeLen_, const double fracStep_, Terrain *pTerrain_)
Definition GeoPatchJobs.h:95
void GenerateMesh() const
Definition GeoPatchJobs.cpp:29
double * heights
Definition GeoPatchJobs.h:116
Color3ub * colors
Definition GeoPatchJobs.h:115
SSingleSplitRequest(const SSingleSplitRequest &r)=delete
std::unique_ptr< vector3d[]> borderVertexs
Definition GeoPatchJobs.h:120
vector3f * normals
Definition GeoPatchJobs.h:114
std::unique_ptr< double[]> borderHeights
Definition GeoPatchJobs.h:119
Definition GeoPatchJobs.h:213
const SSplitResultData & data() const
Definition GeoPatchJobs.h:225
void addResult(double *h_, vector3f *n_, Color3ub *c_, const vector3d &v0_, const vector3d &v1_, const vector3d &v2_, const vector3d &v3_, const GeoPatchID &patchID_)
Definition GeoPatchJobs.h:220
virtual void OnCancel()
Definition GeoPatchJobs.h:227
SSplitResultData mData
Definition GeoPatchJobs.h:250
SSingleSplitResult(const SSingleSplitResult &r)
Definition GeoPatchJobs.h:247
SSingleSplitResult(const int32_t face_, const int32_t depth_)
Definition GeoPatchJobs.h:215
Definition GeoPatchJobs.h:269
SinglePatchJob(SSingleSplitRequest *data)
Definition GeoPatchJobs.h:271
~SinglePatchJob()
Definition GeoPatchJobs.cpp:115
virtual void OnRun()
Definition GeoPatchJobs.cpp:96
virtual void OnFinish()
Definition GeoPatchJobs.cpp:89
Definition SystemPath.h:13
Definition GeoPatchJobs.h:127
double * heights
Definition GeoPatchJobs.h:141
vector3d v1
Definition GeoPatchJobs.h:144
vector3f * normals
Definition GeoPatchJobs.h:142
Color3ub * colors
Definition GeoPatchJobs.h:143
vector3d v2
Definition GeoPatchJobs.h:144
SSplitResultData()
Definition GeoPatchJobs.h:128
vector3d v0
Definition GeoPatchJobs.h:144
SSplitResultData(double *heights_, vector3f *n_, Color3ub *c_, const vector3d &v0_, const vector3d &v1_, const vector3d &v2_, const vector3d &v3_, const GeoPatchID &patchID_)
Definition GeoPatchJobs.h:130
vector3d v3
Definition GeoPatchJobs.h:144
GeoPatchID patchID
Definition GeoPatchJobs.h:145