Overview Schemas Index

AIC_MANIFOLD_SURFACE (jsdai.SAic_manifold_surface)


FUNCTION msf_surface_check
          (surf : surface) : BOOLEAN;

IF 'AIC_MANIFOLD_SURFACE.ELEMENTARY_SURFACE' IN  TYPEOF(surf) THEN
    RETURN(TRUE);
  ELSE  

    (* a swept_surface shall have a valid sweeping curve
     *)
    IF  'AIC_MANIFOLD_SURFACE.SWEPT_SURFACE' IN  TYPEOF  (surf) THEN  
      RETURN  (msf_curve_check(surf\swept_surface.swept_curve));  
    ELSE  
 
      (* an offset_surface shall NOT  self-intersect AND shall
         REFERENCE a valid surface
       *)
      IF  (('AIC_MANIFOLD_SURFACE.OFFSET_SURFACE' IN  TYPEOF (surf)) AND
        (surf\offset_surface.self_intersect = FALSE) OR 
        (surf\offset_surface.self_intersect = UNKNOWN)) THEN
        RETURN (msf_surface_check(surf\offset_surface.basis_surface));
      ELSE 
 
        (* a surface_replica shall have a valid parent surface
         *)
        IF  'AIC_MANIFOLD_SURFACE.SURFACE_REPLICA' IN  TYPEOF(surf) THEN 
          RETURN(msf_surface_check(surf\surface_replica.parent_surface)); 
        ELSE

          (* a b_spline_surface shall NOT self-intersect
           *)
          IF (('AIC_MANIFOLD_SURFACE.B_SPLINE_SURFACE' IN TYPEOF(surf)) AND
            (surf\b_spline_surface.self_intersect = FALSE) OR
            (surf\b_spline_surface.self_intersect = UNKNOWN)) THEN
            RETURN(TRUE);
          END_IF;
        END_IF; 
      END_IF; 
    END_IF; 
  END_IF; 
  RETURN(FALSE);

END_FUNCTION; -- msf_surface_check

public class FMsf_surface_check
          public static Value run(SdaiContext _context, Value surf)