ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/mg_face.h
Revision: 632
Committed: Thu Jan 15 18:40:00 2015 UTC (10 years, 3 months ago) by francois
Content type: text/plain
File size: 3396 byte(s)
Log Message:
Changement de l'espace de voisinage dans le mailleur 2D et 3D. On utilise un ntree (octree "anisotrope" qui ne se divise pas necessairement en 8). En 2D l'espace de voisinage est maintenant sur l'espace reelle au lieu d'être sur l'espace parametrique.
+Mise sous forme de parametres de certains choix stratégiques du mailleur

File Contents

# User Rev Content
1 francois 283 //------------------------------------------------------------
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 francois 576 virtual bool est_une_face_element(void);
56 francois 283
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     int get_orientation(void);
64     int valide_parametre_u(double& u);
65     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     void get_EFG(double *uv,double& E,double& F,double &G);
73     void get_LMN(double *uv,double& L,double& M,double &N);
74     void get_M(double *uv,double& M1,double& M2,double& M3);
75     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 francois 632 virtual BOITE_3D get_boite_3D(int pas_echantillon);
79 francois 283 virtual void enregistrer(std::ostream& o);
80     private:
81     std::vector<MG_BOUCLE*> lst_boucle;
82     MG_SURFACE* surface;
83     std::vector<MG_COFACE*> lst_coface;
84     int orientation;
85     class VCT_FACE* vect;
86     };
87    
88    
89    
90     #endif
91    
92    
93