Statistics
| Revision:

svn-gvsig-desktop / tags / 3D_Animation_v1_0alpha_Build_5 / libraries / lib3DMap / src / org / gvsig / gvsig3d / simbology3D / symbol3D / point / ObjectPoint3DSymbol.java @ 25534

History | View | Annotate | Download (2.44 KB)

1 23167 jcampos
package org.gvsig.gvsig3d.simbology3D.symbol3D.point;
2
3
import java.io.FileNotFoundException;
4
import java.util.Iterator;
5
import java.util.List;
6
7
import org.gvsig.gvsig3d.simbology3D.symbol3D.Abstract3DSymbol;
8
import org.gvsig.osgvp.AutoTransform;
9
import org.gvsig.osgvp.Group;
10
import org.gvsig.osgvp.Node;
11
import org.gvsig.osgvp.PositionAttitudeTransform;
12
import org.gvsig.osgvp.Vec3;
13
import org.gvsig.osgvp.osgDB;
14
import org.gvsig.osgvp.exceptions.node.NodeException;
15
16
import com.iver.ai2.gvsig3d.legend.Object3DMarkerSymbol;
17
import com.iver.cit.gvsig.fmap.core.symbols.ISymbol;
18
19 23304 jcampos
public class ObjectPoint3DSymbol extends Abstract3DSymbol {
20 23167 jcampos
21
        private Object3DMarkerSymbol object3DMarketSymbol;
22 23304 jcampos
        private static Node object3D = null;
23
        private static String oldPath = "";
24 23167 jcampos
25
        public ObjectPoint3DSymbol(ISymbol symbol) {
26
                super(symbol);
27
                object3DMarketSymbol = (Object3DMarkerSymbol) symbol;
28
        }
29
30
        @Override
31
        public Node generateSymbol(List<Vec3> position) {
32 23304 jcampos
33 23167 jcampos
                Group group = new Group();
34
                PositionAttitudeTransform posAttTrasn = null;
35
                Vec3 scale = object3DMarketSymbol.getScale();
36
                Vec3 rotation = object3DMarketSymbol.getRotationObject();
37
                try {
38 23304 jcampos
                        // Node object3D = osgDB.readNodeFile("D:/modelos3d/cow.ive");
39
                        if (!(oldPath.equals(object3DMarketSymbol.getObject3DPath()))){
40
                                oldPath = object3DMarketSymbol.getObject3DPath();
41
                                object3D = osgDB.readNodeFile(oldPath);
42
                        }
43 23167 jcampos
                        for (Iterator iterator = position.iterator(); iterator.hasNext();) {
44
                                Vec3 pos = (Vec3) iterator.next();
45 23304 jcampos
                                System.err.println("position " + pos.x() + " " + pos.y() + " "
46
                                                + pos.z());
47 23167 jcampos
                                posAttTrasn = new PositionAttitudeTransform();
48
                                posAttTrasn.setPosition(pos);
49
                                posAttTrasn.setScale(scale);
50 23304 jcampos
51
                                if (object3DMarketSymbol.isAutoRotate()) {
52
                                        AutoTransform autoRotateTrasn = null;
53
                                        autoRotateTrasn = new AutoTransform();
54 23167 jcampos
                                        autoRotateTrasn.setPosition(pos);
55
                                        autoRotateTrasn.addChild(posAttTrasn);
56 23304 jcampos
                                        autoRotateTrasn
57
                                                        .setAutoRotateMode(AutoTransform.AutoRotateMode.ROTATE_TO_CAMERA);
58
                                        // autoRotateTrasn.setAutoScaleToScreen(true);
59 23167 jcampos
                                        group.addChild(autoRotateTrasn);
60 23304 jcampos
                                } else {
61 23167 jcampos
                                        group.addChild(posAttTrasn);
62
                                }
63
                                posAttTrasn.addChild(object3D);
64 23304 jcampos
65 23167 jcampos
                        }
66
                } catch (NodeException e1) {
67
                        // TODO Auto-generated catch block
68
                        e1.printStackTrace();
69
                } catch (FileNotFoundException e) {
70
                        // TODO Auto-generated catch block
71
                        e.printStackTrace();
72
                }
73
74
                return group;
75
        }
76
77
}