FUNCTION cross_product

(* SCHEMA AUTOMOTIVE_DESIGN; *)
 
FUNCTION cross_product(arg1 : direction; arg2 : direction) : vector;
LOCAL
  mag : REAL;
  res : direction;
  v1 :  LIST [3:3] OF REAL;
  v2 :  LIST [3:3] OF REAL;
  result : vector;
END_LOCAL;
  IF NOT EXISTS(arg1) OR (arg1.dim = 2) OR NOT EXISTS(arg2) OR (arg2.dim = 2)
   THEN
    RETURN (?);
  ELSE
    v1 := normalise(arg1).direction_ratios;
    v2 := normalise(arg2).direction_ratios;
    res := dummy_gri||direction([v1[2] * v2[3] - v1[3] * v2[2], v1[3] * v2[1]
     - v1[1] * v2[3], v1[1] * v2[2] - v1[2] * v2[1]]);
    mag := 0.0;
    REPEAT i := 1 TO 3;
      mag := mag + res.direction_ratios[i] * res.direction_ratios[i];
    END_REPEAT;
    IF mag > 0.0 THEN
      result := dummy_gri||vector(res, SQRT(mag));
    ELSE
      result := dummy_gri||vector(arg1, 0.0);
    END_IF;
    RETURN (result);
  END_IF;
END_FUNCTION; -- 10303-42: geometry_schema

Referenced By

Defintion cross_product is references by the following definitions:
DefinitionType
 axis2_placement_3d ENTITY
 build_axes FUNCTION
 first_proj_axis FUNCTION


[Top Level Definitions] [Exit]

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