|
FUNCTION second_proj_axis (z_axis : direction, x_axis : direction, arg : direction) : direction; LOCAL y_axis : vector ; v : direction ; temp : vector ; END_LOCAL ; IF NOT EXISTS ( arg ) THEN v := dummy_gri || direction ( [ 0.0 , 1.0 , 0.0 ] ) ; ELSE v := arg ; END_IF ; temp := scalar_times_vector ( dot_product ( v , z_axis ) , z_axis ) ; y_axis := vector_difference ( v , temp ) ; temp := scalar_times_vector ( dot_product ( v , x_axis ) , x_axis ) ; y_axis := vector_difference ( y_axis , temp ) ; y_axis := normalise ( y_axis ) ; RETURN ( y_axis . orientation ) ; END_FUNCTION; -- second_proj_axis |
|
public class FSecond_proj_axis public static Value run(SdaiContext _context, Value z_axis, Value x_axis, Value arg) |