The Table Component creates a grid of user interface gadgets. These panels are laid out in a grid format where the contents of each cell are defined by DAT tables.
Every cell in a Table component is described by attributes in a DAT table describing its font, size, color, etc. These attributes may be located in different tables. For each cell in the table, attributes are first searched in a corresponding cell attribute table, followed by a row attribute table, followed by a column attribute table, finally followed by a table attribute table.
These attribute tables are themselves found using a second level of lookup tables, that use the current state of the cell for that lookup. The possible cell states are:
The state of each cell can be examined with an Info DAT.
The attribute tables are organized as follows:
- Each row describes one attribute.
- The first column is the attribute name.
- The second column is an optional path to a table of values for this attribute.
- If the second column is blank, then the remaining columns contain the values for this attribute.
The current list of available attributes are:
- type t (field/label)
- fieldtype t (float/string/integer)
- setpos b x y (sets cell's absolute position in pixels when b=1)
- width w (sets cell's width in pixels, -1 is stretchy)
- height h (sets cell's height in pixels, -1 is stretchy)
- offset x y (cell position offset in pixels)
- padding l r b t (cell padding in pixels)
- margin l r b t (cell margin in pixels)
- bgcolor r g b a (background color)
- borderacolor r g b a (border A color)
- bordera l r b t (border A color edge source: 0=off, 1=bordera color, 2=borderbcolor)
- borderbcolor r g b a (border B color)
- borderb l r b t (border B color edge source: 0=off, 1=bordera color, 2=borderbcolor)
- fontpath path (Path to font. Don't use with 'font')
- font string (e.g. Verdana. Don't use with 'fontpath')
- fontsize x [y] (X size followed by optional Y size)
- fontcolor r g b a (Font color of text)
- fontformat string (polygon/outline/bitmap)
- fontbold b (0/1)
- fontitalic b (0/1)
- fontantialiased b (0/1)
- fontcharset string (ansi/symbol)
- textlabel string
- textjustify h v (left/right/center top/center/bottom)
- textoffset x y (text position offset)
- wordwrap b (words are split over multiple lines: 0/1)
- image path (path to background, TOP)
- help path (path to rollover popup help text, DAT)
If a path to a table of values is specified, then this table consists of one row for each cell. If your table is not in this format, it can be modified easily. For example if the value table DAT has 3x2 cells, append a DAT to CHOP followed by a CHOP to DAT . In the CHOP, set the following parameters:
- Output: 'Single Channel'
- First Row is: 'Values'
- First Column is: 'Values'
This will produce a table with 1 column and 6 rows as required, providing all the values are numeric.
Parameters - Table Page
Cell Attributes DAT
attributes - A list of attribute DATs, one per cell.
Row Attributes DAT
rowattributes - A list of attribute DATs, one per row.
Col Attributes DAT
colattributes - A list of attribute DATs, one per column.
Table Attributes DAT
tableattributes - A single reference to an attribute DAT.
values - A list of values that contain the contents of each cell when the cell is a field type.
tablerows - The number of rows in the table.
tablecols - The number of columns in the table.
tablealign - ⊞ - Specifies the order in which cells are arranged:
- Layout Horizontal Left to Right
- Layout Horizontal Right to Left
- Layout Vertical Top to Bottom
- Layout Vertical Bottom to Top
Font Size Unit
fontsizeunit - ⊞ -
infoformat - ⊞ -
- State Column
- State Grid
tableoffset - ⊞ -
Parameters - Layout Page
The Layout parameter page controls the size and position of the panel.
x - Specify the horizontal position in pixels relative to its parent.
y - Specify the vertical position in pixels relative to its parent.
w - Specify the panel's width in pixels.
h - Specify the Panel's height in pixels.
fixedaspect - ⊞ - Allows easy creation of panels with a specific aspect set in the Aspect Ratio parameter below. Only requires setting the width or height of the panel and the other dimension is calculated based on the Aspect Ratio parameter.
- Use Horizontal
- Use Vertical
aspect - Specify the ratio when using Fixed Aspect parameter above, the ratio is width/height.
layer - Specifies the order the panel components are drawn in, similar to layers in Photoshop. Higher values will be drawn over any other panel with a lower value (that is at the same level of hierarchy). If two panel components have the same Depth Layer value then they are ordered based on the operator's name.
hmode - ⊞ - Select one of 3 modes to determine the horizontal width of the panel.
- Fixed Width
fixed- Uses the Width parameter above to set this panel's width in pixels.
fill- The width of this panel will match (fill) the width of the parent panel.
anchors- The width of this panel is set by the Left Anchor and Right Anchor parameters below which will maintain a relative width to the parent panel as the parent panel changes size. This allows for stretchy panels. These anchor parameters are normalized 0-1 like uv coordinates where 0 is the left edge and 1 is the right edge of the parent panel. For example, Left Anchor = 0.2 and Right Anchor = 0.8 will maintain the width proportionally to the parent panel such that the left edge is 20% (0.2) in from the left and the right edge is 20% (0.8) in from the right.
leftanchor - Position of the left anchor of the panel with respect to the parent. This value is normalized 0-1, 0 is the left edge of the parent and 1 is the right edge of the parent.
leftoffset - An offset for the left anchor in pixels.
rightanchor - Position of the right anchor of the panel with respect to the parent. This value is normalized 0-1, 0 is the left edge of the parent and 1 is the right edge of the parent.
rightoffset - An offset for the right anchor in pixels.
horigin - Sets the position of the panel's origin horizontally. The default origin (0,0) is the bottom-left corner of the panel.
Horizontal Fill Weight
hfillweight - When multiple panels are using Horizontal Mode = Fill and being aligned by the parent either Left to Right or Right to Left, this fill weight parameter can be used to bias the fill width of the panels.
vmode - ⊞ - Select one of 3 modes to determine the vertical height of the panel.
- Fixed Height
fixed- Uses the Height parameter above to set this panel's height in pixels.
fill- The height of this panel will match (fill) the height of the parent panel.
anchors- The height of this panel is set by the Bottom Anchor and Top Anchor parameters below which will maintain a relative and proportionally height to the parent panel as the parent panel changes size. This allows for stretchy panels. These anchor parameters are normalized 0-1 like uv coordinates where 0 is the bottom edge and 1 is the top edge of the parent panel. For example, Bottom Anchor = 0.3 and Right Anchor = 0.5 will maintain the height proportionally to the parent panel such that the bottom edge is 30% (0.3) up from the bottom and the top edge is 50% (0.5) down from the top.
bottomanchor - Position of the bottom anchor of the panel with respect to the parent. This value is normalized 0-1, 0 is the bottom edge of the parent and 1 is the top edge of the parent.
bottomoffset - An offset for the bottom anchor in pixels.
topanchor - Position of the top anchor of the panel with respect to the parent. This value is normalized 0-1, 0 is the bottom edge of the parent and 1 is the top edge of the parent.
topoffset - An offset for the top anchor in pixels.
vorigin - Sets the position of the panel's origin vertically. The default origin (0,0) is the bottom-left corner of the panel.
Vertical Fill Weight
vfillweight - When multiple panels are using Vertical Mode = Fill and being aligned by the parent either Top to Bottom or Bottom to Top, this fill weight parameter can be used to bias the fill height of the panels.
alignallow - ⊞ - When set to Ignore, the Panel will ignore any Align parameter settings from its parent.
allow- Aligns the panel based on settings in parent.
ignore- Does not align the panel but respects margins.
- Ignore and Ignore Margins
ignoremargin- Does not align the panel and disregards margins.
alignorder - This parameter allows you to specify the align position when its parent's Align parameter is set to something other then None or Match Network Nodes. Lower numbers are first.
postoffset - ⊞ - Adds an offset after all other postions and alignment options have been applied to the panel.
Size from Window
sizefromwindow - When enabled the panel component's width and height are set by resizing its floating viewer window.
Parameters - Panel Page
The Panel parameter page controls panel attributes such as display on/off, enable on/off, panel help, and interactions with the cursor.
display - Specifies if the panel is displayed or hidden.
enable - Allows you to prevent all interaction with this panel.
helpdat - Lets you specify the path to a Text DAT whose content will be displayed as a rollover pop-up help for the control panel.
Floating Viewer Aspect
vieweraspect - ⊞ - Controls whether the aspect ratio is proportional or unconstrained when resizing a floating viewer ie. dragging the edges of the viewer to resize it.
cursor - ⊞ - Changes the cursor displayed when cursor is over the panel.
- Normal Select
- Link Select
- Text Select
- Precision Select
multitouch - ⊞ - When enabled, this panel will process the first touch it gets in a similar manner to how it processes a mouse click, with updates to u, v, state etc. The touch event must be initiated from the panel. Subsequent touches are ignored. If this panel handles multi-touch events via the Multi Touch In DAT, you may want to disable Built-in Multi-Touch so it won't interfere with script processing.
- Use Parent's Multi-Touch Settings
mtouchparent- Use the parent's Multi-Touch setting. This defaults to enabled in the root component.
- Use Built-in Multi-Touch
mtouchyes- Enable use of first touch as mouse.
- Do Not Use Built-in Multi-Touch
mtouchno- Disable use of first touch as mouse.
clickthrough - When enabled all mouse clicks are ignored by this Panel Component.
Use Mouse Wheel
mousewheel - Turn on to capture events when the mouse wheel is used over the panel.
Mouse UV Buttons
uvbuttons - - Allows you to specify which mouse buttons update the uv Panel Values.
mouserel - When enabled the uv Panel Values will reflect relative mouse movement.
Drag Edges to Resize
resize - ⊞ - Four checkboxes allow you to enable resizing a panel by grabbing the corresponding edge or corner: Resize Left, Right, Bottom, Top.
resizew - ⊞ - Limits the left-right (width) resizing range.
resizeh - ⊞ - Limits the bottom-top (height) resizing range.
Drag to Reposition
reposition - ⊞ - Enables repositioning of the panel or window by dragging with the mouse.
repocomp - Enabled by choosing the Component option from the Reposition parameter. Specify the path to the panel component you would like to reposition by mouse.
repositionx - ⊞ - Enabled by choosing the Component option from the Reposition parameter. Sets the maximum range for repositioning the panel component horizontally.
repositiony - ⊞ - Enabled by choosing the Component option from the Reposition parameter. Sets the maximum range for repositioning the panel component vertically.
Parameters - Look Page
The Color parameter page sets the panel's background, border, and disabled colors.
bgcolor - ⊞ - RGB values for the background. (default: black (0,0,0))
bgalpha - Set the alpha value for the background.
top - Allows you to specify a TOP as the background for the panel.
topfill - ⊞ - This menu specifies the way the Background TOP will fill the panel's background.
- Fill Width
- Fill Height
- Fill Best
- Native Resolution
bordera - ⊞ - RGB values for border A color.
Border A Alpha
borderaalpha - Alpha value for border A color.
borderb - ⊞ - RGBA values for border B color.
Border B Alpha
borderbalpha - Alpha value for border B color.
leftborder - What color the 2 left-most pixels are. Options are 0 (no change), Border A (uses color defined in Border A), or Border B (uses color defined in Border B).
Left Border Inside
rightborder - What color the 2 right-most pixels are. Options are 0 (no change), Border A (uses color defined in Border A), or Border B (uses color defined in Border B).
Right Border Inside
bottomborder - What color the 2 bottom-most pixels are. Options are 0 (no change), Border A (uses color defined in Border A), or Border B (uses color defined in Border B).
Bottom Border Inside
topborder - What color the 2 top-most pixels are. Options are 0 (no change), Border A (uses color defined in Border A), or Border B (uses color defined in Border B).
Top Border Inside
Border Over Children
borderover - Draws the panel's borders on top of all children panels.
dodisablecolor - Enable the use of a unique disable color below when the panel's Enable = Off.
disablecolor - ⊞ - RGB values for the disable color. (default: black (0,0,0))
disablealpha - Set the alpha value for the disable color.
Multiply RGB by Alpha
multrgb - Multiplies the RGB channels by the alpha channel.
composite - ⊞ - Selects how the panel is composited with its siblings panels. See the Composite TOP for a description of the various composite methods.
opacity - Allows you to control the transparency of the panel.
Parameters - Children Page
The Children parameter page controls aspects of the Panel's children alignment, size, and position.
align - ⊞ - This menu allows you to specify how the children inside the Panel Component will be laid out. The options Layout Grid Rows, Layout Grid Columns and Match Network Nodes will scale the Panel Component's children to fit the Component. They use the Align Order of each of the children to determine the ordering of the children.
- Left to Right
- Right to Left
- Top to Bottom
- Bottom to Top
- Grid Rows
- Grid Columns
- Match Network Nodes
spacing - This is enabled by choosing any Align option other than None or Match Network Nodes. It defines the space between the children when they are being aligned.
Max per Line
alignmax - This is enabled by choosing any Align option other than None, Layout Grid Horizontal, Layout Grid Vertical, or Match Network Nodes, and defines the maximum number of children placed in one row or column.
margin - ⊞ - The four fields allow you to specify the space that surrounds the Panel Component. The margin is the space between the Panel Component's border and the outer edge.
The Margin is defined in absolute pixels and does not stretch with the window, as a result margin is not reflected in the node's panel viewer but only when the parent is drawn in a floating window.
justifyh - ⊞ - This menu specifies if the panel's children are being justified horizontally.
justifyv - ⊞ - This menu specifies if the panel's children are being justified vertically.
fit - ⊞ - This menu allows you to scale the panel's children. It overrides the Justify Horizontal and Justify Vertical parameters.
- Fit Width
- Fit Height
- Fit Best
scale - ⊞ - Allows you to uniformly scale the Panel's children.
offset - ⊞ - Allows you to offset the Panel's children. This parameter is overwritten by the Align, Justify Horizontal, and Justify Vertical parameters above.
crop - ⊞ - This menu determines if any children panels which are positioned partially or completely outside the panel component's dimensions get cropped.
- Off (Use Parent)
Parameters - Drag/Drop Page
Please refer to Drag-and-Drop for a full explanation on how Drag and Drop between Panel Components functions.
When Dragging This
drag - ⊞ - Specify if this Panel Component can be dragged.
- Use Parent's Drag Settings
dragparent- Follow the parent Panel Components Drag setting.
- Legacy Drag System
legacy- Allow Dragging for this Panel Component. Use the Paramters
Drop Destination Scriptand
Dropped Operatorto control the behaviour.
- Do Not Allow Drag
dragno- Disallows Dragging for this Panel Component.
dragscript - Specify a script that will be executed when starting to drag a Panel Component. Please refer to the Drag Script section of the Drag and Drop page.
Drop Destination Script
dropdestscript - Specify a script that will be executed when the dragged Panel Component is dropped. A temporary network is created and the component (or the alternative operator specified in Dropped Component) is copied to this network. You can add or modify operators in this network. Please refer to the Drop Destination Script section of the Drag and Drop page.
droptypescript - If a drop destination script is specified, you can also add a DAT table with a list of return types that the drop destination script will provide. Return types can be one of the op types (COMP,TOP,CHOP,SOP,MAT,DAT), channel, or supported filetypes. Please refer to the Drop Types section of the Drag and Drop page.
paneldragop - The Dropped Component parameter is the easiest way to specify an alternative operator to drop. Note that this alternative operator must exist, otherwise the component itself will be dropped. The alternative is only used when dropping onto a network or control panel. Text pasted via dragging and dropping, or files saved via dropping onto the desktop, will still use the original.
On Dropping Into
drop - ⊞ - Specify if this Panel Component accepts items that are dropped onto it.
- Use Parent's Drop Settings
dropparent- Follow the parent Panel Components Drop setting.
- Legacy Drop System
legacy- Allow Dropping onto this Panel Component. Use the Paramter
Drop Scriptto control the behaviour.
- Do Not Allow Drop
dropno- Disallows Dropping onto this Panel Component.
dropscript - A component's Drop Script is run when you drop another component or an external file into that component. Please refer to the Drop Scripts - Text section of the Drag and Drop page.
Alternatively specify a Table DAT in the drop script field. TouchDesigner will automatically look for 2 columns in the table. The first column should indicate the data type and the second should indicate the Text DAT that holds the script to process that data type. Please refer to the Drop Script - Tables section of the Drag and Drop page.
Parameters - Extensions Page
The Extensions parameter page sets the component's python extensions. Please see extensions for more information.
Extension Object 1
extension1 - A number of class instances that can be attached to the component.
Extension Name 1
extname1 - Optional name to search by, instead of the instance class name.
Promote Extension 1
promoteextension1 - Controls whether or not the extensions are visible directly at the component level, or must be accessed through the
.ext member. Example:
Extension Object 2
extension2 - A number of class instances that can be attached to the component.
Extension Name 2
extname2 - Optional name to search by, instead of the instance class name.
Promote Extension 2
promoteextension2 - Controls whether or not the extensions are visible directly at the component level, or must be accessed through the
.ext member. Example:
Extension Object 3
extension3 - A number of class instances that can be attached to the component.
Extension Name 3
extname3 - Optional name to search by, instead of the instance class name.
Promote Extension 3
promoteextension3 - Controls whether or not the extensions are visible directly at the component level, or must be accessed through the
.ext member. Example:
Extension Object 4
extension4 - A number of class instances that can be attached to the component.
Extension Name 4
extname4 - Optional name to search by, instead of the instance class name.
Promote Extension 4
promoteextension4 - Controls whether or not the extensions are visible directly at the component level, or must be accessed through the
.ext member. Example:
reinitextensions - Recompile all extension objects. Normally extension objects are compiled only when they are referenced and their definitions have changed.
Parameters - Common Page
parentshortcut - Specifies a name you can use anywhere inside the component as the path to that component. See Parent Shortcut.
Global OP Shortcut
opshortcut - Specifies a name you can use anywhere at all as the path to that component. See Global OP Shortcut.
Internal OP Shortcut
iopshortcut - Specifies a name you can use anywhere inside the component as a path to "Internal OP" below. See Internal Operators.
iop - The path to the Internal OP inside this component. See Internal Operators.
nodeview - ⊞ - Determines what is displayed in the node viewer, also known as the Node Viewer. Some options will not be available depending on the Component type (Object Component, Panel Component, Misc.)
- Default Viewer
default- Displays the default viewer for the component type, a 3D Viewer for Object COMPS and a Control Panel Viewer for Panel COMPs.
- Operator Viewer
opviewer- Displays the node viewer from any operator specified in the Operator Viewer parameter below.
opviewer - Select which operator's node viewer to use when the Node View parameter above is set to Operator Viewer.
Keep in Memory
enablecloning - Control if the OP should be actively cloned. The Pulse button can be used to instantaneously clone the contents.
Enable Cloning Pulse
clone - Path to a component used as the Master Clone.
Load on Demand
loadondemand - Loads the component into memory only when required. Good to use for components that are not always used in the project.
externaltox - Path to a
.tox file on disk which will source the component's contents upon start of a
.toe. This allows for components to contain networks that can be updated independently. If the
.tox file can not be found, whatever the
.toe file was saved with will be loaded.
Reload .tox on Start
reloadtoxonstart - When on (default), the external .tox file will be loaded when the .toe starts and the contents of the COMP will match that of the external .tox. This can be turned off to avoid loading from the referenced external .tox on startup if desired (the contents of the COMP are instead loaded from the .toe file). Useful if you wish to have a COMP reference an external .tox but not always load from it unless you specifically push the Re-Init Network parameter button.
Reload Built-In Parameters
reloadbuiltin - When this checkbox is enabled, the values of the component's built-in parameters are reloaded when the .tox is reloaded.
Save Backup of External
savebackup - When this checkbox is enabled, a backup copy of the component specified by the External
.tox parameter is saved in the
.toe file. This backup copy will be used if the External
.tox can not be found. This may happen if the
.tox was renamed, deleted, or the
.toe file is running on another computer that is missing component media.
Sub-Component to Load
subcompname - When loading from an External
.tox file, this option allows you to reach into the
.tox and pull out a COMP and make that the top-level COMP, ignoring everything else in the file (except for the contents of that COMP). For example if a
.tox file named
geo1 as the Sub-Component to Load, will result in
geo1 being loaded in place of the current COMP. If this parameter is blank, it just loads the
.tox file normally using the top level COMP in the file.
reinitnet - This button will re-load from the external
.tox file (if present), followed by re-initializing itself from its master, if it's a clone. If pulsed in a Python script, any old OP references to this node will be invalid and should be reacquired.
- Input 0 -
|• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •|
An Operator Family that creates, composites and modifies images, and reads/writes images and movies to/from files and the network. TOPs run on the graphics card's GPU.
(1) The TouchDesigner window is made of a menu bar at the top, a Timeline at the bottom, plus one of a choice of Layouts in the middle. A Layout is made on one or more Panes, each Pane can contain a Network Editor, Viewer, Panel, etc. See Pane and Bookmark. (2) Nodes in a network are arranged using Layout commands in the RMB menu.
Support in TouchDesigner for screens and input devices that support multiple-finger input.
The component types (e.g. Slider, Button, Field, Container) that are used to create custom control panels, also known simply as Panel or Gadget
An Operator Family that reads, creates and modifies 3D polygons, curves, NURBS surfaces, spheres, meatballs and other 3D surface data.
An Operator Family that associates a shader with a SOP or Geometry Object for rendering textured and lit objects.
Any component can be extended with its own Python classes which contain python functions and data.
A Parent Shortcut is a parameter on a component that contains a name that you can use anywhere inside the component to refer to that component using the syntax
parent.Name, for example
parent.Effect.width to obtain panel width.
A name for a component that is accessible from any node in a project, which can be declared in a component's Global Operator Shortcut parameter.
There are four types of shortcuts: Application Shortcuts that are built-in to TouchDesigner's authoring interface, Panel Shortcuts that you create for any custom built panels, Parent Shortcuts for accessing a component from within that component, and Global OP Shortcuts that access a unique component from anywhere in TouchDesigner.
To pulse a parameter is to send it a signal from a CHOP or python or a mouse click that causes a new action to occur immediately. A pulse via python is via the
.pulse() function on a pulse-type parameter, such as Reset in a Speed CHOP. A pulse from a CHOP is typically a 0 to 1 to 0 signal in a channel.
TOuch Environment file, the file type used by TouchDesigner to save your project.
Every component contains a network of operators that create and modify data. The operators are connected by wires that define where data is routed after the operator cooks its inputs and generates an output.