UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
u3d_svrg_math_bs_surface.hpp
1 // u3d_svrg_math_bs_surface.hpp
2 // $Id: u3d_svrg_math_bs_surface.hpp,v 1.3 2007/06/26 13:21:32 guser1 Exp $
3 #ifndef U3D_SVRG_MATH_BS_SURFACE_
4 #define U3D_SVRG_MATH_BS_SURFACE_
5 
6 #include "u3d_svrg_math_abstract_surface.hpp"
7 
10 {
11 public:
13  U3dSVRGMathBSSurface(U3dPointsAr &points, double g_step, int ord_p = 4, int ord_q = 4);
14 
18 
20  virtual ~U3dSVRGMathBSSurface();
21 
24  virtual bool getPoint(double p, double q, U3dPoint &point);
25 
28  //virtual bool getCurvature(double p, double q, double &c);
29 
32  //virtual bool getMinCurvature(double p1, double q1, double p2, double q2,
33  // double &c);
34 
36  int getOrderP()
37  {return m_ord_p;}
38 
40  int getOrderQ()
41  {return m_ord_q;}
42 
44  void setOrderP(int ord)
45  {m_ord_p = ord; approximate();}
46 
48  void setOrderQ(int ord)
49  {m_ord_q = ord; approximate();}
50 
53  void movePoint(int ind, double x, double y, double z);
54 
57  void addPoint(U3dPoint *point);
58 
59 
60 protected:
62  int m_ord_p, m_ord_q;
63 
65  double *m_knots_p;
66 
68  double *m_knots_q;
69 
71  bool approximate();
72 
75  void make_knots(int dir, double *&knots);
76 
78  double getBSpl(double t, double *x, int i, int k);
79 
80 private:
82  double *m_Np, *m_Nq;
83 };
84 
85 #endif /*U3D_SVRG_MATH_BS_SURFACE_*/
void setOrderP(int ord)
Definition: u3d_svrg_math_bs_surface.hpp:44
U3dSVRGMathBSSurface(U3dPointsAr &points, double g_step, int ord_p=4, int ord_q=4)
int getOrderP()
Definition: u3d_svrg_math_bs_surface.hpp:36
void setOrderQ(int ord)
Definition: u3d_svrg_math_bs_surface.hpp:48
Definition: geometry.H:16
void make_knots(int dir, double *&knots)
Definition: u3d_point.hpp:16
void movePoint(int ind, double x, double y, double z)
int getOrderQ()
Definition: u3d_svrg_math_bs_surface.hpp:40
double * m_knots_p
Definition: u3d_svrg_math_bs_surface.hpp:65
virtual ~U3dSVRGMathBSSurface()
double getBSpl(double t, double *x, int i, int k)
Definition: u3d_svrg_math_bs_surface.hpp:9
void addPoint(U3dPoint *point)
Definition: u3d_svrg_math_abstract_surface.hpp:21
int m_ord_p
Definition: u3d_svrg_math_bs_surface.hpp:62
virtual bool getPoint(double p, double q, U3dPoint &point)
double * m_knots_q
Definition: u3d_svrg_math_bs_surface.hpp:68