ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/CAD4FE_PolySurface.h
Revision: 814
Committed: Fri Aug 12 14:58:19 2016 UTC (8 years, 9 months ago) by couturad
Content type: text/plain
File size: 2668 byte(s)
Log Message:
-> Mise à jour de la version du fichier MAGiC (version 2.2)
-> Ajout de la fonctionnalité get_liste_pole permettant d'obtenir les pôles d'une face
-> Ajout d'une méthode de génération d'un VES aléatoire selon la méthode RSA

File Contents

# User Rev Content
1 foucault 27 //---------------------------------------------------------------------------
2    
3     #ifndef CAD4FE_PolySurfaceH
4     #define CAD4FE_PolySurfaceH
5    
6     //---------------------------------------------------------------------------
7     // include MAGIC Headers
8     #include "mg_geometrie.h"
9     #include "mg_face.h"
10    
11     //---------------------------------------------------------------------------
12 foucault 569 // include STL headers
13 foucault 27 //---------------------------------------------------------------------------
14     #include <map>
15     #include <ostream>
16     #include <string>
17     #include <set>
18     //---------------------------------------------------------------------------
19    
20    
21     #ifdef WINDOWS_VERSION
22 foucault 569 #ifdef BUILT_DLL_GEOMETRIE
23     #define DLLPORTGEOMETRIE __declspec(dllexport)
24     #else
25     #define DLLPORTGEOMETRIE __declspec(dllimport)
26     #endif
27 foucault 27 #else
28 foucault 569 #define DLLPORTGEOMETRIE
29 foucault 27 #endif
30    
31     class OT_VECTEUR_3D;
32    
33     namespace CAD4FE {
34    
35 foucault 569 class MCVertex;
36 foucault 27
37     class DLLPORTGEOMETRIE PolySurface : public MG_SURFACE
38     {
39     public:
40 foucault 569 PolySurface(){};
41     PolySurface(MG_FACE *);
42     void InsertSurface(MG_FACE *);
43     void Merge( PolySurface &);
44     bool Contains(MG_FACE * __refFace);
45     bool Contains(MG_ARETE * __refEdge);
46     MG_FACE * GetRefFace(unsigned int __index);
47     std::set<MG_FACE*> & GetRefFaces();
48     unsigned int GetRefFaceCount() ;
49 foucault 27
50 foucault 569 virtual void evaluer(double *uv,double *xyz);
51     virtual void deriver(double *uv,double *xyzdu, double *xyzdv);
52     virtual void deriver_seconde(double *uv,double* xyzduu,double* xyzduv,double* xyzdvv,double *xyz = NULL , double *xyzdu = NULL , double *xyzdv =NULL);
53     virtual void inverser(double *uv,double *xyz,double precision=1e-6);
54     virtual int est_periodique_u(void);
55     virtual int est_periodique_v(void);
56     virtual double get_periode_u(void);
57     virtual double get_periode_v(void);
58 francois 763 virtual void enregistrer(std::ostream& o,double version);
59 foucault 569 virtual int get_type_geometrique(TPL_LISTE_ENTITE<double> &param);
60     void calcul_normale_unitaire(MG_SOMMET *v, double __n[3], int * __nbRefFace);
61     void calcul_normale_unitaire(MCVertex * __mcVertex, double __n[3], int *__nbRefFace);
62     void calcul_normale_unitaire(const std::map<MG_FACE *, OT_VECTEUR_3D > & __tabRefFaceUV, double __n[3], int *__nbRefFace);
63     virtual void get_param_NURBS(int& indx_premier_ptctr,TPL_LISTE_ENTITE<double> &param);
64 couturad 814 virtual void get_liste_pole(TPL_LISTE_ENTITE<double*> *liste_pole);
65    
66 foucault 27 private:
67 foucault 569 // set of adjacent faces that define this PolySurface
68     std::set<MG_FACE*> _lst_ref_faces;
69 foucault 27 };
70     }
71    
72     #endif