Overview Schemas Index

GEOMETRY_SCHEMA (jsdai.SGeometry_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; -- first_proj_axis

public class FFirst_proj_axis
          public static Value run(SdaiContext _context, Value z_axis, Value arg)