FUNCTION gbsf_check_surface
(* SCHEMA step_ship_schema; *)
-- ONLY IN AP203
FUNCTION gbsf_check_surface(sf: surface): BOOLEAN;
IF (('STEP_SHIP_SCHEMA.B_SPLINE_SURFACE' IN TYPEOF(sf)) AND (sf\
b_spline_surface.self_intersect = FALSE)) OR (sf\b_spline_surface.
self_intersect = UNKNOWN) THEN RETURN(TRUE);
ELSE
IF SIZEOF(['STEP_SHIP_SCHEMA.SPHERICAL_SURFACE',
'STEP_SHIP_SCHEMA.TOROIDAL_SURFACE'] * TYPEOF(sf)) = 1 THEN
RETURN(TRUE);
ELSE
IF 'STEP_SHIP_SCHEMA.CURVE_BOUNDED_SURFACE' IN TYPEOF(sf)
THEN
IF SIZEOF(['STEP_SHIP_SCHEMA.CONICAL_SURFACE',
'STEP_SHIP_SCHEMA.CYLINDRICAL_SURFACE',
'STEP_SHIP_SCHEMA.PLANE'] * TYPEOF(sf\
curve_bounded_surface.basis_surface)) = 1 THEN
RETURN(SIZEOF(QUERY ( bcurve <* sf\curve_bounded_surface.
boundaries | (NOT gbsf_check_curve(bcurve)) )) = 0);
ELSE
IF gbsf_check_surface(sf\curve_bounded_surface.basis_surface)
THEN
RETURN(SIZEOF(QUERY ( bcurve <* sf\curve_bounded_surface.
boundaries | (NOT gbsf_check_curve(bcurve)) )) = 0);
END_IF;
END_IF;
ELSE
IF (('STEP_SHIP_SCHEMA.OFFSET_SURFACE' IN TYPEOF(sf)) AND (
sf\offset_surface.self_intersect = FALSE)) OR (sf\
offset_surface.self_intersect = UNKNOWN) THEN
RETURN(gbsf_check_surface(sf\offset_surface.basis_surface));
ELSE
IF 'STEP_SHIP_SCHEMA.RECTANGULAR_COMPOSITE_SURFACE' IN
TYPEOF(sf) THEN
REPEAT i := 1 TO SIZEOF(sf\rectangular_composite_surface.
segments) BY 1;
REPEAT j := 1 TO SIZEOF(sf\rectangular_composite_surface.
segments[i]) BY 1;
IF NOT gbsf_check_surface(sf\
rectangular_composite_surface.segments[i][j].
parent_surface) THEN RETURN(FALSE);
END_IF;
END_REPEAT;
END_REPEAT;
RETURN(TRUE);
ELSE
IF 'STEP_SHIP_SCHEMA.RECTANGULAR_TRIMMED_SURFACE' IN
TYPEOF(sf) THEN
IF SIZEOF(['STEP_SHIP_SCHEMA.CONICAL_SURFACE',
'STEP_SHIP_SCHEMA.CYLINDRICAL_SURFACE',
'STEP_SHIP_SCHEMA.PLANE'] * TYPEOF(sf\
rectangular_trimmed_surface.basis_surface)) = 1 THEN
RETURN(TRUE);
ELSE
RETURN(gbsf_check_surface(sf\rectangular_trimmed_surface
.basis_surface));
END_IF;
ELSE
IF 'STEP_SHIP_SCHEMA.SURFACE_REPLICA' IN TYPEOF(sf)
THEN
RETURN(gbsf_check_surface(sf\surface_replica.
parent_surface));
ELSE
IF 'STEP_SHIP_SCHEMA.SWEPT_SURFACE' IN TYPEOF(sf)
THEN
RETURN(gbsf_check_curve(sf\swept_surface.swept_curve));
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_surface is references by the following definitions:
[Top Level Definitions] [Exit]Generated by STEP ToolsTM EXPRESS to HTML Converter
on 2007-09-24T12:42:22-04:00