]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/gizmo/TranslateAxisGizmo.java
3D framework (Simca 2012)
[simantics/3d.git] / org.simantics.g3d.vtk / src / org / simantics / g3d / vtk / gizmo / TranslateAxisGizmo.java
1 package org.simantics.g3d.vtk.gizmo;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.Collection;\r
5 import java.util.List;\r
6 \r
7 import javax.vecmath.Point3d;\r
8 \r
9 import org.simantics.g3d.vtk.action.TranslateAction;\r
10 import org.simantics.g3d.vtk.shape.vtkShape;\r
11 \r
12 import vtk.vtkActor;\r
13 import vtk.vtkProp;\r
14 \r
15 public class TranslateAxisGizmo extends vtkGizmo{\r
16         \r
17         private List<vtkProp> parts = new ArrayList<vtkProp>();\r
18         int type = -1;\r
19 \r
20         \r
21         @Override\r
22         public Collection<vtkProp> getGizmo() {\r
23                 for (vtkProp p : parts)\r
24                         p.Delete();\r
25                 parts.clear();\r
26                 double l = 100;\r
27                 double w = 3;\r
28                 switch (type) {\r
29                 case TranslateAction.X:{\r
30                         vtkActor lineActorX = vtkShape.createLineActor(new Point3d(-l,0,0), new Point3d(l,0,0));\r
31                         lineActorX.GetProperty().SetColor(1, 0, 0);\r
32                         lineActorX.GetProperty().SetLineWidth(w);\r
33                         lineActorX.GetProperty().Delete();\r
34                         parts.add(lineActorX);\r
35                         break;\r
36                 }\r
37                 case TranslateAction.Y: {\r
38                         vtkActor lineActorY = vtkShape.createLineActor(new Point3d(0,-l,0), new Point3d(0,l,0));\r
39                         lineActorY.GetProperty().SetColor(0, 1, 0);\r
40                         lineActorY.GetProperty().SetLineWidth(w);\r
41                         lineActorY.GetProperty().Delete();\r
42                         parts.add(lineActorY);\r
43                         break;\r
44                 }\r
45                 case TranslateAction.Z: {\r
46                         vtkActor lineActorZ = vtkShape.createLineActor(new Point3d(0,0,-l), new Point3d(0,0,l));\r
47                         lineActorZ.GetProperty().SetColor(0, 0, 1);\r
48                         lineActorZ.GetProperty().SetLineWidth(w);\r
49                         lineActorZ.GetProperty().Delete();\r
50                         parts.add(lineActorZ);\r
51                         break;\r
52                 }\r
53                 case TranslateAction.XY: {\r
54                         vtkActor lineActorX = vtkShape.createLineActor(new Point3d(-l,0,0), new Point3d(l,0,0));\r
55                         lineActorX.GetProperty().SetColor(1, 0, 0);\r
56                         lineActorX.GetProperty().SetLineWidth(w);\r
57                         lineActorX.GetProperty().Delete();\r
58                         parts.add(lineActorX);\r
59                         vtkActor lineActorY = vtkShape.createLineActor(new Point3d(0,-l,0), new Point3d(0,l,0));\r
60                         lineActorY.GetProperty().SetColor(0, 1, 0);\r
61                         lineActorY.GetProperty().SetLineWidth(w);\r
62                         lineActorY.GetProperty().Delete();\r
63                         parts.add(lineActorY);\r
64                         break;\r
65                 }\r
66                 case TranslateAction.XZ: {\r
67                         vtkActor lineActorX = vtkShape.createLineActor(new Point3d(-l,0,0), new Point3d(l,0,0));\r
68                         lineActorX.GetProperty().SetColor(1, 0, 0);\r
69                         lineActorX.GetProperty().Delete();\r
70                         parts.add(lineActorX);\r
71                         vtkActor lineActorZ = vtkShape.createLineActor(new Point3d(0,0,-l), new Point3d(0,0,l));\r
72                         lineActorZ.GetProperty().SetColor(0, 0, 1);\r
73                         lineActorZ.GetProperty().Delete();\r
74                         parts.add(lineActorZ);\r
75                         break;\r
76                 }\r
77                 case TranslateAction.YZ: {\r
78                         vtkActor lineActorY = vtkShape.createLineActor(new Point3d(0,-l,0), new Point3d(0,l,0));\r
79                         lineActorY.GetProperty().SetColor(0, 1, 0);\r
80                         lineActorY.GetProperty().SetLineWidth(w);\r
81                         lineActorY.GetProperty().Delete();\r
82                         parts.add(lineActorY);\r
83                         vtkActor lineActorZ = vtkShape.createLineActor(new Point3d(0,0,-l), new Point3d(0,0,l));\r
84                         lineActorZ.GetProperty().SetColor(0, 0, 1);\r
85                         lineActorZ.GetProperty().SetLineWidth(w);\r
86                         lineActorZ.GetProperty().Delete();\r
87                         parts.add(lineActorZ);\r
88                         break;\r
89                 }\r
90                 default: {\r
91                         \r
92                 }\r
93                 }\r
94                 return parts;\r
95         }\r
96         \r
97         public void setType(int type) {\r
98                 if (this.type == type)\r
99                         return;\r
100                 this.type = type;\r
101                 if (getRenderer() != null) {\r
102                         deattachActors();\r
103                         attachActors();\r
104                 }\r
105         }\r
106         \r
107         \r
108 }\r