ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mtu/src/mg_face.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: 3675 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_face.h
15     //####//
16     //####//------------------------------------------------------------
17     //####//------------------------------------------------------------
18     //####// COPYRIGHT 2000-2024
19     //####// jeu 13 jun 2024 11:58:55 EDT
20     //####//------------------------------------------------------------
21     //####//------------------------------------------------------------
22 francois 283 #ifndef __MGFACE_
23     #define __MGFACE_
24    
25    
26    
27    
28 francois 1158
29 francois 283 #include <vector>
30     #include "mg_element_topologique.h"
31     #include "mg_boucle.h"
32     #include "mg_surface.h"
33    
34 francois 1158 class MG_FACE:public MG_ELEMENT_TOPOLOGIQUE
35 francois 283 {
36     public:
37     MG_FACE(std::string idori,unsigned long num,MG_SURFACE* srf,int sens);
38     MG_FACE(std::string idori,MG_SURFACE* srf,int sens);
39     MG_FACE(MG_FACE& mdd);
40     virtual ~MG_FACE();
41    
42     virtual void ajouter_mg_boucle(class MG_BOUCLE* mgbou);
43     virtual void supprimer_mg_boucle(class MG_BOUCLE* mgbou);
44     virtual int get_nb_mg_boucle(void);
45     virtual MG_BOUCLE* get_mg_boucle(int num);
46 francois 576 virtual bool est_une_face_element(void);
47 francois 283
48     virtual void ajouter_mg_coface(class MG_COFACE* coface);
49     virtual void supprimer_mg_coface(class MG_COFACE* coface);
50     virtual int get_nb_mg_coface(void);
51     virtual MG_COFACE* get_mg_coface(int num);
52     virtual VCT& get_vectorisation(void);
53     virtual MG_SURFACE* get_surface(void);
54 couturad 814 virtual int get_orientation(void);
55     virtual int valide_parametre_u(double& u);
56     virtual int valide_parametre_v(double& v);
57 francois 283 virtual void evaluer(double *uv,double *xyz) ;
58     virtual void deriver(double *uv,double *xyzdu, double *xyzdv);
59     virtual void deriver_seconde(double *uv,double* xyzduu,double* xyzduv,double* xyzdvv,double *xyz = NULL , double *xyzdu = NULL , double *xyzdv =NULL);
60     virtual void inverser(double *uv,double *xyz,double precision=1e-6) ;
61     virtual void calcul_normale(double *uv,double *normale);
62     virtual void calcul_normale_unitaire(double *uv,double *normale);
63 couturad 814 virtual void get_EFG(double *uv,double& E,double& F,double &G);
64     virtual void get_LMN(double *uv,double& L,double& M,double &N);
65     virtual void get_M(double *uv,double& M1,double& M2,double& M3);
66     virtual void get_courbure(double *uv,double& cmax,double& cmin);
67 francois 283 virtual void get_topologie_sousjacente(TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *lst);
68     virtual int get_dimension(void);
69 couturad 906 virtual int get_type(void);
70 couturad 814 virtual int get_nb_pole(void);
71     virtual void change_nb_pole(int val);
72 francois 820 virtual void get_liste_pole_uv(std::vector<double> *liste_pole_uv,double eps);
73 francois 1095 virtual void get_xyz_min_max(double *xyzmin,double *xyzmax);
74 couturad 814
75    
76 francois 1095 virtual BOITE_3D get_boite_3D(void);
77     virtual void get_echantillonnage(int numechantillon,std::vector<double> &tab);
78 couturad 814
79 francois 763 virtual void enregistrer(std::ostream& o,double version);
80 couturad 906 protected:
81 couturad 814
82 francois 283 std::vector<MG_BOUCLE*> lst_boucle;
83     MG_SURFACE* surface;
84     std::vector<MG_COFACE*> lst_coface;
85     int orientation;
86     class VCT_FACE* vect;
87 couturad 814 int nb_pole;
88 francois 283 };
89    
90    
91    
92     #endif
93    
94    
95