FUNCTION gbsf_check_curve
(* SCHEMA Ap236_furniture_catalog_and_interior_design_mim_LF; *)
(* Implicit interfaced from: aic_geometrically_bounded_surface *)
FUNCTION gbsf_check_curve
(cv : representation_item) : BOOLEAN;
IF SIZEOF(['AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.BOUNDED_CURVE', 'AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.CONIC', 'AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.CURVE_REPLICA', 'AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.LINE', 'AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN
RETURN (FALSE);
END_IF;
IF SIZEOF(['AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.CIRCLE', 'AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.ELLIPSE', 'AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.TRIMMED_CURVE'] * TYPEOF(cv)) = 1 THEN
RETURN (TRUE);
ELSE
IF (('AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\b_spline_curve.self_intersect = FALSE) OR (cv\b_spline_curve.self_intersect = UNKNOWN)) THEN
RETURN (TRUE);
ELSE
IF (('AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.COMPOSITE_CURVE' IN TYPEOF(cv)) AND (cv\composite_curve.self_intersect = FALSE) OR (cv\composite_curve.self_intersect = UNKNOWN)) THEN
RETURN (SIZEOF(QUERY(seg <* cv\composite_curve.segments | NOT (gbsf_check_curve(seg.parent_curve)))) = 0);
ELSE
IF 'AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) THEN
RETURN (gbsf_check_curve(cv\curve_replica.parent_curve));
ELSE
IF (('AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\offset_curve_3d.self_intersect = FALSE) OR (cv\offset_curve_3d.self_intersect = UNKNOWN)) AND (NOT ('AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.POLYLINE' IN TYPEOF(cv\offset_curve_3d.basis_curve)))) THEN
RETURN (gbsf_check_curve(cv\offset_curve_3d.basis_curve));
ELSE
IF 'AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.PCURVE' IN TYPEOF(cv) THEN
RETURN ((gbsf_check_curve(cv\pcurve.reference_to_curve\representation.items[1])) AND (gbsf_check_surface(cv\pcurve.basis_surface)));
ELSE
IF 'AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.POLYLINE' IN TYPEOF(cv) THEN
IF (SIZEOF(cv\polyline.points) >= 3) THEN
RETURN (TRUE);
END_IF;
ELSE
IF 'AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) THEN
IF gbsf_check_curve(cv\surface_curve.curve_3d) THEN
REPEAT i := 1 TO SIZEOF(cv\surface_curve.associated_geometry);
IF 'AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.SURFACE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN
IF NOT gbsf_check_surface(cv\surface_curve.associated_geometry[i]) THEN
RETURN (FALSE);
END_IF;
ELSE
IF 'AP236_FURNITURE_CATALOG_AND_INTERIOR_DESIGN_MIM_LF.PCURVE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN
IF NOT gbsf_check_curve(cv\surface_curve.associated_geometry[i]) THEN
RETURN (FALSE);
END_IF;
END_IF;
END_IF;
END_REPEAT;
RETURN (TRUE);
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
RETURN (FALSE);
END_FUNCTION;
Referenced By
Defintion gbsf_check_curve is references by the following definitions:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:19:03-04:00