X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fscl%2FSimantics%2FScenegraph.scl;h=3d1170682a606f0db33b8cdbad6cc8575c3fb3f7;hp=dae67434e9d2a64a1463f384378812e8b8e73c6f;hb=ec70c03d4ce3f68b71de5eeadce3d008620c5521;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07 diff --git a/bundles/org.simantics.modeling/scl/Simantics/Scenegraph.scl b/bundles/org.simantics.modeling/scl/Simantics/Scenegraph.scl index dae67434e..3d1170682 100644 --- a/bundles/org.simantics.modeling/scl/Simantics/Scenegraph.scl +++ b/bundles/org.simantics.modeling/scl/Simantics/Scenegraph.scl @@ -44,20 +44,34 @@ importJava "org.simantics.modeling.SCLScenegraph" where @JavaName getNodeTransform getTransform :: ICanvasContext -> String -> String - getICanvasSceneGraphProvider :: Model -> Resource -> String -> ICanvasSceneGraphProvider + getBackgroundColor :: ICanvasContext -> Maybe [Integer] - disposeSceneGraphProvider :: ICanvasSceneGraphProvider -> () + @Deprecated + getICanvasSceneGraphProvider :: Model -> Resource -> String -> ICanvasSceneGraphProvider + + @Deprecated + disposeSceneGraphProvider :: ICanvasSceneGraphProvider -> () + + doWithICanvasSceneGraphProvider :: Resource -> (ICanvasSceneGraphProvider -> a) -> a + + doWithCanvasContext :: Resource -> (ICanvasContext -> a) -> a editNodeText :: ICanvasContext -> String -> String -> String -> String copyPaste :: ICanvasContext -> ICanvasContext -> [Resource] -> Boolean + + renderSVG :: ICanvasContext -> String + + "Render an SVG with known width and height in pixels: `renderScaledSVG context width height`" + @JavaName renderSVG + renderScaledSVG :: ICanvasContext -> Double -> Double -> String getSceneGraphProvider :: Diagram -> ICanvasSceneGraphProvider getSceneGraphProvider diagram = do - diagramName = syncRead(\() -> getSafeName (toResource diagram)) + diagramName = syncRead(\() -> getSafeName diagram) diagramRVI = "/" + diagramName - model = syncRead(\() -> getPossibleModel (toResource diagram)) - composite = syncRead(\() -> compositeToDiagram' (toResource diagram)) + model = syncRead(\() -> fromJust $ possibleIndexRoot diagram) + composite = syncRead(\() -> compositeToDiagram' diagram) getICanvasSceneGraphProvider model composite diagramRVI getDiagramContext :: ICanvasSceneGraphProvider -> ICanvasContext @@ -66,30 +80,62 @@ getDiagramContext provider = do getNodeTransform :: Diagram -> String -> String getNodeTransform diagram nodeName = do - diagramName = syncRead(\() -> getSafeName (toResource diagram)) + diagramName = syncRead(\() -> getSafeName diagram) diagramRVI = "/" + diagramName - model = syncRead(\() -> getPossibleModel (toResource diagram)) - composite = syncRead(\() -> compositeToDiagram' (toResource diagram)) + model = syncRead(\() -> getPossibleModel diagram) + composite = syncRead(\() -> compositeToDiagram' diagram) provider = getICanvasSceneGraphProvider model composite diagramRVI context = getCanvasContext provider getTransform context nodeName getNodeText :: Diagram -> String -> String getNodeText diagram nodeName = do - diagramName = syncRead(\() -> getSafeName (toResource diagram)) + diagramName = syncRead(\() -> getSafeName diagram) diagramRVI = "/" + diagramName - model = syncRead(\() -> getPossibleModel (toResource diagram)) - composite = syncRead(\() -> compositeToDiagram' (toResource diagram)) + model = syncRead(\() -> getPossibleModel diagram) + composite = syncRead(\() -> compositeToDiagram' diagram) provider = getICanvasSceneGraphProvider model composite diagramRVI context = getCanvasContext provider getText context nodeName getNodeCount :: Diagram -> String getNodeCount diagram = do - diagramName = syncRead(\() -> getSafeName (toResource diagram)) + diagramName = syncRead(\() -> getSafeName diagram) diagramRVI = "/" + diagramName - model = syncRead(\() -> getPossibleModel (toResource diagram)) - composite = syncRead(\() -> compositeToDiagram' (toResource diagram)) + model = syncRead(\() -> getPossibleModel diagram) + composite = syncRead(\() -> compositeToDiagram' diagram) provider = getICanvasSceneGraphProvider model composite diagramRVI context = getCanvasContext provider getCount context + +importJava "org.simantics.scenegraph.g2d.G2DNodeModification" where + data G2DNodeModification + @JavaName "" + createG2DNodeModification :: [SVGNodeAssignment] -> [TransformationAssignment] -> G2DNodeModification + @JavaName "" + createG2DNodeModification3 :: [SVGNodeAssignment] -> [TargetedSVGNodeAssignment] -> [TransformationAssignment] -> G2DNodeModification + +importJava "org.simantics.scenegraph.g2d.nodes.SVGNodeAssignment" where + data SVGNodeAssignment + @JavaName "" + createSVGNodeAssignment :: String -> String -> String -> SVGNodeAssignment + +importJava "org.simantics.scenegraph.g2d.nodes.TargetedSVGNodeAssignment" where + data TargetedSVGNodeAssignment + @JavaName "" + createTargetedSVGNodeAssignment :: a -> String -> String -> String -> TargetedSVGNodeAssignment + +importJava "org.simantics.scenegraph.g2d.nodes.TransformationAssignment" where + data TransformationAssignment + @JavaName "" + createTransformationAssignment :: a -> AffineTransform -> TransformationAssignment + +importJava "java.awt.geom.AffineTransform" where + data AffineTransform + @JavaName "" + createAffineTransform :: Double -> Double -> Double -> Double -> Double -> Double -> AffineTransform + +importJava "org.simantics.scenegraph.g2d.AffineTransformFunctions" where + transform :: AffineTransform -> (Double,Double) -> (Double,Double) + inverseTransform :: AffineTransform -> (Double,Double) -> (Double,Double) + \ No newline at end of file