User Tools

Site Tools


visual3d:documentation:pipeline:expressions:reserved_names

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
visual3d:documentation:pipeline:expressions:reserved_names [2025/03/10 11:40] wikisysopvisual3d:documentation:pipeline:expressions:reserved_names [2025/06/20 18:45] (current) – Cleaned up page and added section headers. wikisysop
Line 1: Line 1:
 ====== Reserved Names ====== ====== Reserved Names ======
  
-Visual3D Reserved Names+Certain names are reserved within the Visual3D pipeline/expression syntax in order to simplify common tasks.
  
-==== Contents ==== 
  
 +===== CURRENT_SIGNAL =====
  
 +The CURRENT_SIGNAL reserved named is used to refer to a specific signal within the input to [[visual3d:documentation:pipeline:expressions:expressions_overview|Evaluate_Expression]] with a simple syntax.
  
-  * [[#CURRENT_SIGNAL|1 CURRENT_SIGNAL]] +==== Example: Compute the length of one signal ====
-    * [[#Used_to_allow_multiple_signals_to_be_specified_in_an_expression|1.1 Used to allow multiple signals to be specified in an expression]] +
-    * [[#Used_to_Specifying_all_signals_of_a_given_TYPE|1.2 Used to Specifying all signals of a given TYPE]] +
-    * [[#APPLY_AS_SUFFIX_TO_SIGNAL_NAME|1.3 APPLY_AS_SUFFIX_TO_SIGNAL_NAME]] +
-  * [[#NAN|2 NAN]] +
-  * [[#isNAN|3 isNAN]] +
-  * [[#ORIGIN|ORIGIN]] +
- +
- +
-==== CURRENT_SIGNAL ==== +
- +
-Used to refer to a specific signal with a simple syntax +
-Compute the length of one signal.+
  
 The legacy syntax is: The legacy syntax is:
  
-**Evaluate_Expression**+<code> 
 +Evaluate_Expression
 /EXPRESSION=LENGTH(TARGET::ORIGINAL::RFT1) /EXPRESSION=LENGTH(TARGET::ORIGINAL::RFT1)
 /RESULT_TYPES=DERIVED /RESULT_TYPES=DERIVED
Line 29: Line 19:
 /RESULT_NAME=_LENGTH /RESULT_NAME=_LENGTH
 /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
-**;** +
-The legacy syntax can get complicated if [[Visual3D:Documentation:Pipeline:General_Information:Pipeline_Parameters|Pipeline_Parameters]] are used in the signal name because of the order in which equations are parsed.+</code>
  
 +The legacy syntax can get complicated if [[Visual3D:Documentation:Pipeline:General_Information:Pipeline_Parameters|Pipeline Parameters]] are used in the signal name because of the order in which equations are parsed.
 +
 +<code>
 ! Create a pipeline parameter containing the marker name ! Create a pipeline parameter containing the marker name
-**Set_Pipeline_Parameter**+Set_Pipeline_Parameter
 /PARAMETER_NAME=MARKER /PARAMETER_NAME=MARKER
 /PARAMETER_VALUE=RFT1 /PARAMETER_VALUE=RFT1
-**;** +
-**Evaluate_Expression**+ 
 +Evaluate_Expression
 /EXPRESSION=LENGTH(TARGET::ORIGINAL&:&:&::MARKER&) /EXPRESSION=LENGTH(TARGET::ORIGINAL&:&:&::MARKER&)
 /RESULT_TYPES=DERIVED /RESULT_TYPES=DERIVED
 /RESULT_FOLDERS=PROCESSED /RESULT_FOLDERS=PROCESSED
 /RESULT_NAME=_LENGTH /RESULT_NAME=_LENGTH
-**;** +
-This gets even more complicate if the folder is also a pipeline parameter.+</code>
  
-An alternative is the following+This gets even more complicate if the folder is also a pipeline parameter. An alternative is the following:
  
-**Evaluate_Expression**+<code> 
 +Evaluate_Expression
 /EXPRESSION=LENGTH(CURRENT_SIGNAL) /EXPRESSION=LENGTH(CURRENT_SIGNAL)
 /SIGNAL_TYPES=TARGET /SIGNAL_TYPES=TARGET
Line 56: Line 51:
 /RESULT_NAME=_LENGTH /RESULT_NAME=_LENGTH
 /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
-**;** +
-\\+</code>
  
  
-== Used to allow multiple signals to be specified in an expression ==+==== Example: Specify multiple signals in an expression ====
  
-Compute the length of TARGETS RFT1, RFT2, and RFT3 in the ORIGINAL folder+This example computes the length of TARGETS RFT1, RFT2, and RFT3 in the ORIGINAL folder. The legacy implementation requires a [[Visual3D:Documentation:Pipeline:Pipeline_Commands:For_Each_and_End_For_Each|For_Each]] statement:
  
-The legacy implementation requires a [[Visual3D:Documentation:Pipeline:Pipeline_Commands:For_Each_and_End_For_Each|For_Each]] statement +<code> 
- +For_Each
-[[Visual3D:Documentation:Pipeline:Pipeline_Commands:For_Each_and_End_For_Each|For_Each]]+
 /Iteration_Parameter_Name= MARKERS /Iteration_Parameter_Name= MARKERS
 /Items= RFT1+RFT2+RFT3 /Items= RFT1+RFT2+RFT3
-**;** +
-**Evaluate_Expression**+ 
 +Evaluate_Expression
 /EXPRESSION=LENGTH(TARGET::ORIGINAL&:&:&::MARKERS&) /EXPRESSION=LENGTH(TARGET::ORIGINAL&:&:&::MARKERS&)
 /SIGNAL_TYPES=TARGET /SIGNAL_TYPES=TARGET
Line 79: Line 74:
 /RESULT_NAME=::MARKERS /RESULT_NAME=::MARKERS
 /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
-**;**+; 
 End_For_Each End_For_Each
 /Iteration_Parameter_Name=MARKERS /Iteration_Parameter_Name=MARKERS
-**;** +
-Using CURRENT_SIGNAL+</code> 
 + 
 +Instead, using the CURRENT_SIGNAL reserved name:
  
-**Evaluate_Expression**+<code> 
 +Evaluate_Expression
 /EXPRESSION=LENGTH(CURRENT_SIGNAL) /EXPRESSION=LENGTH(CURRENT_SIGNAL)
 /SIGNAL_TYPES=TARGET /SIGNAL_TYPES=TARGET
Line 94: Line 93:
 /RESULT_NAME=_LENGTH /RESULT_NAME=_LENGTH
 /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
-**;** +
-\\+</code>
  
 +==== Example: Specify all signals of a given type ====
  
-== Used to Specifying all signals of a given TYPE ==+This example computes the length of all TARGETS in the ORIGINAL folder. The legacy implementation requires a [[Visual3D:Documentation:Pipeline:Pipeline_Commands:For_Each_and_End_For_Each|For_Each]] command and a command to get the names of all of the TARGETS:
  
-Compute the length of all TARGETS in the ORIGINAL folder +<code> 
- +Set_Pipeline_Parameter_To_List_Of_Signal_Names
-The legacy implementation requires a [[Visual3D:Documentation:Pipeline:Pipeline_Commands:For_Each_and_End_For_Each|For_Each]] command and a command to get the names of all of the TARGETS +
- +
-[[Visual3D:Documentation:Pipeline:Pipeline_Commands:Set_Pipeline_Parameter_To_List_Of_Signal_Names|Set_Pipeline_Parameter_To_List_Of_Signal_Names]]+
 /PARAMETER_NAME=ALL_TARGETS /PARAMETER_NAME=ALL_TARGETS
 /SIGNAL_TYPE=TARGET /SIGNAL_TYPE=TARGET
 /SIGNAL_FOLDER=ORIGINAL /SIGNAL_FOLDER=ORIGINAL
-**;** +
-[[Visual3D:Documentation:Pipeline:Pipeline_Commands:For_Each_and_End_For_Each|For_Each]]+ 
 +For_Each
 /Iteration_Parameter_Name= MARKERS /Iteration_Parameter_Name= MARKERS
 /Items= ::ALL_TARGETS /Items= ::ALL_TARGETS
-**;** +
-**Evaluate_Expression**+ 
 +Evaluate_Expression
 /EXPRESSION=LENGTH(TARGET::ORIGINAL&:&:&::MARKERS&) /EXPRESSION=LENGTH(TARGET::ORIGINAL&:&:&::MARKERS&)
 /SIGNAL_TYPES=TARGET /SIGNAL_TYPES=TARGET
Line 122: Line 121:
 /RESULT_NAME=::MARKERS /RESULT_NAME=::MARKERS
 /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
-**;**+; 
 End_For_Each End_For_Each
 /Iteration_Parameter_Name=MARKERS /Iteration_Parameter_Name=MARKERS
-**;** +
-Using CURRENT_SIGNAL+</code>
  
-**Evaluate_Expression**+Instead, using the CURRENT_SIGNAL reserved name: 
 + 
 +<code> 
 +Evaluate_Expression
 /EXPRESSION=LENGTH(CURRENT_SIGNAL) /EXPRESSION=LENGTH(CURRENT_SIGNAL)
 /SIGNAL_TYPES=TARGET /SIGNAL_TYPES=TARGET
Line 137: Line 140:
 /RESULT_NAME=_LENGTH /RESULT_NAME=_LENGTH
 /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
-**;** +
-\\ +</code>
  
-== APPLY_AS_SUFFIX_TO_SIGNAL_NAME ==+==== Example: Apply suffix to signal name ====
  
-If **APPLY_AS_SUFFIX_TO_SIGNAL_NAME** is **true**OR RESULT_NAMES.size() == SIGNAL_NAMES.size()+If the /APPLY_AS_SUFFIX_TO_SIGNAL_NAME parameter is true or if the number of result signals is the same as the number of input signalsthen a suffix can be easily added for the result signal's name.
  
-Compute the length of all TARGETS in the ORIGINAL folder+For example, when computing the length of all TARGETS in the ORIGINAL folder.
  
-**Evaluate_Expression**+<code> 
 +Evaluate_Expression
 /EXPRESSION=LENGTH(CURRENT_SIGNAL) /EXPRESSION=LENGTH(CURRENT_SIGNAL)
 /SIGNAL_TYPES=TARGET /SIGNAL_TYPES=TARGET
Line 156: Line 159:
 /RESULT_NAME=_LENGTH /RESULT_NAME=_LENGTH
 /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
-**;** +
-Compute the length of Two TARGETS (RFT1 and RFT2) in the ORIGINAL folder+</code>
  
-**Evaluate_Expression**+Or when computing the length of two TARGETS (RFT1 and RFT2) in the ORIGINAL folder 
 + 
 +<code> 
 +Evaluate_Expression
 /EXPRESSION=LENGTH(CURRENT_SIGNAL) /EXPRESSION=LENGTH(CURRENT_SIGNAL)
 /SIGNAL_TYPES=TARGET /SIGNAL_TYPES=TARGET
Line 168: Line 174:
 /RESULT_NAME=_LENGTH /RESULT_NAME=_LENGTH
 /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
-**;** +
-Compute a Best_Plane_Fit for multiple signals at each frame of data+</code> 
 + 
 +Also when calculating a Best_Plane_Fit for multiple signals at each frame of data.
  
-**Evaluate_Expression**+<code> 
 +Evaluate_Expression
 /EXPRESSION=Best_Fit_Plane(CURRENT_SIGNAL) /EXPRESSION=Best_Fit_Plane(CURRENT_SIGNAL)
 /SIGNAL_TYPES=TARGET /SIGNAL_TYPES=TARGET
Line 180: Line 189:
 /RESULT_NAME=LSK_PLANE /RESULT_NAME=LSK_PLANE
 /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
-**;** +
-\\ +</code>
-If **APPLY_AS_SUFFIX_TO_SIGNAL_NAME** is **false**, AND RESULT_NAMES.size() == 1+
  
-Compute the length of one TARGET (TARGET::ORIGINAL::RFT1)+===== NAN =====
  
-**Evaluate_Expression** +NAN is a reserved string used to designate "Not a Number". Visual3D commands refer to [[Visual3D:Documentation:C3D_Signal_Types:DATA_NOT_FOUND|NO_DATA or DATA_NOT_FOUND]] as NAN.
-/EXPRESSION=LENGTH(TARGET::ORIGINAL::RFT1) +
-/RESULT_TYPES=DERIVED +
-/RESULT_FOLDERS=PROCESSED +
-/RESULT_NAME=RFT1_LENGTH +
-**;** +
-==== NAN ==== +
- +
-NAN is a reserved string used to designate "Not a Number".+
  
-Visual3D commands refer to [[Visual3D:Documentation:C3D_Signal_Types:DATA_NOT_FOUND|NO_DATA or DATA_NOT_FOUND]] as NAN+For example, the expression 1/0 results in NAN.
  
-For example, the expression 1/0 results in NAN +==== isNAN function ====
-==== isNAN ====+
  
-isNAN(expression) tests values against NAN - If the number is NAN the result is 1, otherwise the result is 0+The function isNAN(expression) tests values against NAN - If the number is NAN the result is 1, otherwise the result is 0.
  
-[Set_Pipeline_Parameter_From_Expression]+<code> 
 +Set_Pipeline_Parameter_From_Expression
 /PARAMETER_NAME= NAN_TEST /PARAMETER_NAME= NAN_TEST
 /EXPRESSION=ISNAN(1/0) /EXPRESSION=ISNAN(1/0)
 /AS_INTEGER=TRUE /AS_INTEGER=TRUE
-**;**+; 
 ::NAN_TEST = 1 ::NAN_TEST = 1
-[Set_Pipeline_Parameter_From_Expression]+ 
 +Set_Pipeline_Parameter_From_Expression
 /PARAMETER_NAME= NAN_TEST /PARAMETER_NAME= NAN_TEST
 /EXPRESSION=ISNAN(-999999.000000) /EXPRESSION=ISNAN(-999999.000000)
 /AS_INTEGER=TRUE /AS_INTEGER=TRUE
-**;** +;
-::NAN_TEST = 1 +
-Returns "1" because -999999 is equal to Data Not Found in Visual3D.+
  
-[Set_Pipeline_Parameter_From_Expression]+::NAN_TEST = 1 ! Returns "1" because -999999 is equal to Data Not Found in Visual3D. 
 + 
 +Set_Pipeline_Parameter_From_Expression
 /PARAMETER_NAME= NAN_TEST /PARAMETER_NAME= NAN_TEST
 /EXPRESSION=ISNAN(15) /EXPRESSION=ISNAN(15)
 /AS_INTEGER=TRUE /AS_INTEGER=TRUE
-**;**+; 
 ::NAN_TEST = 0 ::NAN_TEST = 0
-Example: Set negative values to NO_DATA+</code>
  
-If the z-component of the LELB signal is below 0 set the frame to NO_DATA+==== Example: Set negative values to NO_DATA ====
  
-**Evaluate_Expression**+In this example, if the z-component of the LELB signal is below 0 then we will set the frame to NO_DATA. 
 + 
 +<code> 
 +Evaluate_Expression
 /EXPRESSION=(TARGET::ORIGINAL::LELB::Z>0)/(TARGET::ORIGINAL::LELB::Z>0)*TARGET::ORIGINAL::LELB /EXPRESSION=(TARGET::ORIGINAL::LELB::Z>0)/(TARGET::ORIGINAL::LELB::Z>0)*TARGET::ORIGINAL::LELB
 /RESULT_NAME=LELB /RESULT_NAME=LELB
 /RESULT_TYPE=TARGET /RESULT_TYPE=TARGET
 /RESULT_FOLDER=PROCESSED /RESULT_FOLDER=PROCESSED
-**;** +
- +</code>
-==== ORIGIN ==== +
- +
-Internally Visual3D specifies the location ORIGIN and the string cannot be used for a TARGET or a LANDMARK+
  
 +===== ORIGIN =====
  
 +Internally Visual3D specifies the location ORIGIN. To avoid confusion, this string cannot be used to name either a TARGET or a LANDMARK.
visual3d/documentation/pipeline/expressions/reserved_names.txt · Last modified: 2025/06/20 18:45 by wikisysop