8#ifndef CO_DO_BASIS_TREE_H
9#define CO_DO_BASIS_TREE_H
36 MIN_SMALL_ENOUGH = 32,
61 const char *label1,
const char *label2,
62 int nelem_l,
int nconn_l,
int ncoord_l,
64 float *x_c,
float *y_c,
float *z_c,
87 const char *label1,
const char *label2,
89 int macroCellListSize,
102 void Visualise(std::vector<int> &ll, std::vector<int> &cl,
103 std::vector<float> &xi, std::vector<float> &yi, std::vector<float> &zi);
108 const int *search(
const float *point)
const;
110 const int *extended_search(
const coVector &point1,
const coVector &point2, std::vector<int> &OctreePolygonList)
const;
112 bool cutLineCuboid(
const coVector &point1,
const coVector &point2,
const float *cuboidBbox, std::vector<coVector> &CutVec)
const;
114 bool cutThroughOct(
int baum,
const float bbox[6], std::vector<int> &ll, std::vector<int> &cl, std::vector<float> &xi, std::vector<float> &yi, std::vector<float> &zi,
const coVector &point1,
const coVector &point2, std::vector<int> &OctreePolygonList)
const;
116 const int *getBbox(std::vector<float> &
boundingBox)
const;
118 const int *area_search(std::vector<float> &Bbox, std::vector<int> &GridElemList)
const;
120 void getMacroCellElements(
int baum,
float bbox[6], std::vector<int> &ElementList,
const float *reference_Bbox)
const;
122 bool lineInBbox(
const coVector &point1,
const coVector &point2,
const float bbox[6])
const;
136 void getChunks(vector<const int *> &chunks,
const functionObject *test);
138 int getNumCellLists();
139 int getNumMacroCellLists();
140 int getNumCellBBoxes();
141 int getNumGridBBoxes();
143 void getAddresses(
int **cellList,
int **macroCellList,
float **cellBBox,
float **gridBBox,
int **fX,
int **fY,
int **fZ,
int **max_no_levels);
146 int getObjInfo(
int,
coDoInfo **)
const;
147 int rebuildFromShm();
149 void BBoxForElement(
int i);
153 void ShareCellsBetweenLeaves();
154 void IniBBox(
float *,
156 static int IsInMacroCell(
const int *okey,
157 const int *macro_keys);
158 void fillBBoxSon(
float *bbox_son,
161 void SplitOctTree(
const float *bbox,
162 std::vector<int> &population_,
165 int CellsAreTooBig(
const float *bbox,
166 std::vector<int> &population);
168 void RecreateShm(
const char *label1,
const char *label2);
170 void DivideUpToLevel();
172 const int *lookUp(
int position,
176 void MakeOctTree(
int *el,
int *conn,
float *x_c,
float *y_c,
float *z_c);
178 int Position(
int *key)
const;
209 mutable float grid_bbox_[6];
225 void addChunk(vector<const int *> &chunks,
229 void treePrint(ostream &outfile,
int level,
231 void VisualiseOneOctTree(
int baum,
const float bbox[6], std::vector<int> &ll, std::vector<int> &cl, std::vector<float> &xi, std::vector<float> &yi, std::vector<float> &zi);
#define DOEXPORT
Definition: coExport.h:331
GLint level
Definition: khronos-glext.h:6344
GLenum GLint GLuint mask
Definition: khronos-glext.h:6719
GLintptr offset
Definition: khronos-glext.h:6611
GLuint GLsizei const GLchar * label
Definition: khronos-glext.h:8634
list of all chemical elements
Definition: coConfig.h:27
void boundingBox(float **x, float **y, float **z, int *c, int n, float *bbx1, float *bby1, float *bbz1, float *bbx2, float *bby2, float *bbz2)
Definition: DeleteUnusedPoints.cpp:159
QTextStream & operator<<(QTextStream &out, const coConfigEntryStringList list)
Definition: coConfigEntryString.cpp:159
Definition: coObjID.h:231
Definition: coVector.h:42
Definition: coDistributedObject.h:91
Definition: coDistributedObject.h:267
Definition: coDistributedObject.h:296
Definition: coDoBasisTree.h:30
int fZ_
Definition: coDoBasisTree.h:213
float * cell_bbox_
Definition: coDoBasisTree.h:208
const int min_small_enough_
Definition: coDoBasisTree.h:218
float * x_c_
Definition: coDoBasisTree.h:204
int * el_
Definition: coDoBasisTree.h:202
int * conn_
Definition: coDoBasisTree.h:203
const int limit_fZ_
Definition: coDoBasisTree.h:222
float * z_c_
Definition: coDoBasisTree.h:206
coIntShm fZShm
Definition: coDoBasisTree.h:188
float cellFactor_
Definition: coDoBasisTree.h:227
std::vector< int > cellList_
Definition: coDoBasisTree.h:195
int fY_
Definition: coDoBasisTree.h:212
int nelem
Definition: coDoBasisTree.h:199
coFloatShmArray cellBBoxes
Definition: coDoBasisTree.h:183
std::vector< int > macCellList_
Definition: coDoBasisTree.h:194
const int crit_level_
Definition: coDoBasisTree.h:219
coIntShmArray macroCellList
Definition: coDoBasisTree.h:182
const int limit_fY_
Definition: coDoBasisTree.h:221
float * y_c_
Definition: coDoBasisTree.h:205
int ncoord
Definition: coDoBasisTree.h:201
int nconn
Definition: coDoBasisTree.h:200
int fX_
Definition: coDoBasisTree.h:211
std::vector< int > * populations_
Definition: coDoBasisTree.h:196
const int normal_size_
Definition: coDoBasisTree.h:216
int max_no_levels_
Definition: coDoBasisTree.h:217
const int limit_fX_
Definition: coDoBasisTree.h:220
coIntShmArray cellList
Definition: coDoBasisTree.h:181
int small_enough_
Definition: coDoBasisTree.h:228
std::vector< float > cellBBoxes_
Definition: coDoBasisTree.h:197
coIntShm fXShm
Definition: coDoBasisTree.h:186
coIntShm fYShm
Definition: coDoBasisTree.h:187
coIntShm max_no_levels_Shm
Definition: coDoBasisTree.h:189
coFloatShmArray gridBBox
Definition: coDoBasisTree.h:184
Definition: coDoBasisTree.h:130
virtual ~functionObject()=0
virtual bool operator()(const float[6]) const =0