summaryrefslogtreecommitdiff
path: root/inc/DrawTrSurf_BSplineSurface.hxx
blob: 6ce3635483c11497de376c6b1343e4ffd551269e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _DrawTrSurf_BSplineSurface_HeaderFile
#define _DrawTrSurf_BSplineSurface_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_DrawTrSurf_BSplineSurface_HeaderFile
#include <Handle_DrawTrSurf_BSplineSurface.hxx>
#endif

#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Draw_MarkerShape_HeaderFile
#include <Draw_MarkerShape.hxx>
#endif
#ifndef _Draw_Color_HeaderFile
#include <Draw_Color.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _DrawTrSurf_Surface_HeaderFile
#include <DrawTrSurf_Surface.hxx>
#endif
#ifndef _Handle_Geom_BSplineSurface_HeaderFile
#include <Handle_Geom_BSplineSurface.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Handle_Draw_Drawable3D_HeaderFile
#include <Handle_Draw_Drawable3D.hxx>
#endif
class Geom_BSplineSurface;
class Draw_Color;
class Draw_Display;
class Draw_Drawable3D;



//!  This class defines a drawable BSplineSurface. <br>
//!  With this class you can draw the control points and the knots <br>
//!  of the surface. <br>
//!  You can use the general class Surface from DrawTrSurf too, <br>
//!  if you just want to sea boundaries and isoparametric curves. <br>
class DrawTrSurf_BSplineSurface : public DrawTrSurf_Surface {

public:

  //! default drawing mode. <br>
//!  The isoparametric curves corresponding to the knots values are <br>
//!  drawn. <br>
//!  The control points and the knots points are drawn. <br>
//!  The boundaries are yellow, the isoparametric curves are blues. <br>
//!  For the discretisation 50 points are computed in each parametric <br>
//!  direction. <br>
  Standard_EXPORT   DrawTrSurf_BSplineSurface(const Handle(Geom_BSplineSurface)& S);
  
//!  The isoparametric curves corresponding to the knots values are <br>
//!  drawn. <br>
  Standard_EXPORT   DrawTrSurf_BSplineSurface(const Handle(Geom_BSplineSurface)& S,const Draw_Color& BoundsColor,const Draw_Color& IsosColor,const Draw_Color& PolesColor,const Draw_Color& KnotsColor,const Draw_MarkerShape KnotsShape,const Standard_Integer KnotsSize,const Standard_Boolean ShowPoles,const Standard_Boolean ShowKnots,const Standard_Integer Discret,const Standard_Real Deflection,const Standard_Integer DrawMode);
  //! Parametric equidistant iso curves are drawn. <br>
  Standard_EXPORT   DrawTrSurf_BSplineSurface(const Handle(Geom_BSplineSurface)& S,const Standard_Integer NbUIsos,const Standard_Integer NbVIsos,const Draw_Color& BoundsColor,const Draw_Color& IsosColor,const Draw_Color& PolesColor,const Draw_Color& KnotsColor,const Draw_MarkerShape KnotsShape,const Standard_Integer KnotsSize,const Standard_Boolean ShowPoles,const Standard_Boolean ShowKnots,const Standard_Integer Discret,const Standard_Real Deflection,const Standard_Integer DrawMode);
  
  Standard_EXPORT     void DrawOn(Draw_Display& dis) const;
  
  Standard_EXPORT     void ShowPoles() ;
  
  Standard_EXPORT     void ShowKnots() ;
  //! change the number of isoparametric curves to be drawn. <br>
  Standard_EXPORT   virtual  void ShowIsos(const Standard_Integer Nu,const Standard_Integer Nv) ;
  //! change the number of isoparametric curves to be drawn. <br>
  Standard_EXPORT     void ShowKnotsIsos() ;
  //! rub out all the isoparametric curves. <br>
  Standard_EXPORT   virtual  void ClearIsos() ;
  
  Standard_EXPORT     void ClearPoles() ;
  
  Standard_EXPORT     void ClearKnots() ;
  
  Standard_EXPORT     void FindPole(const Standard_Real X,const Standard_Real Y,const Draw_Display& D,const Standard_Real Prec,Standard_Integer& UIndex,Standard_Integer& VIndex) const;
  
  Standard_EXPORT     void FindUKnot(const Standard_Real X,const Standard_Real Y,const Draw_Display& D,const Standard_Real Prec,Standard_Integer& UIndex) const;
  
  Standard_EXPORT     void FindVKnot(const Standard_Real X,const Standard_Real Y,const Draw_Display& D,const Standard_Real Prec,Standard_Integer& VIndex) const;
  
        void SetPolesColor(const Draw_Color& aColor) ;
  
        void SetKnotsColor(const Draw_Color& aColor) ;
  
        void SetKnotsShape(const Draw_MarkerShape Shape) ;
  
        Draw_MarkerShape KnotsShape() const;
  
        Draw_Color KnotsColor() const;
  
        Draw_Color PolesColor() const;
  //! For variable copy. <br>
  Standard_EXPORT   virtual  Handle_Draw_Drawable3D Copy() const;




  DEFINE_STANDARD_RTTI(DrawTrSurf_BSplineSurface)

protected:




private: 


Standard_Boolean drawPoles;
Standard_Boolean drawKnots;
Standard_Boolean knotsIsos;
Draw_MarkerShape knotsForm;
Draw_Color knotsLook;
Standard_Integer knotsDim;
Draw_Color polesLook;


};


#include <DrawTrSurf_BSplineSurface.lxx>



// other Inline functions and methods (like "C++: function call" methods)


#endif