Overview Schemas Index

AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME (jsdai.SAic_geometrically_bounded_2d_wireframe)


FUNCTION valid_basis_curve_in_2d_wireframe
          (crv : curve) : BOOLEAN;

IF SIZEOF  (['AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.POLYLINE',
               'AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.B_SPLINE_CURVE',
               'AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.ELLIPSE',
               'AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.CIRCLE'] * 
               TYPEOF  (crv)) = 1
    THEN  RETURN  (TRUE);
  ELSE
    -- IF  the curve is a trimmed_curve
    IF  (('AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.TRIMMED_CURVE') 
    IN  TYPEOF  (crv)) THEN
      -- IF  a line, parabola, OR hyperbola is being trimmed, THEN  valid
      IF  SIZEOF (['AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.LINE',
                   'AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.PARABOLA',
                   'AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.HYPERBOLA'] *
           TYPEOF(crv\trimmed_curve.basis_curve)) = 1
        THEN  RETURN  (TRUE);
      -- otherwise, recursively check basis_curve
      ELSE RETURN  (valid_basis_curve_in_2d_wireframe
                         (crv\trimmed_curve.basis_curve));
      END_IF;
    ELSE
      -- recursively check the offset_curve basis curve
      IF  (('AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.OFFSET_CURVE_2D') 
      IN  TYPEOF  (crv))
        THEN  RETURN  (valid_basis_curve_in_2d_wireframe
                           (crv\offset_curve_2d.basis_curve));
      ELSE
        -- recursively check the curve_replica parent curve
        IF  (('AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.CURVE_REPLICA') 
        IN  TYPEOF  (crv))
          THEN RETURN  (valid_basis_curve_in_2d_wireframe
                         (crv\curve_replica.parent_curve));
        ELSE
          -- recursively check the composite_curve segments
          IF (('AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.COMPOSITE_CURVE') 
          IN TYPEOF (crv)) THEN
            RETURN  (SIZEOF (QUERY (ccs <* crv\composite_curve.segments |
                      NOT (valid_basis_curve_in_2d_wireframe
                             (ccs.parent_curve)))) = 0);
          END_IF;
        END_IF;
      END_IF;
    END_IF;
  END_IF;
  RETURN (FALSE);

END_FUNCTION; -- valid_basis_curve_in_2d_wireframe

public class FValid_basis_curve_in_2d_wireframe
          public static Value run(SdaiContext _context, Value crv)