FUNCTION cross_product
(* SCHEMA step_merged_ap_schema; *)
-- DIFF IN AP214
-- DIFF IN AP224
-- DIFF IN AP232
FUNCTION cross_product
(arg1 : direction;
arg2 : direction ) : vector;
LOCAL
mag : REAL;
res : direction;
v1 : LIST [3:3] OF REAL;
v2 : LIST [3:3] OF REAL;
result : vector;
END_LOCAL;
IF (NOT EXISTS(arg1) OR (arg1.dim = 2)) OR (NOT EXISTS(arg2) OR (arg2.dim = 2)) THEN
RETURN (?);
ELSE
BEGIN
v1 := normalise(arg1).direction_ratios;
v2 := normalise(arg2).direction_ratios;
res := dummy_gri || direction([ (v1[2] * v2[3] - v1[3] * v2[2]), (v1[3] * v2[1] - v1[1] * v2[3]), (v1[1] * v2[2] - v1[2] * v2[1]) ]);
mag := 0.0;
REPEAT i := 1 TO 3;
mag := mag + res.direction_ratios[i] * res.direction_ratios[i];
END_REPEAT;
IF mag > 0.0 THEN
result := dummy_gri || vector(res, SQRT(mag));
ELSE
result := dummy_gri || vector(arg1, 0.0);
END_IF;
RETURN (result);
END;
END_IF;
END_FUNCTION;
Referenced By
Defintion cross_product is references by the following definitions:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2020-07-28T17:02:20-04:00