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 |
|
|
|
47 |
|
|
class MG_CG_MODELE; |
48 |
|
|
class MG_CG_ASSEMBLAGE; |
49 |
|
|
|
50 |
|
|
class MG_ARETE; |
51 |
|
|
class MG_VOLUME; |
52 |
|
|
|
53 |
|
|
class MG_ELEMENT_TOPOLOGIQUE; |
54 |
|
|
class MG_ELEMENT_COTOPOLOGIQUE; |
55 |
|
|
|
56 |
|
|
class DLLPORTGEOMETRIE MG_CG |
57 |
|
|
{ |
58 |
|
|
public: |
59 |
|
|
//creer_MG_CG_MODELE |
60 |
|
|
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); |
61 |
|
|
static MG_CG_MODELE* creer_MG_CG_MODELE(MG_GESTIONNAIRE* mg_gestionnaire,std::string nom_mgcg_modele,MG_GEOMETRIE* mg_geometrie); |
62 |
|
|
static MG_CG_MODELE* creer_MG_CG_MODELE(MG_GESTIONNAIRE* mg_gestionnaire,std::string nom_mgcg_modele,MG_GEOMETRIE* mg_geometrie,unsigned long num); |
63 |
|
|
|
64 |
|
|
static MG_CG_ASSEMBLAGE* creer_MG_CG_ASSEMBLAGE(MG_CG_MODELE* mgcg_modele,std::string nom_mgcg_assemblage); |
65 |
|
|
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); |
66 |
|
|
|
67 |
|
|
//creer_MG_CG_FORME_ARETE |
68 |
|
|
static MG_CG_FORME_ARETE* creer_MG_CG_FORME_ARETE(int provenance,MG_ARETE* mg_arete); |
69 |
|
|
static MG_CG_FORME_ARETE* creer_MG_CG_FORME_ARETE(int provenance,int etat, unsigned long num,MG_ARETE* mg_arete); |
70 |
|
|
static MG_CG_FORME_ARETE_DROITE* creer_MG_CG_FORME_ARETE_DROITE(double x1,double y1,double z1,double x2,double y2,double z2); |
71 |
|
|
static MG_CG_FORME_ARETE_DROITE* creer_MG_CG_FORME_ARETE_DROITE(int etat,unsigned long num,MG_ARETE* mg_arete,double x1,double y1,double z1,double x2,double y2,double z2); |
72 |
|
|
|
73 |
|
|
//creer_MG_CG_FORME_VOLUME |
74 |
|
|
static MG_CG_FORME_VOLUME* creer_MG_CG_FORME_VOLUME(int provenance,MG_VOLUME* mg_volume); |
75 |
|
|
static MG_CG_FORME_VOLUME* creer_MG_CG_FORME_VOLUME(int provenance,int etat, unsigned long num,MG_VOLUME* mg_volume); |
76 |
|
|
static MG_CG_FORME_VOLUME_BOITE* creer_MG_CG_FORME_VOLUME_BOITE(double x1,double y1,double z1,double x2,double y2,double z2); |
77 |
|
|
static MG_CG_FORME_VOLUME_BOITE* creer_MG_CG_FORME_VOLUME_BOITE(int etat,unsigned long num,MG_VOLUME* mg_volume,double x1,double y1,double z1,double x2,double y2,double z2); |
78 |
|
|
static MG_CG_FORME_VOLUME_SPHERE* creer_MG_CG_FORME_VOLUME_SPHERE(double centre_x,double centre_y,double centre_z,double rayon); |
79 |
|
|
static MG_CG_FORME_VOLUME_SPHERE* creer_MG_CG_FORME_VOLUME_SPHERE(int etat,unsigned long num,MG_VOLUME* mg_volume,double centre_x,double centre_y,double centre_z,double rayon); |
80 |
|
|
static MG_CG_FORME_VOLUME_ELLIPSOIDE* creer_MG_CG_FORME_VOLUME_ELLIPSOIDE(double centre_x,double centre_y,double centre_z,double direction_x,double direction_y,double direction_z,double rayon_majeur, double rayon_mineur); |
81 |
|
|
static MG_CG_FORME_VOLUME_ELLIPSOIDE* creer_MG_CG_FORME_VOLUME_ELLIPSOIDE(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); |
82 |
|
|
static MG_CG_FORME_VOLUME_CYLINDRE* creer_MG_CG_FORME_VOLUME_CYLINDRE(double extremite_x,double extremite_y,double extremite_z,double direction_x,double direction_y,double direction_z,double rayon,double longueur); |
83 |
|
|
static MG_CG_FORME_VOLUME_CYLINDRE* creer_MG_CG_FORME_VOLUME_CYLINDRE(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); |
84 |
|
|
static MG_CG_FORME_VOLUME_CONE* creer_MG_CG_FORME_VOLUME_CONE(double extremite_x,double extremite_y,double extremite_z,double direction_x,double direction_y,double direction_z,double rayon,double longueur); |
85 |
|
|
static MG_CG_FORME_VOLUME_CONE* creer_MG_CG_FORME_VOLUME_CONE(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); |
86 |
|
|
static MG_CG_FORME_VOLUME_TORE* creer_MG_CG_FORME_VOLUME_TORE(double centre_x,double centre_y,double centre_z,double direction_x,double direction_y,double direction_z,double rayon_cercle,double rayon_tore); |
87 |
|
|
static MG_CG_FORME_VOLUME_TORE* creer_MG_CG_FORME_VOLUME_TORE(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); |
88 |
|
|
|
89 |
|
|
//creer_MG_CG_FORME_MULTI_VOLUME |
90 |
|
|
static MG_CG_FORME_MULTI_VOLUME* creer_MG_CG_FORME_MULTI_VOLUME(int provenance,std::vector<MG_VOLUME*> &vector_mg_volume); |
91 |
|
|
static MG_CG_FORME_MULTI_VOLUME* creer_MG_CG_FORME_MULTI_VOLUME(int provenance,int etat, unsigned long num,std::vector<MG_VOLUME*> &vector_mg_volume); |
92 |
|
|
|
93 |
|
|
//creer_MG_CG_FORME_MULTIPLE |
94 |
|
|
static MG_CG_FORME_MULTIPLE* creer_MG_CG_FORME_MULTIPLE(int provenance,std::vector<MG_ELEMENT_TOPOLOGIQUE*> &vector_mg_element_topologique,std::vector<MG_ELEMENT_COTOPOLOGIQUE*> &vector_mg_element_cotopologique); |
95 |
|
|
static MG_CG_FORME_MULTIPLE* creer_MG_CG_FORME_MULTIPLE(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); |
96 |
|
|
|
97 |
|
|
//creer_MG_CG_OPERATEUR |
98 |
|
|
static MG_CG_OP_BOOL_UNION* creer_MG_CG_OP_BOOL_UNION(int semantique,MG_CG_FORME* mgcg_forme_entree_1,MG_CG_FORME* mgcg_forme_entree_2); |
99 |
|
|
static MG_CG_OP_BOOL_UNION* creer_MG_CG_OP_BOOL_UNION(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); |
100 |
|
|
static MG_CG_OP_BOOL_DIFFERENCE* creer_MG_CG_OP_BOOL_DIFFERENCE(int semantique,MG_CG_FORME* mgcg_forme_entree_1,MG_CG_FORME* mgcg_forme_entree_2); |
101 |
|
|
static MG_CG_OP_BOOL_DIFFERENCE* creer_MG_CG_OP_BOOL_DIFFERENCE(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); |
102 |
|
|
static MG_CG_OP_BOOL_INTERSECTION* creer_MG_CG_OP_BOOL_INTERSECTION(int semantique,MG_CG_FORME* mgcg_forme_entree_1,MG_CG_FORME* mgcg_forme_entree_2); |
103 |
|
|
static MG_CG_OP_BOOL_INTERSECTION* creer_MG_CG_OP_BOOL_INTERSECTION(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); |
104 |
|
|
static MG_CG_OP_BOOL_FRAGMENT* creer_MG_CG_OP_BOOL_FRAGMENT(int semantique,MG_CG_FORME* mgcg_forme_entree_1,MG_CG_FORME* mgcg_forme_entree_2); |
105 |
|
|
static MG_CG_OP_BOOL_FRAGMENT* creer_MG_CG_OP_BOOL_FRAGMENT(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); |
106 |
|
|
static MG_CG_OP_INCLUSION_MATRICE* creer_MG_CG_OP_INCLUSION_MATRICE(int semantique,MG_CG_FORME* mgcg_forme_inclusion_entree,MG_CG_FORME* mgcg_forme_matrice_entree); |
107 |
|
|
static MG_CG_OP_INCLUSION_MATRICE* creer_MG_CG_OP_INCLUSION_MATRICE(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); |
108 |
|
|
static MG_CG_OP_TRANSF_ROTATION* creer_MG_CG_OP_TRANSF_ROTATION(int semantique,MG_CG_FORME* mgcg_forme_entree); |
109 |
|
|
static MG_CG_OP_TRANSF_ROTATION* creer_MG_CG_OP_TRANSF_ROTATION(int semantique,int etat,unsigned long num,MG_CG_FORME* mgcg_forme_entree,long id_mgcg_forme_sortie); |
110 |
|
|
static MG_CG_OP_TRANSF_TRANSLATION* creer_MG_CG_OP_TRANSF_TRANSLATION(int semantique,MG_CG_FORME* mgcg_forme_entree); |
111 |
|
|
static MG_CG_OP_TRANSF_TRANSLATION* creer_MG_CG_OP_TRANSF_TRANSLATION(int semantique,int etat,unsigned long num,MG_CG_FORME* mgcg_forme_entree,long id_mgcg_forme_sortie); |
112 |
|
|
static MG_CG_OP_TRANSF_ECHELLE* creer_MG_CG_OP_TRANSF_ECHELLE(int semantique,MG_CG_FORME* mgcg_forme_entree); |
113 |
|
|
static MG_CG_OP_TRANSF_ECHELLE* creer_MG_CG_OP_TRANSF_ECHELLE(int semantique,int etat,unsigned long num,MG_CG_FORME* mgcg_forme_entree,long id_mgcg_forme_sortie); |
114 |
|
|
|
115 |
|
|
static int exporter_fichier_brep(char *nom,MG_CG_MODELE* mgcg_modele); |
116 |
|
|
static int exporter_fichier_brep(char *nom,MG_CG_ASSEMBLAGE* mgcg_assemblage); |
117 |
|
|
protected: |
118 |
|
|
|
119 |
|
|
|
120 |
|
|
}; |
121 |
|
|
|
122 |
|
|
|
123 |
|
|
#endif |