ГОСТ Р ИС0 10303-509—2009
ELSE
(* conic и line являются допустимыми типами объекта curve
*)
IF SIZEOF (fA!C_MANIFOLD_SURFACE.CONIC’. ,AIC_MANIFOLD_SURFACE.LINE’]
* TYPEOF (cv))=1 THEN
RETURN(TRUE):
ELSE
(* объект curve_replica должен ссылаться на допустимый объект curve
*)
IF ’AIC_MANIFOLD_SURFACE.CURVE_REPLICA’IN TYPEOF (cv)THEN
RETURN (msf_curve_checfc(cv\curve_replica.parent_curve));
ELSE
(* объект offset_curve_3d недолжен самолересекаться и должен ссылаться надопустимый объект
curve; объект polyline не является допустимым типом объекта basis_curve
*)
IF (fAIC_MANIFOLD_SURFACE.OFFSET_CURVE_3D’ IN TYPEOF (cv))
AND
((cv\offset_curve_3d.self_intersect = FALSE) OR
(cv\offset_curve_3d.seff_intersect = UNKNOWN))
AND
(NOT (’AIC_MANIFOLD_SURFACE.POLYLINE’ IN TYPEOF
(cv\offset_curve_3d.basis_curve)))) THEN
RETURN (msf_curve_check (cv\offset_curve_3d.basis_curve)):
ELSE
(* объект p_curve должен ссылаться на допустимые объекты curve и basis_surface
*)
IF ’AIC_MANIFOLD_SURFACE.PCURVE’ IN TYPEOF (cv)THEN
RETURN ((msf_curve_check
(cv\pcurve.reference_to_curveVepresentation.items [1]))AND
(msf_surface_cbeck(cvrtpcurve.basis_surface)));
ELSE
(* объект surface_curve ссылается на объект curve_3d и на один или два объекта рcurve, или на
один или два объекта surface, или на один из них; все ссылки должны быть допустимыми
*)
IF ’AIC_MANIFOLD_SURFACE.SURFACE_CURVE’ IN TYPEOF (cv) THEN
(* если ссылка на объект curve является правильной,
то проверяются также остальные
*)
IF rnsf_curve_check(cv\surface_curve.curve_3d) THEN
REPEAT i : = 1 TO SIZEOF
(cv\surface_curve.associated_geometry);
(* выполняется для одного или двух объектов associated_geometry;
*)
IF ’AIC_MANIFOLD_SURFACE.SURFACE IN
TYPEOF (cv\surface_curve.associated_geometry [i]) THEN
IF NOT msf_surface_check
(cv’surface_curve.assodated_geometry [i]) THEN
RETURN (FALSE);
ENDJF;
ELSE
IF ’AIC_MANIFOLD_SURFACE.PCURVE‘IN TYPEOF
(cv\surface_curve.associated_geometry [i]) THEN
IF NOT msf_curve_check
(cv\surface_curve.associated_geometry (i]) THEN
RETURN (FALSE);
12