ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/mg_face.h
Revision: 906
Committed: Mon Nov 13 22:30:18 2017 UTC (7 years, 9 months ago) by couturad
Content type: text/plain
File size: 3694 byte(s)
Log Message:
Nouveau opencascade commit 1

File Contents

# Content
1 //------------------------------------------------------------
2 //------------------------------------------------------------
3 // MAGiC
4 // Jean Christophe Cuilli�re et Vincent FRANCOIS
5 // D�partement de G�nie M�canique - UQTR
6 //------------------------------------------------------------
7 // Le projet MAGIC est un projet de recherche du d�partement
8 // de g�nie m�canique de l'Universit� du Qu�bec �
9 // Trois Rivi�res
10 // Les librairies ne peuvent �tre utilis�es sans l'accord
11 // des auteurs (contact : francois@uqtr.ca)
12 //------------------------------------------------------------
13 //------------------------------------------------------------
14 //
15 // mg_face.h
16 //
17 //------------------------------------------------------------
18 //------------------------------------------------------------
19 // COPYRIGHT 2000
20 // Version du 02/03/2006 � 11H22
21 //------------------------------------------------------------
22 //------------------------------------------------------------
23 #ifndef __MGFACE_
24 #define __MGFACE_
25
26
27 #ifdef WINDOWS_VERSION
28 #ifdef BUILT_DLL_GEOMETRIE
29 #define DLLPORTGEOMETRIE __declspec(dllexport)
30 #else
31 #define DLLPORTGEOMETRIE __declspec(dllimport)
32 #endif
33 #else
34 #define DLLPORTGEOMETRIE
35 #endif
36
37
38 #include <vector>
39 #include "mg_element_topologique.h"
40 #include "mg_boucle.h"
41 #include "mg_surface.h"
42
43 class DLLPORTGEOMETRIE MG_FACE:public MG_ELEMENT_TOPOLOGIQUE
44 {
45 public:
46 MG_FACE(std::string idori,unsigned long num,MG_SURFACE* srf,int sens);
47 MG_FACE(std::string idori,MG_SURFACE* srf,int sens);
48 MG_FACE(MG_FACE& mdd);
49 virtual ~MG_FACE();
50
51 virtual void ajouter_mg_boucle(class MG_BOUCLE* mgbou);
52 virtual void supprimer_mg_boucle(class MG_BOUCLE* mgbou);
53 virtual int get_nb_mg_boucle(void);
54 virtual MG_BOUCLE* get_mg_boucle(int num);
55 virtual bool est_une_face_element(void);
56
57 virtual void ajouter_mg_coface(class MG_COFACE* coface);
58 virtual void supprimer_mg_coface(class MG_COFACE* coface);
59 virtual int get_nb_mg_coface(void);
60 virtual MG_COFACE* get_mg_coface(int num);
61 virtual VCT& get_vectorisation(void);
62 virtual MG_SURFACE* get_surface(void);
63 virtual int get_orientation(void);
64 virtual int valide_parametre_u(double& u);
65 virtual int valide_parametre_v(double& v);
66 virtual void evaluer(double *uv,double *xyz) ;
67 virtual void deriver(double *uv,double *xyzdu, double *xyzdv);
68 virtual void deriver_seconde(double *uv,double* xyzduu,double* xyzduv,double* xyzdvv,double *xyz = NULL , double *xyzdu = NULL , double *xyzdv =NULL);
69 virtual void inverser(double *uv,double *xyz,double precision=1e-6) ;
70 virtual void calcul_normale(double *uv,double *normale);
71 virtual void calcul_normale_unitaire(double *uv,double *normale);
72 virtual void get_EFG(double *uv,double& E,double& F,double &G);
73 virtual void get_LMN(double *uv,double& L,double& M,double &N);
74 virtual void get_M(double *uv,double& M1,double& M2,double& M3);
75 virtual void get_courbure(double *uv,double& cmax,double& cmin);
76 virtual void get_topologie_sousjacente(TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *lst);
77 virtual int get_dimension(void);
78 virtual int get_type(void);
79 virtual int get_nb_pole(void);
80 virtual void change_nb_pole(int val);
81 virtual void get_liste_pole_uv(std::vector<double> *liste_pole_uv,double eps);
82
83
84 virtual BOITE_3D get_boite_3D(int pas_echantillon);
85
86 virtual void enregistrer(std::ostream& o,double version);
87 protected:
88
89 std::vector<MG_BOUCLE*> lst_boucle;
90 MG_SURFACE* surface;
91 std::vector<MG_COFACE*> lst_coface;
92 int orientation;
93 class VCT_FACE* vect;
94 int nb_pole;
95 };
96
97
98
99 #endif
100
101
102