]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/scl/Plant3d/Scenegraph/PipelineComponent.scl
Further refactoring of SCL interfaces
[simantics/3d.git] / org.simantics.plant3d / scl / Plant3d / Scenegraph / PipelineComponent.scl
index f4b621560ad78f940ac7153319b626552cb2635b..efd86b715a7fbaed5ef88051ef4f64000cd7e44b 100644 (file)
@@ -2,47 +2,106 @@ import "G3D/Math/Tuple3d"
 import "G3D/Math/Quat4d"
 import "G3D/Math/Vector3d"
 
+include "G3D/Scenegraph/Node"
+include "G3D/Scenegraph/G3DNode"
+
+include "./P3DNode"
+
+import "JavaBuiltin" as Java
+
 importJava "org.simantics.plant3d.scenegraph.PipelineComponent" where
   data PipelineComponent
   
-  getPipeRun :: PipelineComponent -> PipeRun
-  setPipeRun :: PipelineComponent -> PipeRun -> ()
+  @JavaName getPipeRun
+  getPipeRun' :: PipelineComponent -> PipeRun
+  @JavaName setPipeRun
+  setPipeRun' :: PipelineComponent -> PipeRun -> ()
   
-  getAlternativePipeRun :: PipelineComponent -> Maybe PipeRun
-  setAlternativePipeRun :: PipelineComponent -> PipeRun -> ()
+  @JavaName getAlternativePipeRun
+  getAlternativePipeRun' :: PipelineComponent -> Maybe PipeRun
+  @JavaName setAlternativePipeRun
+  setAlternativePipeRun' :: PipelineComponent -> PipeRun -> ()
   
-  updateParameters :: PipelineComponent -> ()
+  @JavaName updateParameters
+  updateParameters' :: PipelineComponent -> ()
   
-  getNext :: PipelineComponent -> Maybe PipelineComponent
-  setNext :: PipelineComponent -> Maybe PipelineComponent -> ()
+  @JavaName getNext
+  getNext' :: PipelineComponent -> Maybe PipelineComponent
+  @JavaName setNext
+  setNext' :: PipelineComponent -> Maybe PipelineComponent -> ()
   
-  getPrevious :: PipelineComponent -> Maybe PipelineComponent
-  setPrevious :: PipelineComponent -> Maybe PipelineComponent -> ()
+  @JavaName getPrevious
+  getPrevious' :: PipelineComponent -> Maybe PipelineComponent
+  @JavaName setPrevious
+  setPrevious' :: PipelineComponent -> Maybe PipelineComponent -> ()
   
-  getBranch0 :: PipelineComponent -> Maybe PipelineComponent
-  setBranch0 :: PipelineComponent -> Maybe PipelineComponent -> ()
+  @JavaName getBranch0
+  getBranch0' :: PipelineComponent -> Maybe PipelineComponent
+  @JavaName setBranch0
+  setBranch0' :: PipelineComponent -> Maybe PipelineComponent -> ()
   
-  getType :: PipelineComponent -> String
+  @JavaName getType
+  getType' :: PipelineComponent -> String
   
   //getControlPoint :: PipelineComponent -> PipeControlPoint
   
-  remove :: PipelineComponent -> ()
-  
-  getFlowLength :: PipelineComponent -> Maybe Double
-  getEnds :: PipelineComponent -> Tuple3d -> Tuple3d -> ()
-  
-  getOrientation :: PipelineComponent -> Quat4d
-  getPosition :: PipelineComponent -> Vector3d
-  
-  setOrientation :: PipelineComponent -> Quat4d -> ()
-  setPosition :: PipelineComponent -> Vector3d -> ()
-  
-  getWorldOrientation :: PipelineComponent -> Quat4d
-  getWorldPosition :: PipelineComponent -> Vector3d
-  
-  setWorldOrientation :: PipelineComponent -> Quat4d -> ()
-  setWorldPosition :: PipelineComponent -> Vector3d -> ()
+  @JavaName remove
+  remove' :: PipelineComponent -> ()
   
+  @JavaName getFlowLength
+  getFlowLength' :: PipelineComponent -> Maybe Double
+  @JavaName getEnds
+  getEnds' :: PipelineComponent -> Tuple3d -> Tuple3d -> ()
+
+class PipelineComponentClass a where
+  asPipelineComponent :: a -> PipelineComponent
+  asPipelineComponent = Java.unsafeCoerce
+
+  getPipeRun :: a -> PipeRun
+  getPipeRun c = getPipeRun' (asPipelineComponent c)
+  setPipeRun :: a -> PipeRun -> ()
+  setPipeRun c = setPipeRun' (asPipelineComponent c)
+  
+  getAlternativePipeRun :: a -> Maybe PipeRun
+  getAlternativePipeRun c = getAlternativePipeRun' (asPipelineComponent c)
+  setAlternativePipeRun :: a -> PipeRun -> ()
+  setAlternativePipeRun c = setAlternativePipeRun' (asPipelineComponent c)
+  
+  updateParameters :: a -> ()
+  updateParameters c = updateParameters' (asPipelineComponent c)
+  
+  getNext :: a -> Maybe PipelineComponent
+  getNext c = getNext' (asPipelineComponent c)
+  setNext :: a -> Maybe PipelineComponent -> ()
+  setNext c = setNext' (asPipelineComponent c)
+  
+  getPrevious :: a -> Maybe PipelineComponent
+  getPrevious c = getPrevious' (asPipelineComponent c)
+  setPrevious :: a -> Maybe PipelineComponent -> ()
+  setPrevious c = setPrevious' (asPipelineComponent c)
+  
+  getBranch0 :: a -> Maybe PipelineComponent
+  getBranch0 c = getBranch0' (asPipelineComponent c)
+  setBranch0 :: a -> Maybe PipelineComponent -> ()
+  setBranch0 c = setBranch0' (asPipelineComponent c)
+  
+  getType :: a -> String
+  getType c = getType' (asPipelineComponent c)
+  
+  remove :: a -> ()
+  remove c = remove' (asPipelineComponent c)
+  
+  getFlowLength :: a -> Maybe Double
+  getFlowLength c = getFlowLength' (asPipelineComponent c)
+  getEnds :: a -> Tuple3d -> Tuple3d -> ()
+  getEnds c = getEnds' (asPipelineComponent c)
+
+instance NodeClass PipelineComponent
+instance G3DNodeClass PipelineComponent
+instance P3DNodeClass PipelineComponent
+instance PipelineComponentClass PipelineComponent where
+  asPipelineComponent = id
+
 importJava "org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint$PointType" where
   data PointType
   
@@ -92,4 +151,9 @@ importJava "org.simantics.plant3d.scenegraph.PipeRun" where
   getChild :: PipeRun -> [PipelineComponent]
   remChild :: PipeRun -> PipelineComponent -> ()
   
-  getSortedChild :: PipeRun -> [PipelineComponent]
\ No newline at end of file
+  getSortedChild :: PipeRun -> [PipelineComponent]
+
+instance NodeClass PipeRun
+instance ParentNodeClass PipeRun
+instance G3DNodeClass PipeRun
+instance P3DNodeClass PipeRun