@bottobot/td-mcp
Version:
TouchDesigner Documentation MCP Server v2.3 - Pure MCP server for VS Code/Codium with comprehensive operator documentation for 629 operators + 7 tutorials across all categories (TOP, CHOP, SOP, DAT, MAT, COMP, POP). Features experimental POP operators wit
1,371 lines • 63.9 kB
JSON
{
"id": "multi_touch_in_dat",
"name": "Multi Touch In DAT",
"displayName": "Multi Touch In DAT",
"category": "DAT",
"subcategory": "Utilities",
"version": "",
"lastUpdated": "2025-08-07T07:50:04.516Z",
"sourceFile": "C:\\Program Files\\Derivative\\TouchDesigner\\Samples\\Learn\\OfflineHelp\\https.docs.derivative.ca\\Multi_Touch_In_DAT.htm",
"url": "",
"description": "The Multi Touch In DAT is used for receiving messages and events from the Windows standard multi-touch API. It captures all the messages, where each new message changes the table it outputs. When a messages is added to the DAT, any script can be called pointing to the new message. The Multi Touch In DAT can be sent to the Render Pick DAT, or used with interactTouch methods in the Panel Component and Web Render TOP. Multi Touch DAT is not supported on macOS.",
"summary": "The Multi Touch In DAT is used for receiving messages and events from the Windows standard multi-touch API. It captures all the messages, where each new message changes the table it outputs. When a me",
"details": "",
"usage": "",
"tips": [],
"warnings": [],
"parameters": [
{
"id": null,
"name": "Active",
"label": "Active",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "From Derivative\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tJump to navigation\n\t\tJump to search\n\t\t\nThe Multi Touch In is used for receiving messages and events from the Windows standard multi-touch API. It captures all the messages, where each new message changes the table it outputs. When a messages is added to the , any script can be called pointing to the new message. The Multi Touch In can be sent to the Render Pick DAT, or used with interactTouch methods in the Panel Component and Web Render TOP. Multi Touch is not supported on macOS.\t\t\nIt can output either of two table formats: (1) Raw Events as a FIFO (first in - first out) list, or (2) ID Table, which is the events processed into a more usable one-row-per-finger table.\t\t\t\nThe Raw Events format creates a FIFO-type (see also FIFO DAT) which, for each multi-touch event, has a row added to the bottom of the table while at the same time a row at the top is deleted.\t\nNote: To operate panel gadgets with multi-touch screens that send events through the Windows event stream, multi-touch works without requiring DATs. You need to use the when using multiple fingers on one panel, like in a container displaying a 3D render whose objects you want to pick.\t\t\t\nThe ID table format includes the columns:\t\t\t\n\nid - every finger press increases the id by 1\nsn - an ongoing count of each finger press.\nselect - when 1, this row represents a finger is down.\ndownf - the absolute frame number when the finger press occurred.\nupf - the absolute frame number that the finger press ended\nx, y - the position, in pixels in the horizontal and vertical directions. NOTE: The x and y values are expressed in screen pixels, not panel width/height pixels. For example, the top-right corner of a panel will be different if the panel is scaled within another panel, window or network viewer. It is better to use u and v, and scale them by the panel Width and Height.\nu, v - the position, 0 to 1 in the horizontal and vertical directions\ndownu, downv - the position, 0 to 1 in the horizontal and vertical directions when the touch first occured (ie. initial touch down location).contactx, contacty - the width of the contact area.\t\t\t\ncontactu, contactv - the height of the contact area.\t\t\t\n\nmonitor - monitor number, starting with 0\nclicktime - like downf, in seconds\nelapsedtime - the number of seconds that finger has been down.\nchangedtime - the time since the finger press that the most recent u or v value changed.\ndclick - double-tap occurred\naux - user supplied data via the PanelCOMP_Class method interactTouch(). When the event is triggered by the mouse via the Include Mouse option, aux will include the mouse buttons used (1 for left, 2 for middle, 4 for right, can be tested bitwise).You can use the attached callback (named mtouchin1_callbacks) to react to multi-touch events. This is suitable for 2D interfaces that do not require a Render Pick DAT.\t\t\t\nSee the Palette:multiTouch example in the Palette under Tools.\t\t\t\nSee also the MultiTouch page.\nmultitouchinDAT_Class\n\nContents\n \n \n \n \n \n \n \n\n\n\n\n\n active - Registers event when Active is On.\n\n\n\t\t\n outputtype - - Sets how the output is displayed in the table.\n\n log - Events are added to the table in a first in - first out (FIFO) order. changes - Events are processed using one-row-per-finger in the table.\n\t\t\n panel - The Panel Component to capture the touch events from.\n\n\n\t\t\n relativeid - Reorder the touch ids so only the ones within the specified panel are counted.\n\n\n\t\t\n relativepos - Output position and normalized coordinates relative to lower left corner of the specified panel.\n\n\n\t\t\n mouse - When on, the mouse add a touch event when clicked. This event always shares ID 1 with the first touch. Using mouse and multitouch at the same time may result in unexpected behaviours.\n\n\n\t\t\n posthresh - A new message will not be added if a finger has moved less than this number of units. The units are determined by the input device, not necessarily the resolution of the screen that it is associated with.\n\n\n\t\t\n contactthresh - Some touch devices have a width and height of a press, representing pressure of amount of finger contact. This is a minimum threshold below which no events are recognized.\n\n\n\t\t\n minrows - The minimum number of rows always displayed in the table.\n\n\n\t\t\n doubleclickthresh - The maximum time allowed between clicks to be registered as a 'double-click'.\n\n\n\n\n\n callbacks - to a containing callbacks.\n\n\n\t\t\n executeloc - - Determines the location the script is run from.\n\n current - The script is executed from the current node location (for example, where 'cc' points to). callbacks - The script is executed from the location of the Callbacks specified above. op - The script is executed from the component specified in the parameter below.\n\t\t\n fromop - The path that the script will be executed from if the parameter is set to Specified .\n\n\n\t\t\n clamp - The is limited to 100 messages by default but with Clamp Output, this can be set to anything including unlimited.\n\n\n\t\t\n maxlines - Limits the number of messages, older messages are removed from the list first.\n\n\n\t\t\n clear - Deletes all lines except the heading. To clear with a script command, here is an example: opparm -c /serial1 clear\n\n\n\n\n\n language - - Select how the decides which script language to operate on.\n\n input - The uses the inputs script language. node - The uses it's own script language.\n\n extension - - Select the file extension this should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.\n\n customext - Specifiy the custom extension.\n\n\n\n wordwrap - - Enable Word Wrap for Node Display.\n\n input - The uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.\n\n\n\nExtra Information for the Multi Touch In can be accessed via an Info CHOP.\n\n\n\n - Number of rows in this . - Number of columns in this .\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\nwikieditor2021.100002018.28070before 2018.28070\nDATs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a python Script or GLSL Shader, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.\n\n\n\nA custom interactive control panel built within TouchDesigner. Panels are created using Panel Components.\n\n\n\nThe location of an operator within the TouchDesigner environment, for example, /geo1/circle1, a node called circle1 in a component called geo1. The path / is called Root. This path is displayed at the top of every Pane, showing which Component's network you are currently in. To refer instead to a filesystem folder, directory, disk file or http: address, see Folder.\n\n\n\nThe generic thing that holds an Operator, and includes Flags (display, bypass, lock, render, immune) and its position/size in the network. Whether you \"lay down an Operator\" or \"lay down an Node\", you're doing the same thing.\n\n\n\nAny of the procedural data operators. OPs do all the work in TouchDesigner. They \"cook\" and output data to other OPs, which ultimately result in new images, data and audio being generated. See Node.\n\n\n\nAn Operator Family that contains its own Network. There are sixteen 3D Object Component and ten 2D Panel Component types. See also Network Path.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Multi_Touch_In_DAT&oldid=30039\"\n\t\tCategory: DATs",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.512Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Active",
"label": "Active",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "From Derivative\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tJump to navigation\n\t\tJump to search\n\t\t\nThe Multi Touch In is used for receiving messages and events from the Windows standard multi-touch API. It captures all the messages, where each new message changes the table it outputs. When a messages is added to the , any script can be called pointing to the new message. The Multi Touch In can be sent to the Render Pick DAT, or used with interactTouch methods in the Panel Component and Web Render TOP. Multi Touch is not supported on macOS.\t\t\nIt can output either of two table formats: (1) Raw Events as a FIFO (first in - first out) list, or (2) ID Table, which is the events processed into a more usable one-row-per-finger table.\t\t\t\nThe Raw Events format creates a FIFO-type (see also FIFO DAT) which, for each multi-touch event, has a row added to the bottom of the table while at the same time a row at the top is deleted.\t\nNote: To operate panel gadgets with multi-touch screens that send events through the Windows event stream, multi-touch works without requiring DATs. You need to use the when using multiple fingers on one panel, like in a container displaying a 3D render whose objects you want to pick.\t\t\t\nThe ID table format includes the columns:\t\t\t\n\nid - every finger press increases the id by 1\nsn - an ongoing count of each finger press.\nselect - when 1, this row represents a finger is down.\ndownf - the absolute frame number when the finger press occurred.\nupf - the absolute frame number that the finger press ended\nx, y - the position, in pixels in the horizontal and vertical directions. NOTE: The x and y values are expressed in screen pixels, not panel width/height pixels. For example, the top-right corner of a panel will be different if the panel is scaled within another panel, window or network viewer. It is better to use u and v, and scale them by the panel Width and Height.\nu, v - the position, 0 to 1 in the horizontal and vertical directions\ndownu, downv - the position, 0 to 1 in the horizontal and vertical directions when the touch first occured (ie. initial touch down location).contactx, contacty - the width of the contact area.\t\t\t\ncontactu, contactv - the height of the contact area.\t\t\t\n\nmonitor - monitor number, starting with 0\nclicktime - like downf, in seconds\nelapsedtime - the number of seconds that finger has been down.\nchangedtime - the time since the finger press that the most recent u or v value changed.\ndclick - double-tap occurred\naux - user supplied data via the PanelCOMP_Class method interactTouch(). When the event is triggered by the mouse via the Include Mouse option, aux will include the mouse buttons used (1 for left, 2 for middle, 4 for right, can be tested bitwise).You can use the attached callback (named mtouchin1_callbacks) to react to multi-touch events. This is suitable for 2D interfaces that do not require a Render Pick DAT.\t\t\t\nSee the Palette:multiTouch example in the Palette under Tools.\t\t\t\nSee also the MultiTouch page.\nmultitouchinDAT_Class\n\nContents\n \n \n \n \n \n \n \n\n\n\n\n\n active - Registers event when Active is On.\n\n\n\t\t\n outputtype - - Sets how the output is displayed in the table.\n\n log - Events are added to the table in a first in - first out (FIFO) order. changes - Events are processed using one-row-per-finger in the table.\n\t\t\n panel - The Panel Component to capture the touch events from.\n\n\n\t\t\n relativeid - Reorder the touch ids so only the ones within the specified panel are counted.\n\n\n\t\t\n relativepos - Output position and normalized coordinates relative to lower left corner of the specified panel.\n\n\n\t\t\n mouse - When on, the mouse add a touch event when clicked. This event always shares ID 1 with the first touch. Using mouse and multitouch at the same time may result in unexpected behaviours.\n\n\n\t\t\n posthresh - A new message will not be added if a finger has moved less than this number of units. The units are determined by the input device, not necessarily the resolution of the screen that it is associated with.\n\n\n\t\t\n contactthresh - Some touch devices have a width and height of a press, representing pressure of amount of finger contact. This is a minimum threshold below which no events are recognized.\n\n\n\t\t\n minrows - The minimum number of rows always displayed in the table.\n\n\n\t\t\n doubleclickthresh - The maximum time allowed between clicks to be registered as a 'double-click'.\n\n\n\n\n\n callbacks - to a containing callbacks.\n\n\n\t\t\n executeloc - - Determines the location the script is run from.\n\n current - The script is executed from the current node location (for example, where 'cc' points to). callbacks - The script is executed from the location of the Callbacks specified above. op - The script is executed from the component specified in the parameter below.\n\t\t\n fromop - The path that the script will be executed from if the parameter is set to Specified .\n\n\n\t\t\n clamp - The is limited to 100 messages by default but with Clamp Output, this can be set to anything including unlimited.\n\n\n\t\t\n maxlines - Limits the number of messages, older messages are removed from the list first.\n\n\n\t\t\n clear - Deletes all lines except the heading. To clear with a script command, here is an example: opparm -c /serial1 clear\n\n\n\n\n\n language - - Select how the decides which script language to operate on.\n\n input - The uses the inputs script language. node - The uses it's own script language.\n\n extension - - Select the file extension this should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.\n\n customext - Specifiy the custom extension.\n\n\n\n wordwrap - - Enable Word Wrap for Node Display.\n\n input - The uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.\n\n\n\nExtra Information for the Multi Touch In can be accessed via an Info CHOP.\n\n\n\n - Number of rows in this . - Number of columns in this .\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\nwikieditor2021.100002018.28070before 2018.28070\nDATs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a python Script or GLSL Shader, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.\n\n\n\nA custom interactive control panel built within TouchDesigner. Panels are created using Panel Components.\n\n\n\nThe location of an operator within the TouchDesigner environment, for example, /geo1/circle1, a node called circle1 in a component called geo1. The path / is called Root. This path is displayed at the top of every Pane, showing which Component's network you are currently in. To refer instead to a filesystem folder, directory, disk file or http: address, see Folder.\n\n\n\nThe generic thing that holds an Operator, and includes Flags (display, bypass, lock, render, immune) and its position/size in the network. Whether you \"lay down an Operator\" or \"lay down an Node\", you're doing the same thing.\n\n\n\nAny of the procedural data operators. OPs do all the work in TouchDesigner. They \"cook\" and output data to other OPs, which ultimately result in new images, data and audio being generated. See Node.\n\n\n\nAn Operator Family that contains its own Network. There are sixteen 3D Object Component and ten 2D Panel Component types. See also Network Path.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Multi_Touch_In_DAT&oldid=30039\"\n\t\tCategory: DATs",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.513Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Active",
"label": "Active",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "The Multi Touch In is used for receiving messages and events from the Windows standard multi-touch API. It captures all the messages, where each new message changes the table it outputs. When a messages is added to the , any script can be called pointing to the new message. The Multi Touch In can be sent to the Render Pick DAT, or used with interactTouch methods in the Panel Component and Web Render TOP. Multi Touch is not supported on macOS.\t\t\nIt can output either of two table formats: (1) Raw Events as a FIFO (first in - first out) list, or (2) ID Table, which is the events processed into a more usable one-row-per-finger table.\t\t\t\nThe Raw Events format creates a FIFO-type (see also FIFO DAT) which, for each multi-touch event, has a row added to the bottom of the table while at the same time a row at the top is deleted.\t\nNote: To operate panel gadgets with multi-touch screens that send events through the Windows event stream, multi-touch works without requiring DATs. You need to use the when using multiple fingers on one panel, like in a container displaying a 3D render whose objects you want to pick.\t\t\t\nThe ID table format includes the columns:\t\t\t\n\nid - every finger press increases the id by 1\nsn - an ongoing count of each finger press.\nselect - when 1, this row represents a finger is down.\ndownf - the absolute frame number when the finger press occurred.\nupf - the absolute frame number that the finger press ended\nx, y - the position, in pixels in the horizontal and vertical directions. NOTE: The x and y values are expressed in screen pixels, not panel width/height pixels. For example, the top-right corner of a panel will be different if the panel is scaled within another panel, window or network viewer. It is better to use u and v, and scale them by the panel Width and Height.\nu, v - the position, 0 to 1 in the horizontal and vertical directions\ndownu, downv - the position, 0 to 1 in the horizontal and vertical directions when the touch first occured (ie. initial touch down location).contactx, contacty - the width of the contact area.\t\t\t\ncontactu, contactv - the height of the contact area.\t\t\t\n\nmonitor - monitor number, starting with 0\nclicktime - like downf, in seconds\nelapsedtime - the number of seconds that finger has been down.\nchangedtime - the time since the finger press that the most recent u or v value changed.\ndclick - double-tap occurred\naux - user supplied data via the PanelCOMP_Class method interactTouch(). When the event is triggered by the mouse via the Include Mouse option, aux will include the mouse buttons used (1 for left, 2 for middle, 4 for right, can be tested bitwise).You can use the attached callback (named mtouchin1_callbacks) to react to multi-touch events. This is suitable for 2D interfaces that do not require a Render Pick DAT.\t\t\t\nSee the Palette:multiTouch example in the Palette under Tools.\t\t\t\nSee also the MultiTouch page.\nmultitouchinDAT_Class\n\nContents\n \n \n \n \n \n \n \n\n\n\n\n\n active - Registers event when Active is On.\n\n\n\t\t\n outputtype - - Sets how the output is displayed in the table.\n\n log - Events are added to the table in a first in - first out (FIFO) order. changes - Events are processed using one-row-per-finger in the table.\n\t\t\n panel - The Panel Component to capture the touch events from.\n\n\n\t\t\n relativeid - Reorder the touch ids so only the ones within the specified panel are counted.\n\n\n\t\t\n relativepos - Output position and normalized coordinates relative to lower left corner of the specified panel.\n\n\n\t\t\n mouse - When on, the mouse add a touch event when clicked. This event always shares ID 1 with the first touch. Using mouse and multitouch at the same time may result in unexpected behaviours.\n\n\n\t\t\n posthresh - A new message will not be added if a finger has moved less than this number of units. The units are determined by the input device, not necessarily the resolution of the screen that it is associated with.\n\n\n\t\t\n contactthresh - Some touch devices have a width and height of a press, representing pressure of amount of finger contact. This is a minimum threshold below which no events are recognized.\n\n\n\t\t\n minrows - The minimum number of rows always displayed in the table.\n\n\n\t\t\n doubleclickthresh - The maximum time allowed between clicks to be registered as a 'double-click'.\n\n\n\n\n\n callbacks - to a containing callbacks.\n\n\n\t\t\n executeloc - - Determines the location the script is run from.\n\n current - The script is executed from the current node location (for example, where 'cc' points to). callbacks - The script is executed from the location of the Callbacks specified above. op - The script is executed from the component specified in the parameter below.\n\t\t\n fromop - The path that the script will be executed from if the parameter is set to Specified .\n\n\n\t\t\n clamp - The is limited to 100 messages by default but with Clamp Output, this can be set to anything including unlimited.\n\n\n\t\t\n maxlines - Limits the number of messages, older messages are removed from the list first.\n\n\n\t\t\n clear - Deletes all lines except the heading. To clear with a script command, here is an example: opparm -c /serial1 clear\n\n\n\n\n\n language - - Select how the decides which script language to operate on.\n\n input - The uses the inputs script language. node - The uses it's own script language.\n\n extension - - Select the file extension this should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.\n\n customext - Specifiy the custom extension.\n\n\n\n wordwrap - - Enable Word Wrap for Node Display.\n\n input - The uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.\n\n\n\nExtra Information for the Multi Touch In can be accessed via an Info CHOP.\n\n\n\n - Number of rows in this . - Number of columns in this .\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\nwikieditor2021.100002018.28070before 2018.28070\nDATs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a python Script or GLSL Shader, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.\n\n\n\nA custom interactive control panel built within TouchDesigner. Panels are created using Panel Components.\n\n\n\nThe location of an operator within the TouchDesigner environment, for example, /geo1/circle1, a node called circle1 in a component called geo1. The path / is called Root. This path is displayed at the top of every Pane, showing which Component's network you are currently in. To refer instead to a filesystem folder, directory, disk file or http: address, see Folder.\n\n\n\nThe generic thing that holds an Operator, and includes Flags (display, bypass, lock, render, immune) and its position/size in the network. Whether you \"lay down an Operator\" or \"lay down an Node\", you're doing the same thing.\n\n\n\nAny of the procedural data operators. OPs do all the work in TouchDesigner. They \"cook\" and output data to other OPs, which ultimately result in new images, data and audio being generated. See Node.\n\n\n\nAn Operator Family that contains its own Network. There are sixteen 3D Object Component and ten 2D Panel Component types. See also Network Path.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Multi_Touch_In_DAT&oldid=30039\"",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Active",
"label": "Active",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "active - Registers event when Active is On.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Output",
"label": "Output",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "outputtype - - Sets how the output is displayed in the table.\n\n log - Events are added to the table in a first in - first out (FIFO) order. changes - Events are processed using one-row-per-finger in the table.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Raw Events",
"label": "Raw Events",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "log - Events are added to the table in a first in - first out (FIFO) order. changes - Events are processed using one-row-per-finger in the table.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Panel",
"label": "Panel",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "panel - The Panel Component to capture the touch events from.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Relative IDs",
"label": "Relative IDs",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "relativeid - Reorder the touch ids so only the ones within the specified panel are counted.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Relative Position",
"label": "Relative Position",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "relativepos - Output position and normalized coordinates relative to lower left corner of the specified panel.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Include Mouse",
"label": "Include Mouse",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "mouse - When on, the mouse add a touch event when clicked. This event always shares ID 1 with the first touch. Using mouse and multitouch at the same time may result in unexpected behaviours.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Position Threshold",
"label": "Position Threshold",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "posthresh - A new message will not be added if a finger has moved less than this number of units. The units are determined by the input device, not necessarily the resolution of the screen that it is associated with.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Contact Threshold",
"label": "Contact Threshold",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "contactthresh - Some touch devices have a width and height of a press, representing pressure of amount of finger contact. This is a minimum threshold below which no events are recognized.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Min Rows Displayed",
"label": "Min Rows Displayed",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "minrows - The minimum number of rows always displayed in the table.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Double Click (secs)",
"label": "Double Click (secs)",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "doubleclickthresh - The maximum time allowed between clicks to be registered as a 'double-click'.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Callbacks DAT",
"label": "Callbacks DAT",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "callbacks - to a containing callbacks.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Execute from",
"label": "Execute from",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "executeloc - - Determines the location the script is run from.\n\n current - The script is executed from the current node location (for example, where 'cc' points to). callbacks - The script is executed from the location of the Callbacks specified above. op - The script is executed from the component specified in the parameter below.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Current Node",
"label": "Current Node",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "current - The script is executed from the current node location (for example, where 'cc' points to). callbacks - The script is executed from the location of the Callbacks specified above. op - The script is executed from the component specified in the parameter below.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "From Operator",
"label": "From Operator",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "fromop - The path that the script will be executed from if the parameter is set to Specified .",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Clamp Output",
"label": "Clamp Output",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "clamp - The is limited to 100 messages by default but with Clamp Output, this can be set to anything including unlimited.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Maximum Lines",
"label": "Maximum Lines",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "maxlines - Limits the number of messages, older messages are removed from the list first.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Clear Output",
"label": "Clear Output",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "clear - Deletes all lines except the heading. To clear with a script command, here is an example: opparm -c /serial1 clear",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Language",
"label": "Language",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "language - - Select how the decides which script language to operate on.\n\n input - The uses the inputs script language. node - The uses it's own script language.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Input",
"label": "Input",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "input - The uses the inputs script language. node - The uses it's own script language.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.515Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Edit/View Extension",
"label": "Edit/View Extension",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "extension - - Select the file extension this should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.516Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "dat",
"label": "dat",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.516Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Custom Extension",
"label": "Custom Extension",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "customext - Specifiy the custom extension.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.516Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Word Wrap",
"label": "Word Wrap",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "wordwrap - - Enable Word Wrap for Node Display.\n\n input - The uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.516Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Input",
"label": "Input",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "input - The uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:04.516Z",
"rawData": {},
"sourceElement": null
}
],
"parameterGroups": {},
"codeExamples": [],
"pythonExamples": [],
"expressions": [],
"commonInputs": [],
"commonOutputs": [],
"relatedOperators": [],
"workflowPatterns": [],
"images": [],
"videos": [],
"assets": [],
"keywords": [
"multi",
"touch",
"in",
"dat",
"used",
"receiving",
"messages",
"events",
"windows",
"standard",
"multi-touch",
"api."
],
"tags": [
"DAT",
"TouchDesigner",
"Multi Touch In DAT"
],
"searchWeight": 1,
"contentHash": "",
"processingDate": "2025-08-07T07:50:04.516Z",
"processingVersion": "1.0.0",
"isValid": true,
"validationErrors": []
}