Integration of OCCT 6.5.0 from SVN
[occt.git] / samples / java / java / CASCADEView3d.java
CommitLineData
7fd59977 1
2//Title: OpenCASCADE Samples
3//Version:
4//Copyright: Copyright (c) 1999
5//Author: User Interface group
6//Company: Matra Datavision
7//Description:
8
9import java.awt.*;
10import java.awt.event.*;
11import javax.swing.*;
12import jcas.*;
13import CASCADESamplesJni.*;
14import util.*;
15
16public class CASCADEView3d extends ViewCanvas
17{
18 private V3d_Viewer myViewer = null;
19 private V3d_View myView = null;
20
21 private double currScale = 1.0;
22 private boolean degenerated = true;
23
24//=======================================================================//
25// Constructor //
26//=======================================================================//
27 public CASCADEView3d(V3d_Viewer viewer)
28 {
29 myViewer = viewer;
30 myView = myViewer.CreateView();
31 }
32
33//=======================================================================//
34// Redefined operations
35//=======================================================================//
36 /** Sets a handle of native window to CASCADE view */
37// public void setWindow3d(V3d_View view, int hiwin, int lowin)
38// {
39// }
40
41//=======================================================================//
42// public void SetWindow()
43// {
44// int windowHandle = getWinData();
45// short hi, lo;
46// lo = (short) windowHandle;
47// hi = (short) (windowHandle >> 16);
48// setWindow3d(myView, hi, lo);
49// }
50
51//=======================================================================//
52 public void FitAll()
53 {
54 if (myView != null)
55 {
56 myView.FitAll(0.01, true);
57 myView.ZFitAll(0.0);
58 }
59 }
60
61//=======================================================================//
62 public void WindowFit(Rectangle rect)
63 {
64 if (myView != null)
65 myView.WindowFit(rect.x, rect.y, rect.x + rect.width, rect.y + rect.height);
66 }
67
68//=======================================================================//
69 public void Zoom(int x0, int y0, int x, int y)
70 {
71 if (myView != null)
72 myView.Zoom(x0, y0, x, y);
73 }
74
75//=======================================================================//
76 public void ActivateGlobalPanning()
77 {
78 super.ActivateGlobalPanning();
79 if (myView != null)
80 {
81 currScale = myView.Scale();
82 myView.FitAll(0.01, false);
83 }
84 }
85
86//=======================================================================//
87 public void Pan(int dx, int dy)
88 {
89 if (myView != null)
90 myView.Pan(dx, dy, 1.0);
91 }
92
93//=======================================================================//
94 public void SetCenter(int x, int y)
95 {
96 if (myView != null)
97 myView.Place(x, y, currScale);
98 }
99
100//=======================================================================//
101 public void StartRotation(int x0, int y0)
102 {
103 if (myView != null)
104 {
105 degenerated = myView.DegenerateModeIsOn();
106 myView.SetDegenerateModeOn();
107 myView.StartRotation(x0, y0, 0.0);
108 }
109 }
110
111//=======================================================================//
112 public void Rotate(int x, int y)
113 {
114 if (myView != null)
115 myView.Rotation(x, y);
116 }
117
118//=======================================================================//
119 public void EndRotation()
120 {
121 if (myView != null)
122 if (!degenerated)
123 myView.SetDegenerateModeOff();
124 }
125
126//=======================================================================//
127 public void SetProjection(String type)
128 {
129 if (myView != null)
130 {
131 if (type.equals("Axo"))
132 myView.SetProj(V3d_TypeOfOrientation.V3d_XposYnegZpos);
133 else if (type.equals("Front"))
134 myView.SetProj(V3d_TypeOfOrientation.V3d_Yneg);
135 else if (type.equals("Top"))
136 myView.SetProj(V3d_TypeOfOrientation.V3d_Zpos);
137 else if (type.equals("Left"))
138 myView.SetProj(V3d_TypeOfOrientation.V3d_Xneg);
139 else if (type.equals("Back"))
140 myView.SetProj(V3d_TypeOfOrientation.V3d_Ypos);
141 else if (type.equals("Right"))
142 myView.SetProj(V3d_TypeOfOrientation.V3d_Xpos);
143 else if (type.equals("Bottom"))
144 myView.SetProj(V3d_TypeOfOrientation.V3d_Zneg);
145 }
146 }
147
148//=======================================================================//
149 public void SetDegenerateMode(boolean isOn)
150 {
151 if (myView != null)
152 {
153 if (isOn)
154 myView.SetDegenerateModeOn();
155 else
156 myView.SetDegenerateModeOff();
157 }
158 }
159
160//=======================================================================//
161 public void ResetView()
162 {
163 if (myView != null)
164 myView.Reset();
165 }
166
167//=======================================================================//
168 public Color GetBackgroundColor()
169 {
170 if (myView != null)
171 {
172 Standard_Real aRed = new Standard_Real();
173 Standard_Real aGreen = new Standard_Real();
174 Standard_Real aBlue = new Standard_Real();
175
176 myView.BackgroundColor(Quantity_TypeOfColor.Quantity_TOC_RGB, aRed, aGreen, aBlue);
177
178 int red = (int) (aRed.GetValue()*255);
179 int green = (int) (aGreen.GetValue()*255);
180 int blue = (int) (aBlue.GetValue()*255);
181
182 return new Color(red, green, blue);
183 }
184 else
185 return super.GetBackgroundColor();
186 }
187
188//=======================================================================//
189 public void SetBackgroundColor(Color color)
190 {
191 if (myView != null)
192 {
193 myView.SetBackgroundColor(Quantity_TypeOfColor.Quantity_TOC_RGB,
194 color.getRed()/255., color.getGreen()/255.,
195 color.getBlue()/255.);
196 myView.Update();
197 }
198 }
199
200//=======================================================================//
201
202 public native void paint (Graphics g);
203// commented
204// public void paint(Graphics g)
205// {
206// if (myView != null)
207// {
208// if (needResize)
209// {
210// myView.MustBeResized();
211// needResize = false;
212// }
213// myView.Redraw();
214// }
215// super.paint(g);
216// }
217
218//=======================================================================//
219 public V3d_View getView()
220 {
221 return myView;
222 }
223}