Application module: Vertex colours for tessellated geometry | ISO/TS 10303-1836:2019(E) © ISO |
This clause specifies the information requirements for the Vertex colours for tessellated geometry application module. The information requirements are specified as the Application Reference Model (ARM) of this application module.
NOTE 1 A graphical representation of the information requirements is given in Annex C.
NOTE 2 The mapping specification is specified in 5.1. It shows how the information requirements are met by using common resources and constructs defined or imported in the MIM schema of this application module.
This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following begins the Vertex_colours_for_tessellated_geometry_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Vertex_colours_for_tessellated_geometry_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
USE FROM
Appearance_assignment_arm;
--
ISO/TS 10303-1001
USE FROM
Tessellated_geometry_arm;
--
ISO/TS 10303-1819
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Appearance_assignment_arm ISO/TS 10303-1001 Tessellated_geometry_arm ISO/TS 10303-1819
NOTE 2 See Annex C, Figures C.1and C.2 for a graphical representation of this schema.
This subclause specifies the ARM types for this application module. The ARM types and definitions are specified below.
The colour_type_enum is an enumeration of colour formats to be associated with vertices of tessellated geometry.
EXPRESS specification:
*)
TYPE
colour_type_enum =
ENUMERATION
OF
(RGB8,
RGBT8);
END_TYPE;
(*
Enumerated item definitions:
RGB8: Red Green Blue Eight-bit-integer storage colour-model format.
RGBT8: Red Green Blue Transparency Eight-bit-integer storage colour-model format.
The tessellated_surface_item type allows for the designation of the data types Tessellated_face, Tessellated_shell, Tessellated_solid, and Tessellated_surface_set.
EXPRESS specification:
*)
TYPE
tessellated_surface_item =
SELECT
(Tessellated_face,
Tessellated_shell,
Tessellated_solid,
Tessellated_surface_set);
END_TYPE;
(*
The unsigned_8_bit_integer type is an unsigned integer with binary representation of eight bits.
EXPRESS specification:
*)
TYPE
unsigned_8_bit_integer =
INTEGER;
WHERE
WR1: { 0 <= SELF <= 255 };
END_TYPE;
(*
Formal propositions:
WR1: The value of the integer shall be be in the range 0 to 255 inclusive.
This subclause specifies the ARM entity for this module. The ARM entity is an atomic element that embodies a unique application concept and contains attributes specifying the data elements of the entity. The ARM entity and definition is specified below.
A Styled_tessellated_element_with_colours is a type of Styled_element that assigns colour values to the vertices of tessellated surfaces.
EXPRESS specification:
*)
ENTITY Styled_tessellated_element_with_colours
SUBTYPE OF (Styled_element);
SELF\Styled_element.element : tessellated_surface_item;
colour_type : colour_type_enum;
colour_values : LIST[1:?] OF LIST[3:4] OF unsigned_8_bit_integer;
DERIVE
coloured_coordinate_values : Coordinates_list := get_coordinate_values(element);
WHERE
WR1: NOT EXISTS(SELF\styled_element.appearance);
WR2: ((colour_type = RGB8) AND (SIZEOF(QUERY(clist <* SELF.colour_values | NOT (SIZEOF(clist) = 3)))= 0)) OR
((colour_type = RGBT8) AND (SIZEOF(QUERY(clist <* SELF.colour_values | NOT (SIZEOF(clist) = 4)))= 0));
WR3: SIZEOF(colour_values) = coloured_coordinate_values.npoints;
WR4: SELF\styled_element.invisible = FALSE;
END_ENTITY;
(*
Attribute definitions:
element: the tessellated geometry to which the colours are assigned, this may be a Tessellated_face, a Tessellated_shell, a Tessellated_solid, or a Tessellated_surface_set.
colour_type: specifies the colour formats used by the colour_values attribute
colour_values: specifies an unlimited list of three or four integers representing a vertex colour.
coloured_coordinate_values: the Coordinates_list of the tessellated_surface_item specified by the element attribute; this Coordinates_list is populated by the get_coordinate_values function.
Formal propositions:
WR1: The inherited appearance attribute shall not exist.
WR2: If the colour_type is RGB8 then colour_values shall be a list of three unsigned eight-bit integers, or, if the colour_type is RGBT8 then colour_values shall be a list of four unsigned eight-bit integers.
WR3: The number of colour_values shall be equal to the number of points in the associated Coordinates_list.
WR4: The inherited invisible attribute shall have a value of FALSE.
This subclause specifies the ARM function for this module. The ARM function and definition is specified below.
The get_coordinate_values function returns the Coordinates_list for a Tessellated_face, a Tessellated_shell, a Tessellated_solid, or a Tessellated_surface_set.
NOTE the fully elaborated function is provided in the the presentation_appearance_schema.
EXPRESS specification:
*)
FUNCTION get_coordinate_values (input : tessellated_surface_item) : Coordinates_list;
RETURN(?);
END_FUNCTION;
(*
Argument definitions:
input: the Tessellated_face, Tessellated_shell, Tessellated_solid, or Tessellated_surface_set, for which the Coordinates_list is required.
*)
END_SCHEMA; -- Vertex_colours_for_tessellated_geometry_arm
(*
© ISO 2019 — All rights reserved