]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.plant3d/scl/Plant3d/Scenegraph/PipelineComponent.scl
Further refactoring of SCL interfaces
[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
5 include "G3D/Scenegraph/Node"
6 include "G3D/Scenegraph/G3DNode"
7
8 include "./P3DNode"
9
10 import "JavaBuiltin" as Java
11
12 importJava "org.simantics.plant3d.scenegraph.PipelineComponent" where
13   data PipelineComponent
14   
15   @JavaName getPipeRun
16   getPipeRun' :: PipelineComponent -> PipeRun
17   @JavaName setPipeRun
18   setPipeRun' :: PipelineComponent -> PipeRun -> ()
19   
20   @JavaName getAlternativePipeRun
21   getAlternativePipeRun' :: PipelineComponent -> Maybe PipeRun
22   @JavaName setAlternativePipeRun
23   setAlternativePipeRun' :: PipelineComponent -> PipeRun -> ()
24   
25   @JavaName updateParameters
26   updateParameters' :: PipelineComponent -> ()
27   
28   @JavaName getNext
29   getNext' :: PipelineComponent -> Maybe PipelineComponent
30   @JavaName setNext
31   setNext' :: PipelineComponent -> Maybe PipelineComponent -> ()
32   
33   @JavaName getPrevious
34   getPrevious' :: PipelineComponent -> Maybe PipelineComponent
35   @JavaName setPrevious
36   setPrevious' :: PipelineComponent -> Maybe PipelineComponent -> ()
37   
38   @JavaName getBranch0
39   getBranch0' :: PipelineComponent -> Maybe PipelineComponent
40   @JavaName setBranch0
41   setBranch0' :: PipelineComponent -> Maybe PipelineComponent -> ()
42   
43   @JavaName getType
44   getType' :: PipelineComponent -> String
45   
46   //getControlPoint :: PipelineComponent -> PipeControlPoint
47   
48   @JavaName remove
49   remove' :: PipelineComponent -> ()
50   
51   @JavaName getFlowLength
52   getFlowLength' :: PipelineComponent -> Maybe Double
53   @JavaName getEnds
54   getEnds' :: PipelineComponent -> Tuple3d -> Tuple3d -> ()
55
56 class PipelineComponentClass a where
57   asPipelineComponent :: a -> PipelineComponent
58   asPipelineComponent = Java.unsafeCoerce
59
60   getPipeRun :: a -> PipeRun
61   getPipeRun c = getPipeRun' (asPipelineComponent c)
62   setPipeRun :: a -> PipeRun -> ()
63   setPipeRun c = setPipeRun' (asPipelineComponent c)
64   
65   getAlternativePipeRun :: a -> Maybe PipeRun
66   getAlternativePipeRun c = getAlternativePipeRun' (asPipelineComponent c)
67   setAlternativePipeRun :: a -> PipeRun -> ()
68   setAlternativePipeRun c = setAlternativePipeRun' (asPipelineComponent c)
69   
70   updateParameters :: a -> ()
71   updateParameters c = updateParameters' (asPipelineComponent c)
72   
73   getNext :: a -> Maybe PipelineComponent
74   getNext c = getNext' (asPipelineComponent c)
75   setNext :: a -> Maybe PipelineComponent -> ()
76   setNext c = setNext' (asPipelineComponent c)
77   
78   getPrevious :: a -> Maybe PipelineComponent
79   getPrevious c = getPrevious' (asPipelineComponent c)
80   setPrevious :: a -> Maybe PipelineComponent -> ()
81   setPrevious c = setPrevious' (asPipelineComponent c)
82   
83   getBranch0 :: a -> Maybe PipelineComponent
84   getBranch0 c = getBranch0' (asPipelineComponent c)
85   setBranch0 :: a -> Maybe PipelineComponent -> ()
86   setBranch0 c = setBranch0' (asPipelineComponent c)
87   
88   getType :: a -> String
89   getType c = getType' (asPipelineComponent c)
90   
91   remove :: a -> ()
92   remove c = remove' (asPipelineComponent c)
93   
94   getFlowLength :: a -> Maybe Double
95   getFlowLength c = getFlowLength' (asPipelineComponent c)
96   getEnds :: a -> Tuple3d -> Tuple3d -> ()
97   getEnds c = getEnds' (asPipelineComponent c)
98
99 instance NodeClass PipelineComponent
100 instance G3DNodeClass PipelineComponent
101 instance P3DNodeClass PipelineComponent
102 instance PipelineComponentClass PipelineComponent where
103   asPipelineComponent = id
104
105 importJava "org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint$PointType" where
106   data PointType
107   
108   INLINE :: PointType
109   TURN :: PointType
110   END :: PointType
111   
112 importJava "org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint$Direction" where
113   data Direction
114   
115   @JavaName NEXT
116   DNEXT :: Direction
117   @JavaName PREVIOUS
118   DPREVIOUS :: Direction
119   
120 importJava "org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint$PositionType" where
121   data PositionType
122   
123   NEXT :: PositionType
124   PREVIOUS :: PositionType
125   SPLIT :: PositionType
126   PORT :: PositionType
127
128 importJava "org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint" where
129   data PipeControlPoint
130   
131   getPipelineComponent :: PipeControlPoint -> PipelineComponent
132   
133   //@JavaName getType
134   //getPointType :: PipeControlPoint -> PointType
135   
136   isFixed :: PipeControlPoint -> Boolean
137   
138   getSubPoint :: PipeControlPoint -> [PipeControlPoint]
139   getParentPoint :: PipeControlPoint -> Maybe PipeControlPoint
140   
141 importJava "org.simantics.plant3d.scenegraph.PipeRun" where
142   data PipeRun
143   
144   getTurnRadius :: PipeRun -> Double
145   setTurnRadius :: PipeRun -> Double -> ()
146   
147   getPipeDiameter :: PipeRun -> Double
148   setPipeDiameter :: PipeRun -> Double -> ()
149   
150   addChild :: PipeRun -> PipelineComponent -> ()
151   getChild :: PipeRun -> [PipelineComponent]
152   remChild :: PipeRun -> PipelineComponent -> ()
153   
154   getSortedChild :: PipeRun -> [PipelineComponent]
155
156 instance NodeClass PipeRun
157 instance ParentNodeClass PipeRun
158 instance G3DNodeClass PipeRun
159 instance P3DNodeClass PipeRun