0028263: Coding Rules - clean up definition of the class Graphic3d_MaterialAspect
[occt.git] / src / Prs3d / Prs3d_PlaneAspect.hxx
1 // Created on: 1994-01-17
2 // Created by: Modelistation
3 // Copyright (c) 1994-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 _Prs3d_PlaneAspect_HeaderFile
18 #define _Prs3d_PlaneAspect_HeaderFile
19
20 #include <Quantity_Length.hxx>
21 #include <Quantity_PlaneAngle.hxx>
22 #include <Prs3d_LineAspect.hxx>
23
24 //! A framework to define the display of planes.
25 class Prs3d_PlaneAspect : public Prs3d_BasicAspect
26 {
27   DEFINE_STANDARD_RTTIEXT(Prs3d_PlaneAspect, Prs3d_BasicAspect)
28 public:
29
30   //! Constructs an empty framework for the display of planes.
31   Standard_EXPORT Prs3d_PlaneAspect();
32   
33   //! Returns the attributes of displayed edges involved in the presentation of planes.
34   const Handle(Prs3d_LineAspect)& EdgesAspect() const { return myEdgesAspect; }
35
36   //! Returns the attributes of displayed isoparameters involved in the presentation of planes.
37   const Handle(Prs3d_LineAspect)& IsoAspect() const { return myIsoAspect; }
38   
39   //! Returns the settings for displaying an arrow.
40   const Handle(Prs3d_LineAspect)& ArrowAspect() const { return myArrowAspect; }
41   
42   void SetArrowsLength (const Quantity_Length theLength) { myArrowsLength = theLength; }
43   
44   //! Returns the length of the arrow shaft used in the display of arrows.
45   Quantity_Length ArrowsLength() const { return myArrowsLength; }
46   
47   //! Sets the angle of the arrowhead used in the display of planes.
48   void SetArrowsSize (const Quantity_Length theSize) { myArrowsSize = theSize; }
49   
50   //! Returns the size of arrows used in the display of planes.
51   Quantity_Length ArrowsSize() const { return myArrowsSize; }
52
53   //! Sets the angle of the arrowhead used in the display
54   //! of arrows involved in the presentation of planes.
55   void SetArrowsAngle (const Quantity_PlaneAngle theAngle) { myArrowsAngle = theAngle; }
56   
57   //! Returns the angle of the arrowhead used in the
58   //! display of arrows involved in the presentation of planes.
59   Quantity_PlaneAngle ArrowsAngle() const { return myArrowsAngle; }
60   
61   //! Sets the display attributes defined in DisplayCenterArrow to active.
62   void SetDisplayCenterArrow (const Standard_Boolean theToDraw) { myDrawCenterArrow = theToDraw; }
63   
64   //! Returns true if the display of center arrows is allowed.
65   Standard_Boolean DisplayCenterArrow() const { return myDrawCenterArrow; }
66   
67   //! Sets the display attributes defined in DisplayEdgesArrows to active.
68   void SetDisplayEdgesArrows (const Standard_Boolean theToDraw) { myDrawEdgesArrows = theToDraw; }
69   
70   //! Returns true if the display of edge arrows is allowed.
71   Standard_Boolean DisplayEdgesArrows() const { return myDrawEdgesArrows; }
72   
73   void SetDisplayEdges (const Standard_Boolean theToDraw) { myDrawEdges = theToDraw; }
74   
75   Standard_Boolean DisplayEdges() const { return myDrawEdges; }
76   
77   //! Sets the display attributes defined in DisplayIso to active.
78   void SetDisplayIso (const Standard_Boolean theToDraw) { myDrawIso = theToDraw; }
79   
80   //! Returns true if the display of isoparameters is allowed.
81   Standard_Boolean DisplayIso() const { return myDrawIso; }
82   
83   void SetPlaneLength (const Quantity_Length theLX, const Quantity_Length theLY)
84   {
85     myPlaneXLength = theLX;
86     myPlaneYLength = theLY;
87   }
88   
89   //! Returns the length of the x axis used in the display of planes.
90   Quantity_Length PlaneXLength() const { return myPlaneXLength; }
91   
92   //! Returns the length of the y axis used in the display of planes.
93   Quantity_Length PlaneYLength() const { return myPlaneYLength; }
94   
95   //! Sets the distance L between isoparameters used in the display of planes.
96   void SetIsoDistance (const Quantity_Length theL) { myIsoDistance = theL; }
97   
98   //! Returns the distance between isoparameters used in the display of planes.
99   Quantity_Length IsoDistance() const { return myIsoDistance; }
100
101 protected:
102
103   Handle(Prs3d_LineAspect) myEdgesAspect;
104   Handle(Prs3d_LineAspect) myIsoAspect;
105   Handle(Prs3d_LineAspect) myArrowAspect;
106   Quantity_Length myArrowsLength;
107   Quantity_Length myArrowsSize;
108   Quantity_PlaneAngle myArrowsAngle;
109   Quantity_Length myPlaneXLength;
110   Quantity_Length myPlaneYLength;
111   Quantity_Length myIsoDistance;
112   Standard_Boolean myDrawCenterArrow;
113   Standard_Boolean myDrawEdgesArrows;
114   Standard_Boolean myDrawEdges;
115   Standard_Boolean myDrawIso;
116
117 };
118
119 DEFINE_STANDARD_HANDLE(Prs3d_PlaneAspect, Prs3d_BasicAspect)
120
121 #endif // _Prs3d_PlaneAspect_HeaderFile