Integrated generic resource: Geometric and topological representation ISO 10303-42:2021(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms

4 Geometry
   4.1 General
   4.2 Fundamental concepts and assumptions
   4.3 Geometry constant definition
   4.4 Geometry type definitions
   4.5 Geometry entity definitions
   4.6 Geometry function definitions
   4.7 Geometry rule definitions
5 Topology
   5.1 General
   5.2 Fundamental concepts and assumptions
   5.3 Topology constant definition
   5.4 Topology type definitions
   5.5 Topology entity definitions
   5.6 Topology function definitions
6 Geometric model
   6.1 General
   6.2 Fundamental concepts and assumptions
   6.3 Geometric model type definitions
   6.4 Geometric model entity definitions
   6.5 Geometric model function definitions
7 Scan data 3d shape model
   7.1 General
   7.2 Fundamental concepts and assumptions
   7.3 Scan data 3d shape model type definition
   7.4 Scan data 3d shape model entity definitions
   7.5 Scan data 3d shape model function definitions

A Short names of entities
B Information object registration
C Computer interpretable listings
D EXPRESS-G diagrams
E Change history
Bibliography
Index

(*
ISO/TC 184/SC 4/WG 12 N10694 - ISO 10303-42 Geometric and topological representation - EXPRESS
Supersedes ISO/TC 184/SC 4/WG 12 N9204
*)



SCHEMA scan_data_3d_shape_model_schema;

REFERENCE FROM measure_schema   -- ISO 10303-41
  (global_unit_assigned_context,
   positive_length_measure);

REFERENCE FROM representation_schema   -- ISO 10303-43
  (representation,
   representation_item,
   using_representations);

REFERENCE FROM product_property_representation_schema   -- ISO 10303-41
  (shape_representation);

REFERENCE FROM support_resource_schema   -- ISO 10303-41
  (label);

REFERENCE FROM geometry_schema   -- ISO 10303-42
  (axis2_placement_3d,
   geometric_representation_item,
   geometric_representation_context);


TYPE point_cloud_set_or_superset = SELECT
   (point_cloud_dataset,
    point_cloud_superdataset);
END_TYPE;

ENTITY scan_data_shape_representation
  SUBTYPE OF (shape_representation);
  SELF\representation.items : SET[1:?] OF scanned_data_item;
WHERE
  WR1: 'REPRESENTATION_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(SELF\representation.context_of_items);
END_ENTITY;

ENTITY scanned_data_item
  SUPERTYPE OF (ONEOF (point_cloud_dataset,
                       point_cloud_superdataset,
                       triangulated_point_cloud_dataset,
                       scan_3d_model))
  SUBTYPE OF (geometric_representation_item);
WHERE
  WR1: SIZEOF(QUERY(using_rep <* using_representations(SELF) | NOT ('SCAN_DATA_3D_SHAPE_MODEL_SCHEMA.SCAN_DATA_SHAPE_REPRESENTATION' IN TYPEOF(using_rep)))) = 0;
END_ENTITY;

ENTITY point_cloud_dataset
  SUBTYPE OF (scanned_data_item);
  point_coordinates : LIST[1:?] OF LIST[3:3] OF REAL;
END_ENTITY;

ENTITY point_cloud_dataset_with_normals
  SUBTYPE OF (point_cloud_dataset);
  normals : LIST[1:?] OF LIST[3:3] OF REAL;
WHERE
  WR1: SIZEOF(normals) = SIZEOF(SELF\point_cloud_dataset.point_coordinates);
END_ENTITY;

ENTITY point_cloud_dataset_with_colours
  SUBTYPE OF (point_cloud_dataset);
  colour_indices : LIST[1:?] OF LIST[3:3] OF INTEGER;
WHERE
  WR1: SIZEOF(colour_indices) = SIZEOF(SELF\point_cloud_dataset.point_coordinates);
END_ENTITY;

ENTITY point_cloud_dataset_with_intensities
  SUBTYPE OF (point_cloud_dataset);
  intensities : LIST[1:?] OF REAL;
WHERE
  WR1: SIZEOF(intensities) = SIZEOF(SELF\point_cloud_dataset.point_coordinates);
END_ENTITY;

ENTITY point_cloud_superdataset
  SUBTYPE OF (scanned_data_item);
  pts_per_sublist : INTEGER;
  sublists : LIST[2:?] OF point_cloud_dataset;
WHERE
  WR1: consistent_sizes(SELF.pts_per_sublist, SELF.sublists);
END_ENTITY;

ENTITY triangulated_point_cloud_dataset
  SUBTYPE OF (scanned_data_item);
  points : point_cloud_set_or_superset;
  triangles : LIST[1:?] OF LIST[3:3] OF INTEGER;
END_ENTITY;

ENTITY scan_3d_model
  SUBTYPE OF (scanned_data_item);
  scanner_info : SET[1:?] OF scanner_property;
  scanned_points : SET[1:?] OF scanned_data_item;
WHERE
  WR1: SIZEOF(QUERY(tmp <* scanned_points | 'SCAN_DATA_3D_SHAPE_MODEL_SCHEMA.SCAN_3D_MODEL' IN TYPEOF(tmp))) = 0;
END_ENTITY;

ENTITY scanner_property
  ABSTRACT SUPERTYPE
  SUBTYPE OF (representation_item);
END_ENTITY;

ENTITY scanner_basic_properties
  SUBTYPE OF (scanner_property);
  scanner_identification : label;
  scanner_location : axis2_placement_3d;
  scanner_uncertainty : OPTIONAL positive_length_measure;
END_ENTITY;

FUNCTION consistent_sizes
 (max : INTEGER; point_lists : LIST OF point_cloud_dataset) : BOOLEAN;
  LOCAL
  ndatasets : INTEGER := SIZEOF(point_lists);
  result : BOOLEAN := TRUE;
    END_LOCAL;
      REPEAT i := 1 TO (ndatasets - 1);
    IF (SIZEOF(point_lists[i].point_coordinates) <> max)
    THEN
      result := FALSE;
      RETURN(result);
    END_IF;
  END_REPEAT;
      IF (SIZEOF(point_lists[ndatasets].point_coordinates) > max)
  THEN
    result := FALSE;
    RETURN(result);
  END_IF;
      RETURN(result);
END_FUNCTION;

END_SCHEMA;  -- scan_data_3d_shape_model_schema


© ISO 2021 — All rights reserved