Overview Schemas Index

AIC_NON_MANIFOLD_SURFACE (jsdai.SAic_non_manifold_surface)


FUNCTION nmsf_surface_check
          (surf : surface) : BOOLEAN;

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

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

          (* a b_spline_surface shall NOT self-intersect
           *)
          IF (('AIC_NON_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; -- nmsf_surface_check

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