ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/acis_surface.cpp
Revision: 763
Committed: Wed Dec 2 19:55:53 2015 UTC (9 years, 5 months ago) by francois
File size: 3381 byte(s)
Log Message:
Le fichier MAGiC est maintenant versionné. LA version actuelle est 2.0. L'ancienne version est 1.0.
Tout est transparent pour l'utilisateur. Les vieilles versions sont lisibles mais les nouveaux enregistrements sont dans la version la plus récente.
Changement des conditions aux limites : ajout d'un parametre pour dire si la condition numerique est une valeur ou une formule ou un lien vers une autre entité magic.
Les parametres pour saisir sont maintenant -ccf -ccfi -ccff -ccft -ccfit -ccfft

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     // 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     int ACIS_SURFACE::est_periodique_u(void)
93     {
94     return surface->est_periodique_u();
95     }
96    
97     int ACIS_SURFACE::est_periodique_v(void)
98     {
99     return surface->est_periodique_v();
100     }
101    
102     double ACIS_SURFACE::get_periode_u(void)
103     {
104     if (surface->est_periodique_u()==0) return 0.;
105     return surface->get_periode_u();
106     }
107    
108     double ACIS_SURFACE::get_periode_v(void)
109     {
110     if (surface->est_periodique_v()==0) return 0.;
111     return surface->get_periode_v();
112     }
113    
114    
115 francois 763 void ACIS_SURFACE::enregistrer(std::ostream& o,double version)
116 francois 283 {
117     o << "%" << get_id() << "=SURFACE_SAT("<< surface->get_id()<< ");" << std::endl;
118     }
119    
120    
121    
122     int ACIS_SURFACE::get_type_geometrique(TPL_LISTE_ENTITE<double> &param)
123     {
124     return surface->get_type_geometrique(param);
125     }
126    
127    
128    
129     void ACIS_SURFACE::get_param_NURBS(int& indx_premier_ptctr,TPL_LISTE_ENTITE<double> &param)
130     {
131     return surface->get_param_NURBS(indx_premier_ptctr,param);
132     }
133    
134    
135    
136    
137    
138     #endif
139    
140    
141