MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
st_b_spline_surf2.h
Aller à la documentation de ce fichier.
1 //####//------------------------------------------------------------
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 //####// st_b_spline_surf2.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:53:59 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 #ifndef st_b_spline_surf2H
24 #define st_b_spline_surf2H
25 
26 
27 
28 
29 #include "st_surface.h"
30 #include "st_point.h"
31 #include "ot_mathematique.h"
32 #include "st_ident.h"
33 #include <vector> // etait <vector.h>
34 
35 
36 
37 
39 {
40 public :
41  ST_B_SPLINE_SURF2(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);
42  ST_B_SPLINE_SURF2(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);
44 
45 
46  virtual void evaluer(double *uv,double *xyz);
47  virtual void deriver(double *uv,double *xyzdu, double *xyzdv);
48  virtual void deriver_seconde(double *uv,double* xyzduu,double* xyzduv,double* xyzdvv,double *xyz = NULL , double *xyzdu = NULL , double *xyzdv =NULL);
49  virtual void inverser(double *uv,double *xyz,double precision=1e-6);
50  virtual int inverser2(double *uv,double *xyz,int num_test, double precision);
51  virtual int est_periodique_u(void);
52  virtual int est_periodique_v(void);
53  virtual double get_periode_u(void);
54  virtual double get_periode_v(void);
55 
56  virtual double get_umin(void);
57  virtual double get_umax(void);
58  virtual double get_vmin(void);
59  virtual double get_vmax(void);
60  virtual void initialiser(class ST_GESTIONNAIRE* gest);
61 
63  virtual void est_util(class ST_GESTIONNAIRE* gest);
64 
65 
66 private:
67 
68  virtual int get_intervalle(int nb_point, int degre, double t, std::vector<double> &knots);
69  virtual void get_valeur_fonction(int inter, double t, int degre, std::vector<double> &knots,double *grand_n);
70  virtual void deriver_fonction(int inter,double t,int degre,int dd,std::vector<double> &knots,double *f_deriver);
71  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);
72  virtual void deriver_kieme(double *uv,int d,OT_VECTEUR_4D *skl);
73  virtual void binomialCoef(double * Bin, int degre);
74 
76  double periode_u;
78  double periode_v;
79  int degre_u;
80  int degre_v;
83  int nb_point;
84  std::vector<int> indexptsctr;
85  std::vector<double> knots_u;
86  std::vector<double> knots_v;
87  std::vector<OT_VECTEUR_4D> ptsctr;
88  int sens;
89  double umin,umax;
90  double vmin,vmax;
91 };
92 
93 
94 #endif
95 
grand_n
#define grand_n(i, j)
ST_GESTIONNAIRE
Definition: st_gestionnaire.h:55
ST_B_SPLINE_SURF2::get_periode_v
virtual double get_periode_v(void)
Definition: st_b_spline_surf2.cpp:614
ST_B_SPLINE_SURF2::get_valeur_fonction
virtual void get_valeur_fonction(int inter, double t, int degre, std::vector< double > &knots, double *grand_n)
Definition: st_b_spline_surf2.cpp:149
ST_B_SPLINE_SURF2::umax
double umax
Definition: st_b_spline_surf2.h:89
Bin
#define Bin(i, j)
f_deriver
#define f_deriver(i, j)
ST_B_SPLINE_SURF2::get_umin
virtual double get_umin(void)
Definition: st_b_spline_surf2.cpp:618
ST_B_SPLINE_SURF2::sens
int sens
Definition: st_b_spline_surf2.h:88
st_surface.h
ST_B_SPLINE_SURF2::get_vmin
virtual double get_vmin(void)
Definition: st_b_spline_surf2.cpp:626
skl
#define skl(i, j)
ST_B_SPLINE_SURF2::inverser
virtual void inverser(double *uv, double *xyz, double precision=1e-6)
Definition: st_b_spline_surf2.cpp:484
ST_B_SPLINE_SURF2::deriver_seconde
virtual void deriver_seconde(double *uv, double *xyzduu, double *xyzduv, double *xyzdvv, double *xyz=NULL, double *xyzdu=NULL, double *xyzdv=NULL)
Definition: st_b_spline_surf2.cpp:436
ST_B_SPLINE_SURF2::nb_point
int nb_point
Definition: st_b_spline_surf2.h:83
ST_B_SPLINE_SURF2::periode_u
double periode_u
Definition: st_b_spline_surf2.h:76
ST_B_SPLINE_SURF2::nb_ptsctr_u
int nb_ptsctr_u
Definition: st_b_spline_surf2.h:81
st_ident.h
ST_B_SPLINE_SURF2::indexptsctr
std::vector< int > indexptsctr
Definition: st_b_spline_surf2.h:84
ST_B_SPLINE_SURF2
Definition: st_b_spline_surf2.h:38
ST_B_SPLINE_SURF2::est_periodique_u
virtual int est_periodique_u(void)
Definition: st_b_spline_surf2.cpp:602
ST_B_SPLINE_SURF2::get_vmax
virtual double get_vmax(void)
Definition: st_b_spline_surf2.cpp:630
ST_B_SPLINE_SURF2::umin
double umin
Definition: st_b_spline_surf2.h:89
ST_B_SPLINE_SURF2::est_util
virtual void est_util(class ST_GESTIONNAIRE *gest)
Definition: st_b_spline_surf2.cpp:716
ST_B_SPLINE_SURF2::vmin
double vmin
Definition: st_b_spline_surf2.h:90
ST_B_SPLINE_SURF2::degre_v
int degre_v
Definition: st_b_spline_surf2.h:80
ot_mathematique.h
ST_B_SPLINE_SURF2::degre_u
int degre_u
Definition: st_b_spline_surf2.h:79
ST_SURFACE
Definition: st_surface.h:29
ST_B_SPLINE_SURF2::knots_u
std::vector< double > knots_u
Definition: st_b_spline_surf2.h:85
ST_B_SPLINE_SURF2::deriver_kieme
virtual void deriver_kieme(double *uv, int d, OT_VECTEUR_4D *skl)
Definition: st_b_spline_surf2.cpp:374
ST_B_SPLINE_SURF2::deriver
virtual void deriver(double *uv, double *xyzdu, double *xyzdv)
Definition: st_b_spline_surf2.cpp:417
OT_VECTEUR_4D
Definition: ot_mathematique.h:215
ST_B_SPLINE_SURF2::get_type_geometrique
virtual int get_type_geometrique(TPL_LISTE_ENTITE< double > &param)
Definition: st_b_spline_surf2.cpp:635
ST_B_SPLINE_SURF2::evaluer
virtual void evaluer(double *uv, double *xyz)
Definition: st_b_spline_surf2.cpp:173
ST_B_SPLINE_SURF2::est_periodique_v
virtual int est_periodique_v(void)
Definition: st_b_spline_surf2.cpp:606
ST_B_SPLINE_SURF2::periode_v
double periode_v
Definition: st_b_spline_surf2.h:78
TPL_LISTE_ENTITE< double >
ST_B_SPLINE_SURF2::knots_v
std::vector< double > knots_v
Definition: st_b_spline_surf2.h:86
ST_B_SPLINE_SURF2::periodique_u
int periodique_u
Definition: st_b_spline_surf2.h:75
ST_B_SPLINE_SURF2::ST_B_SPLINE_SURF2
ST_B_SPLINE_SURF2(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)
Definition: st_b_spline_surf2.cpp:37
ST_B_SPLINE_SURF2::get_umax
virtual double get_umax(void)
Definition: st_b_spline_surf2.cpp:622
st_point.h
ST_B_SPLINE_SURF2::periodique_v
int periodique_v
Definition: st_b_spline_surf2.h:77
ST_B_SPLINE_SURF2::deriver_fonction
virtual void deriver_fonction(int inter, double t, int degre, int dd, std::vector< double > &knots, double *f_deriver)
Definition: st_b_spline_surf2.cpp:214
ST_B_SPLINE_SURF2::initialiser
virtual void initialiser(class ST_GESTIONNAIRE *gest)
Definition: st_b_spline_surf2.cpp:661
ST_B_SPLINE_SURF2::get_periode_u
virtual double get_periode_u(void)
Definition: st_b_spline_surf2.cpp:610
ST_B_SPLINE_SURF2::ptsctr
std::vector< OT_VECTEUR_4D > ptsctr
Definition: st_b_spline_surf2.h:87
ST_B_SPLINE_SURF2::binomialCoef
virtual void binomialCoef(double *Bin, int degre)
Definition: st_b_spline_surf2.cpp:299
ST_B_SPLINE_SURF2::~ST_B_SPLINE_SURF2
~ST_B_SPLINE_SURF2()
Definition: st_b_spline_surf2.cpp:124
ST_B_SPLINE_SURF2::nb_ptsctr_v
int nb_ptsctr_v
Definition: st_b_spline_surf2.h:82
ST_B_SPLINE_SURF2::vmax
double vmax
Definition: st_b_spline_surf2.h:90
ST_B_SPLINE_SURF2::get_intervalle
virtual int get_intervalle(int nb_point, int degre, double t, std::vector< double > &knots)
Definition: st_b_spline_surf2.cpp:129
ST_B_SPLINE_SURF2::inverser2
virtual int inverser2(double *uv, double *xyz, int num_test, double precision)
Definition: st_b_spline_surf2.cpp:497
ST_B_SPLINE_SURF2::deriver_bs_kieme
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)
Definition: st_b_spline_surf2.cpp:316