summaryrefslogtreecommitdiff
path: root/src/Draw/Draw_Box.cxx
blob: d98143062c1b71ef490bd6197dbc733932f88b74 (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
// File:	Draw_Box.cxx
// Created:	Fri Mar 10 14:43:04 1995
// Author:	Remi LEQUETTE
//		<rle@phobox>


#include <Draw_Box.ixx>

//=======================================================================
//function : Draw_Box
//purpose  : 
//=======================================================================

Draw_Box::Draw_Box(const gp_Pnt& p1, const gp_Pnt& p2, const Draw_Color& col) :
   myFirst(p1), myLast(p2),myColor(col)
{
  Standard_Real t;
  if (myLast.X() < myFirst.X()) {
    t = myFirst.X();
    myFirst.SetX(myLast.X());
    myLast.SetX(t);
  }
  if (myLast.Y() < myFirst.Y()) {
    t = myFirst.Y();
    myFirst.SetY(myLast.Y());
    myLast.SetY(t);
  }
  if (myLast.Z() < myFirst.Z()) {
    t = myFirst.Z();
    myFirst.SetZ(myLast.Z());
    myLast.SetZ(t);
  }
}

//=======================================================================
//function : DrawOn
//purpose  : 
//=======================================================================

void Draw_Box::DrawOn(Draw_Display& dis) const 
{
  dis.SetColor(myColor);
  gp_Pnt P = myFirst;

  dis.MoveTo(P);
  P.SetX(myLast.X());
  dis.DrawTo(P);
  P.SetY(myLast.Y());
  dis.DrawTo(P);
  P.SetZ(myLast.Z());
  dis.DrawTo(P);
  P.SetX(myFirst.X());
  dis.DrawTo(P);
  P.SetY(myFirst.Y());
  dis.DrawTo(P);
  P.SetZ(myFirst.Z());
  dis.DrawTo(P);

  P.SetX(myLast.X());
  dis.MoveTo(P);
  P.SetZ(myLast.Z());
  dis.DrawTo(P);
  P.SetX(myFirst.X());
  dis.DrawTo(P);
  
  P.SetX(myLast.X());
  dis.MoveTo(P);
  P.SetY(myLast.Y());
  dis.DrawTo(P);
  
  P.SetX(myFirst.X());
  dis.MoveTo(P);
  P.SetZ(myFirst.Z());
  dis.DrawTo(P);
  P.SetY(myFirst.Y());
  dis.DrawTo(P);
  
  P.SetY(myLast.Y());
  dis.MoveTo(P);
  P.SetX(myLast.X());
  dis.DrawTo(P);
}

//=======================================================================
//function : First
//purpose  : 
//=======================================================================

const gp_Pnt& Draw_Box::First() const 
{
  return myFirst;
}

//=======================================================================
//function : First
//purpose  : 
//=======================================================================

void Draw_Box::First(const gp_Pnt& P)
{
  myFirst = P;
}

//=======================================================================
//function : Last
//purpose  : 
//=======================================================================

const gp_Pnt& Draw_Box::Last() const 
{
  return myLast;
}

//=======================================================================
//function : Last
//purpose  : 
//=======================================================================

void Draw_Box::Last(const gp_Pnt& P)
{
  myLast = P;
}