FUNCTION normalise

(* SCHEMA AP239_PRODUCT_LIFE_CYCLE_SUPPORT_MIM_LF; *)
 
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 'AP239_PRODUCT_LIFE_CYCLE_SUPPORT_MIM_LF.VECTOR' IN TYPEOF(arg) THEN
      v := dummy_gri||direction(arg.orientation.direction_ratios);
      IF arg.magnitude = 0.0 THEN
        RETURN (?);
      ELSE
        vec := dummy_gri||vector(v, 1.0);
      END_IF;
    ELSE
      v := dummy_gri||direction(arg.direction_ratios);
    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 'AP239_PRODUCT_LIFE_CYCLE_SUPPORT_MIM_LF.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; (* declared in: geometry_schema *)

Referenced By

Defintion normalise is references by the following definitions:
DefinitionType
 base_axis FUNCTION
 build_2axes FUNCTION
 build_axes FUNCTION
 cross_product FUNCTION
 dot_product FUNCTION
 first_proj_axis FUNCTION
 scalar_times_vector FUNCTION
 second_proj_axis FUNCTION
 vector_difference FUNCTION


[Top Level Definitions] [Exit]

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