ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/addin/step/src/stbsplines.h
Revision: 1156
Committed: Thu Jun 13 22:02:48 2024 UTC (14 months ago) by francois
Content type: text/plain
File size: 3939 byte(s)
Log Message:
compatibilité Ubuntu 22.04
Suppression des refeences à Windows
Ajout d'une banière

File Contents

# User Rev Content
1 francois 1156 //####//------------------------------------------------------------
2     //####//------------------------------------------------------------
3     //####// MAGiC
4     //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5     //####// Departement de Genie Mecanique - UQTR
6     //####//------------------------------------------------------------
7     //####// MAGIC est un projet de recherche de l equipe ERICCA
8     //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9     //####// http://www.uqtr.ca/ericca
10     //####// http://www.uqtr.ca/
11     //####//------------------------------------------------------------
12     //####//------------------------------------------------------------
13     //####//
14     //####// stbsplines.h
15     //####//
16     //####//------------------------------------------------------------
17     //####//------------------------------------------------------------
18     //####// COPYRIGHT 2000-2024
19     //####// jeu 13 jun 2024 11:53:59 EDT
20     //####//------------------------------------------------------------
21     //####//------------------------------------------------------------
22 foucault 27 #ifndef STBSPLINESH
23     #define STBSPLINESH
24 francois 283
25 foucault 27
26    
27 francois 1156
28 foucault 27 #include "st_surface.h"
29     #include "st_point.h"
30     #include "ot_mathematique.h"
31     #include "st_ident.h"
32     #include <vector> // etait <vector.h>
33    
34 francois 1156 class ST_B_SPLINE_SURF : public ST_SURFACE
35 francois 283 {
36 foucault 27 public :
37 francois 283 ST_B_SPLINE_SURF(long LigneCourante,std::string idori,int bs_degre_u,int bs_degre_v,std::vector<int> bs_indexptsctr,std::vector<int> bs_knots_multiplicities_u,std::vector<int> bs_knots_multiplicities_v,std::vector<double> bs_knots_u,std::vector<double> bs_knots_v);
38     ST_B_SPLINE_SURF(int bs_degre_u,int bs_degre_v,std::vector<double> &bs_knots_u,std::vector<double> &bs_knots_v,std::vector<double> &bs_ptsctr,std::vector<double> &bs_poids,int sense);
39     ~ST_B_SPLINE_SURF();
40 foucault 27
41    
42 francois 283 virtual void evaluer(double *uv,double *xyz);
43     virtual void deriver(double *uv,double *xyzdu, double *xyzdv);
44     virtual void deriver_seconde(double *uv,double* xyzduu,double* xyzduv,double* xyzdvv,double *xyz = NULL , double *xyzdu = NULL , double *xyzdv =NULL);
45     virtual void inverser(double *uv,double *xyz,double precision=1e-6);
46     virtual int inverser2(double *uv,double *xyz,int num_test, double precision);
47     virtual int est_periodique_u(void);
48     virtual int est_periodique_v(void);
49     virtual double get_periode_u(void);
50     virtual double get_periode_v(void);
51 foucault 27
52 francois 283 virtual double get_umin(void);
53     virtual double get_umax(void);
54     virtual double get_vmin(void);
55     virtual double get_vmax(void);
56     virtual void initialiser(class ST_GESTIONNAIRE* gest);
57 foucault 27
58 francois 283 virtual int get_type_geometrique(TPL_LISTE_ENTITE<double> &param);
59     virtual void est_util(class ST_GESTIONNAIRE* gest);
60     virtual void get_param_NURBS(int& indx_premier_ptctr,TPL_LISTE_ENTITE<double> &param);
61     virtual void set_periodique_u(int);
62     virtual void set_periodique_v(int);
63 foucault 27
64     private:
65    
66 francois 283 virtual int get_intervalle(int nb_point, int degre, double t, std::vector<double> &knots);
67     virtual void get_valeur_fonction(int inter, double t, int degre, std::vector<double> &knots,double *grand_n);
68     virtual void deriver_fonction(int inter,double t,int degre,int dd,std::vector<double> &knots,double *f_deriver);
69     virtual void deriver_bs_kieme(int nb_ptsctr_u,int degre_u,std::vector<double> &knots_u,int nb_ptsctr_v,int degre_v,std::vector<double> &knots_v,double u,double v,int d,OT_VECTEUR_4D *skl);
70     virtual void deriver_kieme(double *uv,int d,OT_VECTEUR_4D *skl);
71     virtual void binomialCoef(double * Bin, int degre);
72 foucault 27
73 francois 283 int periodique_u;
74     double periode_u;
75     int periodique_v;
76     double periode_v;
77     int degre_u;
78     int degre_v;
79     int nb_ptsctr_u;
80     int nb_ptsctr_v;
81     int nb_point;
82     std::vector<int> indexptsctr;
83     std::vector<double> knots_u;
84     std::vector<double> knots_v;
85     std::vector<OT_VECTEUR_4D> ptsctr;
86     int sens;
87     double umin,umax;
88     double vmin,vmax;
89 foucault 27 };
90    
91    
92     #endif