]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.plant3d/scl/Plant3d/Scenegraph/PipelineComponent.scl
Add SCL binding for PipeRun.getInsideDiameter()
[simantics/3d.git] / org.simantics.plant3d / scl / Plant3d / Scenegraph / PipelineComponent.scl
1 import "G3D/Math/Tuple3d"
2 import "G3D/Math/Quat4d"
3 import "G3D/Math/Vector3d"
4 import "G3D/Math/Point3d"
5
6 include "G3D/Scenegraph/Node"
7 include "G3D/Scenegraph/G3DNode"
8
9 include "./P3DNode"
10
11 import "JavaBuiltin" as Java
12
13 importJava "org.simantics.plant3d.scenegraph.PipelineComponent" where
14   data PipelineComponent
15   
16   @JavaName getPipeRun
17   getPipeRun' :: PipelineComponent -> <Proc> PipeRun
18   @JavaName setPipeRun
19   setPipeRun' :: PipelineComponent -> PipeRun -> <Proc> ()
20   
21   @JavaName getAlternativePipeRun
22   getAlternativePipeRun' :: PipelineComponent -> <Proc> Maybe PipeRun
23   @JavaName setAlternativePipeRun
24   setAlternativePipeRun' :: PipelineComponent -> PipeRun -> <Proc> ()
25   
26   @JavaName updateParameters
27   updateParameters' :: PipelineComponent -> ()
28   
29   @JavaName getNext
30   getNext' :: PipelineComponent -> Maybe PipelineComponent
31   @JavaName setNext
32   setNext' :: PipelineComponent -> Maybe PipelineComponent -> <Proc> ()
33   
34   @JavaName getPrevious
35   getPrevious' :: PipelineComponent -> <Proc> Maybe PipelineComponent
36   @JavaName setPrevious
37   setPrevious' :: PipelineComponent -> Maybe PipelineComponent -> <Proc> ()
38   
39   @JavaName getBranch0
40   getBranch0' :: PipelineComponent -> <Proc> Maybe PipelineComponent
41   @JavaName setBranch0
42   setBranch0' :: PipelineComponent -> Maybe PipelineComponent -> <Proc> ()
43   
44   @JavaName getType
45   getType' :: PipelineComponent -> <Proc> String
46   
47   @JavaName getControlPoint 
48   getControlPoint' :: PipelineComponent -> <Proc> PipeControlPoint
49   
50   @JavaName remove
51   remove' :: PipelineComponent -> <Proc> ()
52   
53   @JavaName getFlowLength
54   getFlowLength' :: PipelineComponent -> <Proc> Maybe Double
55   @JavaName getEnds
56   getEnds' :: PipelineComponent -> MTuple3d -> MTuple3d -> <Proc> ()
57   @JavaName getEndDirections
58   getEndDirections' :: PipelineComponent -> MTuple3d -> MTuple3d -> <Proc> ()
59   
60   @JavaName getVolume
61   getVolume' :: PipelineComponent -> <Proc> Double
62   
63   @JavaName getCentroid
64   getCentroid' :: PipelineComponent -> MTuple3d -> <Proc> ()
65
66 class PipelineComponentClass a where
67   asPipelineComponent :: a -> PipelineComponent
68   asPipelineComponent = Java.unsafeCoerce
69
70   getPipeRun :: a -> <Proc> PipeRun
71   getPipeRun c = getPipeRun' (asPipelineComponent c)
72   setPipeRun :: a -> PipeRun -> <Proc> ()
73   setPipeRun c = setPipeRun' (asPipelineComponent c)
74   
75   getAlternativePipeRun :: a -> <Proc> Maybe PipeRun
76   getAlternativePipeRun c = getAlternativePipeRun' (asPipelineComponent c)
77   setAlternativePipeRun :: a -> PipeRun -> <Proc> ()
78   setAlternativePipeRun c = setAlternativePipeRun' (asPipelineComponent c)
79   
80   updateParameters :: a -> <Proc> ()
81   updateParameters c = updateParameters' (asPipelineComponent c)
82   
83   getNext :: a -> <Proc> Maybe PipelineComponent
84   getNext c = getNext' (asPipelineComponent c)
85   setNext :: a -> Maybe PipelineComponent -> <Proc> ()
86   setNext c = setNext' (asPipelineComponent c)
87   
88   getPrevious :: a -> <Proc> Maybe PipelineComponent
89   getPrevious c = getPrevious' (asPipelineComponent c)
90   setPrevious :: a -> Maybe PipelineComponent -> <Proc> ()
91   setPrevious c = setPrevious' (asPipelineComponent c)
92   
93   getBranch0 :: a -> <Proc> Maybe PipelineComponent
94   getBranch0 c = getBranch0' (asPipelineComponent c)
95   setBranch0 :: a -> Maybe PipelineComponent -> <Proc> ()
96   setBranch0 c = setBranch0' (asPipelineComponent c)
97   
98   getType :: a -> <Proc> String
99   getType c = getType' (asPipelineComponent c)
100   
101   getControlPoint ::  a -> <Proc> PipeControlPoint
102   getControlPoint c = getControlPoint' (asPipelineComponent c)
103   
104   remove :: a -> <Proc> ()
105   remove c = remove' (asPipelineComponent c)
106   
107   getFlowLength :: a -> <Proc> Maybe Double
108   getFlowLength c = getFlowLength' (asPipelineComponent c)
109   
110   getEnds :: a -> <Proc> (Vector3d, Vector3d)
111   getEnds c = runProc let
112     p1 = defaultMVector3d
113     p2 = defaultMVector3d
114     getEnds' (asPipelineComponent c) (asMTuple p1) (asMTuple p2)
115     in (freeze p1, freeze p2)
116     
117   getEndDirections :: a -> <Proc> (Vector3d, Vector3d)
118   getEndDirections c = runProc let
119     p1 = defaultMVector3d
120     p2 = defaultMVector3d
121     getEndDirections' (asPipelineComponent c) (asMTuple p1) (asMTuple p2)
122     in (freeze p1, freeze p2)
123
124   getVolume :: a -> <Proc> Double
125   getVolume c = getVolume' (asPipelineComponent c)
126
127   getCentroid :: a -> <Proc> Vector3d
128   getCentroid c = runProc let
129     p = defaultMVector3d
130     getCentroid' (asPipelineComponent c) (asMTuple p)
131     in freeze p
132
133 instance NodeClass PipelineComponent
134 instance G3DNodeClass PipelineComponent
135 instance P3DNodeClass PipelineComponent
136 instance PipelineComponentClass PipelineComponent where
137   asPipelineComponent = id
138
139 importJava "org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint$PointType" where
140   data PointType
141   
142   INLINE :: PointType
143   TURN :: PointType
144   END :: PointType
145   
146 importJava "org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint$Direction" where
147   data Direction
148   
149   @JavaName NEXT
150   DNEXT :: Direction
151   @JavaName PREVIOUS
152   DPREVIOUS :: Direction
153   
154 importJava "org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint$PositionType" where
155   data PositionType
156   
157   NEXT :: PositionType
158   PREVIOUS :: PositionType
159   SPLIT :: PositionType
160   PORT :: PositionType
161
162 importJava "org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint" where
163   data PipeControlPoint
164   
165   getPipelineComponent :: PipeControlPoint -> PipelineComponent
166   
167   getTurnAngle :: PipeControlPoint -> <Proc> Maybe Double
168   
169   //@JavaName getType
170   //getPointType :: PipeControlPoint -> PointType
171   
172   isFixed :: PipeControlPoint -> <Proc> Boolean
173   
174   @JavaName getChildPoints
175   getSubPoint :: PipeControlPoint -> <Proc> [PipeControlPoint]
176   getParentPoint :: PipeControlPoint -> <Proc> Maybe PipeControlPoint
177   
178 importJava "org.simantics.plant3d.scenegraph.PipeRun" where
179   data PipeRun
180   
181   getTurnRadius :: PipeRun -> <Proc> Double
182   setTurnRadius :: PipeRun -> Double -> <Proc> ()
183   
184   getPipeDiameter :: PipeRun -> <Proc> Double
185   setPipeDiameter :: PipeRun -> Double -> <Proc> ()
186   
187   getInsideDiameter :: PipeRun -> <Proc> Double
188   
189   addChild :: PipeRun -> PipelineComponent -> <Proc> ()
190   getChild :: PipeRun -> <Proc> [PipelineComponent]
191   remChild :: PipeRun -> PipelineComponent -> <Proc> ()
192   
193   getSortedChild :: PipeRun -> <Proc> [PipelineComponent]
194
195 instance NodeClass PipeRun
196 instance ParentNodeClass PipeRun
197 instance G3DNodeClass PipeRun
198 instance P3DNodeClass PipeRun