]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.plant3d/scl/Plant3d/Utils/ComponentUtils.scl
Added <Proc> side effects
[simantics/3d.git] / org.simantics.plant3d / scl / Plant3d / Utils / ComponentUtils.scl
1 import "Plant3d/Scenegraph/PipelineComponent"
2 import "Plant3d/Scenegraph/Equipment"
3 import "Plant3d/Scenegraph/Nozzle"
4 import "Plant3d/Scenegraph/P3DRootNode"
5 import "G3D/Math/Vector3d"
6 import "./P3DUtil"
7
8 importJava "org.simantics.plant3d.utils.ComponentUtils" where
9
10    @JavaName createComponent
11    createComponentWithURI :: P3DRootNode -> String -> <Proc> PipelineComponent
12    @JavaName createEquipment
13    createEquipmentWithURI :: P3DRootNode -> String -> <Proc> Equipment
14    
15    createStraight :: P3DRootNode -> <Proc> PipelineComponent
16    createTurn :: P3DRootNode -> <Proc> PipelineComponent
17    createReducer :: P3DRootNode -> <Proc> PipelineComponent
18    createBranchSplit :: P3DRootNode -> <Proc> PipelineComponent
19    createEquipment :: P3DRootNode -> Item -> <Proc> Equipment
20    createDefaultNozzle :: P3DRootNode -> Equipment -> <Proc> Nozzle
21    
22    @JavaName addComponent
23    addComponent :: P3DRootNode -> PipelineComponent -> InsertInstruction -> <Proc> PipelineComponent
24    
25    @JavaName connect
26    connect :: PipelineComponent -> PipelineComponent -> <Proc> Boolean
27    
28    @JavaName connect
29    connect2 :: PipelineComponent -> PipelineComponent -> PositionType -> Vector3d -> <Proc> Boolean
30    
31 importJava "org.simantics.plant3d.utils.ComponentUtils$InsertInstruction" where
32    data InsertInstruction
33    
34    @JavaName "<init>"
35    createInsertInstruction :: () -> <Proc> InsertInstruction
36    
37    setTypeUri :: InsertInstruction -> String -> <Proc> ()
38    setPosition :: InsertInstruction -> PositionType -> <Proc> ()
39    setInsertPosition :: InsertInstruction -> PositionType -> <Proc> ()
40    setLength :: InsertInstruction -> Maybe Double -> <Proc> ()
41    setAngle :: InsertInstruction -> Maybe Double -> <Proc> ()
42    setDiameter :: InsertInstruction -> Maybe Double -> <Proc> ()
43    setTurnRadius :: InsertInstruction -> Maybe Double -> <Proc> ()
44    
45 createFixedLength :: String -> PositionType -> PositionType -> <Proc> InsertInstruction 
46 createFixedLength typeUri position insertPosition = do
47   instruction = createInsertInstruction ()
48   setTypeUri instruction typeUri
49   setPosition instruction position
50   setInsertPosition instruction insertPosition
51   instruction
52   
53 createVariableLength :: String -> PositionType -> PositionType -> Double -> <Proc> InsertInstruction 
54 createVariableLength typeUri position insertPosition length = do
55   instruction = createInsertInstruction ()
56   setTypeUri instruction typeUri
57   setPosition instruction position
58   setInsertPosition instruction insertPosition
59   setLength instruction (Just length)
60   instruction
61   
62 createFixedTurn :: String -> PositionType -> PositionType -> <Proc> InsertInstruction 
63 createFixedTurn typeUri position insertPosition = do
64   instruction = createInsertInstruction ()
65   setTypeUri instruction typeUri
66   setPosition instruction position
67   setInsertPosition instruction insertPosition
68   instruction
69   
70 createVariableTurn :: String -> PositionType -> PositionType -> Double -> <Proc> InsertInstruction 
71 createVariableTurn typeUri position insertPosition angle = do
72   instruction = createInsertInstruction ()
73   setTypeUri instruction typeUri
74   setPosition instruction position
75   setInsertPosition instruction insertPosition
76   setAngle instruction (Just angle)
77   instruction
78    
79 createSizeChange :: String -> PositionType -> PositionType -> Double -> Double -> <Proc> InsertInstruction 
80 createSizeChange typeUri position insertPosition diameter radius = do
81   instruction = createInsertInstruction ()
82   setTypeUri instruction typeUri
83   setPosition instruction position
84   setInsertPosition instruction insertPosition
85   setDiameter instruction (Just diameter)
86   setTurnRadius instruction (Just radius)
87   instruction   
88