ГОСТ Р ИСО 10303-203-2003
ndim: INTEGER;
scalar: REAL;
vecI: direction;
vec2: direction:
END_LOC’AL :
IF (NOT EXISTS(argl)) OR (NOT EXISTS(atg2)) THEN
scalar!“ ?;
ELSE
IF argl.diin < > arg2.dim THEN scalar :• ?;
ELSE
BEGIN
vecI; ■ normalisc(argl);
vec2: = normalise(arg2);
ndim; = argl.dim;
scalar: * 0 ;
REPEAT i : ■= I TO ndim BY I;
scalar : = scalar + (vec l.dircction_ratios|i| * vcc2.
direction ratios |i|>;
END_REPEAT;
END:
E N D JF;
END_IF;
RETURN (scalar);
END.FUNCTION; - - dot_product
FUNCTION cdgc_rcvcrscd(an_cdgc; edge): oricnted_cdgc;
LOCAL
the_rcvcrse : oricntcd_cdgc:
END_LOCAL :
IF ’CONFIG_C’ONTROL_DESIGN.ORIENTED_EDGE’ IN TYPEOF(an_cdge) THEN
thc_rcvcrsc := dummy_tri 11cdge(an_cdgc.cdgc_cnd. an_edgc.edgc_start)
11orientcd_cdge (an_edge\orientcd_cdgc.cdgc_clcmcnt. NOT an_cdgc\
oncntcd_cdgc.orientation) ;
ELSE
lhe_rcvcrsc :* dummy_tri jjcdgc(an_cdge.cdgc_cnd, an_cdge.cdgc_start)
11oriented edge (an_edgc. FALSE) ;
ENDJF;
RETURN <thc_rcvcrsc) ;
END_FUNCTION; - - cdgc_rcvcrsc4l
FUNCTION facc_bound_rcvcrscd(a_facc_b<Hind: lace bound): face bound:
LOCAL
the reverse : face bound;
END_LOCAL;
IF *CONFIG_CONTROL_DESIGN.FACE_OLTER_BOUND’ IN TYPEOF(a_facc_bound>
THEN
the_rcverse := dummy_tri
]
Ifacc_bound(a_face_bound\face_bound.bound.
NOT a face bound\face_bound.oricntation) 11 facc_outcr_bound( );
ELSE
the_rcverscdummy tri !;face_.bound(a_facc_bound.bound, NOT
a_face_bound.oricntation);
END_1F:
RETURN <thc_rcvcrw:) ;
END_FUNCTION; - - face_bound_rcverscd
FUNCTION face_rcvetsed(a_facc: face): oricntcd_facc:
LOCAL
thereverse : oricntcd_facc;
END_LOCAL :
IF CONFIG_CONTROL_DESIGN.ORIENTED_FACE‘ IN TYPEOF(aJace) THEN
190