b311480e |
1 | // Copyright (c) 1995-1999 Matra Datavision |
973c2be1 |
2 | // Copyright (c) 1999-2014 OPEN CASCADE SAS |
b311480e |
3 | // |
973c2be1 |
4 | // This file is part of Open CASCADE Technology software library. |
b311480e |
5 | // |
d5f74e42 |
6 | // This library is free software; you can redistribute it and/or modify it under |
7 | // the terms of the GNU Lesser General Public License version 2.1 as published |
973c2be1 |
8 | // by the Free Software Foundation, with special exception defined in the file |
9 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
10 | // distribution for complete text of the license and disclaimer of any warranty. |
b311480e |
11 | // |
973c2be1 |
12 | // Alternatively, this file may be used under the terms of Open CASCADE |
13 | // commercial license or contractual agreement. |
b311480e |
14 | |
42cf5bc1 |
15 | #include <Prs3d_ArrowAspect.hxx> |
7fd59977 |
16 | |
4e1bc39a |
17 | #include <Prs3d_InvalidAngle.hxx> |
0904aa63 |
18 | #include <Standard_Dump.hxx> |
7fd59977 |
19 | |
4e1bc39a |
20 | IMPLEMENT_STANDARD_RTTIEXT(Prs3d_ArrowAspect, Prs3d_BasicAspect) |
7fd59977 |
21 | |
4e1bc39a |
22 | // ======================================================================= |
23 | // function : Prs3d_ArrowAspect |
24 | // purpose : |
25 | // ======================================================================= |
26 | Prs3d_ArrowAspect::Prs3d_ArrowAspect() |
27 | : myArrowAspect (new Graphic3d_AspectLine3d (Quantity_Color(Quantity_NOC_WHITE), Aspect_TOL_SOLID, 1.0)), |
28 | myAngle (M_PI / 180.0 * 10.0), |
29 | myLength(1.0) |
1a75746e |
30 | { |
4e1bc39a |
31 | // |
1a75746e |
32 | } |
33 | |
4e1bc39a |
34 | // ======================================================================= |
35 | // function : Prs3d_ArrowAspect |
36 | // purpose : |
37 | // ======================================================================= |
ee2be2a8 |
38 | Prs3d_ArrowAspect::Prs3d_ArrowAspect (const Standard_Real theAngle, |
39 | const Standard_Real theLength) |
4e1bc39a |
40 | : myArrowAspect (new Graphic3d_AspectLine3d (Quantity_Color(Quantity_NOC_WHITE), Aspect_TOL_SOLID, 1.0)), |
41 | myAngle (theAngle), |
42 | myLength(theLength) |
7fd59977 |
43 | { |
4e1bc39a |
44 | // |
7fd59977 |
45 | } |
46 | |
4e1bc39a |
47 | // ======================================================================= |
48 | // function : Prs3d_ArrowAspect |
49 | // purpose : |
50 | // ======================================================================= |
51 | Prs3d_ArrowAspect::Prs3d_ArrowAspect (const Handle(Graphic3d_AspectLine3d)& theAspect) |
52 | : myArrowAspect (theAspect), |
53 | myAngle (M_PI / 180.0 * 10.0), |
54 | myLength(1.0) |
7fd59977 |
55 | { |
4e1bc39a |
56 | // |
7fd59977 |
57 | } |
58 | |
4e1bc39a |
59 | // ======================================================================= |
60 | // function : SetAngle |
61 | // purpose : |
62 | // ======================================================================= |
ee2be2a8 |
63 | void Prs3d_ArrowAspect::SetAngle (const Standard_Real theAngle) |
1a75746e |
64 | { |
4e1bc39a |
65 | Prs3d_InvalidAngle_Raise_if (theAngle <= 0.0 |
66 | || theAngle >= M_PI / 2.0, "Prs3d_ArrowAspect::SetAngle() - angle out of range"); |
67 | myAngle = theAngle; |
1a75746e |
68 | } |
0904aa63 |
69 | |
70 | // ======================================================================= |
71 | // function : DumpJson |
72 | // purpose : |
73 | // ======================================================================= |
74 | void Prs3d_ArrowAspect::DumpJson (Standard_OStream& theOStream, const Standard_Integer theDepth) const |
75 | { |
3de0f784 |
76 | OCCT_DUMP_CLASS_BEGIN (theOStream, Prs3d_ArrowAspect); |
0904aa63 |
77 | |
3de0f784 |
78 | OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myArrowAspect.get()); |
79 | OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myAngle); |
80 | OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myLength); |
0904aa63 |
81 | } |