FUNCTION cross_product

(* SCHEMA step_merged_ap_schema; *)
-- DIFF IN AP214
-- DIFF IN AP203e2
-- DIFF IN AP238 STEP-NC
-- DIFF IN AP224
-- DIFF IN AP232
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
         BEGIN
            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;
            REPEAT i := 1 TO 3 BY 1;
               mag := mag + res.direction_ratios[i] * res.direction_ratios[i];
            END_REPEAT;
            IF mag > 0 THEN
               result := dummy_gri || vector(res, sqrt(mag));
            ELSE
               result := dummy_gri || vector(arg1, 0);
            END_IF;
            RETURN (result);
         END;
      END_IF;
END_FUNCTION;

Referenced By

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


[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2017-01-19T11:17:24-05:00