ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mtu/src/mg_cg.h
Revision: 1092
Committed: Mon Feb 7 21:46:53 2022 UTC (3 years, 3 months ago) by ghazal
Content type: text/plain
Original Path: magic/lib/geometrie/src/mg_cg.h
File size: 12025 byte(s)
Log Message:
Ajout du tore dans la génération RSA des microstrucutures

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 ghazal 1092 #include <math.h>
17 couturad 907
18     class MG_GEOMETRIE;
19     class MG_SOUS_GEOMETRIE;
20     class MG_GESTIONNAIRE;
21    
22     class MG_CG_FORME;
23     class MG_CG_FORME_ARETE;
24     class MG_CG_FORME_ARETE_DROITE;
25    
26     class MG_CG_FORME_VOLUME;
27     class MG_CG_FORME_VOLUME_BOITE;
28     class MG_CG_FORME_VOLUME_SPHERE;
29     class MG_CG_FORME_VOLUME_ELLIPSOIDE;
30     class MG_CG_FORME_VOLUME_CYLINDRE;
31     class MG_CG_FORME_VOLUME_CONE;
32     class MG_CG_FORME_VOLUME_TORE;
33    
34    
35     class MG_CG_FORME_MULTIPLE;
36     class MG_CG_FORME_MULTI_VOLUME;
37    
38     class MG_CG_OPERATEUR;
39     class MG_CG_OP_BOOL_UNION;
40     class MG_CG_OP_BOOL_DIFFERENCE;
41     class MG_CG_OP_BOOL_INTERSECTION;
42     class MG_CG_OP_BOOL_FRAGMENT;
43     class MG_CG_OP_INCLUSION_MATRICE;
44     class MG_CG_OP_TRANSF_ROTATION;
45     class MG_CG_OP_TRANSF_TRANSLATION;
46     class MG_CG_OP_TRANSF_ECHELLE;
47 couturad 951 class MG_CG_OP_TRANSF_DECALLAGE;
48 couturad 907
49     class MG_CG_MODELE;
50     class MG_CG_ASSEMBLAGE;
51 couturad 926 class MG_CG_GROUPE_FORME;
52 couturad 907
53 couturad 926 class MG_CG_INFO_DOUBLE;
54     class MG_CG_INFO_VCT_DOUBLE;
55     class MG_CG_INFO_STRING;
56    
57 couturad 907 class MG_ARETE;
58     class MG_VOLUME;
59    
60     class MG_ELEMENT_TOPOLOGIQUE;
61     class MG_ELEMENT_COTOPOLOGIQUE;
62    
63 couturad 926 class MG_CONSTRUCTION_GEOMETRIQUE;
64    
65 couturad 907 class DLLPORTGEOMETRIE MG_CG
66     {
67     public:
68     //creer_MG_CG_MODELE
69     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);
70     static MG_CG_MODELE* creer_MG_CG_MODELE(MG_GESTIONNAIRE* mg_gestionnaire,std::string nom_mgcg_modele,MG_GEOMETRIE* mg_geometrie);
71     static MG_CG_MODELE* creer_MG_CG_MODELE(MG_GESTIONNAIRE* mg_gestionnaire,std::string nom_mgcg_modele,MG_GEOMETRIE* mg_geometrie,unsigned long num);
72    
73     static MG_CG_ASSEMBLAGE* creer_MG_CG_ASSEMBLAGE(MG_CG_MODELE* mgcg_modele,std::string nom_mgcg_assemblage);
74     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);
75    
76 couturad 926 static MG_CG_GROUPE_FORME* creer_MG_CG_GROUPE_FORME(MG_CG_MODELE* mgcg_modele,std::string nom);
77     static MG_CG_GROUPE_FORME* creer_MG_CG_GROUPE_FORME(MG_CG_MODELE* mgcg_modele,unsigned long num,std::string nom);
78    
79     static MG_CG_INFO_STRING* creer_MG_CG_INFO_STRING(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,std::string identifiant,std::string valeur);
80     static MG_CG_INFO_STRING* creer_MG_CG_INFO_STRING(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,long num,std::string identifiant,std::string valeur);
81     static MG_CG_INFO_DOUBLE* creer_MG_CG_INFO_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,std::string identifiant,double valeur);
82     static MG_CG_INFO_DOUBLE* creer_MG_CG_INFO_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,long num,std::string identifiant,double valeur);
83     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);
84     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);
85     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);
86     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);
87    
88 couturad 907 //creer_MG_CG_FORME_ARETE
89 couturad 911 static MG_CG_FORME_ARETE* creer_MG_CG_FORME_ARETE(MG_CG_MODELE* mgcg_modele,int provenance,MG_ARETE* mg_arete);
90     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);
91     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);
92     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);
93 couturad 907
94     //creer_MG_CG_FORME_VOLUME
95 couturad 911 static MG_CG_FORME_VOLUME* creer_MG_CG_FORME_VOLUME(MG_CG_MODELE* mgcg_modele,int provenance,MG_VOLUME* mg_volume);
96     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);
97     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);
98     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);
99     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);
100     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);
101     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);
102     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);
103     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);
104     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);
105     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);
106     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);
107 ghazal 1092 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,double angle_seg=2*M_PI,double angle_rotation=0.0);
108     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,double angle_seg=2*M_PI,double angle_rotation=0.0);
109 couturad 907
110     //creer_MG_CG_FORME_MULTI_VOLUME
111 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);
112     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);
113 couturad 907
114     //creer_MG_CG_FORME_MULTIPLE
115 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);
116     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);
117 couturad 907
118     //creer_MG_CG_OPERATEUR
119 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);
120     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);
121     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);
122     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);
123     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);
124     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);
125     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);
126     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);
127     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);
128     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);
129     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);
130     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);
131     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);
132     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);
133     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);
134     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);
135 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);
136     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);
137 couturad 907
138     static int exporter_fichier_brep(char *nom,MG_CG_MODELE* mgcg_modele);
139     static int exporter_fichier_brep(char *nom,MG_CG_ASSEMBLAGE* mgcg_assemblage);
140     protected:
141    
142    
143     };
144    
145    
146 couturad 951 #endif