Application module: Tessellated geometry | ISO/TS 10303-1819:2021(E) © ISO |
(*
ISO/TC 184/SC 4/WG 12 N10890 - ISO/TS 10303-1819 Tessellated geometry - EXPRESS ARM
Supersedes
ISO/TC 184/SC 4/WG 12 N9836
*)
SCHEMA Tessellated_geometry_arm;
USE FROM
Advanced_boundary_representation_arm;
-- ISO/TS 10303-1514
USE FROM
Basic_curve_arm;
-- ISO/TS 10303-1651
USE FROM
Basic_geometry_arm;
-- ISO/TS 10303-1652
USE FROM
Basic_geometric_topology_arm;
-- ISO/TS 10303-1323
USE FROM
Draughting_element_arm;
-- ISO/TS 10303-1310
USE FROM
Elemental_geometric_shape_arm;
-- ISO/TS 10303-1004
USE FROM
Elemental_topology_arm;
-- ISO/TS 10303-1005
REFERENCE FROM
Foundation_representation_arm -- ISO/TS 10303-1006
(using_representations);
TYPE angular_deviation =
plane_angle_measure;
END_TYPE;
TYPE chordal_deviation =
positive_length_measure;
END_TYPE;
TYPE edge_or_curve =
SELECT
(Edge_curve,
Curve);
END_TYPE;
TYPE face_or_surface =
SELECT
(Face_surface,
Surface);
END_TYPE;
TYPE length_to_height_ratio =
ratio_measure;
END_TYPE;
TYPE maximum_edge_length =
positive_length_measure;
END_TYPE;
TYPE path_or_composite_curve =
SELECT
(Path,
Composite_curve);
END_TYPE;
TYPE tessellated_edge_or_vertex =
SELECT
(Tessellated_edge,
Tessellated_vertex);
END_TYPE;
TYPE tessellated_facet_long_short_edge_ratio =
ratio_measure;
END_TYPE;
TYPE tessellation_accuracy_parameter_item =
EXTENSIBLE
SELECT
(angular_deviation,
tessellated_facet_long_short_edge_ratio,
chordal_deviation,
length_to_height_ratio,
maximum_edge_length);
END_TYPE;
TYPE tg_draughting_callout_content_select =
SELECT
BASED_ON
draughting_callout_content_select
WITH
(Tessellated_annotation);
END_TYPE;
ENTITY Complex_triangulated_face
SUBTYPE OF (Tessellated_face);
pnindex : LIST[0:?] OF INTEGER;
triangle_strips : LIST[0:?] OF LIST[3:?] OF INTEGER;
triangle_fans : LIST[0:?] OF LIST[3:?] OF INTEGER;
WHERE
WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\Tessellated_face.pnmax));
WR2: NOT ((SIZEOF(pnindex) = 0) AND (SELF\Tessellated_face.pnmax <> coordinates.npoints));
WR3: NOT ((SIZEOF(triangle_strips) = 0) AND (SIZEOF(triangle_fans) = 0));
END_ENTITY;
ENTITY Complex_triangulated_surface_set
SUBTYPE OF (Tessellated_surface_set);
pnindex : LIST[0:?] OF INTEGER;
triangle_strips : LIST[0:?] OF LIST[3:?] OF INTEGER;
triangle_fans : LIST[0:?] OF LIST[3:?] OF INTEGER;
WHERE
WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\Tessellated_surface_set.pnmax));
WR2: NOT ((SIZEOF(pnindex) = 0) AND (SELF\Tessellated_surface_set.pnmax <> coordinates.npoints));
WR3: NOT ((SIZEOF(triangle_strips) = 0) AND (SIZEOF(triangle_fans) = 0));
END_ENTITY;
ENTITY Coordinates_list
SUBTYPE OF (Tessellated_item);
npoints : INTEGER;
position_coords : LIST[1:?] OF LIST[3:3] OF REAL;
WHERE
WR1: npoints = SIZEOF(position_coords);
WR2: SIZEOF(['TESSELLATED_GEOMETRY_ARM.REPOSITIONED_TESSELLATED_ITEM'] * TYPEOF(SELF)) = 0;
END_ENTITY;
ENTITY Cubic_bezier_tessellated_edge
SUBTYPE OF (Tessellated_edge);
SELF\Tessellated_edge.line_strip : LIST[4:?] OF INTEGER;
END_ENTITY;
ENTITY Cubic_bezier_triangulated_face
SUBTYPE OF (Tessellated_face);
ctriangles : LIST[1:?] OF LIST[10:10] OF INTEGER;
WHERE
WR1: SIZEOF(SELF\Tessellated_face.normals) = 0;
END_ENTITY;
ENTITY Cubic_tessellated_connecting_edge
SUBTYPE OF (Cubic_bezier_tessellated_edge);
smooth : LOGICAL;
face1 : Cubic_bezier_triangulated_face;
face2 : Cubic_bezier_triangulated_face;
END_ENTITY;
ENTITY Repositioned_tessellated_item
SUBTYPE OF (Tessellated_item);
location : Axis_placement_3d;
WHERE
WR1: NOT (SIZEOF(['TESSELLATED_GEOMETRY_ARM.TESSELLATED_CURVE_SET', 'TESSELLATED_GEOMETRY_ARM.TESSELLATED_GEOMETRIC_SET',
'TESSELLATED_GEOMETRY_ARM.TESSELLATED_POINT_SET', 'TESSELLATED_GEOMETRY_ARM.TESSELLATED_SURFACE_SET',
'TESSELLATED_GEOMETRY_ARM.TESSELLATED_SHELL', 'TESSELLATED_GEOMETRY_ARM.TESSELLATED_SOLID',
'TESSELLATED_GEOMETRY_ARM.TESSELLATED_WIRE'] * TYPEOF(SELF)) = 0);
END_ENTITY;
ENTITY Tessellated_annotation
SUBTYPE OF (Annotation_element);
SELF\Styled_element.element : Tessellated_item;
END_ENTITY;
ENTITY Tessellated_connecting_edge
SUBTYPE OF (Tessellated_edge);
smooth : LOGICAL;
face1 : Tessellated_face;
face2 : Tessellated_face;
line_strip_face1 : LIST[2:?] OF INTEGER;
line_strip_face2 : LIST[2:?] OF INTEGER;
WHERE
WR1: SIZEOF(line_strip_face1) = SIZEOF(line_strip_face2);
WR2: SIZEOF(line_strip_face1) = SIZEOF(SELF\Tessellated_edge.line_strip);
END_ENTITY;
ENTITY Tessellated_curve_set
SUBTYPE OF (Tessellated_item);
coordinates : Coordinates_list;
line_strips : LIST[1:?] OF LIST[2:?] OF INTEGER;
END_ENTITY;
ENTITY Tessellated_edge
SUPERTYPE OF
(ONEOF (Tessellated_connecting_edge,
Cubic_bezier_tessellated_edge))
SUBTYPE OF (Tessellated_structured_item);
coordinates : Coordinates_list;
geometric_link :
OPTIONAL
edge_or_curve;
line_strip : LIST[2:?] OF INTEGER;
END_ENTITY;
ENTITY Tessellated_face
ABSTRACT SUPERTYPE
OF (ONEOF (Triangulated_face,
Complex_triangulated_face,
Cubic_bezier_triangulated_face))
SUBTYPE OF (Tessellated_structured_item);
coordinates : Coordinates_list;
pnmax : INTEGER;
normals : LIST[0:?] OF LIST[3:3] OF REAL;
geometric_link :
OPTIONAL
face_or_surface;
WHERE
WR1: ((SIZEOF(normals) = 0) OR (SIZEOF(normals) = 1) OR (SIZEOF(normals) = pnmax));
END_ENTITY;
ENTITY Tessellated_geometric_set
SUBTYPE OF (Tessellated_item);
children : SET[1:?] OF Tessellated_item;
END_ENTITY;
ENTITY Tessellated_item
ABSTRACT SUPERTYPE
OF (ONEOF (Coordinates_list,
Tessellated_solid,
Tessellated_shell,
Tessellated_wire,
Tessellated_geometric_set,
Tessellated_curve_set,
Tessellated_point_set,
Tessellated_surface_set,
Tessellated_structured_item))
SUBTYPE OF (Detailed_geometric_model_element);
WHERE
WR1: SIZEOF(QUERY(using_rep <* using_representations(SELF) | NOT ('TESSELLATED_GEOMETRY_ARM.TESSELLATED_SHAPE_REPRESENTATION'
IN TYPEOF(using_rep)))) = 0;
END_ENTITY;
ENTITY Tessellated_point_set
SUBTYPE OF (Tessellated_item);
coordinates : Coordinates_list;
point_list : LIST[1:?] OF INTEGER;
END_ENTITY;
ENTITY Tessellated_shape_representation
SUBTYPE OF (Geometric_model);
WHERE
WR1: 'ELEMENTAL_GEOMETRIC_SHAPE_ARM.GEOMETRIC_COORDINATE_SPACE' IN TYPEOF(SELF\Representation.context_of_items);
WR2: NOT (SIZEOF(QUERY(it <* SELF.items | 'TESSELLATED_GEOMETRY_ARM.TESSELLATED_ITEM' IN TYPEOF(it))) = 0);
END_ENTITY;
ENTITY Tessellated_shape_representation_with_accuracy_parameters
SUBTYPE OF (Tessellated_shape_representation);
tessellation_accuracy_parameters : SET[1:?] OF tessellation_accuracy_parameter_item;
END_ENTITY;
ENTITY Tessellated_shell
SUBTYPE OF (Tessellated_item);
items : SET[1:?] OF Tessellated_structured_item;
topological_link :
OPTIONAL
Connected_face_set;
END_ENTITY;
ENTITY Tessellated_solid
SUBTYPE OF (Tessellated_item);
items : SET[1:?] OF Tessellated_structured_item;
geometric_link :
OPTIONAL
Manifold_solid_brep;
END_ENTITY;
ENTITY Tessellated_structured_item
SUPERTYPE OF
(ONEOF (Tessellated_face,
Tessellated_edge,
Tessellated_vertex))
SUBTYPE OF (Tessellated_item);
END_ENTITY;
ENTITY Tessellated_surface_set
ABSTRACT SUPERTYPE
OF (ONEOF (Triangulated_surface_set,
Complex_triangulated_surface_set))
SUBTYPE OF (Tessellated_item);
coordinates : Coordinates_list;
pnmax : INTEGER;
normals : LIST[0:?] OF LIST[3:3] OF REAL;
WHERE
WR1: ((SIZEOF(normals) = 0) OR (SIZEOF(normals) = 1) OR (SIZEOF(normals) = pnmax));
END_ENTITY;
ENTITY Tessellated_vertex
SUBTYPE OF (Tessellated_structured_item);
coordinates : Coordinates_list;
topological_link :
OPTIONAL
Vertex_point;
point_index : INTEGER;
END_ENTITY;
ENTITY Tessellated_wire
SUBTYPE OF (Tessellated_item);
items : SET[1:?] OF tessellated_edge_or_vertex;
geometric_model_link :
OPTIONAL
path_or_composite_curve;
END_ENTITY;
ENTITY Triangulated_face
SUBTYPE OF (Tessellated_face);
pnindex : LIST[0:?] OF INTEGER;
triangles : LIST[1:?] OF LIST[3:3] OF INTEGER;
WHERE
WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\Tessellated_face.pnmax));
WR2: NOT ((SIZEOF(pnindex) = 0) AND (SELF\Tessellated_face.pnmax <> coordinates.npoints));
END_ENTITY;
ENTITY Triangulated_surface_set
SUBTYPE OF (Tessellated_surface_set);
pnindex : LIST[0:?] OF INTEGER;
triangles : LIST[1:?] OF LIST[3:3] OF INTEGER;
WHERE
WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\Tessellated_surface_set.pnmax));
WR2: NOT ((SIZEOF(pnindex) = 0) AND (SELF\Tessellated_surface_set.pnmax <> coordinates.npoints));
END_ENTITY;
END_SCHEMA; -- Tessellated_geometry_arm
© ISO 2021 — All rights reserved