import "G3D/Math/Tuple3d"
import "G3D/Math/Quat4d"
import "G3D/Math/Vector3d"
+import "G3D/Math/Point3d"
+
+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 -> ()
-
- getAlternativePipeRun :: PipelineComponent -> Maybe PipeRun
- setAlternativePipeRun :: PipelineComponent -> PipeRun -> ()
+ @JavaName getPipeRun
+ getPipeRun' :: PipelineComponent -> <Proc> PipeRun
+ @JavaName setPipeRun
+ setPipeRun' :: PipelineComponent -> PipeRun -> <Proc> ()
- updateParameters :: PipelineComponent -> ()
+ @JavaName getAlternativePipeRun
+ getAlternativePipeRun' :: PipelineComponent -> <Proc> Maybe PipeRun
+ @JavaName setAlternativePipeRun
+ setAlternativePipeRun' :: PipelineComponent -> PipeRun -> <Proc> ()
- getNext :: PipelineComponent -> Maybe PipelineComponent
- setNext :: PipelineComponent -> Maybe PipelineComponent -> ()
+ @JavaName updateParameters
+ updateParameters' :: PipelineComponent -> ()
- getPrevious :: PipelineComponent -> Maybe PipelineComponent
- setPrevious :: PipelineComponent -> Maybe PipelineComponent -> ()
+ @JavaName getNext
+ getNext' :: PipelineComponent -> Maybe PipelineComponent
+ @JavaName setNext
+ setNext' :: PipelineComponent -> Maybe PipelineComponent -> <Proc> ()
- getBranch0 :: PipelineComponent -> Maybe PipelineComponent
- setBranch0 :: PipelineComponent -> Maybe PipelineComponent -> ()
+ @JavaName getPrevious
+ getPrevious' :: PipelineComponent -> <Proc> Maybe PipelineComponent
+ @JavaName setPrevious
+ setPrevious' :: PipelineComponent -> Maybe PipelineComponent -> <Proc> ()
- getType :: PipelineComponent -> String
+ @JavaName getBranch0
+ getBranch0' :: PipelineComponent -> <Proc> Maybe PipelineComponent
+ @JavaName setBranch0
+ setBranch0' :: PipelineComponent -> Maybe PipelineComponent -> <Proc> ()
- //getControlPoint :: PipelineComponent -> PipeControlPoint
+ @JavaName getType
+ getType' :: PipelineComponent -> <Proc> String
- remove :: PipelineComponent -> ()
+ @JavaName getControlPoint
+ getControlPoint' :: PipelineComponent -> <Proc> PipeControlPoint
- getFlowLength :: PipelineComponent -> Maybe Double
- getEnds :: PipelineComponent -> Tuple3d -> Tuple3d -> ()
+ @JavaName remove
+ remove' :: PipelineComponent -> <Proc> ()
- getOrientation :: PipelineComponent -> Quat4d
- getPosition :: PipelineComponent -> Vector3d
+ @JavaName getFlowLength
+ getFlowLength' :: PipelineComponent -> <Proc> Maybe Double
+ @JavaName getEnds
+ getEnds' :: PipelineComponent -> MTuple3d -> MTuple3d -> <Proc> ()
+ @JavaName getEndDirections
+ getEndDirections' :: PipelineComponent -> MTuple3d -> MTuple3d -> <Proc> ()
- setOrientation :: PipelineComponent -> Quat4d -> ()
- setPosition :: PipelineComponent -> Vector3d -> ()
-
- getWorldOrientation :: PipelineComponent -> Quat4d
- getWorldPosition :: PipelineComponent -> Vector3d
-
- setWorldOrientation :: PipelineComponent -> Quat4d -> ()
- setWorldPosition :: PipelineComponent -> Vector3d -> ()
+ @JavaName getVolume
+ getVolume' :: PipelineComponent -> <Proc> Double
+ @JavaName getCentroid
+ getCentroid' :: PipelineComponent -> MTuple3d -> <Proc> ()
+
+class PipelineComponentClass a where
+ asPipelineComponent :: a -> PipelineComponent
+ asPipelineComponent = Java.unsafeCoerce
+
+ getPipeRun :: a -> <Proc> PipeRun
+ getPipeRun c = getPipeRun' (asPipelineComponent c)
+ setPipeRun :: a -> PipeRun -> <Proc> ()
+ setPipeRun c = setPipeRun' (asPipelineComponent c)
+
+ getAlternativePipeRun :: a -> <Proc> Maybe PipeRun
+ getAlternativePipeRun c = getAlternativePipeRun' (asPipelineComponent c)
+ setAlternativePipeRun :: a -> PipeRun -> <Proc> ()
+ setAlternativePipeRun c = setAlternativePipeRun' (asPipelineComponent c)
+
+ updateParameters :: a -> <Proc> ()
+ updateParameters c = updateParameters' (asPipelineComponent c)
+
+ getNext :: a -> <Proc> Maybe PipelineComponent
+ getNext c = getNext' (asPipelineComponent c)
+ setNext :: a -> Maybe PipelineComponent -> <Proc> ()
+ setNext c = setNext' (asPipelineComponent c)
+
+ getPrevious :: a -> <Proc> Maybe PipelineComponent
+ getPrevious c = getPrevious' (asPipelineComponent c)
+ setPrevious :: a -> Maybe PipelineComponent -> <Proc> ()
+ setPrevious c = setPrevious' (asPipelineComponent c)
+
+ getBranch0 :: a -> <Proc> Maybe PipelineComponent
+ getBranch0 c = getBranch0' (asPipelineComponent c)
+ setBranch0 :: a -> Maybe PipelineComponent -> <Proc> ()
+ setBranch0 c = setBranch0' (asPipelineComponent c)
+
+ 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 c = getFlowLength' (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
+instance P3DNodeClass PipelineComponent
+instance PipelineComponentClass PipelineComponent where
+ asPipelineComponent = id
+
importJava "org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint$PointType" where
data PointType
getPipelineComponent :: PipeControlPoint -> PipelineComponent
+ getTurnAngle :: PipeControlPoint -> <Proc> Maybe Double
+
//@JavaName getType
//getPointType :: PipeControlPoint -> PointType
- isFixed :: PipeControlPoint -> Boolean
+ isFixed :: PipeControlPoint -> <Proc> Boolean
- getSubPoint :: PipeControlPoint -> [PipeControlPoint]
- getParentPoint :: PipeControlPoint -> Maybe PipeControlPoint
+ @JavaName getChildPoints
+ getSubPoint :: PipeControlPoint -> <Proc> [PipeControlPoint]
+ getParentPoint :: PipeControlPoint -> <Proc> Maybe PipeControlPoint
importJava "org.simantics.plant3d.scenegraph.PipeRun" where
data PipeRun
- getTurnRadius :: PipeRun -> Double
- setTurnRadius :: PipeRun -> Double -> ()
+ getTurnRadius :: PipeRun -> <Proc> Double
+ setTurnRadius :: PipeRun -> Double -> <Proc> ()
- getPipeDiameter :: PipeRun -> Double
- setPipeDiameter :: PipeRun -> Double -> ()
+ getPipeDiameter :: PipeRun -> <Proc> Double
+ setPipeDiameter :: PipeRun -> Double -> <Proc> ()
- addChild :: PipeRun -> PipelineComponent -> ()
- getChild :: PipeRun -> [PipelineComponent]
- remChild :: PipeRun -> PipelineComponent -> ()
+ addChild :: PipeRun -> PipelineComponent -> <Proc> ()
+ getChild :: PipeRun -> <Proc> [PipelineComponent]
+ remChild :: PipeRun -> PipelineComponent -> <Proc> ()
- getSortedChild :: PipeRun -> [PipelineComponent]
\ No newline at end of file
+ getSortedChild :: PipeRun -> <Proc> [PipelineComponent]
+
+instance NodeClass PipeRun
+instance ParentNodeClass PipeRun
+instance G3DNodeClass PipeRun
+instance P3DNodeClass PipeRun