1 |
francois |
104 |
#ifndef _TOXFEM_ |
2 |
|
|
#define _TOXFEM_ |
3 |
|
|
|
4 |
|
|
|
5 |
|
|
|
6 |
|
|
#ifdef WINDOWS_VERSION |
7 |
|
|
#ifdef BUILT_DLL_TOXFEM |
8 |
|
|
#define DLLPORTTOXFEM __declspec(dllexport) |
9 |
|
|
#else |
10 |
|
|
#define DLLPORTTOXFEM __declspec(dllimport) |
11 |
|
|
#endif |
12 |
|
|
#else |
13 |
|
|
#define DLLPORTTOXFEM |
14 |
|
|
#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 |
106 |
class DLLPORTTOXFEM TOXFEM |
21 |
francois |
104 |
{ |
22 |
|
|
public: |
23 |
francois |
222 |
TOXFEM(class MG_GESTIONNAIRE *g,class MG_GEOMETRIE *ge,class FEM_MAILLAGE* femm,int nbpas=50); |
24 |
francois |
106 |
~TOXFEM(); |
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 |
254 |
void importer(std::string nomfichier,class MG_GROUPE_TOPOLOGIQUE* mggt=NULL); |
28 |
francois |
104 |
|
29 |
|
|
|
30 |
|
|
|
31 |
|
|
private: |
32 |
francois |
222 |
typedef std::multimap<double,FEM_TETRA*,less<double> > LISTE_FM_TRI; |
33 |
|
|
typedef std::map<unsigned long,LISTE_FM_TRI::iterator,less<unsigned long> > LISTE_FM_TRI_ID; |
34 |
|
|
typedef std::vector<FEM_TETRA*> LISTE_FM; |
35 |
francois |
104 |
|
36 |
francois |
222 |
void ajouter_liste(LISTE_FM_TRI& lst,LISTE_FM_TRI_ID &lstid,FEM_TETRA* tet,double val); |
37 |
|
|
void supprimer_liste(LISTE_FM_TRI& lst,LISTE_FM_TRI_ID &lstid,FEM_TETRA* tet); |
38 |
|
|
void ajouter_liste(LISTE_FM& lst,FEM_TETRA* tet); |
39 |
|
|
void supprimer_liste(LISTE_FM& lst,FEM_TETRA* tet); |
40 |
francois |
104 |
|
41 |
francois |
222 |
double calcul_distance(class FEM_NOEUD* noeud,class MG_ARETE* are,class TOXFEM_POINT *pt,double precision=1e-6); |
42 |
|
|
double calcul_distance(FEM_NOEUD* noeud,class MG_FACE* are,TOXFEM_POINT* pt,double precision=1e-6); |
43 |
|
|
double calculdist(double *n,double x,double y,double z,class FEM_NOEUD* noeud); |
44 |
|
|
void levelset0(class FEM_SOLUTION* solution,int numsol); |
45 |
|
|
void levelsetn(TPL_MAP_ENTITE<class MG_ELEMENT_TOPOLOGIQUE*> *lst,vector<MG_FACE*> *lstface,class FEM_SOLUTION* solution,int numsol); |
46 |
|
|
void calcullevelsetpremierepasse(FEM_SOLUTION *solution,int numsol,MG_FACE* face,int sens,vector<TOXFEM_POINT*> *lst,int n1,int n2); |
47 |
|
|
void calcullevelsetdeuxiemepasse(FEM_SOLUTION *solution,int numsol,vector<TOXFEM_POINT*> *lst); |
48 |
|
|
void etendrelevelset(FEM_SOLUTION* sol,int numsol); |
49 |
|
|
double resoudgradT(FEM_TETRA* tet,int *signe); |
50 |
|
|
TPL_OCTREE<class FEM_TETRA*,class FEM_NOEUD*> octree; |
51 |
|
|
MG_GEOMETRIE_OUTILS ot; |
52 |
|
|
MG_GEOMETRIE* geo; |
53 |
|
|
FEM_MAILLAGE* mai; |
54 |
|
|
MG_GESTIONNAIRE* gest; |
55 |
|
|
int NPAS; |
56 |
francois |
104 |
}; |
57 |
|
|
|
58 |
|
|
|
59 |
|
|
|
60 |
|
|
|
61 |
|
|
|
62 |
|
|
|
63 |
|
|
#endif |