Revision 25559 trunk/libraries/lib3DMap/src/org/gvsig/gvsig3d/cacheservices/OSGCacheService.java
OSGCacheService.java | ||
---|---|---|
53 | 53 |
private boolean newLayerOSG = false; |
54 | 54 |
|
55 | 55 |
private EditionManager editionManager; |
56 |
|
|
57 |
private ManipulatorHandler manipulatorHandler; |
|
58 |
|
|
59 |
private EditorListener editionListener; |
|
56 | 60 |
|
57 | 61 |
private RemoveAllSelectionCommand command; |
58 | 62 |
|
... | ... | |
72 | 76 |
_layer = layer; |
73 | 77 |
_layerNode = new Group(); |
74 | 78 |
_layerNode.setNodeName("layer3DOSG"); |
79 |
try { |
|
80 |
editionManager = new EditionManager(); |
|
81 |
_layerNode.addChild(editionManager); |
|
82 |
manipulatorHandler = new ManipulatorHandler(); |
|
83 |
manipulatorHandler.setActive(false); |
|
84 |
editionListener = new EditorListener( |
|
85 |
editionManager, manipulatorHandler, layer, _canvas3D); |
|
75 | 86 |
|
87 |
_canvas3D.getOSGViewer().addEventHandler(manipulatorHandler); |
|
88 |
|
|
89 |
} catch (NodeException e2) { |
|
90 |
// TODO Auto-generated catch block |
|
91 |
e2.printStackTrace(); |
|
92 |
} |
|
93 |
|
|
76 | 94 |
try { |
77 | 95 |
_planetViewer.addSpecialNode(_layerNode); |
78 | 96 |
} catch (NodeException e1) { |
... | ... | |
100 | 118 |
} |
101 | 119 |
|
102 | 120 |
public Group getLayerNode() { |
121 |
|
|
122 |
try { |
|
123 |
return (Group) editionManager.getScene(); |
|
124 |
} catch (NodeException e) { |
|
125 |
// TODO Auto-generated catch block |
|
126 |
e.printStackTrace(); |
|
127 |
} |
|
103 | 128 |
return _layerNode; |
104 | 129 |
} |
105 | 130 |
|
... | ... | |
126 | 151 |
MultiGeometry root = osgD.getOSGDriver().getRootFeature(); |
127 | 152 |
// Insert the geometry in the root node of the graph. |
128 | 153 |
Group g = new Group(); |
129 |
buildGeometry(root, g); |
|
154 |
//buildGeometry(root, g);
|
|
130 | 155 |
// g.addChild(n); |
131 | 156 |
_layerNode.addChild(n); |
132 | 157 |
// _layerNode.addChild(g); |
... | ... | |
160 | 185 |
public void AddGeometryToLayer(MultiGeometry multiGeometry, Vec3 position, |
161 | 186 |
Vec3 rotation, Vec3 scale) { |
162 | 187 |
Group group = new Group(); |
188 |
group.setNodeName("GROUP-PAT"); |
|
163 | 189 |
PositionAttitudeTransform posAttTrasn = null; |
164 | 190 |
try { |
165 | 191 |
posAttTrasn = new PositionAttitudeTransform(); |
166 | 192 |
posAttTrasn.setPosition(position); |
167 | 193 |
posAttTrasn.setScale(scale); |
194 |
posAttTrasn.setNodeName("PAT"); |
|
168 | 195 |
// posAttTrasn.setAttitude((float) rotation.x(), new Vec3(1,0,0)); |
169 | 196 |
// posAttTrasn.setAttitude((float) rotation.y(), new Vec3(0,1,0)); |
170 | 197 |
// posAttTrasn.setAttitude((float) rotation.z(), new Vec3(0,0,1)); |
... | ... | |
172 | 199 |
posAttTrasn.addChild(group); |
173 | 200 |
|
174 | 201 |
Layer3DProps props3D = Layer3DProps.getLayer3DProps(this._layer); |
175 |
if (props3D.isEditing()){ |
|
202 |
//if (props3D.isEditing()){
|
|
176 | 203 |
editionManager.setScene(posAttTrasn); |
177 |
}else{ |
|
178 |
_layerNode.addChild(posAttTrasn); |
|
179 |
} |
|
204 |
//}else{
|
|
205 |
//_layerNode.addChild(posAttTrasn);
|
|
206 |
//}
|
|
180 | 207 |
// _layerNode.addChild(group); |
181 | 208 |
} catch (NodeException e1) { |
182 | 209 |
// TODO Auto-generated catch block |
... | ... | |
224 | 251 |
|
225 | 252 |
public void startEditing() { |
226 | 253 |
|
227 |
try { |
|
228 |
Layer3DProps props3D = Layer3DProps.getLayer3DProps(this._layer); |
|
229 |
if ((props3D.getType() == Layer3DProps.layer3DOSG) |
|
230 |
&& (!props3D.isEditing())) { |
|
231 |
props3D.setEditing(true); |
|
232 |
props3D.setNewLayerOSG(true); |
|
233 |
JOptionPane.showMessageDialog(null, |
|
234 |
"La capa ha sido puesta en edicion"); |
|
235 |
|
|
236 |
editionManager = new EditionManager(); |
|
237 |
for (int i = 0; i < _layerNode.getNumChildren(); i++) { |
|
238 |
Node node = _layerNode.getChild(i); |
|
239 |
editionManager.setScene(node); |
|
240 |
_layerNode.removeChild(node); |
|
241 |
} |
|
242 |
_layerNode.addChild(editionManager); |
|
254 |
Layer3DProps props3D = Layer3DProps.getLayer3DProps(this._layer); |
|
255 |
if ((props3D.getType() == Layer3DProps.layer3DOSG) |
|
256 |
&& (!props3D.isEditing())) { |
|
257 |
props3D.setEditing(true); |
|
258 |
props3D.setNewLayerOSG(true); |
|
259 |
JOptionPane.showMessageDialog(null, |
|
260 |
"La capa ha sido puesta en edicion"); |
|
261 |
|
|
262 |
//editionManager = new EditionManager(); |
|
263 |
//editionManager.setNodeName("EDITIONMANAGER"); |
|
264 |
//editionManager.getChild(0).setNodeName("GROUP"); |
|
265 |
// for (int i = 0; i < _layerNode.getNumChildren(); i++) { |
|
266 |
// Node node = _layerNode.getChild(i); |
|
267 |
// editionManager.setScene(node); |
|
268 |
// _layerNode.removeChild(node); |
|
269 |
// } |
|
270 |
//_layerNode.addChild(editionManager); |
|
271 |
//_layerNode.setNodeName("LAYERNODE"); |
|
243 | 272 |
// Group parent = _layerNode.getParent(0); |
244 | 273 |
// parent.removeChild(_layerNode); |
245 | 274 |
// parent.addChild(editionManager); |
246 |
|
|
275 |
|
|
247 | 276 |
|
248 |
ManipulatorHandler manipulatorHandler = new ManipulatorHandler(); |
|
249 |
manipulatorHandler.setActive(true); |
|
277 |
//ManipulatorHandler manipulatorHandler = new ManipulatorHandler(); |
|
278 |
//manipulatorHandler.setActive(true); |
|
279 |
// public void changeDragger(String draggerType) |
|
280 |
//editionManager.changeDragger(DraggerType.ROTATE_SPHERE_DRAGGER |
|
281 |
// ); |
|
282 |
// editionManager.changeDragger(DraggerType.TABBOX_DRAGGER); |
|
283 |
//editionManager.changeDragger(DraggerType.TRANSLATE_AXIS_DRAGGER |
|
284 |
// ); |
|
250 | 285 |
|
251 |
EditorListener editionListener = new EditorListener( |
|
252 |
editionManager, manipulatorHandler, _canvas3D); |
|
253 |
|
|
254 |
_canvas3D.getOSGViewer().addEventHandler(manipulatorHandler); |
|
255 |
|
|
256 |
// public void changeDragger(String draggerType) |
|
257 |
//editionManager.changeDragger(DraggerType.ROTATE_SPHERE_DRAGGER |
|
258 |
// ); |
|
259 |
// editionManager.changeDragger(DraggerType.TABBOX_DRAGGER); |
|
260 |
//editionManager.changeDragger(DraggerType.TRANSLATE_AXIS_DRAGGER |
|
261 |
// ); |
|
262 |
|
|
263 |
} |
|
264 |
} catch (NodeException e) { |
|
265 |
// TODO Auto-generated catch block |
|
266 |
e.printStackTrace(); |
|
267 | 286 |
} |
268 | 287 |
} |
269 | 288 |
|
270 | 289 |
public void endEditing() { |
271 | 290 |
|
272 |
try { |
|
273 |
Layer3DProps props3D = Layer3DProps.getLayer3DProps(this._layer); |
|
274 |
if ((props3D.getType() == Layer3DProps.layer3DOSG) |
|
275 |
&& (props3D.isEditing())) { |
|
276 |
props3D.setEditing(false); |
|
291 |
Layer3DProps props3D = Layer3DProps.getLayer3DProps(this._layer); |
|
292 |
if ((props3D.getType() == Layer3DProps.layer3DOSG) |
|
293 |
&& (props3D.isEditing())) { |
|
294 |
props3D.setEditing(false); |
|
277 | 295 |
|
278 |
if (props3D.isNewLayerOSG())
|
|
279 |
JOptionPane
|
|
280 |
.showMessageDialog(null,
|
|
281 |
"La capa ha sido modificada, recuerde salvar los cambios.");
|
|
296 |
if (props3D.isNewLayerOSG()) |
|
297 |
JOptionPane |
|
298 |
.showMessageDialog(null, |
|
299 |
"La capa ha sido modificada, recuerde salvar los cambios."); |
|
282 | 300 |
|
283 |
command = new RemoveAllSelectionCommand(editionManager);
|
|
284 |
command.execute();
|
|
301 |
command = new RemoveAllSelectionCommand(editionManager); |
|
302 |
command.execute(); |
|
285 | 303 |
|
286 |
Group scene = editionManager.getTransformedScene(); |
|
287 |
|
|
288 |
for (int i = 0; i < _layerNode.getNumChildren(); i++) { |
|
289 |
Node node = _layerNode.getChild(i); |
|
290 |
_layerNode.removeChild(node); |
|
291 |
|
|
292 |
} |
|
293 |
_layerNode.addChild(scene); |
|
294 |
|
|
304 |
//Group scene = editionManager.getTransformedScene(); |
|
305 |
|
|
306 |
// for (int i = 0; i < _layerNode.getNumChildren(); i++) { |
|
307 |
// Node node = _layerNode.getChild(i); |
|
308 |
// _layerNode.removeChild(node); |
|
309 |
// |
|
310 |
// } |
|
311 |
//_layerNode.removeChildren(); |
|
312 |
|
|
313 |
// for (int i =0; i < scene.getNumChildren(); i++){ |
|
314 |
// |
|
315 |
// _layerNode.addChild(scene.getChild(i)); |
|
316 |
// |
|
317 |
// } |
|
318 |
// |
|
319 |
|
|
295 | 320 |
// Group parent = _layerNode.getParent(0); |
296 | 321 |
// parent.removeChild(_layerNode); |
297 | 322 |
// parent.addChild(scene); |
298 |
// public void changeDragger(String draggerType) |
|
299 |
//editionManager.changeDragger(DraggerType.ROTATE_SPHERE_DRAGGER |
|
300 |
// ); |
|
301 |
// editionManager.changeDragger(DraggerType.TABBOX_DRAGGER); |
|
302 |
//editionManager.changeDragger(DraggerType.TRANSLATE_AXIS_DRAGGER |
|
303 |
// ); |
|
323 |
// public void changeDragger(String draggerType) |
|
324 |
//editionManager.changeDragger(DraggerType.ROTATE_SPHERE_DRAGGER |
|
325 |
// ); |
|
326 |
// editionManager.changeDragger(DraggerType.TABBOX_DRAGGER); |
|
327 |
//editionManager.changeDragger(DraggerType.TRANSLATE_AXIS_DRAGGER |
|
328 |
// ); |
|
329 |
|
|
330 |
manipulatorHandler.setActive(false); |
|
304 | 331 |
|
305 |
} |
|
306 |
} catch (NodeException e) { |
|
307 |
// TODO Auto-generated catch block |
|
308 |
e.printStackTrace(); |
|
309 | 332 |
} |
310 | 333 |
|
311 | 334 |
} |
Also available in: Unified diff