0030675: Visualization - remove redundant proxy classes in hierarchy of PrsMgr_Presen...
[occt.git] / src / DsgPrs / DsgPrs_AnglePresentation.hxx
1 // Created on: 1995-02-07
2 // Created by: Arnaud BOUZY
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 _DsgPrs_AnglePresentation_HeaderFile
18 #define _DsgPrs_AnglePresentation_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_DefineAlloc.hxx>
22 #include <Standard_Handle.hxx>
23
24 #include <Prs3d_Drawer.hxx>
25 #include <Standard_Real.hxx>
26 #include <DsgPrs_ArrowSide.hxx>
27 #include <Standard_Boolean.hxx>
28 #include <Prs3d_Presentation.hxx>
29
30 class TCollection_ExtendedString;
31 class gp_Circ;
32 class gp_Pnt;
33 class gp_Dir;
34 class gp_Ax1;
35
36
37 //! A framework for displaying angles.
38 class DsgPrs_AnglePresentation 
39 {
40 public:
41
42   DEFINE_STANDARD_ALLOC
43
44   
45   //! Draws the presenation of the full angle of a cone.
46   //! VminCircle - a circle at V parameter = Vmin
47   //! VmaxCircle - a circle at V parameter = Vmax
48   //! aCircle - a circle at V parameter from projection of aPosition to axis of the cone
49   Standard_EXPORT static void Add (const Handle(Prs3d_Presentation)& aPresentation, const Handle(Prs3d_Drawer)& aDrawer, const Standard_Real aVal, const TCollection_ExtendedString& aText, const gp_Circ& aCircle, const gp_Pnt& aPosition, const gp_Pnt& Apex, const gp_Circ& VminCircle, const gp_Circ& VmaxCircle, const Standard_Real aArrowSize);
50   
51   //! Draws the representation of the angle
52   //! defined by dir1 and dir2, centered on
53   //! CenterPoint, using the offset point OffsetPoint.
54   //! Lines are drawn to points AttachmentPoint1 and AttachmentPoint2
55   Standard_EXPORT static void Add (const Handle(Prs3d_Presentation)& aPresentation, const Handle(Prs3d_Drawer)& aDrawer, const Standard_Real theval, const gp_Pnt& CenterPoint, const gp_Pnt& AttachmentPoint1, const gp_Pnt& AttachmentPoint2, const gp_Dir& dir1, const gp_Dir& dir2, const gp_Pnt& OffsetPoint);
56   
57   //! Same  as above, but <thevalstring> contains conversion
58   //! in Session units....
59   Standard_EXPORT static void Add (const Handle(Prs3d_Presentation)& aPresentation, const Handle(Prs3d_Drawer)& aDrawer, const Standard_Real theval, const TCollection_ExtendedString& thevalstring, const gp_Pnt& CenterPoint, const gp_Pnt& AttachmentPoint1, const gp_Pnt& AttachmentPoint2, const gp_Dir& dir1, const gp_Dir& dir2, const gp_Pnt& OffsetPoint);
60   
61   //! Same  as above, may add one  or
62   //! two Arrows  according to  <ArrowSide>  value
63   Standard_EXPORT static void Add (const Handle(Prs3d_Presentation)& aPresentation, const Handle(Prs3d_Drawer)& aDrawer, const Standard_Real theval, const TCollection_ExtendedString& thevalstring, const gp_Pnt& CenterPoint, const gp_Pnt& AttachmentPoint1, const gp_Pnt& AttachmentPoint2, const gp_Dir& dir1, const gp_Dir& dir2, const gp_Pnt& OffsetPoint, const DsgPrs_ArrowSide ArrowSide);
64   
65   //! Same  as above, but axisdir contains the axis direction
66   //! useful for Revol that can be opened with 180 degrees
67   Standard_EXPORT static void Add (const Handle(Prs3d_Presentation)& aPresentation, const Handle(Prs3d_Drawer)& aDrawer, const Standard_Real theval, const TCollection_ExtendedString& thevalstring, const gp_Pnt& CenterPoint, const gp_Pnt& AttachmentPoint1, const gp_Pnt& AttachmentPoint2, const gp_Dir& dir1, const gp_Dir& dir2, const gp_Dir& axisdir, const gp_Pnt& OffsetPoint);
68   
69   //! Same  as above,may add one  or
70   //! two Arrows  according to  <ArrowSide>  value
71   Standard_EXPORT static void Add (const Handle(Prs3d_Presentation)& aPresentation, const Handle(Prs3d_Drawer)& aDrawer, const Standard_Real theval, const TCollection_ExtendedString& thevalstring, const gp_Pnt& CenterPoint, const gp_Pnt& AttachmentPoint1, const gp_Pnt& AttachmentPoint2, const gp_Dir& dir1, const gp_Dir& dir2, const gp_Dir& axisdir, const Standard_Boolean isPlane, const gp_Ax1& AxisOfSurf, const gp_Pnt& OffsetPoint, const DsgPrs_ArrowSide ArrowSide);
72   
73   //! simple representation of a poor lonesome angle dimension
74   //! Draw a line from <theCenter>   to <AttachmentPoint1>, then operates
75   //! a rotation around the perpmay add one  or
76   //! two Arrows  according to  <ArrowSide>  value.  The
77   //! attributes (color,arrowsize,...) are driven by the Drawer.
78   Standard_EXPORT static void Add (const Handle(Prs3d_Presentation)& aPresentation, const Handle(Prs3d_Drawer)& aDrawer, const Standard_Real theval, const gp_Pnt& theCenter, const gp_Pnt& AttachmentPoint1, const gp_Ax1& theAxe, const DsgPrs_ArrowSide ArrowSide);
79
80
81
82
83 protected:
84
85
86
87
88
89 private:
90
91
92
93
94
95 };
96
97
98
99
100
101
102
103 #endif // _DsgPrs_AnglePresentation_HeaderFile