Ice Sheet System Model  4.18
Code documentation
BamgQuadtree.h
Go to the documentation of this file.
1 /*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, BamgQuadtree.h)*/
2 #ifndef _BAMGQUADTREE_H
3 #define _BAMGQUADTREE_H
4 
5 #include <vector>
6 #include "./include.h"
7 class BamgVertex;
8 
9 namespace bamg {
10  class BamgQuadtree{
11 
12  private:
13 
14  /*A quadtree box contains a maximum of 4 vertices. 4 other quadtree boxes are
15  * created if a fifth vertex is added to the same box. A Quadtree box is therefore
16  * composed of EITHER:
17  * - up to 4 vertices
18  * - 4 "sub" quadtree boxes*/
20  public:
21  int nbitems;
24  };
25 
26  /*BamgQuadtree private Fields*/
27  std::vector<BamgQuadtreeBox*> boxcontainer;
28 
29  public:
30 
31  /*BamgQuadtree public Fields*/
32  BamgQuadtreeBox *root; // main box
33  long NbQuadtreeBox; // total number of boxes
34  long NbVertices; // number of points
35 
36  BamgQuadtree();
37  BamgQuadtree(Mesh *t,long nbv=-1);
38  ~BamgQuadtree();
39 
40  void Add(BamgVertex &w);
41  int BoxNumber(int i,int j,int l);
42  bool Intersection(int a,int b,int x,int y);
43  BamgVertex *NearestVertex(int i,int j);
45  int Norm(int xi1,int yi1,int xi2,int yi2);
46  void SubBoxCoords(int* pi,int*pj,int boxcoord,int length);
47  BamgVertex *TooClose(BamgVertex*,double,int,int);
48  };
49 }
50 #endif
bamg::BamgVertex
Definition: BamgVertex.h:15
bamg::BamgQuadtree::BamgQuadtreeBox::nbitems
int nbitems
Definition: BamgQuadtree.h:21
bamg
Definition: AdjacentTriangle.cpp:9
bamg::BamgQuadtree::TooClose
BamgVertex * TooClose(BamgVertex *, double, int, int)
Definition: BamgQuadtree.cpp:424
bamg::BamgQuadtree::BamgQuadtreeBox
Definition: BamgQuadtree.h:19
bamg::BamgQuadtree::NbVertices
long NbVertices
Definition: BamgQuadtree.h:34
bamg::BamgQuadtree::BoxNumber
int BoxNumber(int i, int j, int l)
Definition: BamgQuadtree.cpp:192
bamg::BamgQuadtree::BamgQuadtreeBox::box
BamgQuadtreeBox * box[4]
Definition: BamgQuadtree.h:22
bamg::BamgQuadtree::root
BamgQuadtreeBox * root
Definition: BamgQuadtree.h:32
bamg::BamgQuadtree::SubBoxCoords
void SubBoxCoords(int *pi, int *pj, int boxcoord, int length)
Definition: BamgQuadtree.cpp:397
bamg::BamgQuadtree
Definition: BamgQuadtree.h:10
bamg::BamgQuadtree::boxcontainer
std::vector< BamgQuadtreeBox * > boxcontainer
Definition: BamgQuadtree.h:27
bamg::BamgQuadtree::NearestVertex
BamgVertex * NearestVertex(int i, int j)
Definition: BamgQuadtree.cpp:227
bamg::Mesh
Definition: Mesh.h:21
bamg::BamgQuadtree::BamgQuadtreeBox::v
BamgVertex * v[4]
Definition: BamgQuadtree.h:23
include.h
prototypes for include.h
bamg::BamgQuadtree::Add
void Add(BamgVertex &w)
Definition: BamgQuadtree.cpp:104
bamg::BamgQuadtree::~BamgQuadtree
~BamgQuadtree()
Definition: BamgQuadtree.cpp:92
bamg::BamgQuadtree::Intersection
bool Intersection(int a, int b, int x, int y)
Definition: BamgQuadtree.cpp:223
bamg::BamgQuadtree::Norm
int Norm(int xi1, int yi1, int xi2, int yi2)
Definition: BamgQuadtree.cpp:382
bamg::BamgQuadtree::NewBamgQuadtreeBox
BamgQuadtreeBox * NewBamgQuadtreeBox(void)
Definition: BamgQuadtree.cpp:499
bamg::BamgQuadtree::BamgQuadtree
BamgQuadtree()
Definition: BamgQuadtree.cpp:62
bamg::BamgQuadtree::NbQuadtreeBox
long NbQuadtreeBox
Definition: BamgQuadtree.h:33