ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/addin/step/src/stbspline.h
Revision: 1156
Committed: Thu Jun 13 22:02:48 2024 UTC (14 months ago) by francois
Content type: text/plain
File size: 3267 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     //####// stbspline.h
15     //####//
16     //####//------------------------------------------------------------
17     //####//------------------------------------------------------------
18     //####// COPYRIGHT 2000-2024
19     //####// jeu 13 jun 2024 11:53:59 EDT
20     //####//------------------------------------------------------------
21     //####//------------------------------------------------------------
22 foucault 27 #ifndef _HEADER_STBSPLINE_
23     #define _HEADER_STBSPLINE_
24    
25    
26    
27 francois 1156
28 foucault 27 #include "st_courbe.h"
29     #include "st_point.h"
30 francois 283 #include <vector>
31 foucault 27 #include "ot_mathematique.h"
32    
33    
34    
35 francois 1156 class ST_B_SPLINE : public ST_COURBE
36 foucault 27 {
37     public :
38 francois 283 ST_B_SPLINE(long LigneCourante,std::string idori,int bs_degre,std::vector<int> bs_indexptsctr,std::vector<int> bs_knots_multiplicities,std::vector<double> bs_knots);
39     ST_B_SPLINE(int bs_degre,std::vector<double> &vec_knots,std::vector<double> &vec_point,std::vector<double> &vec_poids);
40     ~ST_B_SPLINE();
41     virtual void evaluer(double t,double *xyz) ;
42     virtual void deriver(double t,double *xyz) ;
43     virtual void deriver_seconde(double t,double *ddxyz,double* dxyz = NULL,double* xyz = NULL);
44     virtual void inverser(double& t,double *xyz,double precision=1e-6) ;
45     virtual int inverser2(double& t,double *xyz,int num_test,double precision=1e-6) ;
46     virtual double get_tmin();
47     virtual double get_tmax();
48     virtual double get_longueur(double t1,double t2,double precis=1e6);
49     virtual int est_periodique(void);
50     virtual double get_periode(void);
51     virtual void initialiser(class ST_GESTIONNAIRE* gest);
52     virtual int get_type_geometrique(TPL_LISTE_ENTITE<double> &param);
53     virtual void est_util(class ST_GESTIONNAIRE* gest);
54 foucault 27
55    
56     private:
57 francois 283 virtual int get_intervalle(int nbptsctr, int degre, double t, std::vector<double> &knots);
58 foucault 27
59 francois 283 virtual void get_valeur_fonction(int inter, double t, int degre, std::vector<double> &knots, double *grand_n);
60     virtual void deriver_bs_kieme(int nb_point,int degre,std::vector<double> &knots,std::vector<OT_VECTEUR_4D> &ptsctr_x,double t,int d, OT_VECTEUR_4D * CK);
61     virtual void deriver_kieme(double t,int d,double *CK_x,double *CK_y,double *CK_z);
62     virtual void binomialCoef(double * Bin, int degre);
63     virtual void deriver_fonction(int inter,double t,int degre,int dd,std::vector<double> &knots,double *f_deriver);
64     virtual void get_param_NURBS(int& indx_premier_ptctr,TPL_LISTE_ENTITE<double> &param);
65 foucault 27
66 francois 283 int periodique;
67     double periode;
68     int degre;
69     int nb_point;
70     std::vector<int> indexptsctr;
71     std::vector<double> knots;
72     std::vector<OT_VECTEUR_4D> ptsctr;
73 foucault 27 };
74    
75    
76     #endif