|
FUNCTION constraints_param_b_spline (degree : INTEGER, up_knots : INTEGER, up_cp : INTEGER, knot_mult : LIST [0:?] OF INTEGER, knots : LIST [0:?] OF parameter_value) : BOOLEAN; LOCAL result : BOOLEAN := TRUE ; k , sum : INTEGER ; END_LOCAL ; sum := knot_mult [ 1 ] ; REPEAT i := 2 TO up_knots ; sum := sum + knot_mult [ i ] ; END_REPEAT ; IF ( degree < 1 ) OR ( up_knots < 2 ) OR ( up_cp < degree ) OR ( sum <> ( degree + up_cp + 2 ) ) THEN result := FALSE ; RETURN ( result ) ; END_IF ; k := knot_mult [ 1 ] ; IF ( k < 1 ) OR ( k > degree + 1 ) THEN result := FALSE ; RETURN ( result ) ; END_IF ; REPEAT i := 2 TO up_knots ; IF ( knot_mult [ i ] < 1 ) OR ( knots [ i ] <= knots [ i - 1 ] ) THEN result := FALSE ; RETURN ( result ) ; END_IF ; k := knot_mult [ i ] ; IF ( i < up_knots ) AND ( k > degree ) THEN result := FALSE ; RETURN ( result ) ; END_IF ; IF ( i = up_knots ) AND ( k > degree + 1 ) THEN result := FALSE ; RETURN ( result ) ; END_IF ; END_REPEAT ; RETURN ( result ) ; END_FUNCTION; -- constraints_param_b_spline |
|
public class FConstraints_param_b_spline public static Value run(SdaiContext _context, Value degree, Value up_knots, Value up_cp, Value knot_mult, Value knots) |