]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.g3d.jme/src/org/simantics/g3d/jme/utils/JmeUtil.java
Alpha-version of jME-bindings for g3d.
[simantics/3d.git] / org.simantics.g3d.jme / src / org / simantics / g3d / jme / utils / JmeUtil.java
1 package org.simantics.g3d.jme.utils;\r
2 \r
3 import java.util.Collection;\r
4 \r
5 import javax.vecmath.AxisAngle4d;\r
6 import javax.vecmath.Quat4d;\r
7 import javax.vecmath.Vector3d;\r
8 \r
9 import org.simantics.g3d.math.MathTools;\r
10 \r
11 import com.jme3.app.Application;\r
12 import com.jme3.math.Quaternion;\r
13 import com.jme3.renderer.RenderManager;\r
14 import com.jme3.scene.Node;\r
15 import com.jme3.scene.Spatial;\r
16 \r
17 public class JmeUtil {\r
18         \r
19         public static Node getRoot(Application app) {\r
20                 return getRoot(app.getRenderManager());\r
21         }\r
22 \r
23         public static Node getRoot(RenderManager manager) {\r
24                 return (Node)(manager.getMainView("Default").getScenes().get(0));\r
25         }\r
26         \r
27         public static void updateTransform(Collection<Spatial> props, Vector3d pos, Quat4d q) {\r
28                 double position[] = new double[]{pos.x,pos.y,pos.z};\r
29                 updateTransform(props, position, q);\r
30         }\r
31         \r
32         public static void updateTransform(Spatial actor, double pos[], Quat4d quat) {\r
33                 Quaternion q = new Quaternion((float)quat.x, (float)quat.y,(float)quat.z, (float)quat.w);\r
34                 actor.setLocalRotation(q);\r
35                 actor.setLocalTranslation((float)pos[0], (float)pos[1], (float)pos[2]);\r
36                 \r
37         }\r
38         \r
39         public static void updateTransform(Collection<Spatial> props, double pos[], AxisAngle4d aa) {\r
40                 Quat4d q = new Quat4d();\r
41                 MathTools.getQuat(aa, q);\r
42                 updateTransform(props, pos, q);\r
43         }\r
44         \r
45         public static void updateTransform(Collection<Spatial> props, double pos[], Quat4d quat) {\r
46                 Quaternion q = new Quaternion((float)quat.x, (float)quat.y,(float)quat.z, (float)quat.w);\r
47                 for (Spatial actor : props) {\r
48                         actor.setLocalRotation(q);\r
49                         actor.setLocalTranslation((float)pos[0], (float)pos[1], (float)pos[2]);\r
50                 }\r
51         }\r
52         \r
53         public static void updateTransform(Collection<Spatial> props, Vector3d pos, Quat4d quat, double scale) {\r
54                 Quaternion q = new Quaternion((float)quat.x, (float)quat.y,(float)quat.z, (float)quat.w);\r
55                 for (Spatial actor : props) {\r
56                         actor.setLocalRotation(q);\r
57                         actor.setLocalTranslation((float)pos.x, (float)pos.y, (float)pos.z);\r
58                         actor.setLocalScale((float)scale);\r
59                 }\r
60         }\r
61         \r
62         public static void updateTransform(Collection<Spatial> props, double pos[], Quat4d quat, double scale) {\r
63                 Quaternion q = new Quaternion((float)quat.x, (float)quat.y,(float)quat.z, (float)quat.w);\r
64                 for (Spatial actor : props) {\r
65                         actor.setLocalRotation(q);\r
66                         actor.setLocalTranslation((float)pos[0], (float)pos[1], (float)pos[2]);\r
67                         actor.setLocalScale((float)scale);\r
68                 }\r
69         }\r
70         \r
71         public static void updateTransform(Spatial actor, Vector3d pos, Quat4d quat, double scalex, double scaley,double scalez) {\r
72                 Quaternion q = new Quaternion((float)quat.x, (float)quat.y,(float)quat.z, (float)quat.w);\r
73 \r
74                 actor.setLocalRotation(q);\r
75                 actor.setLocalTranslation((float)pos.x, (float)pos.y, (float)pos.z);\r
76                 actor.setLocalScale((float)scalex,(float)scaley,(float)scalez);\r
77 \r
78         }\r
79         \r
80         public static void updateTransform(Collection<Spatial> props, Vector3d pos, Quat4d quat, double scalex, double scaley,double scalez) {\r
81                 Quaternion q = new Quaternion((float)quat.x, (float)quat.y,(float)quat.z, (float)quat.w);\r
82                 for (Spatial actor : props) {\r
83                         actor.setLocalRotation(q);\r
84                         actor.setLocalTranslation((float)pos.x, (float)pos.y, (float)pos.z);\r
85                         actor.setLocalScale((float)scalex,(float)scaley,(float)scalez);\r
86                 }\r
87         }\r
88         \r
89 }\r