| 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 |