X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fscl%2FPlant3d%2FScenegraph%2FPipelineComponent.scl;h=cc75aab2c81da1b1e6d48787b2344814fa969fc8;hb=73e47b999925af2858e8589b618f16bc160708f3;hp=f4b621560ad78f940ac7153319b626552cb2635b;hpb=0f296670cc492cef317342832d3e131fd6d76aba;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 f4b62156..cc75aab2 100644 --- a/org.simantics.plant3d/scl/Plant3d/Scenegraph/PipelineComponent.scl +++ b/org.simantics.plant3d/scl/Plant3d/Scenegraph/PipelineComponent.scl @@ -1,48 +1,141 @@ 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 -> PipeRun + @JavaName setPipeRun + setPipeRun' :: PipelineComponent -> PipeRun -> () - updateParameters :: PipelineComponent -> () + @JavaName getAlternativePipeRun + getAlternativePipeRun' :: PipelineComponent -> Maybe PipeRun + @JavaName setAlternativePipeRun + setAlternativePipeRun' :: PipelineComponent -> PipeRun -> () - 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 -> () - getBranch0 :: PipelineComponent -> Maybe PipelineComponent - setBranch0 :: PipelineComponent -> Maybe PipelineComponent -> () + @JavaName getPrevious + getPrevious' :: PipelineComponent -> Maybe PipelineComponent + @JavaName setPrevious + setPrevious' :: PipelineComponent -> Maybe PipelineComponent -> () - getType :: PipelineComponent -> String + @JavaName getBranch0 + getBranch0' :: PipelineComponent -> Maybe PipelineComponent + @JavaName setBranch0 + setBranch0' :: PipelineComponent -> Maybe PipelineComponent -> () - //getControlPoint :: PipelineComponent -> PipeControlPoint + @JavaName getType + getType' :: PipelineComponent -> String - remove :: PipelineComponent -> () + @JavaName getControlPoint + getControlPoint' :: PipelineComponent -> PipeControlPoint - getFlowLength :: PipelineComponent -> Maybe Double - getEnds :: PipelineComponent -> Tuple3d -> Tuple3d -> () + @JavaName remove + remove' :: PipelineComponent -> () - getOrientation :: PipelineComponent -> Quat4d - getPosition :: PipelineComponent -> Vector3d + @JavaName getFlowLength + getFlowLength' :: PipelineComponent -> Maybe Double + @JavaName getEnds + getEnds' :: PipelineComponent -> MTuple3d -> MTuple3d -> () + @JavaName getEndDirections + getEndDirections' :: PipelineComponent -> MTuple3d -> MTuple3d -> () - setOrientation :: PipelineComponent -> Quat4d -> () - setPosition :: PipelineComponent -> Vector3d -> () - - getWorldOrientation :: PipelineComponent -> Quat4d - getWorldPosition :: PipelineComponent -> Vector3d - - setWorldOrientation :: PipelineComponent -> Quat4d -> () - setWorldPosition :: PipelineComponent -> Vector3d -> () + @JavaName getVolume + getVolume' :: PipelineComponent -> Double + @JavaName getCentroid + getCentroid' :: PipelineComponent -> MTuple3d -> () + +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) + + getControlPoint :: a -> PipeControlPoint + getControlPoint c = getControlPoint' (asPipelineComponent c) + + remove :: a -> () + remove c = remove' (asPipelineComponent c) + + getFlowLength :: a -> Maybe Double + getFlowLength c = getFlowLength' (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 +instance P3DNodeClass PipelineComponent +instance PipelineComponentClass PipelineComponent where + asPipelineComponent = id + importJava "org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint$PointType" where data PointType @@ -71,25 +164,32 @@ importJava "org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint" wher getPipelineComponent :: PipeControlPoint -> PipelineComponent + getTurnAngle :: PipeControlPoint -> Maybe Double + //@JavaName getType //getPointType :: PipeControlPoint -> PointType - isFixed :: PipeControlPoint -> Boolean + isFixed :: PipeControlPoint -> Boolean - getSubPoint :: PipeControlPoint -> [PipeControlPoint] - getParentPoint :: PipeControlPoint -> Maybe PipeControlPoint + getSubPoint :: PipeControlPoint -> [PipeControlPoint] + getParentPoint :: PipeControlPoint -> Maybe PipeControlPoint importJava "org.simantics.plant3d.scenegraph.PipeRun" where data PipeRun - getTurnRadius :: PipeRun -> Double - setTurnRadius :: PipeRun -> Double -> () + getTurnRadius :: PipeRun -> Double + setTurnRadius :: PipeRun -> Double -> () - getPipeDiameter :: PipeRun -> Double - setPipeDiameter :: PipeRun -> Double -> () + getPipeDiameter :: PipeRun -> Double + setPipeDiameter :: PipeRun -> Double -> () - addChild :: PipeRun -> PipelineComponent -> () - getChild :: PipeRun -> [PipelineComponent] - remChild :: PipeRun -> PipelineComponent -> () + addChild :: PipeRun -> PipelineComponent -> () + 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