FUNCTION first_proj_axis
(* SCHEMA building_design_schema; *)
FUNCTION first_proj_axis(
z_axis, arg: direction
): direction;
LOCAL
x_vec : vector;
v : direction;
z : direction;
x_axis : direction;
END_LOCAL;
IF (NOT EXISTS(z_axis)) OR (NOT EXISTS(arg)) OR (arg.dim <> 3) THEN
x_axis := ?;
ELSE
z_axis := normalise(z_axis);
IF NOT EXISTS(arg) THEN
IF z_axis <> direction([1,0,0]) THEN
v := direction([1,0,0]);
ELSE
v := direction([0,1,0]);
END_IF;
ELSE
IF cross_product(arg,z).magnitude = 0 THEN
RETURN(?);
ELSE
v := normalise(arg);
END_IF;
END_IF;
x_vec := scalar_times_vector(dot_product(v,z),z_axis);
x_axis := vector_difference(v,x_vec).orientation;
x_axis := normalise(x_axis);
END_IF;
RETURN(x_axis);
END_FUNCTION; -- first_proj_axis
Referenced By
Defintion first_proj_axis 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