1 |
cuillier |
415 |
#include "gestionversion.h"
|
2 |
|
|
#include <stdio.h>
|
3 |
|
|
#include "mg_file.h"
|
4 |
|
|
#include "tpl_octree.h"
|
5 |
|
|
|
6 |
|
|
int main(void)
|
7 |
|
|
{
|
8 |
|
|
printf("Projet 10\n");
|
9 |
|
|
MG_FILE gest("ejectorBGM.magic");
|
10 |
|
|
MG_MAILLAGE* mai=gest.get_mg_maillage(0);
|
11 |
|
|
int nbnode=mai->get_nb_mg_noeud();
|
12 |
|
|
int nbseg=mai->get_nb_mg_segment();
|
13 |
|
|
int nbtri=mai->get_nb_mg_triangle();
|
14 |
|
|
int nbtetra=mai->get_nb_mg_tetra();
|
15 |
|
|
printf("Au total %d nodes %d segments %d triangles %d tetra\n",nbnode,nbseg,nbtri,nbtetra);
|
16 |
|
|
|
17 |
|
|
double xmin=1e308,ymin=1e308,zmin=1e308,xmax=-1e308,ymax=-1e308,zmax=-1e308;
|
18 |
|
|
LISTE_MG_NOEUD::iterator it;
|
19 |
|
|
|
20 |
|
|
for (MG_NOEUD* no=mai->get_premier_noeud(it);no!=NULL;no=mai->get_suivant_noeud(it))
|
21 |
|
|
{
|
22 |
|
|
if (no->get_x()<xmin) xmin=no->get_x();
|
23 |
|
|
if (no->get_y()<ymin) ymin=no->get_y();
|
24 |
|
|
if (no->get_z()<zmin) zmin=no->get_z();
|
25 |
|
|
if (no->get_x()>xmax) xmax=no->get_x();
|
26 |
|
|
if (no->get_y()>ymax) ymax=no->get_y();
|
27 |
|
|
if (no->get_z()>zmax) zmax=no->get_z();
|
28 |
|
|
}
|
29 |
|
|
|
30 |
|
|
TPL_MAP_ENTITE<MG_NOEUD*> lstnoeud;
|
31 |
|
|
for (MG_NOEUD* no=mai->get_premier_noeud(it);no!=NULL;no=mai->get_suivant_noeud(it))
|
32 |
|
|
lstnoeud.ajouter(no);
|
33 |
|
|
|
34 |
|
|
TPL_OCTREE<MG_NOEUD*,MG_NOEUD*> octree;
|
35 |
|
|
octree.initialiser(&lstnoeud,1,xmin,ymin,zmin,xmax,ymax,zmax);
|
36 |
|
|
for (MG_NOEUD* no=mai->get_premier_noeud(it);no!=NULL;no=mai->get_suivant_noeud(it))
|
37 |
|
|
octree.inserer(no);
|
38 |
|
|
TPL_MAP_ENTITE<MG_NOEUD*> lst;
|
39 |
|
|
octree.rechercher(0.,0.,0.,10,lst);
|
40 |
|
|
|
41 |
|
|
LISTE_MG_SEGMENT::iterator it2;
|
42 |
|
|
TPL_OCTREE<MG_SEGMENT*,MG_NOEUD*> octree2;
|
43 |
|
|
octree2.initialiser(&octree);
|
44 |
|
|
for (MG_SEGMENT* seg=mai->get_premier_segment(it2);seg!=NULL;seg=mai->get_suivant_segment(it2))
|
45 |
|
|
octree2.inserer(seg);
|
46 |
|
|
TPL_MAP_ENTITE<MG_SEGMENT*> lst2;
|
47 |
|
|
octree2.rechercher(0.,0.,0.,10,lst2);
|
48 |
|
|
|
49 |
|
|
LISTE_MG_TRIANGLE::iterator it3;
|
50 |
|
|
TPL_OCTREE<MG_TRIANGLE*,MG_NOEUD*> octree3;
|
51 |
|
|
octree3.initialiser(&octree);
|
52 |
|
|
for (MG_TRIANGLE* tri=mai->get_premier_triangle(it3);tri!=NULL;tri=mai->get_suivant_triangle(it3))
|
53 |
|
|
octree3.inserer(tri);
|
54 |
|
|
TPL_MAP_ENTITE<MG_TRIANGLE*> lst3;
|
55 |
|
|
octree3.rechercher(0.,0.,0.,10,lst3);
|
56 |
|
|
|
57 |
|
|
LISTE_MG_TETRA::iterator it4;
|
58 |
|
|
TPL_OCTREE<MG_TETRA*,MG_NOEUD*> octree4;
|
59 |
|
|
octree4.initialiser(&octree);
|
60 |
|
|
for (MG_TETRA* tet=mai->get_premier_tetra(it4);tet!=NULL;tet=mai->get_suivant_tetra(it4))
|
61 |
|
|
octree4.inserer(tet);
|
62 |
|
|
TPL_MAP_ENTITE<MG_TETRA*> lst4;
|
63 |
|
|
octree4.rechercher(0.,0.,0.,10,lst4);
|
64 |
|
|
|
65 |
|
|
int nbnodeloc=lst.get_nb();
|
66 |
|
|
int nbsegloc=lst2.get_nb();
|
67 |
|
|
int nbtriloc=lst3.get_nb();
|
68 |
|
|
int nbtetraloc=lst4.get_nb();
|
69 |
|
|
printf("Localement %d nodes %d segments %d triangles %d tetra\n",nbnodeloc,nbsegloc,nbtriloc,nbtetraloc);
|
70 |
|
|
}
|