ГОС! Р ИСО 10303-203-2003
FUNCTION orthogonal_complcment(vcc: direction): direction;
LOCAL
result : direction;
END_LOCAL ;
IF (vec.dim < > 2) OR (NOT EXISTS!vec)) THEN RETURN (?);
ELSE
result :=■dumnty_gri | ]direction (|-vec.direction_ratios|2J, vcc.
direction_ratios |lj|) ;
RETURN (result) ;
END_IF;
END_FUNCTION; - - orthogonaJ_complemenl
FUNCTION path_hcadjo_tail(a_path: path); LOGICAL:
LOCAL
n : INTEGER;
p : ВСЮLEAN : - TRUE ;
END_LOCAL;
n :«* SIZEOF(a_path.cdgc_list):
REPEAT i2 TO n BY I;
p := p AND (a_path.edgejist[i - l|.cdge_end :~: a_path.cdgc_list|i|
,edge_start) ;
END_REPEAT;
RETURN (p) ;
END.FUNCTION; - - path_head_to_tail
FUNCTION path_revcrscd(a_path: path): oricntcd_palh;
LOCAL
thc_revcrse : oricntcd_path;
END_LC)CAL :
IF CONFIGJTONTROL_DESIGN.ORIENTED_PATH’ IN TYPEOF(a_path) THEN
thc_rcvcrse : *=dummy_tri 11path(list_of_topok>gy_rcverscd(a_path.
edgejist)) 11oriented_path(a_path\oricntcd_path.palh_eIcment,
NOT a_path\oricntcd_path.oricntation) ;
ELSE
lhe_revctse := dummy_tri 11path(list_ofJopology_rcvcrscd(a_path.
edgejist)) 11oncnted_path(a_path, FALSE):
EN D JF;
RETURN (thc_rcvcrsc) :
END_FUNCTION; - - path.reversed
FUNCTION scalar_timcs_vector (scalar: REAL:
vet: vector_or_dircction): vector:
LOCAL
v: direction;
mag; REAL;
result: vector:
END_LOCAL ;
IF (NOT EXISTS(scalar)) OR (NOT EXISTS(vec)) THEN RETURN(?>;
ELSE
IF ’CONFIG_CONTROL_DESIGN.VECTOR’ IN TYPEOF (vcc) THEN
v :■=dummy_gri 11direction(vcc.oricntation.direction_ratios);
magscalar * vcc.magnitude;
ELSE
v := dummy_gri 11direction(vcc.dircction_ralios);
m agscalar:
E N D JF;
IF mag < 0 THEN
REPEAT i :=■ I TO SIZEOF (v.dircct»n_ratios) BY I;
v.dircction_ratu>s|i| :e -v.dircction_ratios|i|;
END_REPEAT ;
200