X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fscl%2FPlant3d%2FScenegraph%2FPipelineComponent.scl;h=820e787aeebc8674a241b48f09ee564c9cac5886;hb=c07ac416dfbe99201084e71c53dc95c9c41d906c;hp=1883620a4cce92be04477c75b15e38bcb76f9a54;hpb=ac816c402bf23a233e2614f537fbfec490294a20;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/scl/Plant3d/Scenegraph/PipelineComponent.scl b/org.simantics.plant3d/scl/Plant3d/Scenegraph/PipelineComponent.scl index 1883620a..820e787a 100644 --- a/org.simantics.plant3d/scl/Plant3d/Scenegraph/PipelineComponent.scl +++ b/org.simantics.plant3d/scl/Plant3d/Scenegraph/PipelineComponent.scl @@ -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 -> String - //getControlPoint :: PipelineComponent -> PipeControlPoint + @JavaName getControlPoint + getControlPoint' :: PipelineComponent -> PipeControlPoint @JavaName remove remove' :: PipelineComponent -> () @@ -51,7 +53,15 @@ importJava "org.simantics.plant3d.scenegraph.PipelineComponent" where @JavaName getFlowLength getFlowLength' :: PipelineComponent -> Maybe Double @JavaName getEnds - getEnds' :: PipelineComponent -> Tuple3d -> Tuple3d -> () + getEnds' :: PipelineComponent -> MTuple3d -> MTuple3d -> () + @JavaName getEndDirections + getEndDirections' :: PipelineComponent -> MTuple3d -> MTuple3d -> () + + @JavaName getVolume + getVolume' :: PipelineComponent -> Double + + @JavaName getCentroid + getCentroid' :: PipelineComponent -> MTuple3d -> () class PipelineComponentClass a where asPipelineComponent :: a -> PipelineComponent @@ -88,13 +98,37 @@ class PipelineComponentClass a where getType :: a -> String getType c = getType' (asPipelineComponent c) + getControlPoint :: a -> PipeControlPoint + getControlPoint c = getControlPoint (asPipelineComponent c) + remove :: a -> () remove c = remove' (asPipelineComponent c) - getFlowLength :: a -> Maybe Double + getFlowLength :: a -> Maybe Double getFlowLength c = getFlowLength' (asPipelineComponent c) - getEnds :: a -> Tuple3d -> Tuple3d -> () - getEnds c = getEnds' (asPipelineComponent c) + + getEnds :: a -> (Vector3d, Vector3d) + getEnds c = runProc let + p1 = defaultMVector3d + p2 = defaultMVector3d + getEnds' (asPipelineComponent c) (asMTuple p1) (asMTuple p2) + in (freeze p1, freeze p2) + + getEndDirections :: a -> (Vector3d, Vector3d) + getEndDirections c = runProc let + p1 = defaultMVector3d + p2 = defaultMVector3d + getEndDirections' (asPipelineComponent c) (asMTuple p1) (asMTuple p2) + in (freeze p1, freeze p2) + + getVolume :: a -> Double + getVolume c = getVolume' (asPipelineComponent c) + + getCentroid :: a -> Vector3d + getCentroid c = runProc let + p = defaultMVector3d + getCentroid' (asPipelineComponent c) (asMTuple p) + in freeze p instance NodeClass PipelineComponent instance G3DNodeClass PipelineComponent