ГОСТ Р ИСО 10303-203-2003
REPEAT I := 2 ТО upjcnots BY I;
sum := sum + kncX_mult|i];
END_REPEAT;
IF (degree < I) OR (up_knots < 2) OR <up_cp < degree) OR (sum < > (
degree + up_cp * 2» THEN resultFALSE;
RETURN (result);
ENDJF;
к :«*knot_mult[lj;
IF (k < 1) OR <k > (degree + I)) THEN result:» FALSE;
RETURN (result);
ENDJF;
REPEAT i :» 2 TO up knots BY I;
IF (knot_mull|i| < 1) OR (knots |i] <=■ knots |i - 1]) THEN
result :™FALSE;
RETURN (result);
E N D JF;
к :« knot_mull|i|;
IF (i < up_knots) AND (k > degree) THEN
result :=■FALSE;
RETURN (result);
ENDJF;
IF (i - upjnots) AND (k > (degree + I)) THEN
result :• FALSE;
RETURN (result);
END IF;
END_REPEAT;
RETURN (result) ;
END_FUNCTION; -- constraints_param_b_Splinc
11
FUNCTION constraints_rectangular_compositc_surface (
s: rectangular composite_surfacc); BOOLEAN;
REPEAT! :* I TO vn_u BY 1;
REPEATj ; - 1 TO s.n_v BY I ;
IF NOT ((’CONFIG_CONTROL_DESIGN.B_SPLINE_SURFACE’ IN TYPEOF(s.
segments (i)(j).parent_surface)) OR (
’CONFIG_CONTROL_DESIGN.RECTANGUL‘\R_TRIMMED_SLRFACE‘ IN TYPEORs
segments [i|lj|.parcni_surfacc ))) THEN
RETURN (FALSE) ;
END_IF;
END_REPEAT;
END_REPEAT;
REPEAT i := 1TO s.n_u -I BY I;
REPEATj:= I TO s.n_v BY I;
IF s.scgments(i|[j|.u_lninsition = discontinuous THEN
RETURN (FALSE);
ENDJF:
END_REPEAT ;
END_REPEAT ;
REPEAT iI T O sn.u BY I;
REPEATj ;= I TO s.n_v - 1 BY I;
IF s.scgments[i]U| v_transi on = discontinuous THEN
RETURN (FALSE):
E N D JF ;
END_REPEAT :
END_REPEAT;
RETURN (TRUE) ;
END_FUNCT10N; - - cons1raints_rcctangular compositc_surfacc
FUNCTION cross_product(argl. arg2: direction): vector;
LOCAL
187