visual3d:documentation:pipeline:expressions:reserved_names
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
visual3d:documentation:pipeline:expressions:reserved_names [2024/07/16 16:58] – removed sgranger | visual3d: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 ====== | ||
+ | Certain names are reserved within the Visual3D pipeline/ | ||
+ | |||
+ | |||
+ | ===== CURRENT_SIGNAL ===== | ||
+ | |||
+ | The CURRENT_SIGNAL reserved named is used to refer to a specific signal within the input to [[visual3d: | ||
+ | |||
+ | ==== Example: Compute the length of one signal ==== | ||
+ | |||
+ | The legacy syntax is: | ||
+ | |||
+ | < | ||
+ | Evaluate_Expression | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | </ | ||
+ | |||
+ | The legacy syntax can get complicated if [[Visual3D: | ||
+ | |||
+ | < | ||
+ | ! Create a pipeline parameter containing the marker name | ||
+ | Set_Pipeline_Parameter | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | |||
+ | Evaluate_Expression | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | </ | ||
+ | |||
+ | This gets even more complicate if the folder is also a pipeline parameter. An alternative is the following: | ||
+ | |||
+ | < | ||
+ | Evaluate_Expression | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Example: Specify multiple signals in an expression ==== | ||
+ | |||
+ | This example computes the length of TARGETS RFT1, RFT2, and RFT3 in the ORIGINAL folder. The legacy implementation requires a [[Visual3D: | ||
+ | |||
+ | < | ||
+ | For_Each | ||
+ | / | ||
+ | /Items= RFT1+RFT2+RFT3 | ||
+ | ; | ||
+ | |||
+ | Evaluate_Expression | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | |||
+ | End_For_Each | ||
+ | / | ||
+ | ; | ||
+ | </ | ||
+ | |||
+ | Instead, using the CURRENT_SIGNAL reserved name: | ||
+ | |||
+ | < | ||
+ | Evaluate_Expression | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | </ | ||
+ | |||
+ | ==== Example: Specify all signals of a given type ==== | ||
+ | |||
+ | This example computes the length of all TARGETS in the ORIGINAL folder. The legacy implementation requires a [[Visual3D: | ||
+ | |||
+ | < | ||
+ | Set_Pipeline_Parameter_To_List_Of_Signal_Names | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | |||
+ | For_Each | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | |||
+ | Evaluate_Expression | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | |||
+ | End_For_Each | ||
+ | / | ||
+ | ; | ||
+ | </ | ||
+ | |||
+ | Instead, using the CURRENT_SIGNAL reserved name: | ||
+ | |||
+ | < | ||
+ | Evaluate_Expression | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | </ | ||
+ | |||
+ | ==== Example: Apply suffix to signal name ==== | ||
+ | |||
+ | If the / | ||
+ | |||
+ | For example, when computing the length of all TARGETS in the ORIGINAL folder. | ||
+ | |||
+ | < | ||
+ | Evaluate_Expression | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | </ | ||
+ | |||
+ | Or when computing the length of two TARGETS (RFT1 and RFT2) in the ORIGINAL folder | ||
+ | |||
+ | < | ||
+ | Evaluate_Expression | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | </ | ||
+ | |||
+ | Also when calculating a Best_Plane_Fit for multiple signals at each frame of data. | ||
+ | |||
+ | < | ||
+ | Evaluate_Expression | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | </ | ||
+ | |||
+ | ===== NAN ===== | ||
+ | |||
+ | NAN is a reserved string used to designate "Not a Number" | ||
+ | |||
+ | For example, the expression 1/0 results in NAN. | ||
+ | |||
+ | ==== isNAN function ==== | ||
+ | |||
+ | 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 | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | |||
+ | ::NAN_TEST = 1 | ||
+ | |||
+ | Set_Pipeline_Parameter_From_Expression | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | |||
+ | ::NAN_TEST = 1 ! Returns " | ||
+ | |||
+ | Set_Pipeline_Parameter_From_Expression | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | |||
+ | ::NAN_TEST = 0 | ||
+ | </ | ||
+ | |||
+ | ==== Example: Set negative values to NO_DATA ==== | ||
+ | |||
+ | In this example, if the z-component of the LELB signal is below 0 then we will set the frame to NO_DATA. | ||
+ | |||
+ | < | ||
+ | Evaluate_Expression | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | </ | ||
+ | |||
+ | ===== 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.1721149094.txt.gz · Last modified: 2024/07/16 16:58 by sgranger