--- /dev/null
+package org.simantics.g3d.jme.shape;\r
+\r
+import javax.vecmath.Vector3d;\r
+\r
+import com.jme3.app.Application;\r
+import com.jme3.material.Material;\r
+import com.jme3.math.ColorRGBA;\r
+import com.jme3.math.Vector3f;\r
+import com.jme3.scene.Geometry;\r
+import com.jme3.scene.Mesh;\r
+import com.jme3.scene.Node;\r
+import com.jme3.scene.debug.Arrow;\r
+\r
+public class DualHeadArrowActor extends Node {\r
+ \r
+ Application app;\r
+ \r
+ public DualHeadArrowActor(Application app, String name, Vector3d v) {\r
+ this.app = app;\r
+ Vector3f vec = new Vector3f((float)(v.x*0.5), (float)(v.y*0.5), (float)(v.z*0.5));\r
+ Vector3f vecN = new Vector3f(vec);\r
+ vecN.negate();\r
+ putArrow(vec, vec, ColorRGBA.Red);\r
+ putArrow(vec, vecN, ColorRGBA.Red);\r
+ \r
+ }\r
+ \r
+ public Geometry putShape(Mesh shape, ColorRGBA color){\r
+ Geometry g = new Geometry("shape", shape);\r
+ Material mat = new Material(app.getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md");\r
+ mat.getAdditionalRenderState().setWireframe(true);\r
+ mat.setColor("Color", color);\r
+ g.setMaterial(mat);\r
+ this.attachChild(g);\r
+ return g;\r
+ }\r
+\r
+ public void putArrow(Vector3f pos, Vector3f dir, ColorRGBA color){\r
+ Arrow arrow = new Arrow(dir);\r
+ arrow.setLineWidth(4); // make arrow thicker\r
+ putShape(arrow, color).setLocalTranslation(pos);\r
+ }\r
+\r
+}\r