ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/CAD4FE_PolySurface.h
Revision: 27
Committed: Thu Jul 5 15:26:40 2007 UTC (17 years, 10 months ago) by foucault
Content type: text/plain
Original Path: magic/lib/geometrie/geometrie/src/CAD4FE_PolySurface.h
File size: 2584 byte(s)
Log Message:

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     // include STL headers
13     //---------------------------------------------------------------------------
14     #include <map>
15     #include <ostream>
16     #include <string>
17     #include <set>
18     //---------------------------------------------------------------------------
19    
20    
21     #ifdef WINDOWS_VERSION
22     #ifdef BUILT_DLL_GEOMETRIE
23     #define DLLPORTGEOMETRIE __declspec(dllexport)
24     #else
25     #define DLLPORTGEOMETRIE __declspec(dllimport)
26     #endif
27     #else
28     #define DLLPORTGEOMETRIE
29     #endif
30    
31     class OT_VECTEUR_3D;
32    
33     namespace CAD4FE {
34    
35     class MCVertex;
36    
37     class DLLPORTGEOMETRIE PolySurface : public MG_SURFACE
38     {
39     public:
40     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    
50     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    
59     virtual void enregistrer(std::ostream& o);
60     virtual int get_type_geometrique(TPL_LISTE_ENTITE<double> &param);
61     void calcul_normale_unitaire(MG_SOMMET *v, double __n[3], int * __nbRefFace);
62     void calcul_normale_unitaire(MCVertex * __mcVertex, double __n[3], int *__nbRefFace);
63     void calcul_normale_unitaire(const std::map<MG_FACE *, OT_VECTEUR_3D > & __tabRefFaceUV, double __n[3], int *__nbRefFace);
64     virtual void get_param_NURBS(int& indx_premier_ptctr,TPL_LISTE_ENTITE<double> &param);
65     private:
66     // set of adjacent faces that define this PolySurface
67     std::set<MG_FACE*> _lst_ref_faces;
68     };
69     }
70    
71     #endif