User Tools

Site Tools


visual3d:documentation:pipeline:expressions:array_and_matrix_functions

This is an old revision of the document!


arrays

vector

vector(a,b, etc)

creates a vector of the number of components specified

! create a metric signal with 2 components and one frame [metric_explicit] ! /result_metric_folder=processed /result_metric_name=vec2 /metric_value=2+3 ; ! create a vector containing a constant, a two dimensional metric and a 3 dimensional model based signal. evaluate_expression /expression=vector (1, metric::processed::vec2, link_model_based::original::rknee_angle) ! /signal_types= ! /signal_folder=original ! /signal_names= ! /result_types=derived ! /result_folders=processed /result_name=test ! /apply_as_suffix_to_signal_name=false ; the resulting signal will have the first three columns (one for the constant, one for the vector of 2 components) buffered to the number of frames of rknee_angle by replicating the first frame.

list

list(a,b,etc) – creates a list (column vector) of the number of rows specified:

unit_vector

unit_vector (a, b, etc) – creates a unit vector of the number of components specified:

rotation matrices

rotation multiply

rotation_multiply(a,b)

example: multiply two rotation signals evaluate_expression /expression=rotation_multiply(rotation_inverse(rotation::original::pelvis_shifted_4x4),current_signal) /signal_types=rotation ! /signal_folder=original ! /signal_names= /result_types=rotation ! /result_folders=processed /result_name=_mult /apply_as_suffix_to_signal_name=true ;

rotation inverse

rotation_inverse(a)

example: inverse of a 4×4 rotation signal or a 3×3 link_model_based rotation a good description of the inverse of a rotation signals can be found here] evaluate_expression /expression=rotation_inverse(rotation::original::pelvis_shifted_4x4) /signal_types=rotation ! /signal_folder=original ! /signal_names= /result_types=rotation ! /result_folders=processed /result_name=_inv /apply_as_suffix_to_signal_name=true ;

rotation transpose

rotation_transpose(a)

example: transpose of a 3×3 link_model_based rotation signal evaluate_expression /expression=rotation_transpose(rotation::original::pelvis_shifted_4x4) /signal_types=rotation ! /signal_folder=original ! /signal_names= /result_types=rotation ! /result_folders=processed /result_name=_t /apply_as_suffix_to_signal_name=true ;

pose_euler2rotation4x4

this was created for the shadow segments introduced in 2024. create a 4×4 rotation from the visual3d pose of a segment, with the translation of the origin represented in any coordinate system, and the orientation defined by euler angles and the euler sequence. pose_euler2rotation4x4(r_heel,0,0,0,123)

visual3d/documentation/pipeline/expressions/array_and_matrix_functions.1718801391.txt.gz · Last modified: 2024/06/19 12:49 by sgranger