Overview Schemas Index

GEOMETRY_SCHEMA (jsdai.SGeometry_schema)


FUNCTION cross_product
          (arg1 : direction, arg2 : direction) : vector;

 LOCAL mag : REAL  ; res : direction ; v1 , 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.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 ; END_IF ; 

END_FUNCTION; -- cross_product

public class FCross_product
          public static Value run(SdaiContext _context, Value arg1, Value arg2)