PLUG'N SCRIPT
rapid plugin development
Tutorial
DSP
KUIML
How-to
Scripts
  • Overview
  • Tutorial
  • Reference
Layout and positioning
  • CELL
  • TABLE
Language basics
  • SKIN
  • DUMMY
  • INCLUDE
  • INCLUDE_ONCE
  • DEFINE
  • UNDEFINE
  • VARIABLE
  • LOCAL_VARIABLE
  • TEMPLATE
  • TEMPLATE_INNER_CONTENT
  • TEMPLATE_UNLOAD
  • REPEAT
Text widgets
  • TEXT
  • TEXT_FIELD
  • TEXT_EDIT_BOX
  • TOOLTIP
  • PARAM_TEXT
  • PARAM_TEXT_CONTROL
  • PARAM_TEXT_EDIT_BOX
  • PARAM_TOOLTIP
Image widgets
  • IMAGE
  • IMAGE_ACTION_BUTTON
  • IMAGE_GROUP_BOX
  • IMAGE_PARAM_BUTTON
  • IMAGE_PARAM_KNOB
  • IMAGE_PARAM_LINEAR_METER
  • IMAGE_PARAM_MENU_BUTTON
  • IMAGE_PARAM_METER
  • IMAGE_PARAM_SLIDER
  • IMAGE_PARAM_TOGGLE_SWITCH
  • XYZ_IMAGE_PARAM_JOYSTICK
Invisible controls
  • INVISIBLE_ACTION_BUTTON
  • INVISIBLE_PARAM_BUTTON
  • INVISIBLE_PARAM_KNOB
  • INVISIBLE_PARAM_MENU_BUTTON
  • INVISIBLE_PARAM_SLIDER
  • INVISIBLE_PARAM_TOGGLE_SWITCH
  • XY_PARAM_PAD
  • XY_ZOOM_SELECT_PAD
  • XYZ_PARAM_SCRATCH_PAD
  • XYZ_PARAM_CLICK_PAD
Drawing, curves & 3D
  • CANVAS
    • Graphics API
  • svg
  • CURVE_GRAPH
  • XY_CURVES_GRAPH
  • GRID
  • RULER
  • COLOR_SCALE
  • VIEW_3D
  • COLOR_SURFACE_3D
  • GRID_3D
  • GL_OBJECT_3D
    • OpenGL Cheat Sheet
  • SURFACE_COLORMAP_2DPLOT
Miscellaneous
  • SCRIPT
  • WIDGET
  • KUIML_WIDGET
  • POPUP_MENU
  • MENU_ITEM
  • MENU_SEPARATOR
  • FILE_SELECT_MENU
  • SYSTEM_ACTION_BUTTON
  • SYSTEM_PARAM_CHECKBOX
  • SYSTEM_PARAM_DROPDOWN_LIST
  • WINDOW
  • LOAD_FONT
Data model
  • STRING
  • PARAM
  • FORMULA_PARAM
  • PARAM_ANIMATOR
  • ACTION
    • Built-in action types
  • TIMER
  • ACTION_TRIGGER
  • CURVE
  • FORMULA_CURVE
  • CURVE_FROM_PARAM_OVER_TIME
  • SURFACE
  • FORMULA_SURFACE
  • SURFACE_FROM_CURVE_OVER_TIME
  • GROUP
Links and commands
  • PARAM_LINK
  • PARAM_MULTI_LINK
  • PARAM_CONNECTION
  • PARAM_TO_STRING_LINK
  • STRING_LINK
  • STRING_MULTI_LINK
  • CURVE_LINK
  • CURVE_MULTI_LINK
  • SURFACE_LINK
  • REQUIRED_OBJECTS
  • EXPOSED_OBJECTS
  • PERSISTENT_OBJECTS
Common attrubutes
  • For all elements
  • Widgets
  • Param Widgets
  • Param Controls
  • Param Info Viewers
  • Text Widgets
  • Surface Viewers
  • Curve Viewers
  • Images
  • 3D Objects
Additional information
  • All attributes
  • Attribute types
  • Cursors
  • Math formulas
  • Scripting
    • Built-in addons
  • User experience
  • Errors and solutions
  • Built-in variables
  • Runtime model
  • Parameters mapping
  • Script converter
  • LetiMix
KUIMLReferenceSURFACE_LINK
August 21, 2025

SURFACE_LINK

This element connects a surface to another one. This means than whenever the 'from' surface changes, the 'to' surface takes the 'from' surface value.

