import "Plant3d/Utils/P3DUtil" import "Simantics/DB" import "Plant3d/Utils/Loader" import "G3D/SCLUtil" import "JavaBuiltin" import "G3D/Math/Tuple3d" as T3D import "G3D/Math/Vector3d" as V3D import "G3D/Scenegraph/G3DNode" as G3D import "Plant3d/Scenegraph/P3DRootNode" as P3R import "Plant3d/Scenegraph/P3DNode" as P3N import "Plant3d/Scenegraph/Equipment" as E import "Plant3d/Scenegraph/PipelineComponent" as PC import "Plant3d/Scenegraph/EndComponent" as EC import "Plant3d/Scenegraph/InlineComponent" as IC import "Plant3d/Scenegraph/TurnComponent" as TC import "Plant3d/Utils/P3DScriptNodeMap" as P3S import "Plant3d/Utils/P3DUtil" as P3DUtil import "Plant3d/Utils/ComponentUtils" as CU import "http://www.simantics.org/Layer0-1.1" as L0 doTest :: () doTest = do myModel = syncWrite(\_ -> do myModel = P3DUtil.createModel "Test2" claim (resource "http://Projects/Development%20Project") L0.ConsistsOf myModel myModel) p3dmap = load myModel rootMaybe = javaSafeCoerce (P3S.getRootNode p3dmap) :: Maybe P3R.P3DRootNode root = fromJust rootMaybe pump = CU.createEquipmentWithURI root "http://www.simantics.org/Plant3D-0.1/Builtin/Pump" P3N.setName pump "My Pump" P3S.commit p3dmap "Created a pump" P3S.update p3dmap n1 = CU.createDefaultNozzle root pump P3S.commit p3dmap "Created a nozzle" P3S.update p3dmap pipe = CU.addComponent root (unsafeCoerce n1) (CU.createVariableLength "http://www.simantics.org/Plant3D-0.1/Builtin/Straight" PC.NEXT PC.NEXT 1.0) P3S.commit p3dmap "Created a pipe" P3S.update p3dmap elbow = CU.createComponentWithURI root "http://www.simantics.org/Plant3D-0.1/Builtin/Elbow" G3D.setPosition elbow (V3D.createVector3d (-1.6) 0.15 0.0) CU.connect pipe elbow pipe = CU.createComponentWithURI root "http://www.simantics.org/Plant3D-0.1/Builtin/Straight" CU.connect elbow pipe elbow = CU.createComponentWithURI root "http://www.simantics.org/Plant3D-0.1/Builtin/Elbow" G3D.setPosition elbow (V3D.createVector3d (-1.6) 2.6 0.0) CU.connect pipe elbow pipe = CU.createComponentWithURI root "http://www.simantics.org/Plant3D-0.1/Builtin/Straight" CU.connect elbow pipe elbow = CU.createComponentWithURI root "http://www.simantics.org/Plant3D-0.1/Builtin/Elbow" G3D.setPosition elbow (V3D.createVector3d (-1.6) 2.6 (-1.4)) CU.connect pipe elbow pipe = CU.createComponentWithURI root "http://www.simantics.org/Plant3D-0.1/Builtin/Straight" CU.connect elbow pipe elbow = CU.createComponentWithURI root "http://www.simantics.org/Plant3D-0.1/Builtin/Elbow" G3D.setPosition elbow (V3D.createVector3d (2.9) 2.6 (-1.4)) CU.connect pipe elbow pipe = CU.createComponentWithURI root "http://www.simantics.org/Plant3D-0.1/Builtin/Straight" CU.connect elbow pipe elbow = CU.createComponentWithURI root "http://www.simantics.org/Plant3D-0.1/Builtin/Elbow" G3D.setPosition elbow (V3D.createVector3d (2.9) 2.6 (3.0)) CU.connect pipe elbow pipe = CU.createComponentWithURI root "http://www.simantics.org/Plant3D-0.1/Builtin/Straight" CU.connect elbow pipe elbow = CU.createComponentWithURI root "http://www.simantics.org/Plant3D-0.1/Builtin/Elbow" G3D.setPosition elbow (V3D.createVector3d (2.9) 0.15 (3.0)) CU.connect pipe elbow pipe = CU.createComponentWithURI root "http://www.simantics.org/Plant3D-0.1/Builtin/Straight" CU.connect elbow pipe G3D.setPosition pipe (V3D.createVector3d (1.8) 0.15 3.0) P3S.commit p3dmap "Created a pipe" P3S.update p3dmap tank = CU.createEquipmentWithURI root "http://www.simantics.org/Plant3D-0.1/Builtin/HorizontalTank" P3N.setName tank "My Tank" G3D.setPosition tank (V3D.createVector3d 0.0 0.0 3.0) P3S.commit p3dmap "Created a tank" P3S.update p3dmap n2 = CU.createDefaultNozzle root tank G3D.setPosition n2 (V3D.createVector3d 0.6 0.3 0.0) P3S.commit p3dmap "Created a nozzle" P3S.update p3dmap CU.connect pipe (unsafeCoerce n2) P3S.commit p3dmap "Connected a pipe to a nozzle" P3S.update p3dmap ()