OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
CartesianMeshCreation.h
Go to the documentation of this file.
1#pragma once
2
3class Application;
4class ModelState;
5class EntityBase;
6class EntityMeshCartesian;
7class EntityMeshCartesianData;
8class EntityGeometry;
9class ClassFactory;
10class EntityMeshCartesianFace;
12class EntityFacetData;
13class EntityMeshCartesianNodes;
14class EntityCartesianVector;
15class EntityMaterial;
16
17#include "Geometry.h"
18#include "EntityResultBase.h"
19
20#include <vector>
21#include <string>
22#include <list>
23#include <map>
24#include <ctime>
25#include <algorithm>
26
27#include <embree3/rtcore.h>
28
30{
31public:
32 CartesianMeshMaterial() : isPEC(false), epsilon(1.0), mu(1.0), sigma(0.0), priority(0.0) {};
34
35 void setIsPEC(bool flag) { isPEC = flag; }
36 void setEpsilon(double value) { epsilon = value; }
37 void setMu(double value) { mu = value; }
38 void setSigma(double value) { sigma = value; }
39
40 void setPriority(double value) { priority = value; }
41
42 bool getIsPEC(void) { return isPEC; }
43 double getEpsilon(void) { return epsilon; }
44 double getMu(void) { return mu; }
45 double getSigma(void) { return sigma; }
46
47 double getPriority(void) { return priority; }
48
49private:
50 bool isPEC;
51 double epsilon;
52 double mu;
53 double sigma;
54
55 double priority;
56};
57
59{
60public:
61 CartesianMeshFillFront() : ix(0), iy(0), iz(0) {}
63
64 unsigned int getX(void) { return ix; }
65 unsigned int getY(void) { return iy; }
66 unsigned int getZ(void) { return iz; }
67
68 void setX(unsigned int x) { ix = x; }
69 void setY(unsigned int y) { iy = y; }
70 void setZ(unsigned int z) { iz = z; }
71
72private:
73 unsigned int ix;
74 unsigned int iy;
75 unsigned int iz;
76};
77
79{
80public:
81 CartesianMeshBoundaryFacets() : faceEntity(nullptr) {};
83
84 void addFacet(int direction, long long index) { facets[direction].push_back(index); }
85 std::list<long long> &getFacetList(int direction) { return facets[direction]; }
86
87 void setFaceEntity(EntityMeshCartesianFace *entity) { faceEntity = entity; }
88 EntityMeshCartesianFace *getFaceEntity(void) { return faceEntity; }
89
90private:
91 std::list<long long> facets[3];
92 EntityMeshCartesianFace *faceEntity;
93};
94
96{
97public:
98 CartesianMeshBoundaryFaceConformal() : numberOfPoints(0), pointIndices { 0 }, cellIndexFront(-1), cellIndexBack(-1) {}
100
101 void setPoint(int point, size_t pointIndex) { pointIndices[point] = pointIndex; }
102 size_t getPoint(int point) { return pointIndices[point]; }
103 long long getCellIndexFront(void) { return cellIndexFront; }
104 long long getCellIndexBack(void) { return cellIndexBack; }
105
106 bool isValid(void) { return numberOfPoints > 2; }
107 int getNumberOfPoints(void) { return numberOfPoints; }
108
110 {
111 int index = 1;
112 while (index < numberOfPoints)
113 {
114 if (pointIndices[index] == pointIndices[index - 1])
115 {
116 // Two subsequent points are the same
117 for (int index2 = index; index2 < numberOfPoints - 1; index2++)
118 {
119 pointIndices[index2] = pointIndices[index2 + 1];
120 }
121
122 numberOfPoints--;
123 }
124 else
125 {
126 index++;
127 }
128 }
129
130 if (numberOfPoints > 1)
131 {
132 if (pointIndices[numberOfPoints-1] == pointIndices[0])
133 {
134 // The last point is a duplicate
135 numberOfPoints--;
136 }
137 }
138 }
139
140 void setPoints(size_t p0, size_t p1, size_t p2, size_t p3) { numberOfPoints = 4; pointIndices[0] = p0; pointIndices[1] = p1; pointIndices[2] = p2; pointIndices[3] = p3; }
141 void setFrontBackCellIndex(long long front, long long back) { cellIndexFront = front; cellIndexBack = back; }
142
143private:
144 int numberOfPoints;
145 size_t pointIndices[4];
146 long long cellIndexFront, cellIndexBack;
147};
148
150{
151public:
152 CartesianMeshBoundaryFacetsConformal() : faceEntity(nullptr) {};
154
155 void addFacet(CartesianMeshBoundaryFaceConformal &face) { facets.push_back(face); }
156 std::list<CartesianMeshBoundaryFaceConformal> &getFacetList(void) { return facets; }
157
158 void setFaceEntity(EntityMeshCartesianFace *entity) { faceEntity = entity; }
159 EntityMeshCartesianFace *getFaceEntity(void) { return faceEntity; }
160
161private:
162 std::list<CartesianMeshBoundaryFaceConformal> facets;
163 EntityMeshCartesianFace *faceEntity;
164};
165
167{
168 unsigned int hitCount;
170 unsigned int lastPrimID;
171};
172
174{
175public:
176 CartesianMeshBoundaryPointData() : ix(0), iy(0), iz(0), fixed(false) { for (int i = 0; i < 6; i++) intersect[i] = FLT_MAX; }
178
179 void resetIntersections(void) { for (int i = 0; i < 6; i++) intersect[i] = FLT_MAX; }
180
181 void setIndex(int _ix, int _iy, int _iz) { ix = _ix; iy = _iy; iz = _iz; }
182 int getIndexX(void) { return ix; }
183 int getIndexY(void) { return iy; }
184 int getIndexZ(void) { return iz; }
185
186 void setFixed(void) { fixed = true; }
187 bool isFixed(void) { return fixed; }
188
189 // Directions are interpreted as follows:
190 // 0: negative x direction
191 // 1: positive x direction
192 // 2: negative y direction
193 // 3: positive y direction
194 // 4: negative z direction
195 // 5: positive z direction
196
197 bool hasIntersection(int direction) { return intersect[direction] != FLT_MAX; }
198
199 void setIntersection(int direction, float coord) { intersect[direction] = coord; }
200 float getIntersection(int direction) { return intersect[direction]; }
201
202 bool hasAnyIntersection(void) { for (int i = 0; i < 6; i++) if (intersect[i] != FLT_MAX) return true; return false; }
203
204 void attachFacet(CartesianMeshBoundaryFaceConformal *facet) { if (std::find(facets.begin(), facets.end(), facet) == facets.end()) facets.push_back(facet); };
205 void removeFacet(CartesianMeshBoundaryFaceConformal *facet) { facets.remove(facet); };
206
207 std::list<CartesianMeshBoundaryFaceConformal *> &getFacetList(void) { return facets; }
208
209private:
210 int ix, iy, iz;
211 float intersect[6];
212 bool fixed;
213 std::list<CartesianMeshBoundaryFaceConformal *> facets;
214};
215
217{
218public:
219 vector3() : x(0.0), y(0.0), z(0.0) {};
221
222 void setX(float v) { x = v; }
223 void setY(float v) { y = v; }
224 void setZ(float v) { z = v; }
225
226 float getX(void) const { return x; }
227 float getY(void) const { return y; }
228 float getZ(void) const { return z; }
229
230 float dot(const vector3 &other) const { return x * other.x + y * other.y + z * other.z; }
231
232 vector3 operator+(const vector3 &other) const
233 {
235 result.x = x + other.x;
236 result.y = y + other.y;
237 result.z = z + other.z;
238 return result;
239 }
240
241 vector3 operator-(const vector3 &other) const
242 {
244 result.x = x - other.x;
245 result.y = y - other.y;
246 result.z = z - other.z;
247 return result;
248 }
249
250private:
251 float x, y, z;
252};
253
254vector3 operator*(float lhs, const vector3 &rhs);
255
257{
258public:
261
262 void setPriority(double p) { priority = p; }
263 void setGeometryItem(EntityGeometry *g) { geometryItem = g; }
264
265 double getPriority(void) { return priority; }
266 EntityGeometry *getGeometryItem(void) { return geometryItem; }
267
268 bool operator>(const MeshGeometryItem &other) { return priority > other.priority; }
269 bool operator<(const MeshGeometryItem &other) { return priority < other.priority; }
270 bool operator==(const MeshGeometryItem &other) { return priority == other.priority; }
271
272private:
273 double priority;
274 EntityGeometry *geometryItem = nullptr;
275};
276
278{
279public:
281 virtual ~CartesianMeshCreation();
282
283 void updateMesh(Application *app, EntityBase *meshEntity);
284
285private:
286 Application *getApplication(void) { return application; }
287 void setApplication(Application *app) { application = app; }
288 EntityMeshCartesian *getEntityMesh(void) { return entityMesh; }
289 void setEntityMesh(EntityMeshCartesian *mesh) { entityMesh = mesh; }
290 void deleteMesh(void);
291 void reportTime(const std::string &message, std::time_t &timer);
292 std::list<ot::UID> getAllGeometryEntitiesForMeshing(void);
293 EntityMeshCartesianData *determineMeshLines(const std::list<EntityBase *> &meshEntities, double maximumEdgeLength, double stepsAlongDiagonalProperty);
294 void determineBoundingBoxExtension(double deltaX, double deltaY, double deltaZ, double &offsetXmin, double &offsetXmax, double &offsetYmin, double &offsetYmax, double &offsetZmin, double &offsetZmax);
295 void determineMeshLinesOneDirection(double min, double max, double step, std::vector<double> &coords);
296 EntityGeometry *addBackgroundCubeTopology(void);
297 void addBackgroundCubeGeometry(EntityGeometry *backgroundCube, EntityMeshCartesianData *meshData, double stepWidth);
298 void determineVolumeFill(std::list<EntityGeometry *> &geometryEntities, EntityMeshCartesianData *meshData, bool conformalMeshing);
299 void fillSingleShape(EntityGeometry *shape, std::vector<EntityGeometry *> &meshFill, std::vector<char> &shapeFill, EntityMeshCartesianData *meshData,
300 std::map<EntityGeometry*, double> &shapePriorities, std::map<std::pair<EntityGeometry*, EntityGeometry*>, bool> &overlappingShapes,
301 std::vector<CartesianMeshFillFront> &fillFrontElements, std::vector<std::map<EntityGeometry*, std::list<Geometry::Triangle*>>> *triangleInCellInformation);
302 void extractInterfaces(std::vector<EntityGeometry *> meshFill, EntityMeshCartesianData *meshData,
303 std::map<std::pair<EntityGeometry*, EntityGeometry*>, CartesianMeshBoundaryFacets *> &boundaryFacets);
304 void extractInterfacesW(std::vector<EntityGeometry *> meshFill, std::map<std::pair<EntityGeometry*, EntityGeometry*>, CartesianMeshBoundaryFacets *> &boundaryFacets,
305 size_t nu, size_t nv, size_t nw, size_t mu, size_t mv, size_t mw, int dirW);
306 void addBoundaryFacet(int direction, size_t facetIndex, EntityGeometry *from, EntityGeometry *to, std::map<std::pair<EntityGeometry*, EntityGeometry*>, CartesianMeshBoundaryFacets *> &boundaryFacets);
307 void storeBoundaryFaces(std::map<std::pair<EntityGeometry*, EntityGeometry*>, CartesianMeshBoundaryFacets *> &boundaryFacets);
308 void storeBoundaryFacesList(std::map<std::pair<EntityGeometry*, EntityGeometry*>, CartesianMeshBoundaryFacets *> &boundaryFacets, EntityMeshCartesianData *meshData);
309 void fillCell(EntityGeometry *shape, std::vector<EntityGeometry *> &meshFill, size_t index,
310 std::map<EntityGeometry*, double> &shapePriorities, std::map<std::pair<EntityGeometry*, EntityGeometry*>, bool> &overlappingShapes);
311 void fillSingleShapeVolume(size_t nx, size_t ny, size_t nz, std::vector<char> &shapeFill, EntityFacetData *facetData,
312 std::vector<double> &linesX, std::vector<double> &linesY, std::vector<double> &linesZ,
313 std::vector<CartesianMeshFillFront> &fillFrontElements);
314 bool findUndefinedCell(size_t nx, size_t ny, size_t nz, std::vector<char> &shapeFill, unsigned int &ix, unsigned int &iy, unsigned int &iz);
315 void fillNeighbouringVolume(unsigned int ix, unsigned int iy, unsigned int iz, char fillCode, size_t nx, size_t ny, size_t nz, std::vector<char> &shapeFill,std::vector<CartesianMeshFillFront> &fillFrontElements);
316 void updateFront(std::vector<CartesianMeshFillFront> &fillFrontElements, size_t &nFrontElements, char fillCode, size_t nx, size_t ny, size_t nz, std::vector<char> &shapeFill);
317 void expandFront(unsigned int ix, unsigned int iy, unsigned int iz, std::vector<CartesianMeshFillFront> &fillFrontElements, size_t &nFrontElements, size_t nx, size_t ny, size_t nz, std::vector<char> &shapeFill);
318 bool testPointInside(double xpos, double ypos, double zpos);
319 void setupEmbree(EntityFacetData *facetData, bool multipleIntersections);
320 void terminateEmbree(void);
321 std::string getLargeNumberString(size_t number);
322 void extractAndStoreMesh(std::vector<EntityGeometry *> &meshFill, EntityMeshCartesianData *meshData, std::time_t &timer, std::list<EntityGeometry *> &geometryEntities);
323 void createMatrices(std::vector<EntityGeometry *> &meshFill, EntityMeshCartesianData *meshData);
324 void extractInterfacesConformal(std::vector<EntityGeometry *> meshFill, EntityMeshCartesianData *meshData,
325 std::map<std::pair<EntityGeometry*, EntityGeometry*>, CartesianMeshBoundaryFacetsConformal *> &boundaryFacets);
326 void extractInterfacesWConformal(std::vector<EntityGeometry *> meshFill, std::map<std::pair<EntityGeometry*, EntityGeometry*>, CartesianMeshBoundaryFacetsConformal *> &boundaryFacets,
327 size_t nu, size_t nv, size_t nw, size_t mu, size_t mv, size_t mw, int dirW);
328 void addBoundaryFacetConformal(int direction, size_t iu, size_t iv, size_t iw, size_t mu, size_t mv, size_t mw, EntityGeometry *from, EntityGeometry *to, size_t indexFrom, size_t indexTo, std::map<std::pair<EntityGeometry*, EntityGeometry*>, CartesianMeshBoundaryFacetsConformal *> &boundaryFacets);
329 void storeBoundaryFacesConformal(std::map<std::pair<EntityGeometry*, EntityGeometry*>, CartesianMeshBoundaryFacetsConformal *> &boundaryFacets);
330 void storeBoundaryFacesListConformal(std::map<std::pair<EntityGeometry*, EntityGeometry*>, CartesianMeshBoundaryFacetsConformal *> &boundaryFacets, EntityMeshCartesianData *meshData);
331 void createNodes(unsigned int nx, unsigned int ny, unsigned int nz, std::map<std::pair<EntityGeometry*, EntityGeometry*>, CartesianMeshBoundaryFacetsConformal *> &boundaryFacets, EntityMeshCartesianData *meshData,
332 CartesianMeshBoundaryPointData *&boundaryPointInfo);
333 void extractAndStoreMeshConformal(std::vector<EntityGeometry *> &meshFill, EntityMeshCartesianData *meshData, std::time_t &timer, std::list<EntityGeometry *> &geometryEntities,
334 std::map<EntityGeometry*, double> shapePriorities, std::vector<std::map<EntityGeometry*, std::list<Geometry::Triangle*>>> &triangleInCellInformation);
335 bool movePointToClosestPointOnGeometry(size_t pointIndex, CartesianMeshBoundaryPointData *boundaryPointInfo, int nx, int ny, int nz, std::vector<EntityGeometry *> &meshFill, EntityGeometry *geometryEntity, EntityMeshCartesianNodes *meshNodes, EntityFacetData *facets, std::vector<std::map<EntityGeometry*, std::list<Geometry::Triangle*>>> &triangleInCellInformation);
336 float clamp(float value, float min, float max);
337 vector3 closestPointOnTriangle(const vector3 *triangle, const vector3 &sourcePosition);
338 void determine2DFill(std::list<EntityGeometry *> &geometryEntities, EntityMeshCartesianData *meshData);
339 void setProgress(int percentage);
340 void displayMessage(std::string message);
341 void setProgressInformation(std::string message, bool continuous);
342 void closeProgressInformation(void);
343 EntityCartesianVector* getDsMatrix(void) { return matrixDs; };
344 EntityCartesianVector* getDualDsMatrix(void) { return matrixDualDs; };
345 EntityCartesianVector* getDaMatrix(void) { return matrixDa; };
346 EntityCartesianVector* getDualDaMatrix(void) { return matrixDualDa; };
347 EntityCartesianVector* getDepsMatrix(void) { return matrixDeps; };
348 EntityCartesianVector* getDmuMatrix(void) { return matrixDmu; };
349 EntityCartesianVector* getDsigmaMatrix(void) { return matrixDsigma; };
350 std::string readMaterialInformation(const std::list<EntityGeometry *> &geometryEntities);
351 void clearMaterialInformation(const std::list<EntityGeometry *> &geometryEntities);
352 void calcDsW(double *matrix, long long nu, long long nv, long long nw, long long mu, long long mv, long long mw, EntityGeometry **meshFill);
353 void calcDaW(double *matrix, long long nu, long long nv, long long nw, long long mu, long long mv, long long mw, EntityGeometry **meshFill);
354 void calcDmuW(double *matrix, long long nu, long long nv, long long nw, long long mu, long long mv, long long mw, double *meshLinesW, EntityGeometry **meshFill);
355 void calcDepsW(double *matrix, long long nu, long long nv, long long nw, long long mu, long long mv, long long mw, double *meshLinesU,double *meshLinesV, EntityGeometry **meshFill);
356 void calcDsigmaW(double *matrix, long long nu, long long nv, long long nw, long long mu, long long mv, long long mw, double *meshLinesU, double *meshLinesV, EntityGeometry **meshFill);
357 void addMatrixPlot(EntityResultBase::tResultType resultType, const std::string &plotName, EntityCartesianVector *matrix, EntityMeshCartesianData *mesh, std::list<EntityBase *> &entityList, std::map<ot::UID,bool> &topologyEntityForceVisible);
358
359 enum lockType {ANY_OPERATION, MODEL_CHANGE};
360 void setUILock(bool flag, lockType type);
361
362 // Attributes
363 Application *application;
364 EntityMeshCartesian *entityMesh;
365 size_t numberPointInsideTests;
366 RTCDevice device;
367 RTCScene scene;
368 RTCGeometry geom;
369 CartesianMeshIntersectionData intersectionData;
370 std::list<EntityBase *> newTopologyEntities;
371 std::list<EntityBase *> newDataEntities;
372 std::list<CartesianMeshMaterial *> materialList;
373 std::string backgroundShapeName;
374 std::string backgroundMeshName;
375
376 EntityCartesianVector *matrixDs;
377 EntityCartesianVector *matrixDualDs;
378 EntityCartesianVector *matrixDa;
379 EntityCartesianVector *matrixDualDa;
380 EntityCartesianVector *matrixDeps;
381 EntityCartesianVector *matrixDmu;
382 EntityCartesianVector *matrixDsigma;
383};
vector3 operator*(float lhs, const vector3 &rhs)
Definition CartesianMeshCreation.cpp:42
bsoncxx::types::value value
Definition DocumentManager.h:16
@ point
Definition MonitorSettings.h:19
int result
Definition dllmain.cpp:82
Definition Application.h:25
Definition CartesianMeshCreation.h:96
CartesianMeshBoundaryFaceConformal()
Definition CartesianMeshCreation.h:98
~CartesianMeshBoundaryFaceConformal()
Definition CartesianMeshCreation.h:99
size_t getPoint(int point)
Definition CartesianMeshCreation.h:102
void setFrontBackCellIndex(long long front, long long back)
Definition CartesianMeshCreation.h:141
int getNumberOfPoints(void)
Definition CartesianMeshCreation.h:107
long long getCellIndexFront(void)
Definition CartesianMeshCreation.h:103
bool isValid(void)
Definition CartesianMeshCreation.h:106
void setPoints(size_t p0, size_t p1, size_t p2, size_t p3)
Definition CartesianMeshCreation.h:140
void removeUnecessaryPoints(void)
Definition CartesianMeshCreation.h:109
long long getCellIndexBack(void)
Definition CartesianMeshCreation.h:104
void setPoint(int point, size_t pointIndex)
Definition CartesianMeshCreation.h:101
Definition CartesianMeshCreation.h:150
void setFaceEntity(EntityMeshCartesianFace *entity)
Definition CartesianMeshCreation.h:158
void addFacet(CartesianMeshBoundaryFaceConformal &face)
Definition CartesianMeshCreation.h:155
std::list< CartesianMeshBoundaryFaceConformal > & getFacetList(void)
Definition CartesianMeshCreation.h:156
~CartesianMeshBoundaryFacetsConformal()
Definition CartesianMeshCreation.h:153
CartesianMeshBoundaryFacetsConformal()
Definition CartesianMeshCreation.h:152
EntityMeshCartesianFace * getFaceEntity(void)
Definition CartesianMeshCreation.h:159
Definition CartesianMeshCreation.h:79
EntityMeshCartesianFace * getFaceEntity(void)
Definition CartesianMeshCreation.h:88
~CartesianMeshBoundaryFacets()
Definition CartesianMeshCreation.h:82
void addFacet(int direction, long long index)
Definition CartesianMeshCreation.h:84
void setFaceEntity(EntityMeshCartesianFace *entity)
Definition CartesianMeshCreation.h:87
CartesianMeshBoundaryFacets()
Definition CartesianMeshCreation.h:81
std::list< long long > & getFacetList(int direction)
Definition CartesianMeshCreation.h:85
Definition CartesianMeshCreation.h:174
void attachFacet(CartesianMeshBoundaryFaceConformal *facet)
Definition CartesianMeshCreation.h:204
bool hasIntersection(int direction)
Definition CartesianMeshCreation.h:197
int getIndexZ(void)
Definition CartesianMeshCreation.h:184
~CartesianMeshBoundaryPointData()
Definition CartesianMeshCreation.h:177
float getIntersection(int direction)
Definition CartesianMeshCreation.h:200
void resetIntersections(void)
Definition CartesianMeshCreation.h:179
void setFixed(void)
Definition CartesianMeshCreation.h:186
void removeFacet(CartesianMeshBoundaryFaceConformal *facet)
Definition CartesianMeshCreation.h:205
int getIndexX(void)
Definition CartesianMeshCreation.h:182
bool hasAnyIntersection(void)
Definition CartesianMeshCreation.h:202
bool isFixed(void)
Definition CartesianMeshCreation.h:187
CartesianMeshBoundaryPointData()
Definition CartesianMeshCreation.h:176
int getIndexY(void)
Definition CartesianMeshCreation.h:183
void setIntersection(int direction, float coord)
Definition CartesianMeshCreation.h:199
std::list< CartesianMeshBoundaryFaceConformal * > & getFacetList(void)
Definition CartesianMeshCreation.h:207
void setIndex(int _ix, int _iy, int _iz)
Definition CartesianMeshCreation.h:181
Definition CartesianMeshCreation.h:278
virtual ~CartesianMeshCreation()
Definition CartesianMeshCreation.cpp:66
CartesianMeshCreation()
Definition CartesianMeshCreation.cpp:51
void updateMesh(Application *app, EntityBase *meshEntity)
Definition CartesianMeshCreation.cpp:88
Definition CartesianMeshCreation.h:59
unsigned int getZ(void)
Definition CartesianMeshCreation.h:66
unsigned int getY(void)
Definition CartesianMeshCreation.h:65
CartesianMeshFillFront()
Definition CartesianMeshCreation.h:61
virtual ~CartesianMeshFillFront()
Definition CartesianMeshCreation.h:62
void setZ(unsigned int z)
Definition CartesianMeshCreation.h:70
void setX(unsigned int x)
Definition CartesianMeshCreation.h:68
unsigned int getX(void)
Definition CartesianMeshCreation.h:64
void setY(unsigned int y)
Definition CartesianMeshCreation.h:69
Definition CartesianMeshCreation.h:30
bool getIsPEC(void)
Definition CartesianMeshCreation.h:42
void setPriority(double value)
Definition CartesianMeshCreation.h:40
CartesianMeshMaterial()
Definition CartesianMeshCreation.h:32
double getMu(void)
Definition CartesianMeshCreation.h:44
void setSigma(double value)
Definition CartesianMeshCreation.h:38
void setMu(double value)
Definition CartesianMeshCreation.h:37
double getSigma(void)
Definition CartesianMeshCreation.h:45
double getPriority(void)
Definition CartesianMeshCreation.h:47
void setIsPEC(bool flag)
Definition CartesianMeshCreation.h:35
double getEpsilon(void)
Definition CartesianMeshCreation.h:43
void setEpsilon(double value)
Definition CartesianMeshCreation.h:36
virtual ~CartesianMeshMaterial()
Definition CartesianMeshCreation.h:33
Definition CartesianMeshTree.h:14
Definition CartesianMeshCreation.h:257
~MeshGeometryItem()
Definition CartesianMeshCreation.h:260
void setPriority(double p)
Definition CartesianMeshCreation.h:262
double getPriority(void)
Definition CartesianMeshCreation.h:265
EntityGeometry * getGeometryItem(void)
Definition CartesianMeshCreation.h:266
bool operator>(const MeshGeometryItem &other)
Definition CartesianMeshCreation.h:268
bool operator<(const MeshGeometryItem &other)
Definition CartesianMeshCreation.h:269
bool operator==(const MeshGeometryItem &other)
Definition CartesianMeshCreation.h:270
MeshGeometryItem()
Definition CartesianMeshCreation.h:259
void setGeometryItem(EntityGeometry *g)
Definition CartesianMeshCreation.h:263
Definition CartesianMeshCreation.h:217
float getZ(void) const
Definition CartesianMeshCreation.h:228
float getX(void) const
Definition CartesianMeshCreation.h:226
void setX(float v)
Definition CartesianMeshCreation.h:222
void setY(float v)
Definition CartesianMeshCreation.h:223
~vector3()
Definition CartesianMeshCreation.h:220
vector3 operator-(const vector3 &other) const
Definition CartesianMeshCreation.h:241
void setZ(float v)
Definition CartesianMeshCreation.h:224
vector3()
Definition CartesianMeshCreation.h:219
vector3 operator+(const vector3 &other) const
Definition CartesianMeshCreation.h:232
float getY(void) const
Definition CartesianMeshCreation.h:227
float dot(const vector3 &other) const
Definition CartesianMeshCreation.h:230
The app namespace contains several functions that may be used to start processes.
Definition CartesianMeshCreation.h:167
float lastDistance
Definition CartesianMeshCreation.h:169
unsigned int hitCount
Definition CartesianMeshCreation.h:168
unsigned int lastPrimID
Definition CartesianMeshCreation.h:170
Definition PHREECMeshExport.h:29