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
Next revision
Previous revision
visual3d:documentation:pipeline:expressions:reserved_names [2024/07/17 15:42] – removed sgrangervisual3d:documentation:pipeline:expressions:reserved_names [2025/03/10 11:40] (current) wikisysop
Line 1: Line 1:
 +====== Reserved Names ======
 +
 +Visual3D Reserved Names
 +
 +==== Contents ====
 +
 +
 +
 +  * [[#CURRENT_SIGNAL|1 CURRENT_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:
 +
 +**Evaluate_Expression**
 +/EXPRESSION=LENGTH(TARGET::ORIGINAL::RFT1)
 +/RESULT_TYPES=DERIVED
 +/RESULT_FOLDERS=PROCESSED
 +/RESULT_NAME=_LENGTH
 +/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.
 +
 +! Create a pipeline parameter containing the marker name
 +**Set_Pipeline_Parameter**
 +/PARAMETER_NAME=MARKER
 +/PARAMETER_VALUE=RFT1
 +**;**
 +**Evaluate_Expression**
 +/EXPRESSION=LENGTH(TARGET::ORIGINAL&:&:&::MARKER&)
 +/RESULT_TYPES=DERIVED
 +/RESULT_FOLDERS=PROCESSED
 +/RESULT_NAME=_LENGTH
 +**;**
 +This gets even more complicate if the folder is also a pipeline parameter.
 +
 +An alternative is the following
 +
 +**Evaluate_Expression**
 +/EXPRESSION=LENGTH(CURRENT_SIGNAL)
 +/SIGNAL_TYPES=TARGET
 +/SIGNAL_FOLDER=ORIGINAL
 +/SIGNAL_NAMES=::MARKER
 +/RESULT_TYPES=DERIVED
 +/RESULT_FOLDERS=PROCESSED
 +/RESULT_NAME=_LENGTH
 +/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
 +**;**
 +\\
 +
 +
 +== Used to allow multiple signals to be specified in an expression ==
 +
 +Compute 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
 +
 +[[Visual3D:Documentation:Pipeline:Pipeline_Commands:For_Each_and_End_For_Each|For_Each]]
 +/Iteration_Parameter_Name= MARKERS
 +/Items= RFT1+RFT2+RFT3
 +**;**
 +**Evaluate_Expression**
 +/EXPRESSION=LENGTH(TARGET::ORIGINAL&:&:&::MARKERS&)
 +/SIGNAL_TYPES=TARGET
 +/SIGNAL_FOLDER=ORIGINAL
 +/SIGNAL_NAMES=
 +/RESULT_TYPES=DERIVED
 +/RESULT_FOLDERS=PROCESSED
 +/RESULT_NAME=::MARKERS
 +/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
 +**;**
 +End_For_Each
 +/Iteration_Parameter_Name=MARKERS
 +**;**
 +Using CURRENT_SIGNAL
 +
 +**Evaluate_Expression**
 +/EXPRESSION=LENGTH(CURRENT_SIGNAL)
 +/SIGNAL_TYPES=TARGET
 +/SIGNAL_FOLDER=ORIGINAL
 +/SIGNAL_NAMES=RFT1+RFT2+RFT3
 +/RESULT_TYPES=DERIVED
 +/RESULT_FOLDERS=PROCESSED
 +/RESULT_NAME=_LENGTH
 +/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
 +**;**
 +\\
 +
 +
 +== Used to Specifying all signals of a given TYPE ==
 +
 +Compute 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
 +
 +[[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
 +/SIGNAL_TYPE=TARGET
 +/SIGNAL_FOLDER=ORIGINAL
 +**;**
 +[[Visual3D:Documentation:Pipeline:Pipeline_Commands:For_Each_and_End_For_Each|For_Each]]
 +/Iteration_Parameter_Name= MARKERS
 +/Items= ::ALL_TARGETS
 +**;**
 +**Evaluate_Expression**
 +/EXPRESSION=LENGTH(TARGET::ORIGINAL&:&:&::MARKERS&)
 +/SIGNAL_TYPES=TARGET
 +/SIGNAL_FOLDER=ORIGINAL
 +/SIGNAL_NAMES=
 +/RESULT_TYPES=DERIVED
 +/RESULT_FOLDERS=PROCESSED
 +/RESULT_NAME=::MARKERS
 +/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
 +**;**
 +End_For_Each
 +/Iteration_Parameter_Name=MARKERS
 +**;**
 +Using CURRENT_SIGNAL
 +
 +**Evaluate_Expression**
 +/EXPRESSION=LENGTH(CURRENT_SIGNAL)
 +/SIGNAL_TYPES=TARGET
 +/SIGNAL_FOLDER=ORIGINAL
 +/SIGNAL_NAMES=
 +/RESULT_TYPES=DERIVED
 +/RESULT_FOLDERS=PROCESSED
 +/RESULT_NAME=_LENGTH
 +/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
 +**;**
 +\\
 +
 +
 +== APPLY_AS_SUFFIX_TO_SIGNAL_NAME ==
 +
 +If **APPLY_AS_SUFFIX_TO_SIGNAL_NAME** is **true**, OR RESULT_NAMES.size() == SIGNAL_NAMES.size()
 +
 +Compute the length of all TARGETS in the ORIGINAL folder
 +
 +**Evaluate_Expression**
 +/EXPRESSION=LENGTH(CURRENT_SIGNAL)
 +/SIGNAL_TYPES=TARGET
 +/SIGNAL_FOLDER=ORIGINAL
 +/SIGNAL_NAMES=
 +/RESULT_TYPES=DERIVED
 +/RESULT_FOLDERS=PROCESSED
 +/RESULT_NAME=_LENGTH
 +/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
 +**;**
 +Compute the length of Two TARGETS (RFT1 and RFT2) in the ORIGINAL folder
 +
 +**Evaluate_Expression**
 +/EXPRESSION=LENGTH(CURRENT_SIGNAL)
 +/SIGNAL_TYPES=TARGET
 +/SIGNAL_FOLDER=ORIGINAL
 +/SIGNAL_NAMES=RFT1+RFT2
 +/RESULT_TYPES=DERIVED
 +/RESULT_FOLDERS=PROCESSED
 +/RESULT_NAME=_LENGTH
 +/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
 +**;**
 +Compute a Best_Plane_Fit for multiple signals at each frame of data
 +
 +**Evaluate_Expression**
 +/EXPRESSION=Best_Fit_Plane(CURRENT_SIGNAL)
 +/SIGNAL_TYPES=TARGET
 +/SIGNAL_FOLDER=ORIGINAL
 +/SIGNAL_NAMES=LSK_1+LSK_2+LSK_3
 +/RESULT_TYPES=DERIVED
 +/RESULT_FOLDERS=PROCESSED
 +/RESULT_NAME=LSK_PLANE
 +/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
 +**;**
 +\\
 +If **APPLY_AS_SUFFIX_TO_SIGNAL_NAME** is **false**, AND RESULT_NAMES.size() == 1
 +
 +Compute the length of one TARGET (TARGET::ORIGINAL::RFT1)
 +
 +**Evaluate_Expression**
 +/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
 +==== isNAN ====
 +
 +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]
 +/PARAMETER_NAME= NAN_TEST
 +/EXPRESSION=ISNAN(1/0)
 +/AS_INTEGER=TRUE
 +**;**
 +::NAN_TEST = 1
 +[Set_Pipeline_Parameter_From_Expression]
 +/PARAMETER_NAME= NAN_TEST
 +/EXPRESSION=ISNAN(-999999.000000)
 +/AS_INTEGER=TRUE
 +**;**
 +::NAN_TEST = 1
 +Returns "1" because -999999 is equal to Data Not Found in Visual3D.
 +
 +[Set_Pipeline_Parameter_From_Expression]
 +/PARAMETER_NAME= NAN_TEST
 +/EXPRESSION=ISNAN(15)
 +/AS_INTEGER=TRUE
 +**;**
 +::NAN_TEST = 0
 +Example: Set negative values to NO_DATA
 +
 +If the z-component of the LELB signal is below 0 set the frame to NO_DATA
 +
 +**Evaluate_Expression**
 +/EXPRESSION=(TARGET::ORIGINAL::LELB::Z>0)/(TARGET::ORIGINAL::LELB::Z>0)*TARGET::ORIGINAL::LELB
 +/RESULT_NAME=LELB
 +/RESULT_TYPE=TARGET
 +/RESULT_FOLDER=PROCESSED
 +**;**
 +
 +==== ORIGIN ====
 +
 +Internally Visual3D specifies the location ORIGIN and the string cannot be used for a TARGET or a LANDMARK
 +
  
visual3d/documentation/pipeline/expressions/reserved_names.1721230937.txt.gz · Last modified: 2024/07/17 15:42 by sgranger