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
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
public class ObjectPoint3DSymbol extends Abstract3DSymbol {
20

    
21
        private Object3DMarkerSymbol object3DMarketSymbol;
22
        private static Node object3D = null;
23
        private static String oldPath = "";
24

    
25
        public ObjectPoint3DSymbol(ISymbol symbol) {
26
                super(symbol);
27
                object3DMarketSymbol = (Object3DMarkerSymbol) symbol;
28
        }
29

    
30
        @Override
31
        public Node generateSymbol(List<Vec3> position) {
32

    
33
                Group group = new Group();
34
                PositionAttitudeTransform posAttTrasn = null;
35
                Vec3 scale = object3DMarketSymbol.getScale();
36
                Vec3 rotation = object3DMarketSymbol.getRotationObject();
37
                try {
38
                        // 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
                        for (Iterator iterator = position.iterator(); iterator.hasNext();) {
44
                                Vec3 pos = (Vec3) iterator.next();
45
                                System.err.println("position " + pos.x() + " " + pos.y() + " "
46
                                                + pos.z());
47
                                posAttTrasn = new PositionAttitudeTransform();
48
                                posAttTrasn.setPosition(pos);
49
                                posAttTrasn.setScale(scale);
50

    
51
                                if (object3DMarketSymbol.isAutoRotate()) {
52
                                        AutoTransform autoRotateTrasn = null;
53
                                        autoRotateTrasn = new AutoTransform();
54
                                        autoRotateTrasn.setPosition(pos);
55
                                        autoRotateTrasn.addChild(posAttTrasn);
56
                                        autoRotateTrasn
57
                                                        .setAutoRotateMode(AutoTransform.AutoRotateMode.ROTATE_TO_CAMERA);
58
                                        // autoRotateTrasn.setAutoScaleToScreen(true);
59
                                        group.addChild(autoRotateTrasn);
60
                                } else {
61
                                        group.addChild(posAttTrasn);
62
                                }
63
                                posAttTrasn.addChild(object3D);
64

    
65
                        }
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
}