Attributes brief detailed show all inherited

Name DescriptionDefault
fromIdentifier of the origin surfaceMandatoryempty
toIdentifier of the target surfaceMandatoryempty
Exposed: v. 2.0enabledEnables or disables the link'true'
Common attributesRead about `common`
idIdentifier of the elementThe id of an element has to be globally unique. Don't start with a digit for AngelScript compatibility.empty
Name Value type Default Description Comment
fromsurface idemptyIdentifier of the origin surfaceMandatory
tosurface idemptyIdentifier of the target surfaceMandatory
Exposed: v. 2.0enabledboolean'true'Enables or disables the link
Common attributesRead about `common`
ididentifieremptyIdentifier of the elementThe id of an element has to be globally unique. Don't start with a digit for AngelScript compatibility.

Example

Here we create a new SURFACE and link it to another surface. 

  1. <!-- The formula that defines the surface -->
  2. <FORMULA_SURFACE id="source_surface" formula="cos(y*x)*demo_param" x_min="-4" x_max="4" x_default="0" y_min="-4" y_max="4" y_default="0" z_min="-1" z_max="1" z_default="0"/>

  3. <!-- the new surface that copies the part of another surface -->
  4. <SURFACE id="target_surface" x_default="0" x_min="0" x_max="4" x_unit="" y_default="0" y_min="0" y_max="4" y_unit="" z_default="0" z_max="1" z_min="0" z_unit="" />

  5. <!-- link (copy) one surface to another -->
  6. <SURFACE_LINK id="demo_surface_link" from="source_surface" to="target_surface" enabled="true" />

  7. <!-- The 3D View -->
  8. <VIEW_3D id="my_3d_view" width="400" height="200" x_ratio="1" y_ratio="1" z_ratio="0.5" transform.tx="0.0" transform.ty="0.1" transform.tz="-1.7" transform.rx="45" transform.ry="0" transform.rz="-30" cursor="system::open_hand" persistent_viewpoint="false">

  9. <!-- Grid object for the original surface -->
  10. <GRID_3D x_param_info_id="source_surface.x_info" y_param_info_id="source_surface.y_info" z_param_info_id="source_surface.z_info" y_positions_count="11" x_positions_count="11" z_positions_count="11" x_position="-1" y_position="-0.5" z_position="-0.5" opacity="0.3" />

  11. <!-- The original surface-->
  12. <COLOR_SURFACE_3D surface_id="source_surface" visible="true" draw_style="solid" high_color="#ff0000" low_color="#000030" opacity=".8" x_positions_count="100" y_positions_count="100" x_position="-1" y_position="-.5" z_position="-.5"/>

  13. <!-- Grid object for the target (copied/linked) surface -->
  14. <GRID_3D x_param_info_id="target_surface.x_info" y_param_info_id="target_surface.y_info" z_param_info_id="target_surface.z_info" y_positions_count="5" x_positions_count="5" z_positions_count="11" x_position=".2" y_position="-0.5" z_position="-0.5" opacity="0.3" />

  15. <!-- The copied/linked surface-->
  16. <COLOR_SURFACE_3D surface_id="target_surface" visible="true" draw_style="solid" high_color="#ff0000" low_color="#000030" opacity=".8" x_positions_count="100" y_positions_count="100" x_position=".2" y_position="-.5" z_position="-.5"/>

  17. </VIEW_3D>

  18. <!-- control to enable/disable the link -->
  19. <PARAM_TEXT_CONTROL param_id="demo_surface_link.enabled" content="Link: {text_value}" />

  20. <!-- demo logic to change the surface -->
  21. <PARAM id="demo_param" min="-3" max="5" default="0" />
  22. <SCRIPT script="double delta = 0.01;" />
  23. <TIMER id="forever_timer" refresh_time_ms="5" />
  24. <ACTION_TRIGGER event_id="forever_timer.elapsed"
  25. script=" 
  26. demo_param += delta;
  27. if (demo_param >=1 ) delta = -delta;
  28. if (demo_param &lt;=-1 ) delta = -delta;
  29.  " requires="demo_param;demo_param;" />

Related elements

Also see SURFACE, FORMULA_SURFACE, SURFACE_FROM_CURVE_OVER_TIME, VIEW_3D, GRID_3D, COLOR_SURFACE_3D, GL_OBJECT_3D.


Comments

Please, authorize to view and post comments.

2020 - 2026 © Site by LetiMix · Donate  |  Plug'n Script and KUIML by Blue Cat Audio