summaryrefslogtreecommitdiff
path: root/inc/Prs2d_Length.hxx
blob: ab1db08cfb559b03a663183fa5b42713b93e5bcd (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
143
144
145
146
147
148
// 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 _Prs2d_Length_HeaderFile
#define _Prs2d_Length_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_Prs2d_Length_HeaderFile
#include <Handle_Prs2d_Length.hxx>
#endif

#ifndef _Standard_ShortReal_HeaderFile
#include <Standard_ShortReal.hxx>
#endif
#ifndef _Prs2d_TypeOfDist_HeaderFile
#include <Prs2d_TypeOfDist.hxx>
#endif
#ifndef _Prs2d_Dimension_HeaderFile
#include <Prs2d_Dimension.hxx>
#endif
#ifndef _Handle_Graphic2d_GraphicObject_HeaderFile
#include <Handle_Graphic2d_GraphicObject.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Prs2d_TypeOfArrow_HeaderFile
#include <Prs2d_TypeOfArrow.hxx>
#endif
#ifndef _Prs2d_ArrowSide_HeaderFile
#include <Prs2d_ArrowSide.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_Graphic2d_Drawer_HeaderFile
#include <Handle_Graphic2d_Drawer.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Aspect_FStream_HeaderFile
#include <Aspect_FStream.hxx>
#endif
class Graphic2d_GraphicObject;
class gp_Pnt2d;
class TCollection_ExtendedString;
class gp_Lin2d;
class Graphic2d_Drawer;


//! Constructs the primitive Length <br>
class Prs2d_Length : public Prs2d_Dimension {

public:

  //! Initializes the length dimension between points <br>
//!          anAttachPnt1 and anAttachPnt2. <br>
//!          aLength is length of the attach lines <br>
//!          aTypeDist defines the orientation of the displayed length: <br>
//!          AIS2D_TOD_AUTOMATIC <br>
//!          AIS2D_TOD_OBLIQUE <br>
//!          AIS2D_TOD_HORIZONTAL <br>
//!          AIS2D_TOD_VERTICAL <br>
//!          anArrow defines the number of arrows (one, two or none) <br>
  Standard_EXPORT   Prs2d_Length(const Handle(Graphic2d_GraphicObject)& aGraphicObject,const gp_Pnt2d& anAttachPnt1,const gp_Pnt2d& anAttachPnt2,const TCollection_ExtendedString& aText,const Standard_Real aTxtScale = 5.0,const Standard_Real aLength = 0.0,const Prs2d_TypeOfDist aTypeDist = Prs2d_TOD_AUTOMATIC,const Standard_Real anArrAngle = 20.0,const Standard_Real anArrLength = 25.0,const Prs2d_TypeOfArrow anArrType = Prs2d_TOA_OPENED,const Prs2d_ArrowSide anArrow = Prs2d_AS_BOTHAR,const Standard_Boolean IsReverseArrow = Standard_False);
  //! Initializes the length dimension between point <br>
//!          anAttachPnt1 and line defined anAttachLin. <br>
//!          aLenAttachLin is length of the attach lines <br>
  Standard_EXPORT   Prs2d_Length(const Handle(Graphic2d_GraphicObject)& aGraphicObject,const gp_Pnt2d& anAttachPnt,const gp_Lin2d& anAttachLin,const TCollection_ExtendedString& aText,const Standard_Real aTxtScale = 10.0,const Standard_Real aLenAttachLin = 0.0,const Standard_Real anArrAngle = 20.0,const Standard_Real anArrLength = 25.0,const Prs2d_TypeOfArrow anArrType = Prs2d_TOA_OPENED,const Prs2d_ArrowSide anArrow = Prs2d_AS_BOTHAR,const Standard_Boolean IsReverseArrow = Standard_False);
  //! Initializes the length dimension between line <br>
//!          anAttachLin1 and line defined anAttachLin2. <br>
//!          aLenAttachLin is length of the attach lines <br>
  Standard_EXPORT   Prs2d_Length(const Handle(Graphic2d_GraphicObject)& aGraphicObject,const gp_Lin2d& anAttachLin1,const gp_Lin2d& anAttachLin2,const TCollection_ExtendedString& aText,const Standard_Real aTxtScale = 10.0,const Standard_Real aLenAttachLin = 0.0,const Standard_Real anArrAngle = 20.0,const Standard_Real anArrLength = 25.0,const Prs2d_TypeOfArrow anArrType = Prs2d_TOA_OPENED,const Prs2d_ArrowSide anArrow = Prs2d_AS_BOTHAR,const Standard_Boolean IsReverseArrow = Standard_False);
  //! Sets the length of attachment lines <br>
  Standard_EXPORT     void SetAttachLinLength(const Standard_Real aLength) ;
  
  Standard_EXPORT   virtual  void Save(Aspect_FStream& aFStream) const;
  //! returns coordinates of points, which are begining <br>
//!          and end of arrow <br>
  Standard_EXPORT     void LineCoord(gp_Pnt2d& aFirstPnt,gp_Pnt2d& aSecondPnt) const;
  //! returns coordinates of points, which are begining <br>
//!          and end of arrow <br>
  Standard_EXPORT     void CallOutCoord(gp_Pnt2d& aFirstPnt,gp_Pnt2d& aSecondPnt) const;
  
  Standard_EXPORT     Prs2d_TypeOfDist TypeOfDist() const;




  DEFINE_STANDARD_RTTI(Prs2d_Length)

protected:

  //! Draws the length <me>. <br>
  Standard_EXPORT     void Draw(const Handle(Graphic2d_Drawer)& aDrawer) ;
  //! Draws element <anIndex> of the length <me>. <br>
  Standard_EXPORT   virtual  void DrawElement(const Handle(Graphic2d_Drawer)& aDrawer,const Standard_Integer anIndex) ;
  //! Draws vertex <anIndex> of the length <me>. <br>
  Standard_EXPORT   virtual  void DrawVertex(const Handle(Graphic2d_Drawer)& aDrawer,const Standard_Integer anIndex) ;
  //! Returns Standard_True if the length <me> is picked, <br>
//!	    Standard_False if not. <br>
  Standard_EXPORT     Standard_Boolean Pick(const Standard_ShortReal X,const Standard_ShortReal Y,const Standard_ShortReal aPrecision,const Handle(Graphic2d_Drawer)& aDrawer) ;
  
      virtual  void CalcTxtPos(const Standard_Boolean theFromAbs = Standard_False) ;



private: 

  
  Standard_EXPORT     void GetPntProject(const Standard_Real aLength) ;
  
  Standard_EXPORT     void ComputeArrows(const Standard_Boolean isnotPoints) ;

Standard_ShortReal myX1;
Standard_ShortReal myY1;
Standard_ShortReal myX2;
Standard_ShortReal myY2;
Standard_ShortReal myAX1;
Standard_ShortReal myAY1;
Standard_ShortReal myAX2;
Standard_ShortReal myAY2;
Prs2d_TypeOfDist myTypeDist;
Standard_ShortReal myXT1;
Standard_ShortReal myYT1;
Standard_ShortReal myXT2;
Standard_ShortReal myYT2;


};


#include <Prs2d_Length.lxx>



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


#endif