Integrated generic resource: Geometric and topological representation | ISO 10303-42:2021(E) © ISO |
(*
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