ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/CAD4FE_PolySurface.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: 2739 byte(s)
Log Message:
Nouveau opencascade commit 1

File Contents

# Content
1 //---------------------------------------------------------------------------
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 bool est_sur_surface(double *xyz,double precision=1e-6);
55 virtual int est_periodique_u(void);
56 virtual int est_periodique_v(void);
57 virtual double get_periode_u(void);
58 virtual double get_periode_v(void);
59 virtual void enregistrer(std::ostream& o,double version);
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 virtual void get_liste_pole(std::vector<double> *liste_pole,double eps);
66
67 private:
68 // set of adjacent faces that define this PolySurface
69 std::set<MG_FACE*> _lst_ref_faces;
70 };
71 }
72
73 #endif