/** * @file * * @author [MartinusMagneson](https://vuo.org/user/3272) * @createdInVuoVersion 2.2.0 * @lastSavedInVuoVersion 2.2.0 * @copyright Copyright © 2020 [MartinusMagneson](https://vuo.org/user/3272) * @see This is a Vuo Composition source code file. See https://vuo.org for further information. */ digraph G { AllowFirstValue2 [type="vuo.event.allowFirstValue.VuoRenderedLayers" version="1.0.0" label="Allow First Value|refresh\l|value\l|reset\l|firstValue\r" pos="-1470,300" fillcolor="yellow"]; ChangeWindowTitle [type="vuo.window.title2" version="2.0.0" label="Change Window Title|refresh\l|windowDescription\l|title\l|<changedWindowDescription>changedWindowDescription\r" pos="1035,-540" fillcolor="tangerine" _title="\"Program\""]; ChangeWindowTitle2 [type="vuo.window.title2" version="2.0.0" label="Change Window Title|<refresh>refresh\l|<windowDescription>windowDescription\l|<title>title\l|<changedWindowDescription>changedWindowDescription\r" pos="1110,30" fillcolor="violet" _title="\"Preview\""]; Changed2 [type="vuo.event.changed2.VuoText" version="2.0.0" label="Changed|<refresh>refresh\l|<value>value\l|<changed>changed\r" pos="-1635,315" fillcolor="yellow"]; Divide [type="vuo.math.divide.VuoReal" version="2.0.0" label="Divide|<refresh>refresh\l|<a>a\l|<b>b\l|<quotient>quotient\r" pos="-690,-75" fillcolor="blue" _b="2"]; Divide2 [type="vuo.math.divide.VuoReal" version="2.0.0" label="Divide|<refresh>refresh\l|<a>a\l|<b>b\l|<quotient>quotient\r" pos="-690,0" fillcolor="blue" _b="2"]; FetchImage [type="vuo.image.fetch" version="2.0.0" label="Fetch Image \|\| REPLACE WITH INPUT|<refresh>refresh\l|<url>url\l|<image>image\r" pos="-345,-450" fillcolor="cyan" _url="\"2880px-Panoramaweg_tussen_Waltensburg-Vuorz_en_Breil-Brigels_(actm)_10.jpg\""]; FireOnStart [type="vuo.event.fireOnStart" version="1.0.0" label="Fire on Start|<refresh>refresh\l|<started>started\r" pos="-735,-450" fillcolor="cyan" _started_eventThrottling="enqueue"]; Get2DPointValues3 [type="vuo.point.get.VuoPoint2d" version="2.0.0" label="Get 2D Point Values|<refresh>refresh\l|<point>point\l|<x>x\r|<y>y\r" pos="-855,525" fillcolor="yellow"]; Get2DPointValues4 [type="vuo.point.get.VuoPoint2d" version="2.0.0" label="Get 2D Point Values|<refresh>refresh\l|<point>point\l|<x>x\r|<y>y\r" pos="-855,300" fillcolor="yellow"]; GetWindowDimensions3 [type="vuo.window.get.dimensions3" version="3.0.0" label="Get Window Dimensions|<refresh>refresh\l|<window>window\l|<unit>unit\l|<topLeft>topLeft\r|<bottomRight>bottomRight\r|<width>width\r|<height>height\r|<aspectRatio>aspectRatio\r" pos="-1290,300" fillcolor="yellow" _unit="\"vuo\""]; LockWindowAspectRatio [type="vuo.window.aspectRatio2" version="2.0.0" label="Lock Window Aspect Ratio|<refresh>refresh\l|<windowDescription>windowDescription\l|<width>width\l|<height>height\l|<changedWindowDescription>changedWindowDescription\r" pos="1110,105" fillcolor="violet" _width="16" _height="9"]; Make2DPoint5 [type="vuo.point.make.VuoPoint2d" version="2.0.0" label="Make 2D Point|<refresh>refresh\l|<x>x\l|<y>y\l|<point>point\r" pos="-645,300" fillcolor="yellow"]; Make2DPoint6 [type="vuo.point.make.VuoPoint2d" version="2.0.0" label="Make 2D Point|<refresh>refresh\l|<x>x\l|<y>y\l|<point>point\r" pos="-645,375" fillcolor="yellow"]; Make2DPoint7 [type="vuo.point.make.VuoPoint2d" version="2.0.0" label="Make 2D Point|<refresh>refresh\l|<x>x\l|<y>y\l|<point>point\r" pos="-645,450" fillcolor="yellow"]; Make2DPoint8 [type="vuo.point.make.VuoPoint2d" version="2.0.0" label="Make 2D Point|<refresh>refresh\l|<x>x\l|<y>y\l|<point>point\r" pos="-645,525" fillcolor="yellow"]; MakeList [type="vuo.list.make.6.VuoLayer" version="2.0.0" label="Make List|<refresh>refresh\l|<1>1\l|<2>2\l|<3>3\l|<4>4\l|<5>5\l|<6>6\l|<list>list\r" pos="1073,221" fillcolor="violet"]; MakeList2 [type="vuo.list.make.2.VuoLayer" version="2.0.0" label="Make List|<refresh>refresh\l|<1>1\l|<2>2\l|<list>list\r" pos="983,-454" fillcolor="tangerine"]; MakeOvalLayer [type="vuo.layer.make.oval2" version="2.0.0" label="Make Top Left Handle|<refresh>refresh\l|<color>color\l|<anchor>anchor\l|<center>center\l|<rotation>rotation\l|<width>width\l|<height>height\l|<sharpness>sharpness\l|<opacity>opacity\l|<layer>layer\r" pos="-195,150" _color="\{\"r\":0.9859464168548584,\"g\":0,\"b\":0.040604256093502045,\"a\":1\}" _anchor="\{\"horizontalAlignment\":\"center\",\"verticalAlignment\":\"center\"\}" _rotation="0.0" _width="0.050000000000000003" _height="0.050000000000000003" _sharpness="1.0" _opacity="1.0"]; MakeQuadLayer [type="vuo.layer.make.quad" version="1.1.0" label="Make Quad Layer (Preview)|<refresh>refresh\l|<image>image\l|<projection>projection\l|<gamma>gamma\l|<topLeft>topLeft\l|<topRight>topRight\l|<bottomLeft>bottomLeft\l|<bottomRight>bottomRight\l|<leftEdge>leftEdge\l|<rightEdge>rightEdge\l|<topEdge>topEdge\l|<bottomEdge>bottomEdge\l|<opacity>opacity\l|<quad>quad\r" pos="765,60" fillcolor="violet" _projection="\"perspective\"" _gamma="1" _leftEdge="\{\"cutoff\":0,\"gamma\":1,\"crop\":0\}" _rightEdge="\{\"cutoff\":0,\"gamma\":1,\"crop\":0\}" _topEdge="\{\"cutoff\":0,\"gamma\":1,\"crop\":0\}" _bottomEdge="\{\"cutoff\":0,\"gamma\":1,\"crop\":0\}" _opacity="1.0"]; MakeQuadLayer2 [type="vuo.layer.make.quad" version="1.1.0" label="Make Quad Program|<refresh>refresh\l|<image>image\l|<projection>projection\l|<gamma>gamma\l|<topLeft>topLeft\l|<topRight>topRight\l|<bottomLeft>bottomLeft\l|<bottomRight>bottomRight\l|<leftEdge>leftEdge\l|<rightEdge>rightEdge\l|<topEdge>topEdge\l|<bottomEdge>bottomEdge\l|<opacity>opacity\l|<quad>quad\r" pos="765,-465" fillcolor="tangerine" _projection="\"perspective\"" _gamma="1" _leftEdge="\{\"cutoff\":0,\"gamma\":1,\"crop\":0\}" _rightEdge="\{\"cutoff\":0,\"gamma\":1,\"crop\":0\}" _topEdge="\{\"cutoff\":0,\"gamma\":1,\"crop\":0\}" _bottomEdge="\{\"cutoff\":0,\"gamma\":1,\"crop\":0\}" _opacity="1.0"]; MakeRectangleLayer [type="vuo.layer.make.rect" version="1.0.0" label="Make Rectangle Layer|<refresh>refresh\l|<color>color\l|<anchor>anchor\l|<center>center\l|<rotation>rotation\l|<width>width\l|<height>height\l|<sharpness>sharpness\l|<roundness>roundness\l|<opacity>opacity\l|<layer>layer\r" pos="-480,-90" fillcolor="blue" _color="\{\"r\":0.32085144519805908,\"g\":0.44852370023727417,\"b\":0.65435266494750977,\"a\":1\}" _anchor="\{\"horizontalAlignment\":\"center\",\"verticalAlignment\":\"center\"\}" _center="\{\"x\":0.0,\"y\":0.0\}" _rotation="0.0" _sharpness="1.0" _roundness="0.0" _opacity="1.0"]; MakeTopLeftHandle2 [type="vuo.layer.make.oval2" version="2.0.0" label="Make Top Right Handle|<refresh>refresh\l|<color>color\l|<anchor>anchor\l|<center>center\l|<rotation>rotation\l|<width>width\l|<height>height\l|<sharpness>sharpness\l|<opacity>opacity\l|<layer>layer\r" pos="-195,315" _color="\{\"r\":0.13521018624305725,\"g\":1,\"b\":0.070084691047668457,\"a\":1\}" _anchor="\{\"horizontalAlignment\":\"center\",\"verticalAlignment\":\"center\"\}" _rotation="0.0" _width="0.050000000000000003" _height="0.050000000000000003" _sharpness="1.0" _opacity="1.0"]; MakeTopLeftHandle3 [type="vuo.layer.make.oval2" version="2.0.0" label="Make Bottom Left Handle|<refresh>refresh\l|<color>color\l|<anchor>anchor\l|<center>center\l|<rotation>rotation\l|<width>width\l|<height>height\l|<sharpness>sharpness\l|<opacity>opacity\l|<layer>layer\r" pos="-195,480" _color="\{\"r\":0,\"g\":0.031525138765573502,\"b\":0.99792474508285522,\"a\":1\}" _anchor="\{\"horizontalAlignment\":\"center\",\"verticalAlignment\":\"center\"\}" _rotation="0.0" _width="0.050000000000000003" _height="0.050000000000000003" _sharpness="1.0" _opacity="1.0"]; MakeTopLeftHandle4 [type="vuo.layer.make.oval2" version="2.0.0" label="Make Bottom Right Handle|<refresh>refresh\l|<color>color\l|<anchor>anchor\l|<center>center\l|<rotation>rotation\l|<width>width\l|<height>height\l|<sharpness>sharpness\l|<opacity>opacity\l|<layer>layer\r" pos="-195,645" _color="\{\"r\":0.998779296875,\"g\":0.93525594472885132,\"b\":0.039826046675443649,\"a\":1\}" _anchor="\{\"horizontalAlignment\":\"center\",\"verticalAlignment\":\"center\"\}" _rotation="0.0" _width="0.050000000000000003" _height="0.050000000000000003" _sharpness="1.0" _opacity="1.0"]; ReceiveMouseDragsOnLayer [type="vuo.layer.drag2" version="2.0.0" label="Receive Mouse Drags on Layer|<refresh>refresh\l|<layer>layer\l|<window>window\l|<button>button\l|<modifierKey>modifierKey\l|<startedDrag>startedDrag\r|<draggedCenterTo>draggedCenterTo\r|<endedDrag>endedDrag\r" pos="60,150" _button="\"left\"" _modifierKey="\"any\"" _startedDrag_eventThrottling="enqueue" _draggedCenterTo_eventThrottling="drop" _endedDrag_eventThrottling="enqueue"]; ReceiveMouseDragsOnLayer2 [type="vuo.layer.drag2" version="2.0.0" label="Receive Mouse Drags on Layer|<refresh>refresh\l|<layer>layer\l|<window>window\l|<button>button\l|<modifierKey>modifierKey\l|<startedDrag>startedDrag\r|<draggedCenterTo>draggedCenterTo\r|<endedDrag>endedDrag\r" pos="60,315" _button="\"left\"" _modifierKey="\"any\"" _startedDrag_eventThrottling="enqueue" _draggedCenterTo_eventThrottling="drop" _endedDrag_eventThrottling="enqueue"]; ReceiveMouseDragsOnLayer3 [type="vuo.layer.drag2" version="2.0.0" label="Receive Mouse Drags on Layer|<refresh>refresh\l|<layer>layer\l|<window>window\l|<button>button\l|<modifierKey>modifierKey\l|<startedDrag>startedDrag\r|<draggedCenterTo>draggedCenterTo\r|<endedDrag>endedDrag\r" pos="60,480" _button="\"left\"" _modifierKey="\"any\"" _startedDrag_eventThrottling="enqueue" _draggedCenterTo_eventThrottling="drop" _endedDrag_eventThrottling="enqueue"]; ReceiveMouseDragsOnLayer4 [type="vuo.layer.drag2" version="2.0.0" label="Receive Mouse Drags on Layer|<refresh>refresh\l|<layer>layer\l|<window>window\l|<button>button\l|<modifierKey>modifierKey\l|<startedDrag>startedDrag\r|<draggedCenterTo>draggedCenterTo\r|<endedDrag>endedDrag\r" pos="60,645" _button="\"left\"" _modifierKey="\"any\"" _startedDrag_eventThrottling="enqueue" _draggedCenterTo_eventThrottling="drop" _endedDrag_eventThrottling="enqueue"]; RenderLayersToWindow [type="vuo.layer.render.window2" version="3.0.0" label="Render Layers to Window|<refresh>refresh\l|<layers>layers\l|<multisampling>multisampling\l|<setWindowDescription>setWindowDescription\l|<updatedWindow>updatedWindow\r" pos="1125,210" fillcolor="violet" _multisampling="\"4\"" _updatedWindow_eventThrottling="enqueue"]; RenderLayersToWindow2 [type="vuo.layer.render.window2" version="3.0.0" label="Render Layers to Window|<refresh>refresh\l|<layers>layers\l|<multisampling>multisampling\l|<setWindowDescription>setWindowDescription\l|<updatedWindow>updatedWindow\r" pos="1035,-465" fillcolor="tangerine" _multisampling="\"4\"" _updatedWindow_eventThrottling="enqueue"]; ScalePoint10 [type="vuo.point.multiply.scalar.VuoPoint2d" version="1.0.0" label="Scale Point|<refresh>refresh\l|<point>point\l|<scaleFactor>scaleFactor\l|<scaledPoint>scaledPoint\r" pos="510,-195" fillcolor="yellow" _scaleFactor="2"]; ScalePoint5 [type="vuo.point.multiply.scalar.VuoPoint2d" version="1.0.0" label="Scale Point|<refresh>refresh\l|<point>point\l|<scaleFactor>scaleFactor\l|<scaledPoint>scaledPoint\r" pos="-1035,525" fillcolor="yellow" _scaleFactor="0.5"]; ScalePoint6 [type="vuo.point.multiply.scalar.VuoPoint2d" version="1.0.0" label="Scale Point|<refresh>refresh\l|<point>point\l|<scaleFactor>scaleFactor\l|<scaledPoint>scaledPoint\r" pos="-1035,300" fillcolor="yellow" _scaleFactor="0.5"]; ScalePoint7 [type="vuo.point.multiply.scalar.VuoPoint2d" version="1.0.0" label="Scale Point|<refresh>refresh\l|<point>point\l|<scaleFactor>scaleFactor\l|<scaledPoint>scaledPoint\r" pos="510,-420" fillcolor="orange" _scaleFactor="2"]; ScalePoint8 [type="vuo.point.multiply.scalar.VuoPoint2d" version="1.0.0" label="Scale Point|<refresh>refresh\l|<point>point\l|<scaleFactor>scaleFactor\l|<scaledPoint>scaledPoint\r" pos="510,-345" fillcolor="green" _scaleFactor="2"]; ScalePoint9 [type="vuo.point.multiply.scalar.VuoPoint2d" version="1.0.0" label="Scale Point|<refresh>refresh\l|<point>point\l|<scaleFactor>scaleFactor\l|<scaledPoint>scaledPoint\r" pos="510,-270" fillcolor="blue" _scaleFactor="2"]; SelectLatest [type="vuo.select.latest.2.VuoPoint2d" version="1.0.0" label="Select Latest|<refresh>refresh\l|<option1>option1\l|<option2>option2\l|<latest>latest\r" pos="330,150" fillcolor="orange"]; SelectLatest2 [type="vuo.select.latest.2.VuoPoint2d" version="1.0.0" label="Select Latest|<refresh>refresh\l|<option1>option1\l|<option2>option2\l|<latest>latest\r" pos="330,315" fillcolor="green"]; SelectLatest3 [type="vuo.select.latest.2.VuoPoint2d" version="1.0.0" label="Select Latest|<refresh>refresh\l|<option1>option1\l|<option2>option2\l|<latest>latest\r" pos="330,480" fillcolor="blue"]; SelectLatest4 [type="vuo.select.latest.2.VuoPoint2d" version="1.0.0" label="Select Latest|<refresh>refresh\l|<option1>option1\l|<option2>option2\l|<latest>latest\r" pos="330,645" fillcolor="yellow"]; SummarizeValue [type="vuo.data.summarize.VuoRenderedLayers" version="1.0.1" label="Summarize Value|<refresh>refresh\l|<value>value\l|<summary>summary\r" pos="-1470,45"]; Comment [type="vuo.comment" label="\"Main output, this should be fullscreen on your projector\"" pos="690,-600" width="548" height="353" fillcolor="tangerine"]; Comment2 [type="vuo.comment" label="\"Control window for settings and adjustment\"" pos="690,-45" width="667" height="432" fillcolor="violet"]; Comment3 [type="vuo.comment" label="\"Area showing the borders of the output screen\"" pos="-795,-180" width="494" height="269" fillcolor="blue"]; Comment4 [type="vuo.comment" label="\"Set up window info from the output screen and halve the size\"" pos="-1770,150" width="1305" height="484" fillcolor="yellow"]; Comment5 [type="vuo.comment" label="\"Scale points back up to original size\"" pos="435,-495" width="236" height="363" fillcolor="magenta"]; Comment6 [type="vuo.comment" label="\"Make handles for corner correction\"" pos="-255,75" width="785" height="722" fillcolor="magenta"]; Comment7 [type="vuo.comment" label="\"Input\"" pos="-765,-525" width="693" height="160" fillcolor="cyan"]; AllowFirstValue2:firstValue -> GetWindowDimensions3:window; ChangeWindowTitle2:changedWindowDescription -> LockWindowAspectRatio:windowDescription; ChangeWindowTitle:changedWindowDescription -> RenderLayersToWindow2:setWindowDescription; Changed2:changed -> AllowFirstValue2:reset; Divide2:quotient -> MakeRectangleLayer:height; Divide:quotient -> MakeRectangleLayer:width; FetchImage:image -> MakeQuadLayer2:image; FetchImage:image -> MakeQuadLayer:image; FireOnStart:started -> ChangeWindowTitle2:windowDescription; FireOnStart:started -> ChangeWindowTitle:title; FireOnStart:started -> FetchImage:url; FireOnStart:started -> MakeRectangleLayer:color; FireOnStart:started -> SelectLatest2:option1; FireOnStart:started -> SelectLatest3:option1; FireOnStart:started -> SelectLatest4:option1; FireOnStart:started -> SelectLatest:option1; Get2DPointValues3:x -> Make2DPoint6:x; Get2DPointValues3:x -> Make2DPoint8:x; Get2DPointValues3:y -> Make2DPoint7:y; Get2DPointValues3:y -> Make2DPoint8:y; Get2DPointValues4:x -> Make2DPoint5:x; Get2DPointValues4:x -> Make2DPoint7:x; Get2DPointValues4:y -> Make2DPoint5:y; Get2DPointValues4:y -> Make2DPoint6:y; GetWindowDimensions3:bottomRight -> ScalePoint5:point; GetWindowDimensions3:height -> Divide2:a; GetWindowDimensions3:topLeft -> ScalePoint6:point; GetWindowDimensions3:width -> Divide:a; LockWindowAspectRatio:changedWindowDescription -> RenderLayersToWindow:setWindowDescription; Make2DPoint5:point -> SelectLatest:option1; Make2DPoint6:point -> SelectLatest2:option1; Make2DPoint7:point -> SelectLatest3:option1; Make2DPoint8:point -> SelectLatest4:option1; MakeList2:list -> RenderLayersToWindow2:layers; MakeList:list -> RenderLayersToWindow:layers; MakeOvalLayer:layer -> MakeList:3; MakeOvalLayer:layer -> ReceiveMouseDragsOnLayer:layer; MakeQuadLayer2:quad -> MakeList2:1; MakeQuadLayer:quad -> MakeList:2; MakeRectangleLayer:layer -> MakeList:1; MakeTopLeftHandle2:layer -> MakeList:4; MakeTopLeftHandle2:layer -> ReceiveMouseDragsOnLayer2:layer; MakeTopLeftHandle3:layer -> MakeList:5; MakeTopLeftHandle3:layer -> ReceiveMouseDragsOnLayer3:layer; MakeTopLeftHandle4:layer -> MakeList:6; MakeTopLeftHandle4:layer -> ReceiveMouseDragsOnLayer4:layer; ReceiveMouseDragsOnLayer2:draggedCenterTo -> SelectLatest2:option2; ReceiveMouseDragsOnLayer3:draggedCenterTo -> SelectLatest3:option2; ReceiveMouseDragsOnLayer4:draggedCenterTo -> SelectLatest4:option2; ReceiveMouseDragsOnLayer:draggedCenterTo -> SelectLatest:option2; RenderLayersToWindow2:updatedWindow -> AllowFirstValue2:value; RenderLayersToWindow2:updatedWindow -> SummarizeValue:value; RenderLayersToWindow:updatedWindow -> ReceiveMouseDragsOnLayer2:window [style=invis]; RenderLayersToWindow:updatedWindow -> ReceiveMouseDragsOnLayer3:window [style=invis]; RenderLayersToWindow:updatedWindow -> ReceiveMouseDragsOnLayer4:window [style=invis]; RenderLayersToWindow:updatedWindow -> ReceiveMouseDragsOnLayer:window [style=invis]; ScalePoint10:scaledPoint -> MakeQuadLayer2:bottomRight; ScalePoint5:scaledPoint -> Get2DPointValues3:point; ScalePoint6:scaledPoint -> Get2DPointValues4:point; ScalePoint7:scaledPoint -> MakeQuadLayer2:topLeft; ScalePoint8:scaledPoint -> MakeQuadLayer2:topRight; ScalePoint9:scaledPoint -> MakeQuadLayer2:bottomLeft; SelectLatest2:latest -> MakeQuadLayer:topRight; SelectLatest2:latest -> MakeTopLeftHandle2:center; SelectLatest2:latest -> ScalePoint8:point; SelectLatest3:latest -> MakeQuadLayer:bottomLeft; SelectLatest3:latest -> MakeTopLeftHandle3:center; SelectLatest3:latest -> ScalePoint9:point; SelectLatest4:latest -> MakeQuadLayer:bottomRight; SelectLatest4:latest -> MakeTopLeftHandle4:center; SelectLatest4:latest -> ScalePoint10:point; SelectLatest:latest -> MakeOvalLayer:center; SelectLatest:latest -> MakeQuadLayer:topLeft; SelectLatest:latest -> ScalePoint7:point; SummarizeValue:summary -> Changed2:value; }