import "Plant3d/Scenegraph/Equipment"
import "Plant3d/Scenegraph/Nozzle"
import "Plant3d/Scenegraph/P3DRootNode"
+import "G3D/Math/Vector3d"
import "./P3DUtil"
importJava "org.simantics.plant3d.utils.ComponentUtils" where
createBranchSplit :: P3DRootNode -> <Proc> PipelineComponent
createEquipment :: P3DRootNode -> Item -> <Proc> Equipment
createDefaultNozzle :: P3DRootNode -> Equipment -> <Proc> Nozzle
+
+ @JavaName addComponent
+ addComponent :: P3DRootNode -> PipelineComponent -> InsertInstruction -> <Proc> PipelineComponent
+
+ @JavaName connect
+ connect :: PipelineComponent -> PipelineComponent -> <Proc> Boolean
+
+ @JavaName connect
+ connect2 :: PipelineComponent -> PipelineComponent -> PositionType -> Vector3d -> <Proc> Boolean
+
+importJava "org.simantics.plant3d.utils.ComponentUtils$InsertInstruction" where
+ data InsertInstruction
+
+ @JavaName "<init>"
+ createInsertInstruction :: () -> <Proc> InsertInstruction
+
+ setTypeUri :: InsertInstruction -> String -> <Proc> ()
+ setPosition :: InsertInstruction -> PositionType -> <Proc> ()
+ setInsertPosition :: InsertInstruction -> PositionType -> <Proc> ()
+ setLength :: InsertInstruction -> Maybe Double -> <Proc> ()
+ setAngle :: InsertInstruction -> Maybe Double -> <Proc> ()
+ setDiameter :: InsertInstruction -> Maybe Double -> <Proc> ()
+ setTurnRadius :: InsertInstruction -> Maybe Double -> <Proc> ()
+
+createFixedLength :: String -> PositionType -> PositionType -> <Proc> InsertInstruction
+createFixedLength typeUri position insertPosition = do
+ instruction = createInsertInstruction ()
+ setTypeUri instruction typeUri
+ setPosition instruction position
+ setInsertPosition instruction insertPosition
+ instruction
+
+createVariableLength :: String -> PositionType -> PositionType -> Double -> <Proc> InsertInstruction
+createVariableLength typeUri position insertPosition length = do
+ instruction = createInsertInstruction ()
+ setTypeUri instruction typeUri
+ setPosition instruction position
+ setInsertPosition instruction insertPosition
+ setLength instruction (Just length)
+ instruction
+
+createFixedTurn :: String -> PositionType -> PositionType -> <Proc> InsertInstruction
+createFixedTurn typeUri position insertPosition = do
+ instruction = createInsertInstruction ()
+ setTypeUri instruction typeUri
+ setPosition instruction position
+ setInsertPosition instruction insertPosition
+ instruction
+
+createVariableTurn :: String -> PositionType -> PositionType -> Double -> <Proc> InsertInstruction
+createVariableTurn typeUri position insertPosition angle = do
+ instruction = createInsertInstruction ()
+ setTypeUri instruction typeUri
+ setPosition instruction position
+ setInsertPosition instruction insertPosition
+ setAngle instruction (Just angle)
+ instruction
+
+createSizeChange :: String -> PositionType -> PositionType -> Double -> Double -> <Proc> InsertInstruction
+createSizeChange typeUri position insertPosition diameter radius = do
+ instruction = createInsertInstruction ()
+ setTypeUri instruction typeUri
+ setPosition instruction position
+ setInsertPosition instruction insertPosition
+ setDiameter instruction (Just diameter)
+ setTurnRadius instruction (Just radius)
+ instruction
\ No newline at end of file