FUNCTION cross_product
(* SCHEMA building_design_schema; *)
FUNCTION cross_product(
arg1, arg2: direction
): vector;
LOCAL
v2 : LIST [3:3] OF REAL;
v1 : LIST [3:3] OF REAL;
mag : REAL;
res : direction;
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.direction_ratios[1] := (v1[2] * v2[3]) - (v1[3] * v2[2]);
res.direction_ratios[2] := (v1[3] * v2[1]) - (v1[1] * v2[3]);
res.direction_ratios[3] := (v1[1] * v2[2]) - (v1[2] * v2[1]);
mag := 0;
REPEAT i := 1 TO 3 BY 1;
mag := mag + (res.direction_ratios[i] * res.direction_ratios[i]);
END_REPEAT;
IF mag > 0 THEN
result.orientation := res;
result.magnitude := SQRT(mag);
ELSE
result.orientation := arg1;
result.magnitude := 0;
END_IF;
RETURN(result);
END;
END_IF;
END_FUNCTION; -- cross_product
Referenced By
Defintion cross_product is references by the following definitions:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:18:14-04:00