FUNCTION first_proj_axis
(* SCHEMA integrated_cnc_schema; *)
FUNCTION first_proj_axis (
z_axis : direction;
arg : direction
) : direction;
LOCAL
x_axis : direction;
v : direction;
z : direction;
x_vec : vector;
END_LOCAL;
IF NOT EXISTS(z_axis) THEN
RETURN (?);
ELSE
z := normalise(z_axis);
IF NOT EXISTS(arg) THEN
IF (z.direction_ratios <> [ 1.0, 0.0, 0.0 ]) AND (z.
direction_ratios <> [ -1.0, 0.0, 0.0 ]) THEN
v := dummy_gri || direction([ 1.0, 0.0, 0.0 ]);
ELSE
v := dummy_gri || direction([ 0.0, 1.0, 0.0 ]);
END_IF;
ELSE
IF arg.dim <> 3 THEN
RETURN (?);
END_IF;
IF cross_product(arg, z).magnitude = 0.0 THEN
RETURN (?);
ELSE
v := normalise(arg);
END_IF;
END_IF;
x_vec := scalar_times_vector(dot_product(v, z), z);
x_axis := vector_difference(v, x_vec).orientation;
x_axis := normalise(x_axis);
END_IF;
RETURN (x_axis);
END_FUNCTION; -- 10303-42: geometry_schema
Referenced By
Defintion first_proj_axis is references by the following definitions:
[Top Level Definitions] Generated by STEP ToolsTM EXPRESS to HTML Converter
on 2010-01-12T10:42:25-02:00