ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/mg_cg.h
Revision: 951
Committed: Fri Aug 10 15:17:17 2018 UTC (6 years, 9 months ago) by couturad
Content type: text/plain
File size: 11907 byte(s)
Log Message:
-> Ajout de Project Chrono (voir CMakeLists.txt).
-> Ajout d'un générateur de microstructure basé sur la dynamique des corps rigides (MSTRUCT_GENERATEUR_DCR).
-> Ajout d'un opérateur de décallage de la topologie (MG_CG_OP_TRANSF_DECALLAGE).
-> Retrait de «using namespace std»  (conflit avec namespace chrono) et modification des fichiers affectés.
-> Modification de mailleur2d.cpp afin d'enregistrer un fichier MAGiC (void.magic) lorsque le nombre d'itération dépasse la valeur maximale.

File Contents

# User Rev Content
1 couturad 907 #ifndef _MG_CG_
2     #define _MG_CG_
3    
4     #ifdef WINDOWS_VERSION
5     #ifdef BUILT_DLL_GEOMETRIE
6     #define DLLPORTGEOMETRIE __declspec(dllexport)
7     #else
8     #define DLLPORTGEOMETRIE __declspec(dllimport)
9     #endif
10     #else
11     #define DLLPORTGEOMETRIE
12     #endif
13    
14     #include <map>
15     #include <vector>
16    
17     class MG_GEOMETRIE;
18     class MG_SOUS_GEOMETRIE;
19     class MG_GESTIONNAIRE;
20    
21     class MG_CG_FORME;
22     class MG_CG_FORME_ARETE;
23     class MG_CG_FORME_ARETE_DROITE;
24    
25     class MG_CG_FORME_VOLUME;
26     class MG_CG_FORME_VOLUME_BOITE;
27     class MG_CG_FORME_VOLUME_SPHERE;
28     class MG_CG_FORME_VOLUME_ELLIPSOIDE;
29     class MG_CG_FORME_VOLUME_CYLINDRE;
30     class MG_CG_FORME_VOLUME_CONE;
31     class MG_CG_FORME_VOLUME_TORE;
32    
33    
34     class MG_CG_FORME_MULTIPLE;
35     class MG_CG_FORME_MULTI_VOLUME;
36    
37     class MG_CG_OPERATEUR;
38     class MG_CG_OP_BOOL_UNION;
39     class MG_CG_OP_BOOL_DIFFERENCE;
40     class MG_CG_OP_BOOL_INTERSECTION;
41     class MG_CG_OP_BOOL_FRAGMENT;
42     class MG_CG_OP_INCLUSION_MATRICE;
43     class MG_CG_OP_TRANSF_ROTATION;
44     class MG_CG_OP_TRANSF_TRANSLATION;
45     class MG_CG_OP_TRANSF_ECHELLE;
46 couturad 951 class MG_CG_OP_TRANSF_DECALLAGE;
47 couturad 907
48     class MG_CG_MODELE;
49     class MG_CG_ASSEMBLAGE;
50 couturad 926 class MG_CG_GROUPE_FORME;
51 couturad 907
52 couturad 926 class MG_CG_INFO_DOUBLE;
53     class MG_CG_INFO_VCT_DOUBLE;
54     class MG_CG_INFO_STRING;
55    
56 couturad 907 class MG_ARETE;
57     class MG_VOLUME;
58    
59     class MG_ELEMENT_TOPOLOGIQUE;
60     class MG_ELEMENT_COTOPOLOGIQUE;
61    
62 couturad 926 class MG_CONSTRUCTION_GEOMETRIQUE;
63    
64 couturad 907 class DLLPORTGEOMETRIE MG_CG
65     {
66     public:
67     //creer_MG_CG_MODELE
68     static MG_CG_MODELE* creer_MG_CG_MODELE(MG_GESTIONNAIRE* mg_gestionnaire,std::string nom_mgcg_modele,double unite=1.0,double eps=1e-6);
69     static MG_CG_MODELE* creer_MG_CG_MODELE(MG_GESTIONNAIRE* mg_gestionnaire,std::string nom_mgcg_modele,MG_GEOMETRIE* mg_geometrie);
70     static MG_CG_MODELE* creer_MG_CG_MODELE(MG_GESTIONNAIRE* mg_gestionnaire,std::string nom_mgcg_modele,MG_GEOMETRIE* mg_geometrie,unsigned long num);
71    
72     static MG_CG_ASSEMBLAGE* creer_MG_CG_ASSEMBLAGE(MG_CG_MODELE* mgcg_modele,std::string nom_mgcg_assemblage);
73     static MG_CG_ASSEMBLAGE* creer_MG_CG_ASSEMBLAGE(MG_CG_MODELE* mgcg_modele,unsigned long num,std::string nom_mgcg_assemblage,MG_SOUS_GEOMETRIE *mg_sous_geometrie);
74    
75 couturad 926 static MG_CG_GROUPE_FORME* creer_MG_CG_GROUPE_FORME(MG_CG_MODELE* mgcg_modele,std::string nom);
76     static MG_CG_GROUPE_FORME* creer_MG_CG_GROUPE_FORME(MG_CG_MODELE* mgcg_modele,unsigned long num,std::string nom);
77    
78     static MG_CG_INFO_STRING* creer_MG_CG_INFO_STRING(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,std::string identifiant,std::string valeur);
79     static MG_CG_INFO_STRING* creer_MG_CG_INFO_STRING(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,long num,std::string identifiant,std::string valeur);
80     static MG_CG_INFO_DOUBLE* creer_MG_CG_INFO_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,std::string identifiant,double valeur);
81     static MG_CG_INFO_DOUBLE* creer_MG_CG_INFO_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,long num,std::string identifiant,double valeur);
82     static MG_CG_INFO_VCT_DOUBLE* creer_MG_CG_INFO_VCT_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,std::string identifiant,std::vector<double> &valeur);
83     static MG_CG_INFO_VCT_DOUBLE* creer_MG_CG_INFO_VCT_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,long num,std::string identifiant,std::vector<double> &valeur);
84     static MG_CG_INFO_VCT_DOUBLE* creer_MG_CG_INFO_VCT_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,std::string identifiant,long nb,double* tab);
85     static MG_CG_INFO_VCT_DOUBLE* creer_MG_CG_INFO_VCT_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,long num,std::string identifiant,long nb,double* tab);
86    
87 couturad 907 //creer_MG_CG_FORME_ARETE
88 couturad 911 static MG_CG_FORME_ARETE* creer_MG_CG_FORME_ARETE(MG_CG_MODELE* mgcg_modele,int provenance,MG_ARETE* mg_arete);
89     static MG_CG_FORME_ARETE* creer_MG_CG_FORME_ARETE(MG_CG_MODELE* mgcg_modele,int provenance,int etat, unsigned long num,MG_ARETE* mg_arete);
90     static MG_CG_FORME_ARETE_DROITE* creer_MG_CG_FORME_ARETE_DROITE(MG_CG_MODELE* mgcg_modele,double x1,double y1,double z1,double x2,double y2,double z2);
91     static MG_CG_FORME_ARETE_DROITE* creer_MG_CG_FORME_ARETE_DROITE(MG_CG_MODELE* mgcg_modele,int etat,unsigned long num,MG_ARETE* mg_arete,double x1,double y1,double z1,double x2,double y2,double z2);
92 couturad 907
93     //creer_MG_CG_FORME_VOLUME
94 couturad 911 static MG_CG_FORME_VOLUME* creer_MG_CG_FORME_VOLUME(MG_CG_MODELE* mgcg_modele,int provenance,MG_VOLUME* mg_volume);
95     static MG_CG_FORME_VOLUME* creer_MG_CG_FORME_VOLUME(MG_CG_MODELE* mgcg_modele,int provenance,int etat, unsigned long num,MG_VOLUME* mg_volume);
96     static MG_CG_FORME_VOLUME_BOITE* creer_MG_CG_FORME_VOLUME_BOITE(MG_CG_MODELE* mgcg_modele,double x1,double y1,double z1,double x2,double y2,double z2);
97     static MG_CG_FORME_VOLUME_BOITE* creer_MG_CG_FORME_VOLUME_BOITE(MG_CG_MODELE* mgcg_modele,int etat,unsigned long num,MG_VOLUME* mg_volume,double x1,double y1,double z1,double x2,double y2,double z2);
98     static MG_CG_FORME_VOLUME_SPHERE* creer_MG_CG_FORME_VOLUME_SPHERE(MG_CG_MODELE* mgcg_modele,double centre_x,double centre_y,double centre_z,double rayon);
99     static MG_CG_FORME_VOLUME_SPHERE* creer_MG_CG_FORME_VOLUME_SPHERE(MG_CG_MODELE* mgcg_modele,int etat,unsigned long num,MG_VOLUME* mg_volume,double centre_x,double centre_y,double centre_z,double rayon);
100     static MG_CG_FORME_VOLUME_ELLIPSOIDE* creer_MG_CG_FORME_VOLUME_ELLIPSOIDE(MG_CG_MODELE* mgcg_modele,double centre_x,double centre_y,double centre_z,double direction_x,double direction_y,double direction_z,double rayon_majeur, double rayon_mineur);
101     static MG_CG_FORME_VOLUME_ELLIPSOIDE* creer_MG_CG_FORME_VOLUME_ELLIPSOIDE(MG_CG_MODELE* mgcg_modele,int etat,unsigned long num,MG_VOLUME* mg_volume,double centre_x,double centre_y,double centre_z,double direction_x,double direction_y,double direction_z,double rayon_majeur, double rayon_mineur);
102     static MG_CG_FORME_VOLUME_CYLINDRE* creer_MG_CG_FORME_VOLUME_CYLINDRE(MG_CG_MODELE* mgcg_modele,double extremite_x,double extremite_y,double extremite_z,double direction_x,double direction_y,double direction_z,double rayon,double longueur);
103     static MG_CG_FORME_VOLUME_CYLINDRE* creer_MG_CG_FORME_VOLUME_CYLINDRE(MG_CG_MODELE* mgcg_modele,int etat,unsigned long num,MG_VOLUME* mg_volume,double extremite_x,double extremite_y,double extremite_z,double direction_x,double direction_y,double direction_z,double rayon,double longueur);
104     static MG_CG_FORME_VOLUME_CONE* creer_MG_CG_FORME_VOLUME_CONE(MG_CG_MODELE* mgcg_modele,double extremite_x,double extremite_y,double extremite_z,double direction_x,double direction_y,double direction_z,double rayon,double longueur);
105     static MG_CG_FORME_VOLUME_CONE* creer_MG_CG_FORME_VOLUME_CONE(MG_CG_MODELE* mgcg_modele,int etat,unsigned long num,MG_VOLUME* mg_volume,double extremite_x,double extremite_y,double extremite_z,double direction_x,double direction_y,double direction_z,double rayon,double longueur);
106     static MG_CG_FORME_VOLUME_TORE* creer_MG_CG_FORME_VOLUME_TORE(MG_CG_MODELE* mgcg_modele,double centre_x,double centre_y,double centre_z,double direction_x,double direction_y,double direction_z,double rayon_cercle,double rayon_tore);
107     static MG_CG_FORME_VOLUME_TORE* creer_MG_CG_FORME_VOLUME_TORE(MG_CG_MODELE* mgcg_modele,int etat,unsigned long num,MG_VOLUME* mg_volume,double centre_x,double centre_y,double centre_z,double direction_x,double direction_y,double direction_z,double rayon_cercle,double rayon_tore);
108 couturad 907
109     //creer_MG_CG_FORME_MULTI_VOLUME
110 couturad 911 static MG_CG_FORME_MULTI_VOLUME* creer_MG_CG_FORME_MULTI_VOLUME(MG_CG_MODELE* mgcg_modele,int provenance,std::vector<MG_VOLUME*> &vector_mg_volume);
111     static MG_CG_FORME_MULTI_VOLUME* creer_MG_CG_FORME_MULTI_VOLUME(MG_CG_MODELE* mgcg_modele,int provenance,int etat, unsigned long num,std::vector<MG_VOLUME*> &vector_mg_volume);
112 couturad 907
113     //creer_MG_CG_FORME_MULTIPLE
114 couturad 911 static MG_CG_FORME_MULTIPLE* creer_MG_CG_FORME_MULTIPLE(MG_CG_MODELE* mgcg_modele,int provenance,std::vector<MG_ELEMENT_TOPOLOGIQUE*> &vector_mg_element_topologique,std::vector<MG_ELEMENT_COTOPOLOGIQUE*> &vector_mg_element_cotopologique);
115     static MG_CG_FORME_MULTIPLE* creer_MG_CG_FORME_MULTIPLE(MG_CG_MODELE* mgcg_modele,int provenance,int etat,unsigned long num,std::vector<MG_ELEMENT_TOPOLOGIQUE*> &vector_mg_element_topologique,std::vector<MG_ELEMENT_COTOPOLOGIQUE*> &vector_mg_element_cotopologique);
116 couturad 907
117     //creer_MG_CG_OPERATEUR
118 couturad 911 static MG_CG_OP_BOOL_UNION* creer_MG_CG_OP_BOOL_UNION(MG_CG_MODELE* mgcg_modele,int semantique,MG_CG_FORME* mgcg_forme_entree_1,MG_CG_FORME* mgcg_forme_entree_2);
119     static MG_CG_OP_BOOL_UNION* creer_MG_CG_OP_BOOL_UNION(MG_CG_MODELE* mgcg_modele,int semantique,int etat,unsigned long num,MG_CG_FORME* mgcg_forme_entree_1,MG_CG_FORME* mgcg_forme_entree_2,long id_mgcg_forme_sortie);
120     static MG_CG_OP_BOOL_DIFFERENCE* creer_MG_CG_OP_BOOL_DIFFERENCE(MG_CG_MODELE* mgcg_modele,int semantique,MG_CG_FORME* mgcg_forme_entree_1,MG_CG_FORME* mgcg_forme_entree_2);
121     static MG_CG_OP_BOOL_DIFFERENCE* creer_MG_CG_OP_BOOL_DIFFERENCE(MG_CG_MODELE* mgcg_modele,int semantique,int etat,unsigned long num,MG_CG_FORME* mgcg_forme_entree_1,MG_CG_FORME* mgcg_forme_entree_2,long id_mgcg_forme_sortie);
122     static MG_CG_OP_BOOL_INTERSECTION* creer_MG_CG_OP_BOOL_INTERSECTION(MG_CG_MODELE* mgcg_modele,int semantique,MG_CG_FORME* mgcg_forme_entree_1,MG_CG_FORME* mgcg_forme_entree_2);
123     static MG_CG_OP_BOOL_INTERSECTION* creer_MG_CG_OP_BOOL_INTERSECTION(MG_CG_MODELE* mgcg_modele,int semantique,int etat,unsigned long num,MG_CG_FORME* mgcg_forme_entree_1,MG_CG_FORME* mgcg_forme_entree_2,long id_mgcg_forme_sortie);
124     static MG_CG_OP_BOOL_FRAGMENT* creer_MG_CG_OP_BOOL_FRAGMENT(MG_CG_MODELE* mgcg_modele,int semantique,MG_CG_FORME* mgcg_forme_entree_1,MG_CG_FORME* mgcg_forme_entree_2);
125     static MG_CG_OP_BOOL_FRAGMENT* creer_MG_CG_OP_BOOL_FRAGMENT(MG_CG_MODELE* mgcg_modele,int semantique,int etat,unsigned long num,MG_CG_FORME* mgcg_forme_entree_1,MG_CG_FORME* mgcg_forme_entree_2,long id_mgcg_forme_sortie);
126     static MG_CG_OP_INCLUSION_MATRICE* creer_MG_CG_OP_INCLUSION_MATRICE(MG_CG_MODELE* mgcg_modele,int semantique,MG_CG_FORME* mgcg_forme_inclusion_entree,MG_CG_FORME* mgcg_forme_matrice_entree);
127     static MG_CG_OP_INCLUSION_MATRICE* creer_MG_CG_OP_INCLUSION_MATRICE(MG_CG_MODELE* mgcg_modele,int semantique,int etat,unsigned long num,MG_CG_FORME* mgcg_forme_inclusion_entree,MG_CG_FORME* mgcg_forme_matrice_entree,long id_mgcg_forme_inclusion_sortie,long id_mgcg_forme_matrice_sortie);
128     static MG_CG_OP_TRANSF_ROTATION* creer_MG_CG_OP_TRANSF_ROTATION(MG_CG_MODELE* mgcg_modele,int semantique,MG_CG_FORME* mgcg_forme_entree);
129     static MG_CG_OP_TRANSF_ROTATION* creer_MG_CG_OP_TRANSF_ROTATION(MG_CG_MODELE* mgcg_modele,int semantique,int etat,unsigned long num,MG_CG_FORME* mgcg_forme_entree,long id_mgcg_forme_sortie);
130     static MG_CG_OP_TRANSF_TRANSLATION* creer_MG_CG_OP_TRANSF_TRANSLATION(MG_CG_MODELE* mgcg_modele,int semantique,MG_CG_FORME* mgcg_forme_entree);
131     static MG_CG_OP_TRANSF_TRANSLATION* creer_MG_CG_OP_TRANSF_TRANSLATION(MG_CG_MODELE* mgcg_modele,int semantique,int etat,unsigned long num,MG_CG_FORME* mgcg_forme_entree,long id_mgcg_forme_sortie);
132     static MG_CG_OP_TRANSF_ECHELLE* creer_MG_CG_OP_TRANSF_ECHELLE(MG_CG_MODELE* mgcg_modele,int semantique,MG_CG_FORME* mgcg_forme_entree);
133     static MG_CG_OP_TRANSF_ECHELLE* creer_MG_CG_OP_TRANSF_ECHELLE(MG_CG_MODELE* mgcg_modele,int semantique,int etat,unsigned long num,MG_CG_FORME* mgcg_forme_entree,long id_mgcg_forme_sortie);
134 couturad 951 static MG_CG_OP_TRANSF_DECALLAGE* creer_MG_CG_OP_TRANSF_DECALLAGE(MG_CG_MODELE* mgcg_modele,int semantique,MG_CG_FORME* mgcg_forme_entree);
135     static MG_CG_OP_TRANSF_DECALLAGE* creer_MG_CG_OP_TRANSF_DECALLAGE(MG_CG_MODELE* mgcg_modele,int semantique,int etat,unsigned long num,MG_CG_FORME* mgcg_forme_entree,long id_mgcg_forme_sortie);
136 couturad 907
137     static int exporter_fichier_brep(char *nom,MG_CG_MODELE* mgcg_modele);
138     static int exporter_fichier_brep(char *nom,MG_CG_ASSEMBLAGE* mgcg_assemblage);
139     protected:
140    
141    
142     };
143    
144    
145 couturad 951 #endif