1 |
francois |
259 |
#ifndef _TOIBREP_ |
2 |
|
|
#define _TOIBREP_ |
3 |
francois |
104 |
|
4 |
|
|
|
5 |
|
|
|
6 |
|
|
#ifdef WINDOWS_VERSION |
7 |
francois |
259 |
#ifdef BUILT_DLL_TOIBREP |
8 |
|
|
#define DLLPORTTOIBREP __declspec(dllexport) |
9 |
francois |
104 |
#else |
10 |
francois |
259 |
#define DLLPORTTOIBREP __declspec(dllimport) |
11 |
francois |
104 |
#endif |
12 |
|
|
#else |
13 |
francois |
259 |
#define DLLPORTTOIBREP |
14 |
francois |
104 |
#endif |
15 |
|
|
|
16 |
|
|
#include <string> |
17 |
francois |
106 |
#include "tpl_octree.h" |
18 |
francois |
222 |
#include "mg_geometrie_outils.h" |
19 |
francois |
104 |
|
20 |
francois |
259 |
class DLLPORTTOIBREP TOIBREP |
21 |
francois |
104 |
{ |
22 |
|
|
public: |
23 |
francois |
259 |
TOIBREP(class MG_GESTIONNAIRE *g,class MG_GEOMETRIE *ge,class FEM_MAILLAGE* femm,int nbpas=50); |
24 |
|
|
~TOIBREP(); |
25 |
francois |
222 |
int estdansletetra(class FEM_TETRA *tet,double x,double y, double z); |
26 |
|
|
//void importer(std::string nomfichier,class MagXchange* data=NULL,std::string nomfichier2=""); |
27 |
francois |
259 |
void importer(std::string nomfichier,std::string nomfichieribrep,class MG_GROUPE_TOPOLOGIQUE* mggt=NULL); |
28 |
francois |
104 |
|
29 |
|
|
|
30 |
|
|
|
31 |
francois |
259 |
void exporter_IBrep(string chemin,class FEM_SOLUTION* solution,MG_GROUPE_TOPOLOGIQUE* mggt=NULL); |
32 |
|
|
|
33 |
|
|
|
34 |
francois |
104 |
private: |
35 |
francois |
222 |
typedef std::multimap<double,FEM_TETRA*,less<double> > LISTE_FM_TRI; |
36 |
|
|
typedef std::map<unsigned long,LISTE_FM_TRI::iterator,less<unsigned long> > LISTE_FM_TRI_ID; |
37 |
|
|
typedef std::vector<FEM_TETRA*> LISTE_FM; |
38 |
francois |
104 |
|
39 |
francois |
222 |
void ajouter_liste(LISTE_FM_TRI& lst,LISTE_FM_TRI_ID &lstid,FEM_TETRA* tet,double val); |
40 |
|
|
void supprimer_liste(LISTE_FM_TRI& lst,LISTE_FM_TRI_ID &lstid,FEM_TETRA* tet); |
41 |
|
|
void ajouter_liste(LISTE_FM& lst,FEM_TETRA* tet); |
42 |
|
|
void supprimer_liste(LISTE_FM& lst,FEM_TETRA* tet); |
43 |
francois |
104 |
|
44 |
francois |
259 |
double calcul_distance(class FEM_NOEUD* noeud,class MG_ARETE* are,class TOIBREP_POINT *pt,double precision=1e-6); |
45 |
|
|
double calcul_distance(FEM_NOEUD* noeud,class MG_FACE* are,TOIBREP_POINT* pt,double precision=1e-6); |
46 |
francois |
222 |
double calculdist(double *n,double x,double y,double z,class FEM_NOEUD* noeud); |
47 |
|
|
void levelset0(class FEM_SOLUTION* solution,int numsol); |
48 |
|
|
void levelsetn(TPL_MAP_ENTITE<class MG_ELEMENT_TOPOLOGIQUE*> *lst,vector<MG_FACE*> *lstface,class FEM_SOLUTION* solution,int numsol); |
49 |
francois |
259 |
void calcullevelsetpremierepasse(FEM_SOLUTION *solution,int numsol,MG_FACE* face,int sens,vector<TOIBREP_POINT*> *lst,int n1,int n2); |
50 |
|
|
void calcullevelsetdeuxiemepasse(FEM_SOLUTION *solution,int numsol,vector<TOIBREP_POINT*> *lst); |
51 |
francois |
222 |
void etendrelevelset(FEM_SOLUTION* sol,int numsol); |
52 |
|
|
double resoudgradT(FEM_TETRA* tet,int *signe); |
53 |
|
|
TPL_OCTREE<class FEM_TETRA*,class FEM_NOEUD*> octree; |
54 |
|
|
MG_GEOMETRIE_OUTILS ot; |
55 |
|
|
MG_GEOMETRIE* geo; |
56 |
|
|
FEM_MAILLAGE* mai; |
57 |
|
|
MG_GESTIONNAIRE* gest; |
58 |
|
|
int NPAS; |
59 |
francois |
104 |
}; |
60 |
|
|
|
61 |
|
|
|
62 |
|
|
|
63 |
|
|
|
64 |
|
|
|
65 |
|
|
|
66 |
|
|
#endif |