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 |