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

7 Scan data 3d shape model schema

7.1 General

The subject of the scan_data_3d_shape_model schema is the set of basic resources necessary for the communication of data describing the representation of a shape as a cloud of points produced by a scanning process.

This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following EXPRESS declaration begins the scan_data_3d_shape_model_schema and identifies the necessary external references.

Each implementation of an AP that uses this schema and that encodes entity names shall use the encoding specified in Annex A. Each reference to this schema in an open system shall use the identifier encoding specified in Annex B. This schema is illustrated in Annex D using the EXPRESS-G notation.

EXPRESS specification:

*)
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);
(*

NOTE 1   The schemas referenced above are specified in the following parts:

measure_schema ISO 10303-41
representation_schema ISO 10303-43
product_property_representation_schema ISO 10303-41
support_resource_schema ISO 10303-41
geometry_schema ISO 10303-42

NOTE 2   See Annex D for a graphical representation of this schema.

7.2 Fundamental concepts and assumptions

7.3 scan_data_3d_shape_model_schema type definition

7.3.1 point_cloud_set_or_superset   EXPRESS-G

The point_cloud_set_or_superset select type collects together, for reference when constructing more complex models, sets and supersets of point clouds.

EXPRESS specification:

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

7.4 scan_data_3d_shape_model_schema entity definitions

7.4.1 scan_data_shape_representation   EXPRESS-G

A scan_data_shape_representation is a type of shape_representation in which the geometry of a 3D shape is approximately represented by a set of point cloud data produced by a scanner.

EXPRESS specification:

*)
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;
(*

Attribute definitions:

items: the scanned_data_items defining the shape;

Formal propositions:

WR1: The context of the scan_data_shape_representation shall be a global_unit_assigned_context. This ensures that the coordinates used to define the points of the scan data geometry have defined units.

7.4.2 scanned_data_item   EXPRESS-G

A scanned_data_item is a type of geometric_representation_item that represents an element of geometric data produced by a scanner. A scanned_data_item is required to be used in a scan_data_shape_representation.

EXPRESS specification:

*)
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;
(*

Formal propositions:

WR1: Each scanned_data_item shall be used in a scan_data_shape_representation.

7.4.3 point_cloud_dataset   EXPRESS-G

A point_cloud_dataset is a type of scanned_data_item, and represents the geometry of a cloud of points produced by a scanner.

NOTE 1   The point_cloud_dataset has subtypes with additional attributes to permit the creation of instances of a point_cloud_dataset with normals, with colours, or with intensities. The and/or relationship between these subtypes enables, for example, the creation as a complex instance, of a point_cloud_dataset with normals and colours attached to each point.

.

EXPRESS specification:

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

Attribute definitions:

point_coordinates: the list of real triples defining the coordinates of the points.

NOTE 2   These real triples have the semantics of length_measures, but are not formally defined as such, the units for these coordinates are defined since a scanned_data_item is required to be used in a scan_data_shape_representation having a global_unit_assigned_context.

7.4.4 point_cloud_dataset_with_normals   EXPRESS-G

A point_cloud_dataset_with_normals is a type of point_cloud_dataset, which has a normal defined at each point of the dataset.

EXPRESS specification:

*)
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;
(*

Attribute definitions:

normals: a list of real triples defining the direction ratios of the normals at each point of the point_cloud_dataset.

Formal propositions:

WR1: The size of thenormals list shall be the same as the size of the point_coordinates list.

7.4.5 point_cloud_dataset_with_colours   EXPRESS-G

A point_cloud_dataset_with_colours is a type of point_cloud_dataset, which has a colour defined at each point of the dataset.

EXPRESS specification:

*)
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;
(*

Attribute definitions:

colour_indices: a list of integer triples defining the RGB integer values of the colours at each point of the point_cloud_dataset.

Formal propositions:

WR1: The size of the colour_indices list shall be the same as the size of the point_coordinates list.

7.4.6 point_cloud_dataset_with_intensities   EXPRESS-G

A point_cloud_dataset_with_intensities is a type of point_cloud_dataset, which has an intensity defined at each point of the dataset.

EXPRESS specification:

*)
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;
(*

Attribute definitions:

intensities: a list of real numbers defining the intensity value at each point of the point_cloud_dataset.

Formal propositions:

WR1: The size of theintensities list shall be the same as the size of the point_coordinates list.

7.4.7 point_cloud_superdataset   EXPRESS-G

A point_cloud_superdataset is a type of scanned_data_item, which contains a list of point_cloud_datasets. Each of the point_cloud_datasets, except, possibly, the last is required to contain the same number of points.

EXPRESS specification:

*)
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;
(*

Attribute definitions:

pts_per_sublist: the number of points in each listed point_cloud_dataset, except for the last.

sublists: a list of 2 or more point_cloud_datasets .

Formal propositions:

WR1: The number of points in each point_cloud_dataset in sublists, except for the last shall be pts_per_sublist the last element of the sublists shall not contain more than this number of points. These conditions are verified by the consistent_sizes function.

7.4.8 triangulated_point_cloud_dataset   EXPRESS-G

A triangulated_point_cloud_dataset is a type of scanned_data_item in which the points of the dataset are arranged into triangles.

EXPRESS specification:

*)
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;
(*

Attribute definitions:

points: the point_cloud_dataset or point_cloud_superdataset containing the coordinates of the points used to construct the trinagles.

triangles: a list of integer triples defining the locations in points of the coordinate values for the 3 vertices of each triangle. If points is of type point_cloud_dataset the integer directly gives the position in point_coordinates of the coordinates of the vertex point. If points is of type point_cloud_superdataset it is necessary to first determine, by dividing the integer value by pts_per_sublist, the particular point_cloud_dataset in which to find the coordinates position. The remainder from this division is then the required address.

EXAMPLE 1   In the case of a superdataset, if the integer value is 5927 and if the value of pts_per_sublist is 2000, then the required point coordinates will be in position 1927 of the points coordinates list of the 3rd. point_cloud_dataset. If the integer value is exactly 2000 then the required point coordinates are in the last position in the first point_cloud_dataset. points list.

7.4.9 scan_3d_model   EXPRESS-G

A scan_3d_model is a type of scanned_data_item, which represents the data produced by scanning a 3D shape. It contains scanner properties and a set of scanned_data_items. Each of the scanned_data_items includes point cloud data..

EXPRESS specification:

*)
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;
(*

Attribute definitions:

scanner_info: a set of 1 or more scanner_property;

scanned_points: a set of 1 or more scanned_data_items which contains the point cloud data produced by the scanning operation.;

Formal propositions:

WR1: The scanned_points set shall not contain a scan_3d_model.

7.4.10 scanner_property   EXPRESS-G

A scanner_property is a type of representation_item, which represents one or more properties of a scanner.

EXPRESS specification:

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

7.4.11 scanner_basic_properties   EXPRESS-G

A scanner_basic_properties is a type of scanner_property, which represents the basic properties of a scanner.

NOTE    More advanced properties of a scanner may be represented by further subtypes of scanner_property

EXPRESS specification:

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

Attribute definitions:

scanner_identification: a label which identifies the scanner;

scanner_location: a axis2_placement_3d which is the location and orientation of the scanner;

scanner_uncertainty: an optional positive_length_measure which gives the possible error in the coordinate values measured by the scanner.

7.5 scan_data_3d_shape_model_schema function definitions

7.5.1 consistent_sizes

The consistent_sizes function checks the sizes of the point_coordinates lists of the input point_cloud_datasets and returns true if all but the last are of size max and the last has a size which is not greater than max,

EXPRESS specification:

*)
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;
(*

Argument definitions:

max: (input) the maxinum permitted size of any of the point coordinate lists;

point_lists: (input) A list of point_cloud_datasets whose sizes are to be checked.



*)
END_SCHEMA;  -- scan_data_3d_shape_model_schema
(*


© ISO 2021 — All rights reserved