FUNCTION msf_curve_check

(* SCHEMA AUTOMOTIVE_DESIGN; *)
 
FUNCTION msf_curve_check(cv : representation_item) : BOOLEAN;
  IF SIZEOF(['AUTOMOTIVE_DESIGN.BOUNDED_CURVE', 'AUTOMOTIVE_DESIGN.CONIC'
  , 'AUTOMOTIVE_DESIGN.CURVE_REPLICA', 'AUTOMOTIVE_DESIGN.LINE', 
  'AUTOMOTIVE_DESIGN.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN
    RETURN (FALSE);
  END_IF;
  IF ('AUTOMOTIVE_DESIGN.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\
  b_spline_curve.self_intersect = FALSE) OR (cv\b_spline_curve.self_intersect
   = UNKNOWN) THEN
    RETURN (TRUE);
  ELSE
    IF SIZEOF(['AUTOMOTIVE_DESIGN.CONIC', 'AUTOMOTIVE_DESIGN.LINE'] * 
    TYPEOF(cv)) = 1 THEN
      RETURN (TRUE);
    ELSE
      IF 'AUTOMOTIVE_DESIGN.CURVE_REPLICA' IN TYPEOF(cv) THEN
        RETURN (msf_curve_check(cv\curve_replica.parent_curve));
      ELSE
        IF ('AUTOMOTIVE_DESIGN.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\
        offset_curve_3d.self_intersect = FALSE) OR (cv\offset_curve_3d.
        self_intersect = UNKNOWN)) AND NOT ('AUTOMOTIVE_DESIGN.POLYLINE' IN 
        TYPEOF(cv\offset_curve_3d.basis_curve)) THEN
          RETURN (msf_curve_check(cv\offset_curve_3d.basis_curve));
        ELSE
          IF 'AUTOMOTIVE_DESIGN.PCURVE' IN TYPEOF(cv) THEN
            RETURN (msf_curve_check(cv\pcurve.reference_to_curve\representation
            .items[1]) AND msf_surface_check(cv\pcurve.basis_surface));
          ELSE
            IF 'AUTOMOTIVE_DESIGN.SURFACE_CURVE' IN TYPEOF(cv) THEN
              IF msf_curve_check(cv\surface_curve.curve_3d) THEN
                REPEAT i := 1 TO SIZEOF(cv\surface_curve.associated_geometry);
                  IF 'AUTOMOTIVE_DESIGN.SURFACE' IN TYPEOF(cv\surface_curve.
                  associated_geometry[i]) THEN
                    IF NOT msf_surface_check(cv\surface_curve.
                    associated_geometry[i]) THEN
                      RETURN (FALSE);
                    END_IF;
                  ELSE
                    IF 'AUTOMOTIVE_DESIGN.PCURVE' IN TYPEOF(cv\surface_curve
                    .associated_geometry[i]) THEN
                      IF NOT msf_curve_check(cv\surface_curve.
                      associated_geometry[i]) THEN
                        RETURN (FALSE);
                      END_IF;
                    END_IF;
                  END_IF;
                END_REPEAT;
                RETURN (TRUE);
              END_IF;
            ELSE
              IF 'AUTOMOTIVE_DESIGN.POLYLINE' IN TYPEOF(cv) THEN
                IF SIZEOF(cv\polyline.points) >= 3 THEN
                  RETURN (TRUE);
                END_IF;
              END_IF;
            END_IF;
          END_IF;
        END_IF;
      END_IF;
    END_IF;
  END_IF;
  RETURN (FALSE);
END_FUNCTION; (* declared in: aic_manifold_surface *)

Referenced By

Defintion msf_curve_check is references by the following definitions:
DefinitionType
 manifold_surface_shape_representation ENTITY
 msf_surface_check FUNCTION


[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:16:12-04:00