svn-gvsig-desktop / trunk / libraries / lib3DMap / src / com / iver / ai2 / gvsig3d / simbology3D / symbol3D / point / SimplePoint3DSymbol.java @ 18954
History | View | Annotate | Download (1.97 KB)
1 | 18103 | jcampos | package com.iver.ai2.gvsig3d.simbology3D.symbol3D.point; |
---|---|---|---|
2 | |||
3 | 18954 | jcampos | import java.awt.Color; |
4 | import java.util.ArrayList; |
||
5 | 18103 | jcampos | import java.util.List; |
6 | 18954 | jcampos | import java.util.Map; |
7 | 18103 | jcampos | |
8 | import com.iver.ai2.gvsig3d.gui.FeatureFactory; |
||
9 | import com.iver.ai2.gvsig3d.simbology3D.symbol3D.Abstract3DSymbol; |
||
10 | 18954 | jcampos | import com.iver.cit.gvsig.fmap.core.symbols.IFillSymbol; |
11 | import com.iver.cit.gvsig.fmap.core.symbols.IMarkerSymbol; |
||
12 | 18103 | jcampos | import com.iver.cit.gvsig.fmap.core.symbols.ISymbol; |
13 | |||
14 | 18219 | mten | import es.upv.ai2.osgvp.Node; |
15 | import es.upv.ai2.osgvp.Vec3; |
||
16 | import es.upv.ai2.osgvp.Vec4; |
||
17 | 18954 | jcampos | import es.upv.ai2.osgvp.features.PixelPoint; |
18 | 18103 | jcampos | |
19 | public class SimplePoint3DSymbol extends Abstract3DSymbol { |
||
20 | |||
21 | 18954 | jcampos | // Los tipo puntos tienen q tener una unica instancia de pixel point.
|
22 | // Podrian tener un hasMap como en el caso del piloto
|
||
23 | private static Map<Double, PixelPoint> pointsMap; |
||
24 | private Vec4 rgba;
|
||
25 | private double size; |
||
26 | |||
27 | 18103 | jcampos | public SimplePoint3DSymbol(ISymbol symbol) {
|
28 | super(symbol);
|
||
29 | 18954 | jcampos | IMarkerSymbol marketSymbol = (IMarkerSymbol) symbol; |
30 | |||
31 | // Symbol color and alpha value
|
||
32 | Color color = marketSymbol.getColor();
|
||
33 | rgba = new Vec4(color.getRed() / 255f, color.getGreen() / 255f, color |
||
34 | .getBlue() / 255f, color.getAlpha());
|
||
35 | |||
36 | size = marketSymbol.getSize(); |
||
37 | |||
38 | |||
39 | 18103 | jcampos | } |
40 | |||
41 | @Override
|
||
42 | public Node generateSymbol(List<Vec3> position) { |
||
43 | // TODO Auto-generated method stub
|
||
44 | 18954 | jcampos | // return FeatureFactory.generateQuadPoligon(position.get(0),new
|
45 | // Vec4(1.0,0.0,0.0,1.0),null,400);
|
||
46 | Node node = FeatureFactory.insertPointL(position, rgba,(int) size);
|
||
47 | Vec3 newPosition = new Vec3(0,0,0); |
||
48 | FeatureFactory.addPointToNode(node,newPosition,rgba,(int)size);
|
||
49 | return node;
|
||
50 | 18103 | jcampos | } |
51 | |||
52 | 18954 | jcampos | private Node getPointNode(double key) { |
53 | PixelPoint pixelPoint= null;
|
||
54 | |||
55 | if (pointsMap.containsKey(new Double(key))) { |
||
56 | // System.out.println("ya contiene esa key");
|
||
57 | pixelPoint = pointsMap.get(new Double(key)); |
||
58 | } else {
|
||
59 | pixelPoint = new PixelPoint();
|
||
60 | pointsMap.put(new Double(key), pixelPoint); |
||
61 | } |
||
62 | |||
63 | return pixelPoint;
|
||
64 | } |
||
65 | |||
66 | 18103 | jcampos | } |