ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/acis_surface.cpp
Revision: 906
Committed: Mon Nov 13 22:30:18 2017 UTC (7 years, 9 months ago) by couturad
File size: 3741 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 // acis_surface.cpp
16 //
17 //------------------------------------------------------------
18 //------------------------------------------------------------
19 // COPYRIGHT 2000
20 // Version du 02/03/2006 � 11H22
21 //------------------------------------------------------------
22 //------------------------------------------------------------
23
24
25 #include "gestionversion.h"
26
27 #ifdef BREP_SAT
28
29 #include "acis_surface.h"
30
31
32
33
34
35 ACIS_SURFACE::ACIS_SURFACE(unsigned long num,SAT_SURFACE *srf):MG_SURFACE(num),surface(srf)
36 {
37 u_min=surface->get_umin();
38 u_max=surface->get_umax();
39 v_min=surface->get_vmin();
40 v_max=surface->get_vmax();
41 }
42
43 ACIS_SURFACE::ACIS_SURFACE(SAT_SURFACE *srf):MG_SURFACE(),surface(srf)
44 {
45 u_min=surface->get_umin();
46 u_max=surface->get_umax();
47 v_min=surface->get_vmin();
48 v_max=surface->get_vmax();
49 }
50
51 ACIS_SURFACE::ACIS_SURFACE(ACIS_SURFACE& mdd):MG_SURFACE(mdd),surface(mdd.surface)
52 {
53 u_min=mdd.get_umin();
54 u_max=mdd.get_umax();
55 v_min=mdd.get_vmin();
56 v_max=mdd.get_vmax();
57 }
58
59
60
61 ACIS_SURFACE::~ACIS_SURFACE()
62 {
63 }
64
65 void ACIS_SURFACE::evaluer(double *uv,double *xyz)
66 {
67 surface->evaluer(uv,xyz);
68 }
69
70 void ACIS_SURFACE::deriver(double *uv,double *xyzdu, double *xyzdv)
71 {
72 surface->deriver(uv,xyzdu,xyzdv);
73 }
74
75 void ACIS_SURFACE::deriver_seconde(double *uv,double* xyzduu,double* xyzduv,double* xyzdvv,double *xyz, double *xyzdu, double *xyzdv)
76 {
77 double pt[3]= { 0.0 , 0.0 , 0.0 };
78 double du[3] = { 0.0, 0.0, 0.0 };
79 double dv[3] = { 0.0, 0.0, 0.0 };
80 if (xyz==NULL) xyz=pt;
81 if (xyzdu==NULL) xyzdu=du;
82 if (xyzdv==NULL) xyzdv=dv;
83 surface->deriver_seconde( uv, xyzduu,xyzduv,xyzdvv,xyz,xyzdu,xyzdv );
84
85 }
86
87 void ACIS_SURFACE::inverser(double* uv,double *xyz,double precision)
88 {
89 surface->inverser(uv,xyz,precision);
90 }
91
92 bool ACIS_SURFACE::est_sur_surface(double* xyz, double precision)
93 {
94 std::cout <<" *** ACIS_SURFACE::est_sur_surface : FONCTION NON IMPLEMENTE ***" << std::endl;
95 }
96
97 int ACIS_SURFACE::est_periodique_u(void)
98 {
99 return surface->est_periodique_u();
100 }
101
102 int ACIS_SURFACE::est_periodique_v(void)
103 {
104 return surface->est_periodique_v();
105 }
106
107 double ACIS_SURFACE::get_periode_u(void)
108 {
109 if (surface->est_periodique_u()==0) return 0.;
110 return surface->get_periode_u();
111 }
112
113 double ACIS_SURFACE::get_periode_v(void)
114 {
115 if (surface->est_periodique_v()==0) return 0.;
116 return surface->get_periode_v();
117 }
118
119
120 void ACIS_SURFACE::enregistrer(std::ostream& o,double version)
121 {
122 o << "%" << get_id() << "=SURFACE_SAT("<< surface->get_id()<< ");" << std::endl;
123 }
124
125
126
127 int ACIS_SURFACE::get_type_geometrique(TPL_LISTE_ENTITE<double> &param)
128 {
129 return surface->get_type_geometrique(param);
130 }
131
132
133
134 void ACIS_SURFACE::get_param_NURBS(int& indx_premier_ptctr,TPL_LISTE_ENTITE<double> &param)
135 {
136 return surface->get_param_NURBS(indx_premier_ptctr,param);
137 }
138
139 void ACIS_SURFACE::get_liste_pole(std::vector<double> *liste_pole,double eps)
140 {
141 printf("void ACIS_SURFACE::get_liste_pole(std::vector< double > *liste_pole) : Fonction non implementee !\n");
142 }
143
144
145
146
147 #endif
148
149
150