42cf5bc1 |
1 | // Created on: 1995-07-24 |
2 | // Created by: Modelistation |
3 | // Copyright (c) 1995-1999 Matra Datavision |
4 | // Copyright (c) 1999-2014 OPEN CASCADE SAS |
5 | // |
6 | // This file is part of Open CASCADE Technology software library. |
7 | // |
8 | // This library is free software; you can redistribute it and/or modify it under |
9 | // the terms of the GNU Lesser General Public License version 2.1 as published |
10 | // by the Free Software Foundation, with special exception defined in the file |
11 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
12 | // distribution for complete text of the license and disclaimer of any warranty. |
13 | // |
14 | // Alternatively, this file may be used under the terms of Open CASCADE |
15 | // commercial license or contractual agreement. |
16 | |
17 | #ifndef _StdPrs_PoleCurve_HeaderFile |
18 | #define _StdPrs_PoleCurve_HeaderFile |
19 | |
42cf5bc1 |
20 | #include <Prs3d_Root.hxx> |
21 | #include <Prs3d_Drawer.hxx> |
ee2be2a8 |
22 | |
42cf5bc1 |
23 | class Adaptor3d_Curve; |
24 | |
42cf5bc1 |
25 | //! A framework to provide display of Bezier or BSpline curves |
26 | //! (by drawing a broken line linking the poles of the curve). |
27 | class StdPrs_PoleCurve : public Prs3d_Root |
28 | { |
29 | public: |
30 | |
31 | DEFINE_STANDARD_ALLOC |
32 | |
33 | |
34 | //! Defines display of BSpline and Bezier curves. |
35 | //! Adds the 3D curve aCurve to the |
36 | //! StdPrs_PoleCurve algorithm. This shape is found in |
37 | //! the presentation object aPresentation, and its display |
38 | //! attributes are set in the attribute manager aDrawer. |
39 | //! The curve object from Adaptor3d provides data from |
40 | //! a Geom curve. This makes it possible to use the |
41 | //! surface in a geometric algorithm. |
42 | Standard_EXPORT static void Add (const Handle(Prs3d_Presentation)& aPresentation, const Adaptor3d_Curve& aCurve, const Handle(Prs3d_Drawer)& aDrawer); |
43 | |
44 | //! returns true if the distance between the point (X,Y,Z) and the |
45 | //! broken line made of the poles is less then aDistance. |
ee2be2a8 |
46 | Standard_EXPORT static Standard_Boolean Match (const Standard_Real X, const Standard_Real Y, const Standard_Real Z, const Standard_Real aDistance, const Adaptor3d_Curve& aCurve, const Handle(Prs3d_Drawer)& aDrawer); |
42cf5bc1 |
47 | |
48 | //! returns the pole the most near of the point (X,Y,Z) and |
49 | //! returns its range. The distance between the pole and |
50 | //! (X,Y,Z) must be less then aDistance. If no pole corresponds, 0 is returned. |
ee2be2a8 |
51 | Standard_EXPORT static Standard_Integer Pick (const Standard_Real X, const Standard_Real Y, const Standard_Real Z, const Standard_Real aDistance, const Adaptor3d_Curve& aCurve, const Handle(Prs3d_Drawer)& aDrawer); |
42cf5bc1 |
52 | |
53 | }; |
54 | |
42cf5bc1 |
55 | #endif // _StdPrs_PoleCurve_HeaderFile |