]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/scl/Plant3d/Scenegraph/P3DNode.scl
Further refactoring of SCL interfaces
[simantics/3d.git] / org.simantics.plant3d / scl / Plant3d / Scenegraph / P3DNode.scl
index b80f401a00c95ce4f1654841cccd307dc6858117..227c551ed89336e6fe723a3af13e125daa3b4267 100644 (file)
@@ -1,20 +1,21 @@
-import "G3D/Math/Vector3d"
-import "G3D/Math/Quat4d"
+import "JavaBuiltin" as Java
 
-importJava "org.simantics.plant3d.scenegraph.P3DNode" where
+importJava "org.simantics.plant3d.scenegraph.IP3DVisualNode" where
   data P3DNode
   
-  getName :: P3DNode -> Maybe String
-  setName :: P3DNode -> String -> ()
+  @JavaName getName
+  getName' :: P3DNode -> Maybe String
+  @JavaName setName
+  setName' :: P3DNode -> String -> ()
   
-  getOrientation :: P3DNode -> Quat4d
-  getPosition :: P3DNode -> Vector3d
-  
-  setOrientation :: P3DNode -> Quat4d -> ()
-  setPosition :: P3DNode -> Vector3d -> ()
-  
-  getWorldOrientation :: P3DNode -> Quat4d
-  getWorldPosition :: P3DNode -> Vector3d
-  
-  setWorldOrientation :: P3DNode -> Quat4d -> ()
-  setWorldPosition :: P3DNode -> Vector3d -> ()
\ No newline at end of file
+class P3DNodeClass a where
+  asP3DNode :: a -> P3DNode
+  asP3DNode = Java.unsafeCoerce
+
+  getName :: a -> Maybe String
+  getName c = getName' (asP3DNode c)
+  setName :: a -> String -> ()
+  setName c = setName' (asP3DNode c)
+
+instance P3DNodeClass P3DNode where
+  asP3DNode = id