0023682: Implement Draw_Window with Cocoa framework
[occt.git] / src / Draw / Draw_Axis3D.cxx
1 // Created on: 1992-04-29
2 // Created by: Remi LEQUETTE
3 // Copyright (c) 1992-1999 Matra Datavision
4 // Copyright (c) 1999-2012 OPEN CASCADE SAS
5 //
6 // The content of this file is subject to the Open CASCADE Technology Public
7 // License Version 6.5 (the "License"). You may not use the content of this file
8 // except in compliance with the License. Please obtain a copy of the License
9 // at http://www.opencascade.org and read it completely before using this file.
10 //
11 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 //
14 // The Original Code and all software distributed under the License is
15 // distributed on an "AS IS" basis, without warranty of any kind, and the
16 // Initial Developer hereby disclaims all such warranties, including without
17 // limitation, any warranties of merchantability, fitness for a particular
18 // purpose or non-infringement. Please see the License for the specific terms
19 // and conditions governing the rights and limitations under the License.
20
21
22 #include <Draw_Axis3D.ixx>
23 #include <gp_Vec.hxx>
24 #include <gp.hxx>
25
26 extern Standard_Boolean Draw_Bounds;
27
28
29 //=======================================================================
30 //function : Draw_Axis3D
31 //purpose  : 
32 //=======================================================================
33
34 Draw_Axis3D::Draw_Axis3D (const Draw_Color& col, 
35                           const Standard_Integer Size) :
36        myAxes(gp::XOY()),myColor(col), mySize(Size)
37 {
38 }
39
40 //=======================================================================
41 //function : Draw_Axis3D
42 //purpose  : 
43 //=======================================================================
44
45 Draw_Axis3D::Draw_Axis3D (const gp_Pnt& p, 
46                           const Draw_Color& col, 
47                           const Standard_Integer Size) :
48        myAxes(p,gp::DZ(),gp::DX()), myColor(col), mySize(Size)
49 {
50 }
51
52 //=======================================================================
53 //function : Draw_Axis3D
54 //purpose  : 
55 //=======================================================================
56
57 Draw_Axis3D::Draw_Axis3D (const gp_Ax3& a, 
58                           const Draw_Color& col, 
59                           const Standard_Integer Size) :
60        myAxes(a), myColor(col), mySize(Size)
61 {
62 }
63
64 //=======================================================================
65 //function : DrawOn
66 //purpose  : 
67 //=======================================================================
68
69 void Draw_Axis3D::DrawOn (Draw_Display& dis) const
70 {
71   Draw_Bounds = Standard_False;
72   dis.SetColor(myColor);
73   Standard_Real z = dis.Zoom();
74   z = (Standard_Real)mySize / z;
75   gp_Pnt P,P0 = myAxes.Location();
76   P = P0.Translated(gp_Vec(myAxes.XDirection()) * z);
77   dis.Draw(P0,P);
78   dis.DrawString(P,"X");
79   P = P0.Translated(gp_Vec(myAxes.YDirection()) * z);
80   dis.Draw(P0,P);
81   dis.DrawString(P,"Y");
82   P = P0.Translated(gp_Vec(myAxes.Direction()) * z);
83   dis.Draw(P0,P);
84   dis.DrawString(P,"Z");
85   Draw_Bounds = Standard_True;
86 }
87