FUNCTION nmsf_curve_check

(* SCHEMA ship_moulded_form_schema; *)
  FUNCTION nmsf_curve_check(
               cv: representation_item
      ): BOOLEAN;
    IF SIZEOF(['SHIP_MOULDED_FORM_SCHEMA.BOUNDED_CURVE',
        'SHIP_MOULDED_FORM_SCHEMA.CONIC',
        'SHIP_MOULDED_FORM_SCHEMA.CURVE_REPLICA',
        'SHIP_MOULDED_FORM_SCHEMA.LINE',
        'SHIP_MOULDED_FORM_SCHEMA.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN
      RETURN(FALSE);
    ELSE
      IF (('SHIP_MOULDED_FORM_SCHEMA.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(['SHIP_MOULDED_FORM_SCHEMA.CONIC',
            'SHIP_MOULDED_FORM_SCHEMA.LINE'] * TYPEOF(cv)) = 1 THEN
          RETURN(TRUE);
        ELSE
          IF 'SHIP_MOULDED_FORM_SCHEMA.CURVE_REPLICA' IN TYPEOF(cv) THEN
            RETURN(nmsf_curve_check(cv\curve_replica.parent_curve));
          ELSE
            IF ('SHIP_MOULDED_FORM_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(cv)) 
                AND ((cv\offset_curve_3d.self_intersect = FALSE) OR (cv\
                offset_curve_3d.self_intersect = UNKNOWN)) AND (NOT (
                'SHIP_MOULDED_FORM_SCHEMA.POLYLINE' IN TYPEOF(cv\
                offset_curve_3d.basis_curve))) THEN
              RETURN(nmsf_curve_check(cv\offset_curve_3d.basis_curve));
            ELSE
              IF 'SHIP_MOULDED_FORM_SCHEMA.PCURVE' IN TYPEOF(cv) THEN
                RETURN(nmsf_curve_check(cv\pcurve.reference_to_curve\
                    representation.items[1]) AND nmsf_surface_check(cv\
                    pcurve.basis_surface));
              ELSE
                IF 'SHIP_MOULDED_FORM_SCHEMA.SURFACE_CURVE' IN TYPEOF(cv)
                     THEN
                  IF nmsf_curve_check(cv\surface_curve.curve_3d) THEN
                    REPEAT i := 1 TO SIZEOF(cv\surface_curve.
                        associated_geometry) BY 1;
                      IF 'SHIP_MOULDED_FORM_SCHEMA.SURFACE' IN TYPEOF(cv\
                          surface_curve.associated_geometry[i]) THEN
                        IF NOT nmsf_surface_check(cv\surface_curve.
                            associated_geometry[i]) THEN
                          RETURN(FALSE);
                        END_IF;
                      ELSE
                        IF 'SHIP_MOULDED_FORM_SCHEMA.PCURVE' IN TYPEOF(cv\
                            surface_curve.associated_geometry[i]) THEN
                          IF NOT nmsf_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 'SHIP_MOULDED_FORM_SCHEMA.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;
    END_IF;
    RETURN(FALSE);

  END_FUNCTION; -- nmsf_curve_check

Referenced By

Defintion nmsf_curve_check is references by the following definitions:
DefinitionType
 nmsf_surface_check FUNCTION
 non_manifold_surface_shape_representation ENTITY


[Top Level Definitions] [Exit]

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