Overview Schemas Index

AIC_GEOMETRICALLY_BOUNDED_SURFACE (jsdai.SAic_geometrically_bounded_surface)


FUNCTION gbsf_check_surface
          (sf : surface) : BOOLEAN;

 IF  ( ( 'aic_geometrically_bounded_surface.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  ( [ 'aic_geometrically_bounded_surface.spherical_surface' , 'aic_geometrically_bounded_surface.toroidal_surface' , 'aic_geometrically_bounded_surface.curve_bounded_surface' , 'aic_geometrically_bounded_surface.rectangular_trimmed_surface' ] * TYPEOF  ( sf ) ) = 1 THEN  RETURN  ( TRUE  ) ; ELSE  IF  ( ( 'aic_geometrically_bounded_surface.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  'aic_geometrically_bounded_surface.rectangular_composite_surface' IN  TYPEOF  ( sf ) THEN  REPEAT  i := 1 TO  SIZEOF  ( sf \ rectangular_composite_surface . segments ) ; REPEAT j := 1 TO SIZEOF ( sf \ rectangular_composite_surface . segments [ i ] ) ; 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  'aic_geometrically_bounded_surface.surface_replica' IN  TYPEOF  ( sf ) THEN  RETURN  ( gbsf_check_surface ( sf \ surface_replica . parent_surface ) ) ; ELSE IF 'aic_geometrically_bounded_surface.surface_of_revolution' 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 ; RETURN ( FALSE ) ; 

END_FUNCTION; -- gbsf_check_surface

public class FGbsf_check_surface
          public static Value run(SdaiContext _context, Value sf)