ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mtu/src/mg_cg.h
Revision: 1158
Committed: Thu Jun 13 22:18:49 2024 UTC (11 months, 1 week ago) by francois
Content type: text/plain
File size: 12900 byte(s)
Log Message:
compatibilité Ubuntu 22.04
Suppression des refeences à Windows
Ajout d'une banière

File Contents

# User Rev Content
1 francois 1158 //####//------------------------------------------------------------
2     //####//------------------------------------------------------------
3     //####// MAGiC
4     //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5     //####// Departement de Genie Mecanique - UQTR
6     //####//------------------------------------------------------------
7     //####// MAGIC est un projet de recherche de l equipe ERICCA
8     //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9     //####// http://www.uqtr.ca/ericca
10     //####// http://www.uqtr.ca/
11     //####//------------------------------------------------------------
12     //####//------------------------------------------------------------
13     //####//
14     //####// mg_cg.h
15     //####//
16     //####//------------------------------------------------------------
17     //####//------------------------------------------------------------
18     //####// COPYRIGHT 2000-2024
19     //####// jeu 13 jun 2024 11:58:53 EDT
20     //####//------------------------------------------------------------
21     //####//------------------------------------------------------------
22 couturad 907 #ifndef _MG_CG_
23     #define _MG_CG_
24    
25    
26 francois 1158
27 couturad 907 #include <map>
28     #include <vector>
29 ghazal 1092 #include <math.h>
30 francois 1158 #include <string>
31 couturad 907
32     class MG_GEOMETRIE;
33     class MG_SOUS_GEOMETRIE;
34     class MG_GESTIONNAIRE;
35    
36     class MG_CG_FORME;
37     class MG_CG_FORME_ARETE;
38     class MG_CG_FORME_ARETE_DROITE;
39    
40     class MG_CG_FORME_VOLUME;
41     class MG_CG_FORME_VOLUME_BOITE;
42     class MG_CG_FORME_VOLUME_SPHERE;
43     class MG_CG_FORME_VOLUME_ELLIPSOIDE;
44     class MG_CG_FORME_VOLUME_CYLINDRE;
45     class MG_CG_FORME_VOLUME_CONE;
46     class MG_CG_FORME_VOLUME_TORE;
47    
48    
49     class MG_CG_FORME_MULTIPLE;
50     class MG_CG_FORME_MULTI_VOLUME;
51    
52     class MG_CG_OPERATEUR;
53     class MG_CG_OP_BOOL_UNION;
54     class MG_CG_OP_BOOL_DIFFERENCE;
55     class MG_CG_OP_BOOL_INTERSECTION;
56     class MG_CG_OP_BOOL_FRAGMENT;
57     class MG_CG_OP_INCLUSION_MATRICE;
58     class MG_CG_OP_TRANSF_ROTATION;
59     class MG_CG_OP_TRANSF_TRANSLATION;
60     class MG_CG_OP_TRANSF_ECHELLE;
61 couturad 951 class MG_CG_OP_TRANSF_DECALLAGE;
62 couturad 907
63     class MG_CG_MODELE;
64     class MG_CG_ASSEMBLAGE;
65 couturad 926 class MG_CG_GROUPE_FORME;
66 couturad 907
67 couturad 926 class MG_CG_INFO_DOUBLE;
68     class MG_CG_INFO_VCT_DOUBLE;
69     class MG_CG_INFO_STRING;
70    
71 couturad 907 class MG_ARETE;
72     class MG_VOLUME;
73    
74     class MG_ELEMENT_TOPOLOGIQUE;
75     class MG_ELEMENT_COTOPOLOGIQUE;
76    
77 couturad 926 class MG_CONSTRUCTION_GEOMETRIQUE;
78    
79 francois 1158 class MG_CG
80 couturad 907 {
81     public:
82     //creer_MG_CG_MODELE
83     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);
84     static MG_CG_MODELE* creer_MG_CG_MODELE(MG_GESTIONNAIRE* mg_gestionnaire,std::string nom_mgcg_modele,MG_GEOMETRIE* mg_geometrie);
85     static MG_CG_MODELE* creer_MG_CG_MODELE(MG_GESTIONNAIRE* mg_gestionnaire,std::string nom_mgcg_modele,MG_GEOMETRIE* mg_geometrie,unsigned long num);
86    
87     static MG_CG_ASSEMBLAGE* creer_MG_CG_ASSEMBLAGE(MG_CG_MODELE* mgcg_modele,std::string nom_mgcg_assemblage);
88     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);
89    
90 couturad 926 static MG_CG_GROUPE_FORME* creer_MG_CG_GROUPE_FORME(MG_CG_MODELE* mgcg_modele,std::string nom);
91     static MG_CG_GROUPE_FORME* creer_MG_CG_GROUPE_FORME(MG_CG_MODELE* mgcg_modele,unsigned long num,std::string nom);
92    
93     static MG_CG_INFO_STRING* creer_MG_CG_INFO_STRING(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,std::string identifiant,std::string valeur);
94     static MG_CG_INFO_STRING* creer_MG_CG_INFO_STRING(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,long num,std::string identifiant,std::string valeur);
95     static MG_CG_INFO_DOUBLE* creer_MG_CG_INFO_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,std::string identifiant,double valeur);
96     static MG_CG_INFO_DOUBLE* creer_MG_CG_INFO_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique,long num,std::string identifiant,double valeur);
97     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);
98     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);
99     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);
100     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);
101    
102 couturad 907 //creer_MG_CG_FORME_ARETE
103 couturad 911 static MG_CG_FORME_ARETE* creer_MG_CG_FORME_ARETE(MG_CG_MODELE* mgcg_modele,int provenance,MG_ARETE* mg_arete);
104     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);
105     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);
106     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);
107 couturad 907
108     //creer_MG_CG_FORME_VOLUME
109 couturad 911 static MG_CG_FORME_VOLUME* creer_MG_CG_FORME_VOLUME(MG_CG_MODELE* mgcg_modele,int provenance,MG_VOLUME* mg_volume);
110     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);
111     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);
112     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);
113     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);
114     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);
115     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);
116     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);
117     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);
118     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);
119     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);
120     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);
121 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);
122     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);
123 couturad 907
124     //creer_MG_CG_FORME_MULTI_VOLUME
125 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);
126     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);
127 couturad 907
128     //creer_MG_CG_FORME_MULTIPLE
129 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);
130     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);
131 couturad 907
132     //creer_MG_CG_OPERATEUR
133 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);
134     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);
135     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);
136     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);
137     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);
138     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);
139     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);
140     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);
141     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);
142     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);
143     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);
144     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);
145     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);
146     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);
147     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);
148     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);
149 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);
150     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);
151 couturad 907
152     static int exporter_fichier_brep(char *nom,MG_CG_MODELE* mgcg_modele);
153     static int exporter_fichier_brep(char *nom,MG_CG_ASSEMBLAGE* mgcg_assemblage);
154     protected:
155    
156    
157     };
158    
159    
160 couturad 951 #endif