]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/scl/Plant3d/Scenegraph/PipelineComponent.scl
Rename of getSubPoint in PipeControlPoint in SCL
[simantics/3d.git] / org.simantics.plant3d / scl / Plant3d / Scenegraph / PipelineComponent.scl
index 1883620a4cce92be04477c75b15e38bcb76f9a54..f56444e21172bf0c2378cfb74bd21b5542e669e2 100644 (file)
@@ -1,6 +1,7 @@
 import "G3D/Math/Tuple3d"
 import "G3D/Math/Quat4d"
 import "G3D/Math/Vector3d"
+import "G3D/Math/Point3d"
 
 include "G3D/Scenegraph/Node"
 include "G3D/Scenegraph/G3DNode"
@@ -43,7 +44,8 @@ importJava "org.simantics.plant3d.scenegraph.PipelineComponent" where
   @JavaName getType
   getType' :: PipelineComponent -> <Proc> String
   
-  //getControlPoint :: PipelineComponent -> <Proc> PipeControlPoint
+  @JavaName getControlPoint 
+  getControlPoint' :: PipelineComponent -> <Proc> PipeControlPoint
   
   @JavaName remove
   remove' :: PipelineComponent -> <Proc> ()
@@ -51,7 +53,15 @@ importJava "org.simantics.plant3d.scenegraph.PipelineComponent" where
   @JavaName getFlowLength
   getFlowLength' :: PipelineComponent -> <Proc> Maybe Double
   @JavaName getEnds
-  getEnds' :: PipelineComponent -> Tuple3d -> Tuple3d -> <Proc> ()
+  getEnds' :: PipelineComponent -> MTuple3d -> MTuple3d -> <Proc> ()
+  @JavaName getEndDirections
+  getEndDirections' :: PipelineComponent -> MTuple3d -> MTuple3d -> <Proc> ()
+  
+  @JavaName getVolume
+  getVolume' :: PipelineComponent -> <Proc> Double
+  
+  @JavaName getCentroid
+  getCentroid' :: PipelineComponent -> MTuple3d -> <Proc> ()
 
 class PipelineComponentClass a where
   asPipelineComponent :: a -> PipelineComponent
@@ -88,13 +98,37 @@ class PipelineComponentClass a where
   getType :: a -> <Proc> String
   getType c = getType' (asPipelineComponent c)
   
+  getControlPoint ::  a -> <Proc> PipeControlPoint
+  getControlPoint c = getControlPoint' (asPipelineComponent c)
+  
   remove :: a -> <Proc> ()
   remove c = remove' (asPipelineComponent c)
   
-  getFlowLength :: a -> <Proc>Maybe Double
+  getFlowLength :: a -> <Proc> Maybe Double
   getFlowLength c = getFlowLength' (asPipelineComponent c)
-  getEnds :: a -> Tuple3d -> Tuple3d -> <Proc> ()
-  getEnds c = getEnds' (asPipelineComponent c)
+  
+  getEnds :: a -> <Proc> (Vector3d, Vector3d)
+  getEnds c = runProc let
+    p1 = defaultMVector3d
+    p2 = defaultMVector3d
+    getEnds' (asPipelineComponent c) (asMTuple p1) (asMTuple p2)
+    in (freeze p1, freeze p2)
+    
+  getEndDirections :: a -> <Proc> (Vector3d, Vector3d)
+  getEndDirections c = runProc let
+    p1 = defaultMVector3d
+    p2 = defaultMVector3d
+    getEndDirections' (asPipelineComponent c) (asMTuple p1) (asMTuple p2)
+    in (freeze p1, freeze p2)
+
+  getVolume :: a -> <Proc> Double
+  getVolume c = getVolume' (asPipelineComponent c)
+
+  getCentroid :: a -> <Proc> Vector3d
+  getCentroid c = runProc let
+    p = defaultMVector3d
+    getCentroid' (asPipelineComponent c) (asMTuple p)
+    in freeze p
 
 instance NodeClass PipelineComponent
 instance G3DNodeClass PipelineComponent
@@ -130,11 +164,14 @@ importJava "org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint" wher
   
   getPipelineComponent :: PipeControlPoint -> PipelineComponent
   
+  getTurnAngle :: PipeControlPoint -> <Proc> Maybe Double
+  
   //@JavaName getType
   //getPointType :: PipeControlPoint -> PointType
   
   isFixed :: PipeControlPoint -> <Proc> Boolean
   
+  @JavaName getChildPoints
   getSubPoint :: PipeControlPoint -> <Proc> [PipeControlPoint]
   getParentPoint :: PipeControlPoint -> <Proc> Maybe PipeControlPoint