FUNCTION normalise

(* SCHEMA explicit_draughting; *)
   FUNCTION normalise (arg : vector_or_direction) : vector_or_direction;
     LOCAL
       ndim   : INTEGER;
       v      : direction;
       result : vector_or_direction;
       vec    : vector;
       mag    : REAL;
     END_LOCAL;
     IF NOT EXISTS (arg) THEN
       result := ?;
     ELSE
       ndim := arg.dim;
       IF 'GEOMETRY_SCHEMA.VECTOR' IN TYPEOF(arg) THEN
         BEGIN
           vec := arg;
           v := arg.orientation;
           IF arg.magnitude = 0.0 THEN
             RETURN(?);
           ELSE
             vec.magnitude := 1.0;
           END_IF;
         END;
       ELSE
         v := arg;
       END_IF;
       mag := 0.0;
       REPEAT  i := 1 TO ndim;
         mag := mag + v.direction_ratios[i]*v.direction_ratios[i];
       END_REPEAT;
       IF mag > 0.0 THEN
         mag := SQRT(mag);
         REPEAT  i := 1 TO ndim;
           v.direction_ratios[i] := v.direction_ratios[i]/mag;
         END_REPEAT;
         IF 'GEOMETRY_SCHEMA.VECTOR' IN TYPEOF(arg) THEN
           vec.orientation := v;
           result := vec;
         ELSE
           result := v;
         END_IF;
       ELSE
         RETURN(?);
       END_IF;
     END_IF;
     RETURN (result);
   END_FUNCTION;

Referenced By

Defintion normalise is references by the following definitions:
DefinitionType
 build_2axes FUNCTION


[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:14:03-04:00