Skip to content
Browse files

Make documentation working for IE in renderer. First 2 tutorials almo…

…st complete
  • Loading branch information...
1 parent d562f35 commit 7657aa5f581d0253c9ed8ff31e18bdc3e133d45e @elliotwoods committed Oct 3, 2011
View
165 #. Template.v4p
@@ -0,0 +1,165 @@
+<!DOCTYPE PATCH SYSTEM "http://vvvv.org/versions/vvvv45beta26.dtd" >
+ <PATCH nodename="C:\kimchiandchips\Workshops\VVVV-basics,mapping\#. Template.v4p" filename="C:\kimchiandchips\Workshops\VVVV-basics,mapping\template.v4p" locked="0" systemname="template">
+ <BOUNDS height="9210" left="6585" top="3270" type="Window" width="8880">
+ </BOUNDS>
+ <NODE componentmode="InABox" id="0" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="225" top="150" type="Node" width="1380">
+ </BOUNDS>
+ <BOUNDS height="1095" left="225" top="150" type="Box" width="7665">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|#. Template|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="42">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="1" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="1620" top="3780" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="345" left="1620" top="3780" type="Box" width="2535">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|0 - Annotation&cr;&lf;To make an annotation, give the annotation a number and a title on the first line as shown. Then add extra text in the hidden paragraphs beneath.&cr;&lf;&cr;&lf;You should be able to do lots of magic things :)&lt;b&gt;Like this kind of thing&lt;/b&gt;.&cr;&lf;&cr;&lf;Remember to keep the same style (Arial Black size 8). This is how we identify the annotations.|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="2" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="240" top="7860" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="750" left="240" top="7860" type="Box" width="5325">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|Created by Elliot Woods.&cr;&lf;Distributed under the MIT license (check file LICENSE) for details.&cr;&lf;Generally you can do whatever you want with these files. have fun!|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="3" nodename="Renderer (EX9)" systemname="Renderer (EX9)">
+ <BOUNDS height="100" left="360" top="4365" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="1800" left="360" top="4365" type="Box" width="2400">
+ </BOUNDS>
+ <BOUNDS height="5010" left="9495" top="6855" type="Window" width="6240">
+ </BOUNDS>
+ <PIN pinname="Layers" visible="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="Hidden" id="4" nodename="Quad (DX9)" systemname="Quad (DX9)">
+ <BOUNDS height="100" left="345" top="3780" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Layer" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="3" dstpinname="Layers" srcnodeid="4" srcpinname="Layer">
+ </LINK>
+ <NODE componentmode="InABox" id="5" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="5805" top="2640" type="Node" width="1380">
+ </BOUNDS>
+ <BOUNDS height="540" left="5805" top="2640" type="Box" width="2085">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" visible="1">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="12">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="Author">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="6" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="225" top="1260" type="Node" width="1380">
+ </BOUNDS>
+ <BOUNDS height="1155" left="225" top="1260" type="Box" width="7665">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" visible="1">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="12">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="Description">
+ </PIN>
+ </NODE>
+ <INFO author="Elliot Woods" description="Template to create tutorial files" tags="node names, concepts, other keywords">
+ </INFO>
+ <NODE componentmode="Hidden" filename="Subpatches\GetMetadata (VVVV).v4p" hiddenwhenlocked="1" id="10" nodename="GetMetadata (VVVV)" systemname="GetMetadata (VVVV)">
+ <BOUNDS height="100" left="5820" top="1800" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Patch" visible="1">
+ </PIN>
+ <BOUNDS height="3465" left="14520" top="5520" type="Window" width="4680">
+ </BOUNDS>
+ <PIN pinname="Author" visible="1">
+ </PIN>
+ <PIN pinname="Description" visible="1">
+ </PIN>
+ <PIN pinname="Tags" visible="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="Hidden" hiddenwhenlocked="1" id="8" nodename="PatchAlias (VVVV)" systemname="PatchAlias (VVVV)">
+ <BOUNDS height="100" left="5820" top="1350" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Patch" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="10" dstpinname="Patch" hiddenwhenlocked="1" srcnodeid="8" srcpinname="Patch">
+ </LINK>
+ <LINK dstnodeid="6" dstpinname="Input String" hiddenwhenlocked="1" linkstyle="VHV" srcnodeid="10" srcpinname="Description">
+ <LINKPOINT x="6445" y="2205">
+ </LINKPOINT>
+ <LINKPOINT x="245" y="2355">
+ </LINKPOINT>
+ </LINK>
+ <NODE componentmode="InABox" id="11" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="225" top="2640" type="Node" width="1380">
+ </BOUNDS>
+ <BOUNDS height="540" left="225" top="2640" type="Box" width="5520">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" visible="1">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="12">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="Tags">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="11" dstpinname="Input String" hiddenwhenlocked="1" linkstyle="VHV" srcnodeid="10" srcpinname="Tags">
+ <LINKPOINT x="7015" y="2293">
+ </LINKPOINT>
+ <LINKPOINT x="275" y="2448">
+ </LINKPOINT>
+ </LINK>
+ <LINK dstnodeid="5" dstpinname="Input String" hiddenwhenlocked="1" srcnodeid="10" srcpinname="Author">
+ </LINK>
+ </PATCH>
View
2 .gitignore
@@ -0,0 +1,2 @@
+*~.xml
+Thumbs.db
View
66 0. Basic principles.html
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-16"?>
+<html>
+<head>
+<title>Annotations</title>
+<script>
+ document.createElement('node');
+ document.createElement('pin');
+ document.createElement('key');
+ document.createElement('concept');
+
+ document.createElement('lmb');
+ document.createElement('rmb');
+ document.createElement('mmb');
+ document.createElement('scroll');
+
+ document.createElement('click');
+ document.createElement('click2');
+ document.createElement('hold');
+ document.createElement('release');
+ </script>
+<style type="text/css">
+ h2 {font-family:Tahoma; font-size:14px; color:white; background:grey; padding:10px;}
+ p {font-family:Tahoma; font-size:14px; color:black;line-height:150%;}
+ ol {font-family:Tahoma; font-size:14px; color:black;}
+ li {padding-bottom: 30px;}
+
+ node {font-family:Tahoma, font-size:14px; color:black; background:#DDD; border-style:solid; padding:5px; border-left:thick double #888; border-right:thick double #888; border-top: none; border-bottom:none; }
+ pin {background:#; border-bottom:3px groove #AAA;}
+ key {border:2px ridge; background: #DDD; color: #000; padding: 2px;}
+ concept {background:#; border-bottom:3px solid #CCC;}
+
+ lmb {position: relative; width: 30px; height:30px; background-image:url('./tools/lmb.png'); background-repeat: no-repeat;}
+ rmb {width: 30px; height:30px; background-image:url('./tools/rmb.png'); background-repeat: no-repeat;}
+ mmb {width: 30px; height:30px; background-image:url('./tools/mmb.png');}
+ scroll {width: 30px; height:30px; background-image:url('./tools/scroll.png');}
+
+ click {width: 10px; height:30px; background-image:url('./tools/click.png'); background-repeat: no-repeat;}
+ click2 {width: 10px; height:30px; background-image:url('./tools/click2.png'); background-repeat: no-repeat;}
+ hold {width: 10px; height:30px; background-image:url('./tools/hold.png'); background-repeat: no-repeat;}
+ release {width: 10px; height:30px; background-image:url('./tools/release.png'); background-repeat: no-repeat;}
+
+
+ </style>
+</head>
+<body>
+<img src="./0. Basic principles.png" />
+<h2>0 - The patch</h2>
+<p> When we open VVVV, we get a blank square. </p><p> This blank square is a view of a new blank VVVV document, which is called a <concept>Patch</concept>. </p><p> Patches define 'programs' in VVVV. A patch can perform all sorts of tasks. It can act on its own, or can perform a specific function within a bigger patch. When one patch is nested within another, it is called a <concept>Subpatch</concept>. </p><p> The <concept>Graph</concept> is a term given to everything that VVVV is thinking about. This word can commonly be used interchangeable with the 'Patch', but the Graph is also a more general term which incorporates all running patches and subpatches. </p><p> Patches are made entirely out of <concept>Nodes</concept> and <concept>Links</concept>. </p><p> Almost all of the interface for VVVV is handled by nodes, and therefore there are no toolbars, menu bars, etc. to start with. The main exception to this is the <concept>Main Menu</concept>. </p><p></p>
+<h2>1 - Creating nodes</h2>
+<p> <click2/> <lmb /> in an empty space in the patch window. </p><p> This will bring up the <concept>NodeBrowser</concept> which you can use to create new nodes. </p><p> If you start typing, the NodeBrowser will begin searching for new nodes. </p><p> Use <key>Up</key>/<key>Down</key> on the keyboard to select different nodes within the list. Use the <scroll /> scroll on the mouse to scroll the list. Press <key>Enter</key> on the keyboard or click on an item in the list to create the node. </p><p> <click /><rmb /> on the text box at the top of the NodeBrowser, to browse for nodes by category. </p><p></p>
+<h2>2 - Scrolling</h2>
+<p> There are 2 main ways to scroll around the patch in VVVV. You can either: </p><p> <ol> <li><b>Drag right mouse button <hold/><rmb/> </b></p><p> Move your mouse over an empty area of the patch, hold down your right mouse button and then start moving your mouse. Release the mouse <release/><rmb/> to stop scrolling</p><p>You will notice that the whole patch will move with respect to the window. This is the most common form of scrolling. But WARNING! Be careful not to <click/><rmb/>on any links in the patch. It's common for beginners to scroll like this with their mouse over a link. Right clicking on a link deletes it!</li> <li><b>With the scroll wheel <scroll /></b> </p><p> Safer for busy patches (for the link-deleting reason described above). You can scroll up/down using <scroll />. You can scroll left/right with <key>Alt</key>+<scroll /> and using the scroll wheel. You can scroll super-quick using <key>Ctrl</key>+<scroll />.</li> </ol></p>
+<h2>3 - Main Menu</h2>
+<p> The main menu contains a set of functions. All except a couple of which can be accessed without using the main menu. </p><p> To open the main menu, move your mouse over an empty area of the patch and click the middle mouse button <click/><mmb/>. If you dont have a middle mouse button, then use <key>Shift</key>+<click/><rmb/>. </p><p> The main menu performs common tasks such as Open, Close, Save, Quit, Copy, Paste, etc. as well as some VVVV specific functions which may help you debug your patch, direct you to help, speed up your patch.</p>
+<h2>4 - IOBoxes</h2>
+<p> An <node>IOBox</node> is a special node. It is the most basic method for inputting data into VVVV (input), and for seeing the data for ourselves (output). We can only edit data inside an IOBox if it has nothing connected to its <pin>input</pin>. </p><p> Try changing the value in a basic way by double clicking <click2/><lmb/> on it, and entering a value manually, then press <key>Enter</key>.</p>
+<h2>5 - Pins</h2>
+<p> Nodes need a way of communicating with other nodes. </p><p> The 'cable' that connects 2 nodes together is called a <concept>Link</concept>, and the 'socket' where the cable connects to the node is called a <concept>Pin</concept>. </p><p> In this documentation, we demonstrate a pin with the following style: <pin>style</pin>. This could denote either a specific pin such as <node>+ (Value)</node> node's <pin>Input 1</pin>, or more casually refer to a general pin, such as the <pin>input</pin> of an <node>IOBox</node>. Output pins are on the bottom of the nodes Input pins are on the top of the nodes. </p><p> An <pin>input</pin> can only be connected to 1 other node's <pin>output </pin> at any time. </p><p> An <pin>output</pin> can be connected to many other nodes' <pin>input </pin> at any time. </p><p> Roll your mouse over a pin to see what value it has (works for both inputs and outputs). </p><p></p>
+<h2>6 - Links</h2>
+<p> As mentioned before, a connection between 2 nodes is called a 'Link'. </p><p> A link is made between an <pin>input</pin> (on the top of a node) and an <pin>output</pin> (the bottom of another node). We can think of the data flowing from the ouput of one node, down the link, and into the input pin of the 'downstream' node. </p><p> To make a link, first select a pin to start making the connection by left clicking <click/><lmb/> on the pin. You must remember to click (and not to drag, especially if you're used to Max/MSP style linking). </p><p> Once you have clicked once and made sure to release the mouse button <release/><lmb/>, you are now ready to select the target pin for your link. Pins that you are allowed to connect to (i.e pins that you can make a meaningful connection with) are highlighted by becoming graphically larger on the screen. Click <click/><lmb/> on a target pin to complete the link. </p><p> To delete a link. Right click on it, or select it by left clicking on it, and hit <key>Delete</key>. </p>
+<h2>7. Input pins</h2>
+<p> Data sent via a link is sent from an output pin and received on an input pin. Input pins are the pins across the top of a node. </p><p> Input pins have different names depending on their function. For basic nodes, the main input is called <pin>Input</pin>. Put data in there to get a result. </p><p> There may also be other input pins also called "Input", e.g. a <node>+ (Value)</node> node has by default 2 inputs, <pin>Input 1</pin>, <pin>Input 2</pin> which are the 2 numbers to be added together. </p><p> Sometimes it's appropriate for the input pins to have different names, e.g. a <node>HSL (Color, Join)</node> node has 4 inputs: <pin>Hue</pin>, <pin>Saturation</pin>, <pin>Lightness</pin>, <pin>Alpha</pin>. These are joined together into 1 colour value on the <pin>Output</pin>. </p><p> Input pins can generally store values. If you connect to an input pin, then disconnect, it will store the last value given to it. </p><p> Sometimes the input pins are attributes for how that node should behave, e.g. A <node>Renderer (EX9)</node> node has a <pin>Fullscreen</pin> pin, which allows you to set that renderer's window to be fullscreen.</p>
+<h2>8 - Links again</h2>
+<p> 1 output can be linked to several inputs <br/> 1 input can only be linked to 1 output </p><p> Links can be created by either first selecting the output, then the input, or vice versa. (Both times, using <click/><lmb/> </p><p> If you want to make a link from 1 output to multiple inputs, then you can either create them all one by one using <click/><lmb/>, or you can create them more quickly by starting to create the link from the <pin>output</pin> pin using the right mouse button <click/><rmb/>. Now every time you <click/><lmb/> an <pin>input</pin> to make a connection, you will still have the <pin>output</pin> selected and be free to create a new connection to another input using 1 more <click/><lmb/> without reselecting the output. Right click <click/><rmb/> in blank space to get rid of the link you are creating.. </p><p> If you start to make a link by accident, right click <click/><rmb/> in a blank area to clear. </p><p> A common error is to 'miss' when trying to make a connection (this is either through being inaccurate with the mouse, or by selecting the wrong pin to connect to). This means that no link has been made, but you still likely have the link attached to your mouse. Be careful of this, make sure the link is created properly and still exists after you move the mouse away! Otherwise try again. </p><p> To 'smarten up' your links follow these steps: <ol> <li> Select them (either lasso a few of them at once by dragging out a selection box around them, or select them one by one with left mouse button). </li> <li> Press <key>Ctrl</key>+<key>Y</key> until you get the style of your choice (Right angles, Curves, Direct) </li> </ol></p>
+</body>
+</html>
View
BIN 0. Basic principles.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
387 0. Basic principles.v4p
@@ -0,0 +1,387 @@
+<!DOCTYPE PATCH SYSTEM "http://vvvv.org/versions/vvvv45beta26.dtd" >
+ <PATCH nodename="C:\kimchiandchips\Workshops\VVVV-basics,mapping\0. Basic principles.v4p" filename="C:\kimchiandchips\Workshops\VVVV-basics,mapping\template.v4p" locked="0" systemname="template">
+ <BOUNDS height="13530" left="-7980" top="1005" type="Window" width="8370">
+ </BOUNDS>
+ <NODE componentmode="InABox" id="0" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="225" top="150" type="Node" width="1380">
+ </BOUNDS>
+ <BOUNDS height="1095" left="225" top="150" type="Box" width="7665">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|0. Basic principles|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="42">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="1" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="5025" top="5760" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="345" left="5025" top="5760" type="Box" width="2535">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[5 - Pins]&cr;&lf;Nodes need a way of communicating with other nodes.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;The &apos;cable&apos; that connects 2 nodes together is called a &lt;concept&gt;Link&lt;/concept&gt;, and the &apos;socket&apos; where the cable connects to the node is called a &lt;concept&gt;Pin&lt;/concept&gt;.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;In this documentation, we demonstrate a pin with the following style: &lt;pin&gt;style&lt;/pin&gt;. This could denote either a specific pin such as &lt;node&gt;+ (Value)&lt;/node&gt; node&apos;s &lt;pin&gt;Input 1&lt;/pin&gt;, or more casually refer to a general pin, such as the &lt;pin&gt;input&lt;/pin&gt; of an &lt;node&gt;IOBox&lt;/node&gt;.&cr;&lf;&cr;&lf;Output pins are on the bottom of the nodes&cr;&lf;Input pins are on the top of the nodes.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;An &lt;pin&gt;input&lt;/pin&gt; can only be connected to 1 other node&apos;s &lt;pin&gt;output &lt;/pin&gt; at any time.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;An &lt;pin&gt;output&lt;/pin&gt; can be connected to many other nodes&apos; &lt;pin&gt;input &lt;/pin&gt; at any time.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;Roll your mouse over a pin to see what value it has (works for both inputs and outputs).&cr;&lf;&lt;br /&gt;|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="2" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="105" top="11895" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="750" left="105" top="11895" type="Box" width="5325">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|Created by Elliot Woods.&cr;&lf;Distributed under the MIT license (check file LICENSE) for details.&cr;&lf;Generally you can do whatever you want with these files. have fun!|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="5" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="5805" top="2640" type="Node" width="1380">
+ </BOUNDS>
+ <BOUNDS height="540" left="5805" top="2640" type="Box" width="2085">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" visible="1">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="12">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="Author">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="6" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="225" top="1260" type="Node" width="1380">
+ </BOUNDS>
+ <BOUNDS height="1155" left="225" top="1260" type="Box" width="7665">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" visible="1">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="12">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="Description">
+ </PIN>
+ </NODE>
+ <INFO author="Elliot Woods" description="Basic principles of the VVVV graph. Here we create a patch which adds up 2 numbers. You can think of a patch a little bit like an electrical circuit." tags="nodes, links">
+ </INFO>
+ <NODE componentmode="Hidden" filename="Subpatches\GetMetadata (VVVV).v4p" hiddenwhenlocked="1" id="10" nodename="GetMetadata (VVVV)" systemname="GetMetadata (VVVV)">
+ <BOUNDS height="100" left="5820" top="1800" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Patch" visible="1">
+ </PIN>
+ <BOUNDS height="3465" left="14520" top="5520" type="Window" width="4680">
+ </BOUNDS>
+ <PIN pinname="Author" visible="1">
+ </PIN>
+ <PIN pinname="Description" visible="1">
+ </PIN>
+ <PIN pinname="Tags" visible="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="Hidden" hiddenwhenlocked="1" id="8" nodename="PatchAlias (VVVV)" systemname="PatchAlias (VVVV)">
+ <BOUNDS height="100" left="5820" top="1350" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Patch" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="10" dstpinname="Patch" hiddenwhenlocked="1" srcnodeid="8" srcpinname="Patch">
+ </LINK>
+ <LINK dstnodeid="6" dstpinname="Input String" hiddenwhenlocked="1" linkstyle="VHV" srcnodeid="10" srcpinname="Description">
+ <LINKPOINT x="6445" y="2205">
+ </LINKPOINT>
+ <LINKPOINT x="245" y="2355">
+ </LINKPOINT>
+ </LINK>
+ <NODE componentmode="InABox" id="11" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="225" top="2640" type="Node" width="1380">
+ </BOUNDS>
+ <BOUNDS height="540" left="225" top="2640" type="Box" width="5520">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" visible="1">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="12">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="Tags">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="11" dstpinname="Input String" hiddenwhenlocked="1" linkstyle="VHV" srcnodeid="10" srcpinname="Tags">
+ <LINKPOINT x="7015" y="2293">
+ </LINKPOINT>
+ <LINKPOINT x="275" y="2448">
+ </LINKPOINT>
+ </LINK>
+ <LINK dstnodeid="5" dstpinname="Input String" hiddenwhenlocked="1" srcnodeid="10" srcpinname="Author">
+ </LINK>
+ <NODE componentmode="InABox" id="12" nodename="IOBox (Value Advanced)" systemname="IOBox (Value Advanced)">
+ <BOUNDS height="100" left="1065" top="5055" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="660" left="1065" top="5055" type="Box" width="1965">
+ </BOUNDS>
+ <PIN pinname="Size" slicecount="1" values="24">
+ </PIN>
+ <PIN pinname="Y Output Value" visible="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="13" nodename="IOBox (Value Advanced)" systemname="IOBox (Value Advanced)">
+ <BOUNDS height="100" left="4935" top="5040" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="660" left="4935" top="5040" type="Box" width="1965">
+ </BOUNDS>
+ <PIN pinname="Size" slicecount="1" values="24">
+ </PIN>
+ <PIN pinname="Y Output Value" visible="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="Hidden" id="14" nodename="Add (Value)" systemname="Add (Value)">
+ <BOUNDS height="270" left="1050" top="7095" type="Node" width="3945">
+ </BOUNDS>
+ <PIN pinname="Input 1" visible="1">
+ </PIN>
+ <PIN pinname="Input 2" visible="1">
+ </PIN>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="14" dstpinname="Input 1" srcnodeid="12" srcpinname="Y Output Value">
+ </LINK>
+ <LINK dstnodeid="14" dstpinname="Input 2" srcnodeid="13" srcpinname="Y Output Value">
+ </LINK>
+ <NODE componentmode="InABox" id="16" nodename="IOBox (Value Advanced)" systemname="IOBox (Value Advanced)">
+ <BOUNDS height="100" left="1050" top="8355" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="660" left="1050" top="8355" type="Box" width="1965">
+ </BOUNDS>
+ <PIN pinname="Size" slicecount="1" values="24">
+ </PIN>
+ <PIN pinname="Y Output Value" visible="1">
+ </PIN>
+ <PIN pinname="Y Input Value" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="16" dstpinname="Y Input Value" srcnodeid="14" srcpinname="Output">
+ </LINK>
+ <NODE componentmode="InABox" id="22" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="1110" top="4680" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="345" left="1110" top="4680" type="Box" width="2535">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[4 - IOBoxes]&cr;&lf;An &lt;node&gt;IOBox&lt;/node&gt; is a special node. It is the most basic method for inputting data into VVVV (input), and for seeing the data for ourselves (output).&cr;&lf;We can only edit data inside an IOBox if it has nothing connected to its &lt;pin&gt;input&lt;/pin&gt;.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;Try changing the value in a basic way by double clicking &lt;click2/&gt;&lt;lmb/&gt; on it, and entering a value manually, then press &lt;key&gt;Enter&lt;/key&gt;.|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="24" nodename="IOBox (Value Advanced)" systemname="IOBox (Value Advanced)">
+ <BOUNDS height="100" left="1050" top="10305" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="660" left="1050" top="10305" type="Box" width="1965">
+ </BOUNDS>
+ <PIN pinname="Size" slicecount="1" values="24">
+ </PIN>
+ <PIN pinname="Y Output Value" visible="1">
+ </PIN>
+ <PIN pinname="Y Input Value" visible="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="25" nodename="IOBox (Value Advanced)" systemname="IOBox (Value Advanced)">
+ <BOUNDS height="100" left="3450" top="10305" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="660" left="3450" top="10305" type="Box" width="1965">
+ </BOUNDS>
+ <PIN pinname="Size" slicecount="1" values="24">
+ </PIN>
+ <PIN pinname="Y Output Value" visible="1">
+ </PIN>
+ <PIN pinname="Y Input Value" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="24" dstpinname="Y Input Value" srcnodeid="16" srcpinname="Y Output Value">
+ </LINK>
+ <LINK dstnodeid="25" dstpinname="Y Input Value" linkstyle="VHV" srcnodeid="16" srcpinname="Y Output Value">
+ <LINKPOINT x="1110" y="9645">
+ </LINKPOINT>
+ <LINKPOINT x="3450" y="9645">
+ </LINKPOINT>
+ </LINK>
+ <NODE componentmode="InABox" id="26" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="1305" top="7815" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="345" left="1305" top="7815" type="Box" width="2535">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[7. Input pins]&cr;&lf;Data sent via a link is sent from an output pin and received on an input pin.&cr;&lf;Input pins are the pins across the top of a node.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;Input pins have different names depending on their function. For basic nodes, the main input is called &lt;pin&gt;Input&lt;/pin&gt;. Put data in there to get a result.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;There may also be other input pins also called &quot;Input&quot;, e.g. a &lt;node&gt;+ (Value)&lt;/node&gt; node has by default 2 inputs, &lt;pin&gt;Input 1&lt;/pin&gt;, &lt;pin&gt;Input 2&lt;/pin&gt; which are the 2 numbers to be added together.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;Sometimes it&apos;s appropriate for the input pins to have different names, e.g. a &lt;node&gt;HSL (Color, Join)&lt;/node&gt; node has 4 inputs: &lt;pin&gt;Hue&lt;/pin&gt;, &lt;pin&gt;Saturation&lt;/pin&gt;, &lt;pin&gt;Lightness&lt;/pin&gt;, &lt;pin&gt;Alpha&lt;/pin&gt;. These are joined together into 1 colour value on the &lt;pin&gt;Output&lt;/pin&gt;.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;Input pins can generally store values. If you connect to an input pin, then disconnect, it will store the last value given to it.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;Sometimes the input pins are attributes for how that node should behave, e.g. A &lt;node&gt;Renderer (EX9)&lt;/node&gt; node has a &lt;pin&gt;Fullscreen&lt;/pin&gt; pin, which allows you to set that renderer&apos;s window to be fullscreen.|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="31" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="660" top="3285" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="345" left="660" top="3285" type="Box" width="2535">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[0 - The patch]&cr;&lf;When we open VVVV, we get a blank square.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;This blank square is a view of a new blank VVVV document, which is called a &lt;concept&gt;Patch&lt;/concept&gt;.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;Patches define &apos;programs&apos; in VVVV. A patch can perform all sorts of tasks. It can act on its own, or can perform a specific function within a bigger patch. When one patch is nested within another, it is called a &lt;concept&gt;Subpatch&lt;/concept&gt;.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;The &lt;concept&gt;Graph&lt;/concept&gt; is a term given to everything that VVVV is thinking about. This word can commonly be used interchangeable with the &apos;Patch&apos;, but the Graph is also a more general term which incorporates all running patches and subpatches.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;Patches are made entirely out of &lt;concept&gt;Nodes&lt;/concept&gt; and &lt;concept&gt;Links&lt;/concept&gt;.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;Almost all of the interface for VVVV is handled by nodes, and therefore there are no toolbars, menu bars, etc. to start with. The main exception to this is the &lt;concept&gt;Main Menu&lt;/concept&gt;.&cr;&lf;&lt;br /&gt;|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="32" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="660" top="3585" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="345" left="660" top="3585" type="Box" width="2535">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[1 - Creating nodes]&cr;&lf;&lt;click2/&gt; &lt;lmb /&gt; in an empty space in the patch window.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;This will bring up the &lt;concept&gt;NodeBrowser&lt;/concept&gt; which you can use to create new nodes.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;If you start typing, the NodeBrowser will begin searching for new nodes.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;Use &lt;key&gt;Up&lt;/key&gt;/&lt;key&gt;Down&lt;/key&gt; on the keyboard to select different nodes within the list. &cr;&lf;Use the &lt;scroll /&gt; scroll on the mouse to scroll the list.&cr;&lf;Press &lt;key&gt;Enter&lt;/key&gt; on the keyboard or click on an item in the list to create the node.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;&lt;click /&gt;&lt;rmb /&gt; on the text box at the top of the NodeBrowser, to browse for nodes by category.&cr;&lf;&lt;br /&gt;|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="33" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="660" top="3885" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="345" left="660" top="3885" type="Box" width="2535">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[2 - Scrolling]&cr;&lf;There are 2 main ways to scroll around the patch in VVVV. You can either:&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;&lt;ol&gt;&cr;&lf;&lt;li&gt;&lt;b&gt;Drag right mouse button &lt;hold/&gt;&lt;rmb/&gt; &lt;/b&gt;&lt;br /&gt;&cr;&lf;Move your mouse over an empty area of the patch, hold down your right mouse button and then start moving your mouse. Release the mouse &lt;release/&gt;&lt;rmb/&gt; to stop scrolling&lt;br /&gt;You will notice that the whole patch will move with respect to the window. This is the most common form of scrolling. But WARNING! Be careful not to &lt;click/&gt;&lt;rmb/&gt;on any links in the patch. It&apos;s common for beginners to scroll like this with their mouse over a link. Right clicking on a link deletes it!&lt;/li&gt;&cr;&lf;&cr;&lf;&lt;li&gt;&lt;b&gt;With the scroll wheel &lt;scroll /&gt;&lt;/b&gt; &lt;br /&gt;&cr;&lf;Safer for busy patches (for the link-deleting reason described above). You can scroll up/down using &lt;scroll /&gt;. You can scroll left/right with &lt;key&gt;Alt&lt;/key&gt;+&lt;scroll /&gt; and using the scroll wheel. You can scroll super-quick using &lt;key&gt;Ctrl&lt;/key&gt;+&lt;scroll /&gt;.&lt;/li&gt;&cr;&lf;&lt;/ol&gt;|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="34" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="1275" top="6360" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="345" left="1275" top="6360" type="Box" width="2535">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[6 - Links]&cr;&lf;As mentioned before, a connection between 2 nodes is called a &apos;Link&apos;.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;A link is made between an &lt;pin&gt;input&lt;/pin&gt; (on the top of a node) and an &lt;pin&gt;output&lt;/pin&gt; (the bottom of another node). We can think of the data flowing from the ouput of one node, down the link, and into the input pin of the &apos;downstream&apos; node.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;To make a link, first select a pin to start making the connection by left clicking &lt;click/&gt;&lt;lmb/&gt; on the pin. You must remember to click (and not to drag, especially if you&apos;re used to Max/MSP style linking).&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;Once you have clicked once and made sure to release the mouse button &lt;release/&gt;&lt;lmb/&gt;, you are now ready to select the target pin for your link. Pins that you are allowed to connect to (i.e pins that you can make a meaningful connection with) are highlighted by becoming graphically larger on the screen. Click &lt;click/&gt;&lt;lmb/&gt; on a target pin to complete the link.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;To delete a link. Right click on it, or select it by left clicking on it, and hit &lt;key&gt;Delete&lt;/key&gt;.&cr;&lf;&cr;&lf;|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="35" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="660" top="4185" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="345" left="660" top="4185" type="Box" width="2535">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[3 - Main Menu]&cr;&lf;The main menu contains a set of functions. All except a couple of which can be accessed without using the main menu.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;To open the main menu, move your mouse over an empty area of the patch and click the middle mouse button &lt;click/&gt;&lt;mmb/&gt;. If you dont have a middle mouse button, then use &lt;key&gt;Shift&lt;/key&gt;+&lt;click/&gt;&lt;rmb/&gt;.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;The main menu performs common tasks such as Open, Close, Save, Quit, Copy, Paste, etc. as well as some VVVV specific functions which may help you debug your patch, direct you to help, speed up your patch.|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="37" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="3555" top="9660" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="345" left="3555" top="9660" type="Box" width="2535">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[8 - Links again]&cr;&lf;1 output can be linked to several inputs&cr;&lf;&lt;br/&gt;&cr;&lf;1 input can only be linked to 1 output&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;Links can be created by either first selecting the output, then the input, or vice versa. (Both times, using &lt;click/&gt;&lt;lmb/&gt;&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;If you want to make a link from 1 output to multiple inputs, then you can either create them all one by one using &lt;click/&gt;&lt;lmb/&gt;, or you can create them more quickly by starting to create the link from the &lt;pin&gt;output&lt;/pin&gt; pin using the right mouse button &lt;click/&gt;&lt;rmb/&gt;. Now every time you &lt;click/&gt;&lt;lmb/&gt; an &lt;pin&gt;input&lt;/pin&gt; to make a connection, you will still have the &lt;pin&gt;output&lt;/pin&gt; selected and be free to create a new connection to another input using 1 more &lt;click/&gt;&lt;lmb/&gt; without reselecting the output. Right click &lt;click/&gt;&lt;rmb/&gt; in blank space to get rid of the link you are creating..&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;If you start to make a link by accident, right click &lt;click/&gt;&lt;rmb/&gt; in a blank area to clear.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;A common error is to &apos;miss&apos; when trying to make a connection (this is either through being inaccurate with the mouse, or by selecting the wrong pin to connect to). This means that no link has been made, but you still likely have the link attached to your mouse. Be careful of this, make sure the link is created properly and still exists after you move the mouse away! Otherwise try again.&cr;&lf;&lt;br /&gt;&cr;&lf;&cr;&lf;To &apos;smarten up&apos; your links follow these steps:&cr;&lf;&lt;ol&gt;&cr;&lf;&lt;li&gt;&cr;&lf;Select them (either lasso a few of them at once by dragging out a selection box around them, or select them one by one with left mouse button).&cr;&lf;&lt;/li&gt;&cr;&lf;&lt;li&gt;&cr;&lf;Press &lt;key&gt;Ctrl&lt;/key&gt;+&lt;key&gt;Y&lt;/key&gt; until you get the style of your choice (Right angles, Curves, Direct)&cr;&lf;&lt;/li&gt;&cr;&lf;&lt;/ol&gt;|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
+ </PIN>
+ </NODE>
+ </PATCH>
View
BIN 1. IOBox.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
277 1. IOBox.v4p
@@ -0,0 +1,277 @@
+<!DOCTYPE PATCH SYSTEM "http://vvvv.org/versions/vvvv45beta26.dtd" >
+ <PATCH nodename="C:\kimchiandchips\Workshops\VVVV-basics,mapping\1. IOBox.v4p" filename="C:\kimchiandchips\Workshops\VVVV-basics,mapping\template.v4p" locked="0" systemname="template">
+ <BOUNDS height="12405" left="-7980" top="1005" type="Window" width="8370">
+ </BOUNDS>
+ <NODE componentmode="InABox" id="0" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="225" top="150" type="Node" width="1380">
+ </BOUNDS>
+ <BOUNDS height="1095" left="225" top="150" type="Box" width="7665">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|1. IOBox|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="42">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="2" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="105" top="10905" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="750" left="105" top="10905" type="Box" width="5325">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|Created by Elliot Woods.&cr;&lf;Distributed under the MIT license (check file LICENSE) for details.&cr;&lf;Generally you can do whatever you want with these files. have fun!|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="5" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="5805" top="2640" type="Node" width="1380">
+ </BOUNDS>
+ <BOUNDS height="540" left="5805" top="2640" type="Box" width="2085">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" visible="1">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="12">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="Author">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="6" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="225" top="1260" type="Node" width="1380">
+ </BOUNDS>
+ <BOUNDS height="1155" left="225" top="1260" type="Box" width="7665">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" visible="1">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="12">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="Description">
+ </PIN>
+ </NODE>
+ <INFO author="Elliot Woods" description="IOBox basics, interacting with VVVV" tags="IOBox, Value">
+ </INFO>
+ <NODE componentmode="Hidden" filename="Subpatches\GetMetadata (VVVV).v4p" hiddenwhenlocked="1" id="10" nodename="GetMetadata (VVVV)" systemname="GetMetadata (VVVV)">
+ <BOUNDS height="100" left="5820" top="1800" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Patch" visible="1">
+ </PIN>
+ <BOUNDS height="3465" left="14520" top="5520" type="Window" width="4680">
+ </BOUNDS>
+ <PIN pinname="Author" visible="1">
+ </PIN>
+ <PIN pinname="Description" visible="1">
+ </PIN>
+ <PIN pinname="Tags" visible="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="Hidden" hiddenwhenlocked="1" id="8" nodename="PatchAlias (VVVV)" systemname="PatchAlias (VVVV)">
+ <BOUNDS height="100" left="5820" top="1350" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Patch" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="10" dstpinname="Patch" hiddenwhenlocked="1" srcnodeid="8" srcpinname="Patch">
+ </LINK>
+ <LINK dstnodeid="6" dstpinname="Input String" hiddenwhenlocked="1" linkstyle="VHV" srcnodeid="10" srcpinname="Description">
+ <LINKPOINT x="6445" y="2205">
+ </LINKPOINT>
+ <LINKPOINT x="245" y="2355">
+ </LINKPOINT>
+ </LINK>
+ <NODE componentmode="InABox" id="11" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="225" top="2640" type="Node" width="1380">
+ </BOUNDS>
+ <BOUNDS height="540" left="225" top="2640" type="Box" width="5520">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" visible="1">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="12">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="Tags">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="11" dstpinname="Input String" hiddenwhenlocked="1" linkstyle="VHV" srcnodeid="10" srcpinname="Tags">
+ <LINKPOINT x="7015" y="2293">
+ </LINKPOINT>
+ <LINKPOINT x="275" y="2448">
+ </LINKPOINT>
+ </LINK>
+ <LINK dstnodeid="5" dstpinname="Input String" hiddenwhenlocked="1" srcnodeid="10" srcpinname="Author">
+ </LINK>
+ <NODE componentmode="InABox" id="12" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="2730" top="3990" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="330" left="2730" top="3990" type="Box" width="1770">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[0 - IOBox]&cr;&lf;The most basic input / output mechanism in VVVV is the &lt;node&gt;IOBox&lt;/node&gt;.&cr;&lf;&cr;&lf;There are different IOBoxes for different types of data (Value, String, Color, Enum, Node).&cr;&lf;&cr;&lf;The most basic type of data is called a Value, which means a real number (note for programmers: this is currently represented by a double precision floating point value).&cr;&lf;&cr;&lf;IOBoxes perform multiple roles:&cr;&lf;&lt;ol&gt;&cr;&lf;&lt;li&gt;Holds data when no input is connected&lt;/li&gt;&cr;&lf;&lt;li&gt;Perform access to inputs/outputs of subpatches (more on that later!)&lt;/li&gt;&cr;&lf;&lt;li&gt;Give opportunities for user input/output&lt;/li&gt;&cr;&lf;&lt;/ol&gt;&cr;&lf;|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="14" nodename="IOBox (Value Advanced)" systemname="IOBox (Value Advanced)">
+ <BOUNDS height="100" left="390" top="4965" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="1215" left="390" top="4965" type="Box" width="3645">
+ </BOUNDS>
+ <PIN pinname="Size" slicecount="1" values="47">
+ </PIN>
+ <PIN pinname="Y Output Value" visible="1">
+ </PIN>
+ <PIN pinname="Y Input Value" slicecount="1" values="0">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="17" nodename="IOBox (Value Advanced)" systemname="IOBox (Value Advanced)">
+ <BOUNDS height="100" left="2415" top="7845" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="660" left="2415" top="7845" type="Box" width="1965">
+ </BOUNDS>
+ <PIN pinname="Size" slicecount="1" values="24">
+ </PIN>
+ <PIN pinname="Y Output Value" visible="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="18" nodename="IOBox (Value Advanced)" systemname="IOBox (Value Advanced)">
+ <BOUNDS height="100" left="2415" top="9600" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="660" left="2415" top="9600" type="Box" width="1965">
+ </BOUNDS>
+ <PIN pinname="Size" slicecount="1" values="24">
+ </PIN>
+ <PIN pinname="Y Output Value" visible="1">
+ </PIN>
+ <PIN pinname="Y Input Value" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="18" dstpinname="Y Input Value" srcnodeid="17" srcpinname="Y Output Value">
+ </LINK>
+ <NODE componentmode="InABox" id="19" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="2280" top="7395" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="300" left="2280" top="7395" type="Box" width="2415">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[4 - When connected]|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="20" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="4200" top="5175" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="330" left="4200" top="5175" type="Box" width="3300">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[1 - Drag right mouse button]&cr;&lf;&cr;&lf;Move your mouse cursor over the IOBox without pressing any buttons. Now hold down the right mouse button and drag up/down to change the value.&cr;&lf;&cr;&lf;To move through values more slowly (more accuracy) hold down either CTRL or SHIFT whilst dragging the right mouse button. Hold down both to get even more accuracy.&cr;&lf;&cr;&lf;To move through values more quickly hold down ALT+CTRL or ALT+SHIFT whilst dragging the right mouse button. Hold ALT+CTRL+SHIFT for maximum speed.&cr;&lf;&cr;&lf;In VVVV, generally we use the right mouse button for interacting with Values and other datatypes. We use the left mouse button to change the patch itself.|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="21" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="4200" top="5745" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="330" left="4200" top="5745" type="Box" width="2700">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[2 - Double left click]&cr;&lf;&cr;&lf;The alternative way of changing the value is to double click on the IOBox to change the value by entering it with the keyboard.|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="22" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="4200" top="4770" type="Node" width="1290">
+ </BOUNDS>
+ <BOUNDS height="270" left="4200" top="4770" type="Box" width="1290">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|Ways to interact|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="23" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="360" top="4605" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="330" left="360" top="4605" type="Box" width="3030">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[3 - Editing using input pin]&cr;&lf;&cr;&lf;In general, we can edit the value of an input pin by right clicking on it. We can also use right click drag.&cr;&lf;&cr;&lf;An IOBox is a very special type of node|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
+ </PIN>
+ </NODE>
+ </PATCH>
View
113 Subpatches/GetMetadata (VVVV).v4p
@@ -0,0 +1,113 @@
+<!DOCTYPE PATCH SYSTEM "http://vvvv.org/versions/vvvv45beta26.dtd" >
+ <PATCH nodename="C:\kimchiandchips\Workshops\VVVV-basics,mapping\Subpatches\GetMetadata (VVVV).v4p" filename="C:\kimchiandchips\Workshops\VVVV-basics,mapping\Subpatches\GetMetadata.v4p" systemname="GetMetadata">
+ <BOUNDS height="3465" left="14520" top="5520" type="Window" width="4680">
+ </BOUNDS>
+ <NODE componentmode="Hidden" id="0" nodename="GetPatch (VVVV)" systemname="GetPatch (VVVV)">
+ <BOUNDS height="100" left="315" top="810" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Patch" slicecount="1" visible="1" values="||">
+ </PIN>
+ <PIN pinname="Patch Description" visible="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="1" nodename="IOBox (Node)" systemname="IOBox (Node)">
+ <BOUNDS height="100" left="330" top="255" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="240" left="330" top="255" type="Box" width="795">
+ </BOUNDS>
+ <PIN pinname="Output Node" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="Patch">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="0" dstpinname="Patch" srcnodeid="1" srcpinname="Output Node">
+ </LINK>
+ <NODE componentmode="Hidden" id="2" nodename="XPath (XML)" systemname="XPath (XML)">
+ <BOUNDS height="100" left="315" top="1470" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="XML Input" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="XPath Query" slicecount="1" values="/PATCH/INFO/@author">
+ </PIN>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ <PIN pinname="Resolve Externals" slicecount="1" values="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="2" dstpinname="XML Input" srcnodeid="0" srcpinname="Patch Description">
+ </LINK>
+ <NODE componentmode="InABox" id="3" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="100" left="330" top="1935" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="300" left="330" top="1935" type="Box" width="1095">
+ </BOUNDS>
+ <PIN pinname="Input String" visible="1">
+ </PIN>
+ <PIN pinname="Descriptive Name" slicecount="1" values="Author" encoded="0">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="3" dstpinname="Input String" srcnodeid="2" srcpinname="Output">
+ </LINK>
+ <NODE componentmode="Hidden" id="6" nodename="XPath (XML)" systemname="XPath (XML)">
+ <BOUNDS height="100" left="1665" top="1470" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="XML Input" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="XPath Query" slicecount="1" values="/PATCH/INFO/@description">
+ </PIN>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ <PIN pinname="Resolve Externals" slicecount="1" values="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="5" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="100" left="1680" top="1935" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="300" left="1680" top="1935" type="Box" width="1095">
+ </BOUNDS>
+ <PIN pinname="Input String" visible="1">
+ </PIN>
+ <PIN pinname="Descriptive Name" slicecount="1" values="Description" encoded="0">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="5" dstpinname="Input String" srcnodeid="6" srcpinname="Output">
+ </LINK>
+ <LINK srcnodeid="0" srcpinname="Patch Description" dstnodeid="6" dstpinname="XML Input" linkstyle="VHV">
+ <LINKPOINT x="375" y="1260">
+ </LINKPOINT>
+ <LINKPOINT x="1665" y="1260">
+ </LINKPOINT>
+ </LINK>
+ <NODE componentmode="Hidden" id="8" nodename="XPath (XML)" systemname="XPath (XML)">
+ <BOUNDS height="100" left="3015" top="1470" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="XML Input" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="XPath Query" slicecount="1" values="/PATCH/INFO/@tags">
+ </PIN>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ <PIN pinname="Resolve Externals" slicecount="1" values="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="7" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="100" left="3030" top="1935" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="300" left="3030" top="1935" type="Box" width="1095">
+ </BOUNDS>
+ <PIN pinname="Input String" visible="1">
+ </PIN>
+ <PIN pinname="Descriptive Name" slicecount="1" values="Tags" encoded="0">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="7" dstpinname="Input String" srcnodeid="8" srcpinname="Output">
+ </LINK>
+ <LINK srcnodeid="0" srcpinname="Patch Description" dstnodeid="8" dstpinname="XML Input" linkstyle="VHV">
+ <LINKPOINT x="375" y="1260">
+ </LINKPOINT>
+ <LINKPOINT x="3015" y="1260">
+ </LINKPOINT>
+ </LINK>
+ <INFO author="" description="" tags="">
+ </INFO>
+ </PATCH>
View
73 tools/Format Documentation.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+<xsl:template match="/">
+<html>
+<head>
+ <title>Annotations</title>
+ <script>
+ document.createElement('node');
+ document.createElement('pin');
+ document.createElement('key');
+ document.createElement('concept');
+
+ document.createElement('lmb');
+ document.createElement('rmb');
+ document.createElement('mmb');
+ document.createElement('scroll');
+
+ document.createElement('click');
+ document.createElement('click2');
+ document.createElement('hold');
+ document.createElement('release');
+ </script>
+
+ <style type="text/css">
+ h2 {font-family:Tahoma; font-size:14px; color:white; background:grey; padding:10px;}
+ p {font-family:Tahoma; font-size:14px; color:black;line-height:150%;}
+ ol {font-family:Tahoma; font-size:14px; color:black;}
+ li {padding-bottom: 30px;}
+
+ node {font-family:Tahoma, font-size:14px; color:black; background:#DDD; border-style:solid; padding:5px; border-left:thick double #888; border-right:thick double #888; border-top: none; border-bottom:none; }
+ pin {background:#; border-bottom:3px groove #AAA;}
+ key {border:2px ridge; background: #DDD; color: #000; padding: 2px;}
+ concept {background:#; border-bottom:3px solid #CCC;}
+
+ lmb {width: 30px; height:30px; background-image:url('C:\kimchiandchips\Workshops\VVVV-basics,mapping\tools\lmb.png');}
+ rmb {width: 30px; height:30px; background-image:url('C:\kimchiandchips\Workshops\VVVV-basics,mapping\tools\rmb.png');}
+ mmb {width: 30px; height:30px; background-image:url('C:\kimchiandchips\Workshops\VVVV-basics,mapping\tools\mmb.png');}
+ scroll {width: 30px; height:30px; background-image:url('C:\kimchiandchips\Workshops\VVVV-basics,mapping\tools\scroll.png');}
+
+ click {width: 10px; height:30px; background-image:url('C:\kimchiandchips\Workshops\VVVV-basics,mapping\tools\click.png');}
+ click2 {width: 10px; height:30px; background-image:url('C:\kimchiandchips\Workshops\VVVV-basics,mapping\tools\click2.png');}
+ hold {width: 10px; height:30px; background-image:url('C:\kimchiandchips\Workshops\VVVV-basics,mapping\tools\hold.png');}
+ release {width: 10px; height:30px; background-image:url('C:\kimchiandchips\Workshops\VVVV-basics,mapping\tools\release.png');}
+
+
+ </style>
+</head>
+<body>
+<img src="!!IMAGEPATH!!" />
+ <xsl:for-each select="/PATCH/NODE">
+ <xsl:sort select="PIN[@pinname='Input String']/@values"/>
+
+ <xsl:if test="PIN[@pinname='Font']/@values['|Arial Black|']">
+
+ <h2><xsl:value-of select="substring-after(substring-before(PIN[@pinname='Input String']/@values,']'), '[')" /></h2>
+ <p><xsl:value-of select="substring-before(substring-after(PIN[@pinname='Input String']/@values,']'), '|')" /></p>
+
+ <!--
+ <tr>
+ <td><xsl:value-of select="PIN[@pinname='Input String']/@values" /></td>
+ <td><xsl:value-of select="BOUNDS/@left" /></td>
+ <td><xsl:value-of select="BOUNDS/@top" /></td>
+ <td><xsl:value-of select="PIN[@pinname='Font']/@values['|Arial Black|']" /></td>
+ </tr>
+ /!-->
+
+ </xsl:if>
+ </xsl:for-each>
+</body>
+</html>
+</xsl:template>
+</xsl:stylesheet>
View
657 tools/Make Documentation.v4p
@@ -0,0 +1,657 @@
+<!DOCTYPE PATCH SYSTEM "http://vvvv.org/versions/vvvv45beta26.dtd" >
+ <PATCH nodename="C:\kimchiandchips\Workshops\VVVV-basics,mapping\tools\Make Documentation.v4p" filename="C:\kimchiandchips\Workshops\VVVV-basics,mapping\tools\Make Documentation.v4p" systemname="Make Documentation">
+ <BOUNDS height="15045" left="0" top="0" type="Window" width="20565">
+ </BOUNDS>
+ <NODE componentmode="Hidden" id="1" nodename="GetPatch (VVVV)" systemname="GetPatch (VVVV)">
+ <BOUNDS height="100" left="300" top="1980" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Patch" visible="1">
+ </PIN>
+ <PIN pinname="Patch Description" visible="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="3" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="100" left="17475" top="210" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="31770" left="17475" top="210" type="Box" width="10545">
+ </BOUNDS>
+ <PIN pinname="Input String" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="3" dstpinname="Input String" srcnodeid="1" srcpinname="Patch Description">
+ </LINK>
+ <NODE componentmode="InABox" id="8" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="15" top="15" type="Node" width="1380">
+ </BOUNDS>
+ <BOUNDS height="1110" left="15" top="15" type="Box" width="9675">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|Make Documentation|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="42">
+ </PIN>
+ </NODE>
+ <NODE componentmode="Hidden" id="2" nodename="PatchAlias (VVVV Name)" systemname="PatchAlias (VVVV Name)">
+ <BOUNDS height="100" left="300" top="1530" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Patch" visible="1">
+ </PIN>
+ <PIN pinname="Parent Level">
+ </PIN>
+ <PIN encoded="0" pinname="PatchName" slicecount="1" values="|..\0. Basic principles.v4p|">
+ </PIN>
+ </NODE>
+ <NODE componentmode="Hidden" id="10" nodename="XPath (XML)" systemname="XPath (XML)">
+ <BOUNDS height="100" left="300" top="3270" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="XML Input" visible="1">
+ </PIN>
+ <PIN pinname="XPath Query" visible="1">
+ </PIN>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ <PIN pinname="Resolve Externals" slicecount="1" values="1">
+ </PIN>
+ <PIN encoded="0" pinname="Output Pins" slicecount="1" values="||">
+ </PIN>
+ <PIN pinname="left" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="left">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="12" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="100" left="315" top="3735" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="1950" left="315" top="3735" type="Box" width="855">
+ </BOUNDS>
+ <PIN pinname="Input String" visible="1">
+ </PIN>
+ <PIN pinname="Rows" slicecount="1" values="10">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="13" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="100" left="555" top="2400" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="240" left="555" top="2400" type="Box" width="3825">
+ </BOUNDS>
+ <PIN pinname="Output String" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="Input String" slicecount="1" values="/PATCH/NODE/BOUNDS[@type=&apos;Node&apos;]/@left">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="10" dstpinname="XPath Query" srcnodeid="13" srcpinname="Output String">
+ </LINK>
+ <LINK dstnodeid="10" dstpinname="XML Input" srcnodeid="1" srcpinname="Patch Description">
+ </LINK>
+ <LINK dstnodeid="12" dstpinname="Input String" srcnodeid="10" srcpinname="Output">
+ </LINK>
+ <NODE componentmode="Hidden" id="14" nodename="XPath (XML)" systemname="XPath (XML)">
+ <BOUNDS height="100" left="1500" top="3255" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="XML Input" visible="1">
+ </PIN>
+ <PIN pinname="XPath Query" visible="1">
+ </PIN>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ <PIN pinname="Resolve Externals" slicecount="1" values="1">
+ </PIN>
+ <PIN encoded="0" pinname="Output Pins" slicecount="1" values="||">
+ </PIN>
+ <PIN pinname="left" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="top">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="14" dstpinname="XML Input" linkstyle="Bezier" srcnodeid="1" srcpinname="Patch Description">
+ <LINKPOINT x="360" y="2738">
+ </LINKPOINT>
+ <LINKPOINT x="1485" y="2738">
+ </LINKPOINT>
+ </LINK>
+ <NODE componentmode="InABox" id="15" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="100" left="1515" top="3735" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="1950" left="1515" top="3735" type="Box" width="855">
+ </BOUNDS>
+ <PIN pinname="Input String" visible="1">
+ </PIN>
+ <PIN pinname="Rows" slicecount="1" values="10">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="15" dstpinname="Input String" srcnodeid="14" srcpinname="Output">
+ </LINK>
+ <NODE componentmode="InABox" id="16" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="100" left="1755" top="2700" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="240" left="1755" top="2700" type="Box" width="3825">
+ </BOUNDS>
+ <PIN pinname="Output String" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="Input String" slicecount="1" values="/PATCH/NODE/BOUNDS[@type=&apos;Node&apos;]/@top">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="14" dstpinname="XPath Query" srcnodeid="16" srcpinname="Output String">
+ </LINK>
+ <NODE componentmode="Hidden" id="18" nodename="XPath (XML)" systemname="XPath (XML)">
+ <BOUNDS height="100" left="2445" top="4770" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="XML Input" visible="1">
+ </PIN>
+ <PIN pinname="XPath Query" visible="1">
+ </PIN>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ <PIN pinname="Resolve Externals" slicecount="1" values="1">
+ </PIN>
+ <PIN encoded="0" pinname="Output Pins" slicecount="1" values="||">
+ </PIN>
+ <PIN pinname="left" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="left">
+ </PIN>
+ <PIN pinname="Validate on Parse" slicecount="1" values="0">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="17" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="100" left="2700" top="3840" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="735" left="2700" top="3840" type="Box" width="2595">
+ </BOUNDS>
+ <PIN pinname="Output String" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="Input String" slicecount="1" values="|/PATCH/NODE[@nodename=&apos;IOBox (String)&apos;]/PIN[@pinname=&apos;Input String&apos;]/@values|">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="18" dstpinname="XPath Query" srcnodeid="17" srcpinname="Output String">
+ </LINK>
+ <LINK dstnodeid="18" dstpinname="XML Input" srcnodeid="1" srcpinname="Patch Description">
+ </LINK>
+ <NODE componentmode="InABox" id="19" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="8655" top="1530" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="345" left="8655" top="1530" type="Box" width="2535">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|0 - Annotation&cr;&lf;To make an annotation, give the annotation a number and a title on the first line as shown. Then add extra text in the hidden paragraphs beneath.&cr;&lf;&cr;&lf;You should be able to do lots of magic things :)&lt;b&gt;Like this kind of thing&lt;/b&gt;.&cr;&lf;&cr;&lf;Remember to keep the same style (Arial Black size 8). This is how we identify the annotations.|">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Font" slicecount="1" values="|Arial Black|">
+ </PIN>
+ <PIN pinname="Size" slicecount="1" values="10">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="20" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="270" left="150" top="6000" type="Node" width="2070">
+ </BOUNDS>
+ <BOUNDS height="1785" left="150" top="6000" type="Box" width="7260">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" visible="1">
+ </PIN>
+ <PIN pinname="Output String" visible="0">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="String Type" slicecount="1" values="MultiLine">
+ </PIN>
+ <PIN pinname="Rows" slicecount="1" values="2">
+ </PIN>
+ <PIN pinname="Columns" slicecount="1" values="3">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="20" dstpinname="Input String" srcnodeid="18" srcpinname="Output">
+ </LINK>
+ <NODE componentmode="InABox" id="25" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="100" left="11295" top="11790" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="48570" left="11295" top="11790" type="Box" width="5280">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Input String" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="1" dstpinname="Patch" srcnodeid="2" srcpinname="Patch">
+ </LINK>
+ <NODE componentmode="InAWindow" filename="..\#. Template.v4p" id="0" nodename="..\#. Template.v4p" stayontop="0" systemname="#. Template" path="C:\kimchiandchips\Workshops\VVVV-basics,mapping\">
+ <BOUNDS height="100" left="3780" top="1635" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="ID" pintype="Output" visible="1">
+ </PIN>
+ <BOUNDS height="9210" left="6585" top="3270" type="Window" width="8880">
+ </BOUNDS>
+ </NODE>
+ <NODE componentmode="Hidden" id="22" nodename="XSLT (XML)" systemname="XSLT (XML)">
+ <BOUNDS height="270" left="2715" top="11010" type="Node" width="1650">
+ </BOUNDS>
+ <PIN encoded="0" pinname="XPath Query">
+ </PIN>
+ <PIN pinname="XML Input" visible="1">
+ </PIN>
+ <PIN pinname="Resolve Externals" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="XSLT Stylesheet" visible="1">
+ </PIN>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ <PIN pinname="Message" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="22" dstpinname="XML Input" srcnodeid="1" srcpinname="Patch Description">
+ </LINK>
+ <NODE componentmode="Hidden" id="27" nodename="Reader (File)" systemname="Reader (File)">
+ <BOUNDS height="100" left="3255" top="10245" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Content" visible="1">
+ </PIN>
+ <PIN pinname="Read" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="Filename" slicecount="1" values="|Format Documentation.xml|">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="22" dstpinname="XSLT Stylesheet" srcnodeid="27" srcpinname="Content">
+ </LINK>
+ <NODE componentmode="Hidden" id="28" nodename="ModificationDate (File)" systemname="ModificationDate (File)">
+ <BOUNDS height="100" left="2610" top="8745" type="Node" width="100">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Filename" slicecount="1" values="|Format Documentation.xml|">
+ </PIN>
+ <PIN pinname="Read" visible="1">
+ </PIN>
+ <PIN pinname="Modification Date" visible="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="29" nodename="IOBox (Value Advanced)" systemname="IOBox (Value Advanced)">
+ <BOUNDS height="100" left="3870" top="8040" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="480" left="3870" top="8040" type="Box" width="480">
+ </BOUNDS>
+ <PIN pinname="Value Type" slicecount="1" values="Boolean">
+ </PIN>
+ <PIN pinname="Behavior" slicecount="1" values="Toggle">
+ </PIN>
+ <PIN pinname="Y Output Value" visible="1">
+ </PIN>
+ <PIN pinname="X Input Value" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="Y Input Value" slicecount="1" values="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="28" dstpinname="Read" srcnodeid="29" srcpinname="Y Output Value">
+ </LINK>
+ <NODE componentmode="Hidden" id="30" nodename="Change (Animation)" systemname="Change (Animation)">
+ <BOUNDS height="100" left="3855" top="9120" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Input" visible="1">
+ </PIN>
+ <PIN pinname="OnChange" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="30" dstpinname="Input" srcnodeid="28" srcpinname="Modification Date">
+ </LINK>
+ <NODE componentmode="InABox" id="32" nodename="Renderer (HTML String)" systemname="Renderer (HTML String)">
+ <BOUNDS height="100" left="435" top="13785" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="58800" left="435" top="13785" type="Box" width="10530">
+ </BOUNDS>
+ <BOUNDS height="5010" left="870" top="9660" type="Window" width="6240">
+ </BOUNDS>
+ <PIN encoded="0" pinname="Base" slicecount="1" visible="1" values="||">
+ </PIN>
+ <PIN pinname="Input" visible="1">
+ </PIN>
+ <PIN pinname="GDI Out" visible="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="Hidden" id="33" nodename="OnOpen (VVVV)" systemname="OnOpen (VVVV)">
+ <BOUNDS height="100" left="4770" top="9120" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Bang" visible="1">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="34" nodename="IOBox (Value Advanced)" systemname="IOBox (Value Advanced)">
+ <BOUNDS height="100" left="5670" top="8925" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="480" left="5670" top="8925" type="Box" width="480">
+ </BOUNDS>
+ <PIN pinname="Value Type" slicecount="1" values="Boolean">
+ </PIN>
+ <PIN pinname="Behavior" slicecount="1" values="Bang">
+ </PIN>
+ <PIN pinname="Y Output Value" visible="1">
+ </PIN>
+ <PIN pinname="X Input Value" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="Y Input Value" slicecount="1" values="0">
+ </PIN>
+ </NODE>
+ <NODE componentmode="Hidden" id="35" nodename="OR (Boolean)" systemname="OR (Boolean)">
+ <BOUNDS height="270" left="3870" top="9705" type="Node" width="1860">
+ </BOUNDS>
+ <PIN pinname="Input Count" slicecount="1" values="3">
+ </PIN>
+ <PIN pinname="Input 1" visible="1">
+ </PIN>
+ <PIN pinname="Input 2" visible="1">
+ </PIN>
+ <PIN pinname="Input 3" visible="1">
+ </PIN>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="35" dstpinname="Input 1" srcnodeid="30" srcpinname="OnChange">
+ </LINK>
+ <LINK dstnodeid="35" dstpinname="Input 2" srcnodeid="33" srcpinname="Bang">
+ </LINK>
+ <LINK dstnodeid="35" dstpinname="Input 3" srcnodeid="34" srcpinname="Y Output Value">
+ </LINK>
+ <LINK dstnodeid="27" dstpinname="Read" srcnodeid="35" srcpinname="Output">
+ </LINK>
+ <NODE componentmode="Hidden" id="36" nodename="XPath (XML)" systemname="XPath (XML)">
+ <BOUNDS height="100" left="6600" top="9510" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="XML Input" visible="1">
+ </PIN>
+ <PIN pinname="Resolve Externals" slicecount="1" values="1">
+ </PIN>
+ <PIN encoded="0" pinname="XPath Query" slicecount="1" values="/PATCH/@nodename">
+ </PIN>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="36" dstpinname="XML Input" srcnodeid="1" srcpinname="Patch Description">
+ </LINK>
+ <NODE componentmode="Hidden" id="39" nodename="Substitute (String)" systemname="Substitute (String)">
+ <BOUNDS height="100" left="6600" top="10065" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Input" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="From" slicecount="1" values=".v4p">
+ </PIN>
+ <PIN encoded="0" pinname="To" slicecount="1" values=".png">
+ </PIN>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="39" dstpinname="Input" srcnodeid="36" srcpinname="Output">
+ </LINK>
+ <NODE componentmode="Hidden" id="40" nodename="Separate (String)" systemname="Separate (String)">
+ <BOUNDS height="100" left="6600" top="10530" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Input" visible="1">
+ </PIN>
+ <PIN pinname="Intersperse" slicecount="1" values="DosPath">
+ </PIN>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="40" dstpinname="Input" srcnodeid="39" srcpinname="Output">
+ </LINK>
+ <NODE componentmode="Hidden" id="41" nodename="CDR (String)" systemname="CDR (String)">
+ <BOUNDS height="100" left="6600" top="10935" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Input" visible="1">
+ </PIN>
+ <PIN pinname="Remainder" visible="1">
+ </PIN>
+ <PIN pinname="Last Slice" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="41" dstpinname="Input" srcnodeid="40" srcpinname="Output">
+ </LINK>
+ <NODE componentmode="Hidden" id="42" nodename="Substitute (String)" systemname="Substitute (String)">
+ <BOUNDS height="100" left="6705" top="11520" type="Node" width="100">
+ </BOUNDS>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ <PIN pinname="Input" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="From" slicecount="1" values="!!IMAGEPATH!!">
+ </PIN>
+ <PIN pinname="To" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="42" dstpinname="Input" srcnodeid="22" srcpinname="Output">
+ </LINK>
+ <LINK dstnodeid="42" dstpinname="To" srcnodeid="39" srcpinname="Output">
+ </LINK>
+ <NODE componentmode="InABox" id="43" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="100" left="4320" top="11520" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="240" left="4320" top="11520" type="Box" width="1995">
+ </BOUNDS>
+ <PIN pinname="Input String" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="43" dstpinname="Input String" srcnodeid="22" srcpinname="Message">
+ </LINK>
+ <LINK dstnodeid="25" dstpinname="Input String" srcnodeid="42" srcpinname="Output">
+ </LINK>
+ <NODE componentmode="Hidden" id="44" nodename="Substitute (String)" systemname="Substitute (String)">
+ <BOUNDS height="270" left="6705" top="12120" type="Node" width="3375">
+ </BOUNDS>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ <PIN pinname="Input" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="From" visible="1">
+ </PIN>
+ <PIN pinname="To" visible="1">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="32" dstpinname="Input" srcnodeid="44" srcpinname="Output">
+ </LINK>
+ <LINK dstnodeid="44" dstpinname="Input" srcnodeid="42" srcpinname="Output">
+ </LINK>
+ <NODE componentmode="InABox" id="45" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="100" left="8355" top="9360" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="2070" left="8355" top="9360" type="Box" width="1680">
+ </BOUNDS>
+ <PIN pinname="Rows" slicecount="1" values="10">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="Show SliceIndex" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="SliceCount Mode" slicecount="1" values="ColsRowsPages">
+ </PIN>
+ <PIN pinname="Output String" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="Input String" slicecount="10" values="&amp;lt;,&amp;gt;,|&lt;br /&gt;|,,,,,,,">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="46" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="100" left="10005" top="9360" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="2070" left="10005" top="9360" type="Box" width="1680">
+ </BOUNDS>
+ <PIN pinname="Rows" slicecount="1" values="10">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="Show SliceIndex" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="SliceCount Mode" slicecount="1" values="ColsRowsPages">
+ </PIN>
+ <PIN pinname="Output String" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="Input String" slicecount="10" values="&lt;,&gt;,&lt;/p&gt;&lt;p&gt;,,,,,,,">
+ </PIN>
+ </NODE>
+ <LINK dstnodeid="44" dstpinname="From" srcnodeid="45" srcpinname="Output String">
+ </LINK>
+ <LINK dstnodeid="44" dstpinname="To" srcnodeid="46" srcpinname="Output String">
+ </LINK>
+ <NODE systemname="Writer (File)" nodename="Writer (File)" componentmode="Hidden" id="47">
+ <BOUNDS type="Node" left="7140" top="13200" width="2955" height="270">
+ </BOUNDS>
+ <PIN pinname="Content" visible="1">
+ </PIN>
+ <PIN pinname="Filename" visible="1">
+ </PIN>
+ <PIN pinname="Write" visible="1">
+ </PIN>
+ </NODE>
+ <NODE systemname="XPath (XML)" nodename="XPath (XML)" componentmode="Hidden" id="48">
+ <BOUNDS type="Node" left="10020" top="12315" width="100" height="100">
+ </BOUNDS>
+ <PIN pinname="XML Input" visible="1">
+ </PIN>
+ <PIN pinname="XPath Query" slicecount="1" values="/PATCH/@nodename" encoded="0">
+ </PIN>
+ <PIN pinname="Resolve Externals" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ </NODE>
+ <LINK srcnodeid="1" srcpinname="Patch Description" dstnodeid="48" dstpinname="XML Input">
+ </LINK>
+ <NODE systemname="Substitute (String)" nodename="Substitute (String)" componentmode="Hidden" id="49">
+ <BOUNDS type="Node" left="10020" top="12780" width="100" height="100">
+ </BOUNDS>
+ <PIN pinname="Input" visible="1">
+ </PIN>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ <PIN pinname="From" slicecount="1" values="v4p" encoded="0">
+ </PIN>
+ <PIN pinname="To" slicecount="1" values="html" encoded="0">
+ </PIN>
+ </NODE>
+ <LINK srcnodeid="48" srcpinname="Output" dstnodeid="49" dstpinname="Input">
+ </LINK>
+ <LINK srcnodeid="49" srcpinname="Output" dstnodeid="47" dstpinname="Filename">
+ </LINK>
+ <NODE systemname="IOBox (Value Advanced)" nodename="IOBox (Value Advanced)" componentmode="InABox" id="50">
+ <BOUNDS type="Node" left="8115" top="12555" width="100" height="100">
+ </BOUNDS>
+ <BOUNDS type="Box" left="8115" top="12555" width="480" height="480">
+ </BOUNDS>
+ <PIN pinname="Value Type" slicecount="1" values="Boolean">
+ </PIN>
+ <PIN pinname="Behavior" slicecount="1" values="Bang">
+ </PIN>
+ <PIN pinname="Y Output Value" visible="1">
+ </PIN>
+ <PIN pinname="X Input Value" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="Y Input Value" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="Descriptive Name" slicecount="1" values="Write" encoded="0">
+ </PIN>
+ </NODE>
+ <LINK srcnodeid="50" srcpinname="Y Output Value" dstnodeid="47" dstpinname="Write">
+ </LINK>
+ <NODE systemname="Substitute (String)" nodename="Substitute (String)" componentmode="Hidden" id="52">
+ <BOUNDS type="Node" left="7140" top="12690" width="100" height="100">
+ </BOUNDS>
+ <PIN pinname="Input" visible="1">
+ </PIN>
+ <PIN pinname="Output" visible="1">
+ </PIN>
+ <PIN pinname="From" encoded="0" visible="1">
+ </PIN>
+ <PIN pinname="To" encoded="0" visible="1">
+ </PIN>
+ </NODE>
+ <LINK srcnodeid="52" srcpinname="Output" dstnodeid="47" dstpinname="Content">
+ </LINK>
+ <LINK srcnodeid="44" srcpinname="Output" dstnodeid="52" dstpinname="Input">
+ </LINK>
+ <NODE componentmode="InABox" id="54" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="100" left="11940" top="9330" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="2070" left="11940" top="9330" type="Box" width="1680">
+ </BOUNDS>
+ <PIN pinname="Rows" slicecount="1" values="10">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="Show SliceIndex" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="SliceCount Mode" slicecount="1" values="ColsRowsPages">
+ </PIN>
+ <PIN pinname="Output String" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="Input String" slicecount="10" values="|C:\kimchiandchips\Workshops\VVVV-basics,mapping\|,tools\,,,,,,,,">
+ </PIN>
+ </NODE>
+ <NODE componentmode="InABox" id="53" nodename="IOBox (String)" systemname="IOBox (String)">
+ <BOUNDS height="100" left="13590" top="9330" type="Node" width="100">
+ </BOUNDS>
+ <BOUNDS height="2070" left="13590" top="9330" type="Box" width="1680">
+ </BOUNDS>
+ <PIN pinname="Rows" slicecount="1" values="10">
+ </PIN>
+ <PIN pinname="Show Grid" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="Show SliceIndex" slicecount="1" values="1">
+ </PIN>
+ <PIN pinname="SliceCount Mode" slicecount="1" values="ColsRowsPages">
+ </PIN>
+ <PIN pinname="Output String" visible="1">
+ </PIN>
+ <PIN encoded="0" pinname="Input String" slicecount="10" values="./,tools/,,,,,,,,">
+ </PIN>
+ </NODE>
+ <LINK srcnodeid="54" srcpinname="Output String" dstnodeid="52" dstpinname="From">
+ </LINK>
+ <LINK srcnodeid="53" srcpinname="Output String" dstnodeid="52" dstpinname="To">
+ </LINK>
+ <NODE systemname="GDITexture (EX9.Texture)" nodename="GDITexture (EX9.Texture)" componentmode="Hidden" id="55">
+ <BOUNDS type="Node" left="10890" top="72810" width="100" height="100">
+ </BOUNDS>
+ <PIN pinname="Source" visible="1">
+ </PIN>
+ <PIN pinname="Texture Out" visible="1">
+ </PIN>
+ </NODE>
+ <LINK srcnodeid="32" srcpinname="GDI Out" dstnodeid="55" dstpinname="Source">
+ </LINK>
+ <NODE systemname="Writer (EX9.Texture)" nodename="Writer (EX9.Texture)" componentmode="Hidden" id="56">
+ <BOUNDS type="Node" left="10890" top="73965" width="3450" height="270">
+ </BOUNDS>
+ <PIN pinname="Texture" visible="1">
+ </PIN>
+ <PIN pinname="FileName" slicecount="1" values="testimage.png" encoded="0">
+ </PIN>
+ <PIN pinname="File Format" slicecount="1" values="PNG">
+ </PIN>
+ <PIN pinname="Save" visible="1">
+ </PIN>
+ </NODE>
+ <LINK srcnodeid="55" srcpinname="Texture Out" dstnodeid="56" dstpinname="Texture">
+ </LINK>
+ <NODE systemname="IOBox (Value Advanced)" nodename="IOBox (Value Advanced)" componentmode="InABox" id="57">
+ <BOUNDS type="Node" left="12585" top="73020" width="100" height="100">
+ </BOUNDS>
+ <BOUNDS type="Box" left="12585" top="73020" width="480" height="480">
+ </BOUNDS>
+ <PIN pinname="Value Type" slicecount="1" values="Boolean">
+ </PIN>
+ <PIN pinname="Behavior" slicecount="1" values="Bang">
+ </PIN>
+ <PIN pinname="Y Output Value" visible="1">
+ </PIN>
+ <PIN pinname="Descriptive Name" slicecount="1" values="Save" encoded="0">
+ </PIN>
+ <PIN pinname="X Input Value" slicecount="1" values="0">
+ </PIN>
+ <PIN pinname="Y Input Value" slicecount="1" values="0">
+ </PIN>
+ </NODE>
+ <LINK srcnodeid="57" srcpinname="Y Output Value" dstnodeid="56" dstpinname="Save">
+ </LINK>
+ </PATCH>
View
BIN tools/click.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN tools/click2.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN tools/hold.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN tools/lmb.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN tools/mmb.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN tools/mouse.pdn
Binary file not shown.
View
BIN tools/release.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN tools/rmb.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN tools/scroll.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN tools/testimage.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 7657aa5

Please sign in to comment.
Something went wrong with that request. Please try again.