FUNCTION IfcNormalise
(* SCHEMA IFC2X2_FINAL; *)
FUNCTION IfcNormalise
(Arg : IfcVectorOrDirection)
: IfcVectorOrDirection;
LOCAL
Ndim : INTEGER;
V : IfcDirection
:= IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([1.,0.]);
Vec : IfcVector
:= IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector (
IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([1.,0.]), 1.);
Mag : REAL;
Result : IfcVectorOrDirection
:= V;
END_LOCAL;
IF NOT EXISTS (Arg) THEN
RETURN (?);
ELSE
Ndim := Arg.Dim;
IF 'IFC2X2_FINAL.IFCVECTOR' 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.DirectionRatios[i]*V.DirectionRatios[i];
END_REPEAT;
IF Mag > 0.0 THEN
Mag := SQRT(Mag);
REPEAT i := 1 TO Ndim;
V.DirectionRatios[i] := V.DirectionRatios[i]/Mag;
END_REPEAT;
IF 'IFC2X2_FINAL.IFCVECTOR' 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 IfcNormalise is references by the following definitions:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:20:56-04:00