Integrated generic resource: Visual presentation | ISO 10303-46:2021(E) © ISO |
The presentation_organization_schema provides a structure for the management of a picture and the components of a picture. It also specifies the relationship between the properties of a product and their representation in a picture. The components of a picture may be related to each other, either as an association between two components that are otherwise independent, or, as one component is an element of the definition of another. These relationships allow complex structures of pictures and components to be created.
The components of a picture may be organized within a hierarchy built of presentation sets, presentation areas, areas dependent annotation representations, presentation views, view dependent annotation representations, and product data representation views. The hierarchy consists of the following four levels:
An actual presentation hierarchy may contain more levels than described above. A single presentation area may itself be composed of several presentation areas. A presentation hierarchy may also contain less levels than described above, because some of the components making up the hierarchy are not required.
NOTE 1 Figures 2 and 3 illustrate the relationships between the levels of the presentation hierarchy.
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 presentation_organization_schema;
REFERENCE FROM
geometry_schema
--
ISO 10303-42
(axis2_placement,
axis2_placement_2d,
axis2_placement_3d,
cartesian_point,
curve,
direction,
dot_product,
geometric_representation_context,
geometric_representation_item,
placement,
plane);
REFERENCE FROM
measure_schema
--
ISO 10303-41
(length_measure,
positive_ratio_measure,
positive_plane_angle_measure);
REFERENCE FROM
presentation_appearance_schema
--
ISO 10303-46
(styled_item);
REFERENCE FROM
presentation_definition_schema
--
ISO 10303-46
(annotation_occurrence,
symbol_representation,
symbol_representation_relationship);
REFERENCE FROM
presentation_resource_schema
--
ISO 10303-46
(colour,
planar_box,
planar_extent,
presentation_scaled_placement);
REFERENCE FROM
representation_schema
--
ISO 10303-43
(founded_item,
item_defined_transformation,
item_in_context,
mapped_item,
representation,
representation_item,
representation_map,
representation_relationship,
representation_relationship_with_transformation,
using_representations);
REFERENCE FROM
support_resource_schema
--
ISO 10303-41
(bag_to_set,
identifier,
label,
text);
(*
NOTE 2 The schemas referenced above are specified in the following parts:
geometry_schema ISO 10303-42 measure_schema ISO 10303-41 presentation_appearance_schema ISO 10303-46 presentation_definition_schema ISO 10303-46 presentation_resource_schema ISO 10303-46 representation_schema ISO 10303-43 support_resource_schema ISO 10303-41
NOTE 3 See Annex D for a graphical representation of this schema.
Within the presentation hierarchy, only a presentation area contains sufficient information to allow the unambiguous generation of a picture using a suitable output device such as a computer screen, printer, or plotter.
Other elements in the hierarchy do not provide the necessary placement information for proper positioning on a display device. Presentation views or other lower level components are displayable only when related directly or indirectly to a presentation area.
The presentation_organization_schema describes the presentation hierarchy through representation of the different elements of the hierarchy and the relationships between them.
NOTE 1 The concepts of representation and of relationships between representations are described in ISO 10303-43.
Each element of the presentation hierarchy is described using the presentation_representation entity, a subtype of representation. Subtypes of the presentation_representation entity describe different elements within the hierarchy.
NOTE 2 The representation entity is defined in ISO 10303-43.
The context of each element of the presentation hierarchy is described using the geometric_representation_context entity; this is constrained to be two dimensional.
NOTE 3 The geometric_representation_context entity is defined in ISO 10303-42.
The contents of each element of the presentation hierarchy are described by the set of items of each presentation_representation. The items are either two-dimensional geometry or annotation that are to be presented in the element, or the results of including other elements.
Some elements of the hierarchy are constrained with respect to their contents, or to the relationships that they may play with other elements. Specific semantics are associated with these constraints; for example, the product_data_representation_view entity describes an element of the hierarchy that only includes the results of projecting three-dimensional geometry or annotation.
The topmost level of the presentation hierarchy is represented by the entities presentation_set, presentation_area, and area_in_set. The area_in_set entity supports many-to-many relationships between presentation sets and presentation areas.
Other elements of the presentation hierarchy are related to each other using either the presentation_representation_relationship entity, or the mapped_item and representation_map entities.
NOTE 4 The mapped_item and representation_map entities are defined in ISO 10303-43.
An association between two elements of the hierarchy which are independently defined is described using the presentation_representation_relationship entity. This describes the relationship between two instances of the presentation_representation entity; in this relationship, one presentation_representation is denoted as the parent, the other as the child. The description of a transformation is included in the relationship; this transformation is the geometric relationship between the items of the parent presentation_representation and those of the child presentation_representation.
EXAMPLE 1 To define a hierarchy which consists of a single presentation_area, two presentation_views and a single area_dependent_annotation_representation, three instances of presentation_representation_relationship are required as shown in figure 4.
An association between two elements of the hierarchy, where one participates in the definition of the other, is described using the mapped_item and representation_map entities.
Such an association is described by an instance of the mapped_item entity. This instance is included as one of the items of the presentation_representation that contains the other. The second presentation_representation is referenced as the mapped_representation of a representation_map, that is specified as the mapping_source of the mapped_item. The transformation that describes the geometric relationship between the items of the two presentation_representations is described by the mapping_target of the mapped_item and the mapping_origin of the representation_map.
EXAMPLE 2 To include a presentation_view within a presentation_area requires one instance of mapped_item, one instance of representation_map, and two instances of axis2_placement_2d that act as the origin and the target for the mapping, as shown in figure 5.
NOTE 5 The axis2_placement_2d entity is defined in ISO 10303-42.
Each level of the presentation hierarchy consists only of two-dimensional geometry or annotation. The default orientation is so that the first coordinate, defining the positive x-axis goes to the right and the second coordinate, defining the positive y-axis goes to top. A three-dimensional synthetic camera model must be specified to associate a presentation with a three-dimensional product shape or planar annotation in three-dimensional space. This model specifies how the projection of three-dimensional geometry and annotation to two dimensions shall be executed by the displaying system. The three-dimensional synthetic camera model is defined in analogy to the graphics standards GKS-3D and PHIGS. More details about the synthetic camera model can be found in [6], [11] and in computer graphics literature, e.g., in [14] or [15]. For draughting requirements, a two-dimensional camera model is also supported. This two-dimensional model performs scaling and translation in two-dimensional space.
The product_data_representation_view is the only component of the presentation hierarchy which may consist of two-dimensional projections of associated three-dimensional product shape or of annotation in three-dimensional space. Because this part of ISO 10303 does not define the projected picture, but all information necessary to compute the projection, only a placeholder for that picture is part of the product_data_representation_view. This placeholder is called camera_image and refers to the camera model and the two- or three-dimensional product shape elements or annotation.
To allow more realistic presentations of three-dimensional objects, hidden line and hidden surface removal, as well as light sources, can be specified for a three-dimensional camera model.
LayersA layer is a collection of product shape elements, annotation elements, or components of the presentation hierarchy grouped for the purpose of controlling visibility and style. The set of all items associated with a layer can be defined as visible or invisible within a component of the presentation hierarchy. A single item can be associated with several layers and a single layer can be used in several components of the presentation hierarchy. For an item which is associated with several layers, a different presentation style can be assigned to each layer. A layer is defined by a presentation_layer_assignment. The visibility and style assignment of a given layer within a component of the presentation hierarchy is specified by a presentation_layer_usage.
Association of presentation with a product modelThis part of ISO 10303 allows the association of presentation information with the product information which is presented. This association is achieved through the use of a presented_item_representation. This entity relates the item which is presented with the presentation of that item. The presented_item shall be specialized by Application Protocols.
EXAMPLE 3 Presented items are the body design of a car, the layout of an electronic chip, or the architecture of a building.
NOTE The list of entity data types will be extended in application resources that use the constructs of this resource.
EXPRESS specification:
*)
TYPE
annotation_representation_select
=
EXTENSIBLE
SELECT
(area_dependent_annotation_representation,
presentation_area,
presentation_view,
symbol_representation,
view_dependent_annotation_representation);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
area_dependent_annotation_representation_item
=
SELECT
(annotation_occurrence,
axis2_placement);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
area_or_view
=
SELECT
(presentation_area,
presentation_view);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
camera_model_d3_multi_clipping_intersection_select
=
SELECT
(camera_model_d3_multi_clipping_union,
plane);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
camera_model_d3_multi_clipping_union_select
=
SELECT
(camera_model_d3_multi_clipping_intersection,
plane);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
central_or_parallel
=
ENUMERATION
OF
(central,
parallel);
END_TYPE;
(*
Enumerated item definitions:
central: the projection is made along lines emanating from a projection_point and intersecting with the view_window.
parallel: the projection is made parallel to the line from a projection_point to the geometric centre of the view_window.
EXPRESS specification:
*)
TYPE
layered_item
=
SELECT
(presentation_representation,
representation_item);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
presentation_representation_select
=
SELECT
(presentation_representation,
presentation_set);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
presentation_size_assignment_select
=
SELECT
(presentation_view,
presentation_area,
area_in_set);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
product_data_representation_view_item
=
SELECT
(camera_image,
axis2_placement);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
view_dependent_annotation_representation_item
=
SELECT
(annotation_occurrence,
axis2_placement);
END_TYPE;
(*
NOTE Constraints on the usage of this entity are found in the rules of presentation_representation_relationship.
EXPRESS specification:
*)
ENTITY area_dependent_annotation_representation
SUBTYPE OF (presentation_representation);
SELF\representation.items : SET[1:?] OF area_dependent_annotation_representation_item;
WHERE
WR1: SIZEOF (QUERY (item <* SELF\representation.items |
('PRESENTATION_DEFINITION_SCHEMA.ANNOTATION_OCCURRENCE' IN
TYPEOF (item))
)) >= 1;
WR2: (SIZEOF (QUERY (prr <* USEDIN (SELF, 'REPRESENTATION_SCHEMA.' +
'REPRESENTATION_RELATIONSHIP.REP_2') |
'PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_AREA' IN
TYPEOF (prr\representation_relationship.rep_1))) > 0)
OR
(SIZEOF(QUERY( rm <* USEDIN(SELF, 'REPRESENTATION_SCHEMA.'+
'REPRESENTATION_MAP.'+
'MAPPED_REPRESENTATION') |
SIZEOF(QUERY( mi <* USEDIN(rm, 'REPRESENTATION_SCHEMA.'+
'MAPPED_ITEM.'+
'MAPPING_SOURCE') |
SIZEOF(QUERY( rep <* using_representations (mi) |
'PRESENTATION_ORGANIZATION_SCHEMA.'+
'PRESENTATION_AREA' IN
TYPEOF (rep))) > 0
)) > 0))
> 0);
WR3: (SIZEOF (QUERY (prr <* USEDIN (SELF, 'REPRESENTATION_SCHEMA.' +
'REPRESENTATION_RELATIONSHIP.REP_2') |
NOT('PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_AREA' IN
TYPEOF (prr\representation_relationship.rep_1)))) = 0)
AND
(SIZEOF(QUERY( rm <* USEDIN(SELF, 'REPRESENTATION_SCHEMA.'+
'REPRESENTATION_MAP.'+
'MAPPED_REPRESENTATION') |
SIZEOF(QUERY( mi <* USEDIN(rm, 'REPRESENTATION_SCHEMA.'+
'MAPPED_ITEM.'+
'MAPPING_SOURCE') |
SIZEOF(QUERY( rep <* using_representations (mi) |
NOT('PRESENTATION_ORGANIZATION_SCHEMA.'+
'PRESENTATION_AREA' IN
TYPEOF (rep)))) > 0
)) > 0))
= 0);
END_ENTITY;
(*
Attribute definitions:
items: a set of annotation_occurrences or axis2_placements that the area_dependent_annotation_representation is a collection of.
Formal propositions:
WR1: At least one of the items in an area_dependent_annotation_representation shall be an annotation_occurrence.
WR2: It shall be contained in a presentation_area and it shall not be contained in a representation which is not a presentation_area.
WR3: All users shall be of type presentation_area.
EXPRESS specification:
*)
ENTITY area_in_set;
area : presentation_area;
in_set : presentation_set;
END_ENTITY;
(*
Attribute definitions:
area: the presentation_area that participates in the specified presentation_set.
in_set: the presentation_set in which the specified presentation_area participates.
EXPRESS specification:
*)
ENTITY background_colour
SUBTYPE OF (colour);
presentation : area_or_view;
UNIQUE
UR1: presentation;
END_ENTITY;
(*
Attribute definitions:
presentation: a presentation_area or presentation_view for which this background colour is specified.
Formal propositions:
UR1: Only one background colour may be specified for any presentation_area or presentation_view.
EXPRESS specification:
*)
ENTITY camera_image
SUPERTYPE OF (ONEOF (camera_image_2d_with_scale,
camera_image_3d_with_scale))
SUBTYPE OF (mapped_item);
SELF\mapped_item.mapping_source : camera_usage;
SELF\mapped_item.mapping_target : planar_box;
WHERE
WR1: 'GEOMETRY_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM'
IN TYPEOF (SELF);
END_ENTITY;
(*
Attribute definitions:
mapping_source: a camera_usage which is the representation that is projected plus the camera_model which is the source part of the projection mapping.
mapping_target: a planar_box onto which the view window associated with a two- or three-dimensional camera_model is projected.
Formal propositions:
WR1: The camera_image shall be a geometric_representation_item.
NOTE 1 The viewport specifies the rectangular boundary of the view as it is depicted in the drawing sheet.
NOTE 2 The definition of this entity is identical to the definition in ISO 10303-202 [4].
EXPRESS specification:
*)
ENTITY camera_image_2d_with_scale
SUBTYPE OF (camera_image);
DERIVE
scale : positive_ratio_measure := (SELF\mapped_item.mapping_target\planar_extent.size_in_x)/
(SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window\planar_extent.size_in_x);
WHERE
WR1: ('PRESENTATION_ORGANIZATION_SCHEMA.CAMERA_MODEL_D2' IN TYPEOF(SELF\mapped_item.mapping_source.mapping_origin));
WR2: aspect_ratio (SELF\mapped_item.mapping_target) = aspect_ratio (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window);
WR3: SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window_clipping;
END_ENTITY;
(*
Attribute definitions:
scale: the positive_ratio_measure derived from the rectangular size of the viewport and the rectangular size of the view_window of the camera_model_d2.
Formal propositions:
WR1: The source of the projection shall be a camera_model_d2.
WR2: The aspect ratio of the viewport shall equal the aspect ratio of the view_window of the camera_model_d2.
WR3: The view_window_clipping attribute of the camera_model_d2 shall be true.
EXPRESS specification:
*)
ENTITY camera_image_3d_with_scale
SUBTYPE OF (camera_image);
DERIVE
scale : positive_ratio_measure := ((SELF\mapped_item.mapping_target\
planar_extent.size_in_x) / (SELF\mapped_item.mapping_source.
mapping_origin\camera_model_d3.perspective_of_volume.view_window.
size_in_x));
WHERE
WR1: ('PRESENTATION_ORGANIZATION_SCHEMA.CAMERA_MODEL_D3'
IN TYPEOF (SELF\mapped_item.mapping_source.mapping_origin));
WR2: aspect_ratio(SELF\mapped_item.mapping_target) =
aspect_ratio(SELF\mapped_item.mapping_source.mapping_origin\
camera_model_d3.perspective_of_volume.view_window);
WR3: SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.
perspective_of_volume.front_plane_clipping
AND
SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.
perspective_of_volume.view_volume_sides_clipping;
WR4: (SELF\mapped_item.mapping_target\planar_extent.size_in_x > 0)
AND
(SELF\mapped_item.mapping_target\planar_extent.size_in_y > 0);
WR5: (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.
perspective_of_volume.view_window.size_in_x > 0)
AND
(SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.
perspective_of_volume.view_window.size_in_y > 0);
WR6: ('GEOMETRY_SCHEMA.' +
'AXIS2_PLACEMENT_2D' IN TYPEOF (SELF\mapped_item.
mapping_target\planar_box.placement))
AND NOT ('GEOMETRY_SCHEMA.' +
'AXIS2_PLACEMENT_3D' IN TYPEOF (SELF\mapped_item.
mapping_target\planar_box.placement));
END_ENTITY;
(*
Attribute definitions:
scale: the positive_ratio_measure derived from the rectangular size of the viewport and the rectangular size of the view_volume of the camera_model.
Formal propositions:
WR1: The source of the projection shall be a camera_model_d3.
WR2: The aspect ratio of the viewport shall equal the aspect ratio of the view_window of the view_volume.
WR3: The geometry of the projected representation shall be clipped against the plane represented by the front_plane_distance and the planes which are the sides of the volume defined by the view_volume.
WR4: The rectangular size of the viewport shall be specified by positive values.
WR5: The rectangular size of the view_window shall be specified by positive values.
WR6: The drawing space of a camera_image_3d_with_scale shall be specified in a 2D coordinate system.
Informal propositions:
IP1: The horizontal and vertical components of the viewport shall be parallel to the corresponding components of the view_window of the view_volume.
EXPRESS specification:
*)
ENTITY camera_model
ABSTRACT SUPERTYPE
OF (ONEOF (camera_model_d2,
camera_model_d3))
SUBTYPE OF (geometric_representation_item);
WHERE
WR1: (SIZEOF (USEDIN (SELF, 'REPRESENTATION_SCHEMA.' +
'ITEM_DEFINED_TRANSFORMATION.' +
'TRANSFORM_ITEM_1')) +
SIZEOF (USEDIN (SELF, 'REPRESENTATION_SCHEMA.' +
'REPRESENTATION_MAP.MAPPING_ORIGIN'))
) > 0;
WR2: SIZEOF(USEDIN(SELF,'PRESENTATION_APPEARANCE_SCHEMA.'+
'STYLED_ITEM.ITEM')) = 0;
END_ENTITY;
(*
Formal propositions:
WR1: A camera_model shall specify the projection for at least one representation.
WR2: A camera_model shall not be referenced by a styled_item entity.
NOTE 1 The mechanism of the camera_model_d2 is shown in figure 6.
EXPRESS specification:
*)
ENTITY camera_model_d2
SUBTYPE OF (camera_model);
view_window : planar_box;
view_window_clipping : BOOLEAN;
WHERE
WR1: SELF\geometric_representation_item.dim = 2;
END_ENTITY;
(*
Attribute definitions:
view_window: the rectangular boundaries in the coordinate space of the representation that is being projected into the product_data_representation_view. A translation and possibly non-uniform scaling are applied to the view_window so, that the edges of the view_window coincide with the edges of the mapping_target of the camera_image.
view_window_clipping: the determination of whether or not clipping is performed against the view_window. A value of TRUE indicates that clipping against the view_window is performed. A value of FALSE indicates that no clipping against the view_window is performed.
NOTE 2 If view_window_clipping has a value of FALSE, the two-dimensional projection may extend beyond the boundaries of the mapping_target specified by the camera_image.
NOTE 3 Clipping is performed prior to projection.
Formal propositions:
WR1: A camera_model_d2 shall be two-dimensional.
EXPRESS specification:
*)
ENTITY camera_model_d2_shape_clipping
SUBTYPE OF (camera_model_d2);
shape_clipping : curve;
END_ENTITY;
(*
Attribute definitions:
shape_clipping: a closed curve indicating a clipping region for the representation which is projected.
NOTE If view_window_clipping has a value of TRUE, the representation which is projected is clipped against both the view_window and the region specified by shape_clipping.
Informal propositions:
IP1: The curve specified for shape_clipping shall be closed and not self-intersecting.
EXPRESS specification:
*)
ENTITY camera_model_d3
SUBTYPE OF (camera_model);
view_reference_system : axis2_placement_3d;
perspective_of_volume : view_volume;
WHERE
WR1: SELF\geometric_representation_item.dim = 3;
END_ENTITY;
(*
Attribute definitions:
view_reference_system: an intermediate three-dimensional coordinate space in the coordinate space of the representation being projected.
perspective_of_volume: the information needed to determine how to project the geometry of the representation. The perspective_of_volume is defined in the intermediate three-dimensional coordinate space of the view_reference_system.
Formal propositions:
WR1: A camera_model_d3 is three-dimensional.
EXPRESS specification:
*)
ENTITY camera_model_d3_multi_clipping
SUBTYPE OF (camera_model_d3);
shape_clipping : SET[1:?] OF camera_model_d3_multi_clipping_intersection_select;
END_ENTITY;
(*
Attribute definitions:
shape_clipping: a set of planes or camera_model_d3_multi_clipping_union that bound the clipping region. Each plane defines an acceptance region, which is the infinite halfspace defined by the plane and its positive normal. The clipping region is defined as the intersection of all acceptance regions.
NOTE 1 The clipping region defined by shape_clipping may be infinite.
NOTE 2 Clipping is performed prior to projection.
EXPRESS specification:
*)
ENTITY camera_model_d3_multi_clipping_intersection
SUBTYPE OF (geometric_representation_item);
shape_clipping : SET[2:?] OF camera_model_d3_multi_clipping_intersection_select;
END_ENTITY;
(*
Attribute definitions:
shape_clipping: a set of planes or camera_model_d3_multi_clipping_union that bound the clipping region. Each plane defines an acceptance region, which is the infinite halfspace defined by the plane and its positive normal. The clipping region is defined as the intersection of all acceptance regions.
EXPRESS specification:
*)
ENTITY camera_model_d3_multi_clipping_union
SUBTYPE OF (geometric_representation_item);
shape_clipping : SET[2:?] OF camera_model_d3_multi_clipping_union_select;
END_ENTITY;
(*
Attribute definitions:
shape_clipping: a set of planes or camera_model_d3_multi_clipping_intersection that bound the clipping region. Each plane defines an acceptance region, which is the infinite halfspace defined by the plane and its positive normal. The clipping region is defined as the union of all acceptance regions.
EXPRESS specification:
*)
ENTITY camera_model_d3_with_hlhsr
SUBTYPE OF (camera_model_d3);
hidden_line_surface_removal : BOOLEAN;
END_ENTITY;
(*
Attribute definitions:
hidden_line_surface_removal: an indication of whether hidden lines and hidden surfaces shall be removed while projecting a three-dimensional representation. A value of TRUE indicates that hidden lines and hidden surfaces shall be removed during projection. A value of FALSE indicates that hidden lines and hidden surfaces shall not be removed during projection.
EXPRESS specification:
*)
ENTITY camera_model_with_light_sources
SUBTYPE OF (camera_model_d3);
sources : SET[1:?] OF light_source;
END_ENTITY;
(*
Attribute definitions:
sources: a set of light_sources which define the lighting model of the representation being projected.
EXPRESS specification:
*)
ENTITY camera_usage
SUBTYPE OF (representation_map);
SELF\representation_map.mapping_origin : camera_model;
WHERE
WR1: NOT ('PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_REPRESENTATION'
IN TYPEOF(SELF\representation_map.mapped_representation));
END_ENTITY;
(*
Attribute definitions:
mapping_origin: the camera_model which is the source part of the projection mapping.
Formal propositions:
WR1: The mapped_representation shall not be a presentation_representation.
The transform_item_1.location is transformed into the transform_item_2.placement.location. Additionally the x axis defined by transform_item_1.p[1] is mapped to the x axis transform_item_2.placement.p[1]. A similar mapping is performed for the y axes transform_item_1.p[2] and transform_item_2.placement.p[2]. Finally the scaling specified by transform_item_2.scaling is applied.
NOTE Figure 7 shows the mechanism of graphical transformation.
EXPRESS specification:
*)
ENTITY graphical_transformation
SUBTYPE OF (item_defined_transformation);
SELF\item_defined_transformation.transform_item_1 : axis2_placement_2d;
SELF\item_defined_transformation.transform_item_2 : presentation_scaled_placement;
END_ENTITY;
(*
Attribute definitions:
transform_item_1: an axis2_placement_2d specifying the starting point of the transformation.
transform_item_2: a presentation_scaled_placement specifying the ending point of the transformation.
EXPRESS specification:
*)
ENTITY light_source
SUPERTYPE OF (ONEOF (light_source_ambient,
light_source_directional,
light_source_positional,
light_source_spot))
SUBTYPE OF (geometric_representation_item);
light_colour : colour;
WHERE
WR1: SIZEOF(USEDIN(SELF,'PRESENTATION_APPEARANCE_SCHEMA.'+
'STYLED_ITEM.ITEM')) = 0;
END_ENTITY;
(*
Attribute definitions:
light_colour: the colour of the light to be used for shading.
Formal propositions:
WR1: A light_source shall not be referenced by a styled_item entity.
EXPRESS specification:
*)
ENTITY light_source_ambient
SUBTYPE OF (light_source);
END_ENTITY;
(*
NOTE Figure 8 shows the definition of light_source_directional.
EXPRESS specification:
*)
ENTITY light_source_directional
SUBTYPE OF (light_source);
orientation : direction;
END_ENTITY;
(*
Attribute definitions:
orientation: the direction of the light_source in the coordinate space of the representation being projected.
NOTE 1 Figure 9 shows the definition of light_source_positional.
NOTE 2 Examples of reflectance equations can be found in Annex E of this part of ISO 10303.
EXPRESS specification:
*)
ENTITY light_source_positional
SUBTYPE OF (light_source);
position : cartesian_point;
constant_attenuation : REAL;
distance_attenuation : REAL;
END_ENTITY;
(*
Attribute definitions:
position: the position of the light_source in the coordinate space of the representation being projected.
constant_attenuation: the value of attenuation in the reflectance equation that is constant.
distance_attenuation: the value of attenuation in the reflectance equation that is proportional to the distance from the light_source.
NOTE 1 Figure 10 shows the definition of light_source_spot.
NOTE 2 Examples of reflectance equations can be found in Annex E of this part of ISO 10303.
EXPRESS specification:
*)
ENTITY light_source_spot
SUBTYPE OF (light_source);
position : cartesian_point;
orientation : direction;
concentration_exponent : REAL;
constant_attenuation : REAL;
distance_attenuation : REAL;
spread_angle : positive_plane_angle_measure;
END_ENTITY;
(*
Attribute definitions:
position: the position of the light_source in the coordinate space of the representation being projected.
orientation: the direction of the axis of the cone of influence of the light_source specified in the coordinate space of the representation being projected.
concentration_exponent: the exponent on the cosine of the angle between the line that starts at the position of the spot light_source and is in the direction of the orientation of the spot light_source and a line that starts at the position of the spot light_source and goes through a point on the surface being shaded. The positions on the surface involved in the reflectance equation are determined by the surface_style_rendering_with_properties.
constant_attenuation: the value of the attenuation in the reflectance equation that is constant.
distance_attenuation: the value of the attenuation in the reflectance equation that is proportional to the distance from the light_source.
spread_angle: one half of the apex angle of the cone of influence.
Informal propositions:
IP1: The spread angle shall not be greater than 180 degrees.
The size of the presentation_area is defined by the presentation_size entity. Every presentation_area is either given a size directly by its use in a presentation_size entity, or indirectly by its use in area_in_set entities. Clipping of a picture based on the presentation_area size is executed by the system that creates an actual display based on the presentation information. If a presentation_area is contained within another presentation_area, then the boundaries of the containing presentation_area are also used to clip the contained presentation_area.
A background colour may be specified through the use of a presentation_area in the background_colour entity. Only one background_colour entity shall use any presentation_area.
EXPRESS specification:
*)
ENTITY presentation_area
SUBTYPE OF (presentation_representation);
WHERE
WR1: ((SIZEOF (QUERY (ais <* USEDIN (SELF, 'PRESENTATION_ORGANIZATION_SCHEMA.' +
'AREA_IN_SET.AREA') |
SIZEOF (USEDIN (ais, 'PRESENTATION_ORGANIZATION_SCHEMA.' +
'PRESENTATION_SIZE.UNIT')) =1)) > 0) OR
(SIZEOF (USEDIN (SELF, 'PRESENTATION_ORGANIZATION_SCHEMA.' +
'PRESENTATION_SIZE.UNIT')) =1));
END_ENTITY;
(*
Formal propositions:
WR1: A presentation_area shall be contained in a presentation_set through participation in area_in_set.area, where the area_in_set participates in presentation_size.unit, or, non-exclusively, a presentation_area shall get its size directly from a presentation_size.
Informal propositions:
IP1: Any presentation_representation shall be presented in the context of a tree which has as its root a presentation_area.
IP2: The size of a presentation_area shall not be specified more than once.
NOTE Constraints on the usage of this entity are found in the rules of presentation_representation_relationship.
NOTE This assignment is for the purpose of determining visibility and style in a picture represented by a presentation_representation through the use of the presentation_layer_usage entity.
EXPRESS specification:
*)
ENTITY presentation_layer_assignment;
name : label;
description : text;
assigned_items : SET[1:?] OF layered_item;
END_ENTITY;
(*
Attribute definitions:
name: the word, or group of words, by which the layer defined by the presentation_layer_assignment is referred to.
description: text that relates the nature of the presentation_layer_assignment.
assigned_items: the set of items assigned to the layer defined by the presentation_layer_assignment.
NOTE This allows many different pictures to be assigned to the same layer, and also allows a picture to be assigned to many layers.
EXPRESS specification:
*)
ENTITY presentation_layer_usage;
assignment : presentation_layer_assignment;
presentation : presentation_representation;
UNIQUE
UR1: assignment, presentation;
END_ENTITY;
(*
Attribute definitions:
assignment: the layer to be presented in the presentation_representation referenced by the presentation attribute.
presentation: the presentation_representation that contains the presentation of the layer referenced by the assignment attribute.
Formal propositions:
UR1: The pair assignment and presentation shall be unique. A layer shall not be presented in a picture more than once.
EXPRESS specification:
*)
ENTITY presentation_representation
SUPERTYPE OF (ONEOF (area_dependent_annotation_representation,
presentation_area,
presentation_view,
product_data_representation_view,
view_dependent_annotation_representation))
SUBTYPE OF (representation);
SELF\representation.context_of_items : geometric_representation_context;
WHERE
WR1: SELF\representation.
context_of_items\geometric_representation_context.
coordinate_space_dimension = 2;
WR2: ('PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_AREA' IN TYPEOF (SELF))
OR
(SIZEOF (QUERY (prr <* USEDIN (SELF, 'REPRESENTATION_SCHEMA.' +
'REPRESENTATION_RELATIONSHIP.REP_2') |
'PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_REPRESENTATION' IN
TYPEOF (prr\representation_relationship.rep_1))) > 0)
OR
(SIZEOF(QUERY( rm <* USEDIN(SELF, 'REPRESENTATION_SCHEMA.'+
'REPRESENTATION_MAP.'+
'MAPPED_REPRESENTATION') |
SIZEOF(QUERY( mi <* USEDIN(rm, 'REPRESENTATION_SCHEMA.'+
'MAPPED_ITEM.'+
'MAPPING_SOURCE') |
SIZEOF(QUERY( rep <* using_representations (mi) |
'PRESENTATION_ORGANIZATION_SCHEMA.'+
'PRESENTATION_REPRESENTATION' IN
TYPEOF (rep))) > 0
)) > 0))
> 0);
END_ENTITY;
(*
Attribute definitions:
context_of_items: a geometric_representation_context in which the items of this presentation_representation are related to form a representation of some concept.
Formal propositions:
WR1: The picture shall have a dimensionality of 2.
WR2: A presentation_representation shall either be included in another presentation_representation or it shall be a presentation_area.
EXPRESS specification:
*)
ENTITY presentation_representation_relationship
SUBTYPE OF (representation_relationship_with_transformation);
SELF\representation_relationship.rep_1 : presentation_representation;
SELF\representation_relationship.rep_2 : presentation_representation;
SELF\representation_relationship_with_transformation.transformation_operator : graphical_transformation;
WHERE
WR1: acyclic_presentation_representation_relationship (SELF,
[SELF\representation_relationship.rep_2]);
WR2: NOT (('PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_AREA' IN
TYPEOF (SELF\representation_relationship.rep_1))
AND
NOT (SIZEOF (['PRESENTATION_ORGANIZATION_SCHEMA.' +
'PRODUCT_DATA_REPRESENTATION_VIEW',
'PRESENTATION_ORGANIZATION_SCHEMA.' +
'VIEW_DEPENDENT_ANNOTATION_REPRESENTATION'] *
TYPEOF (SELF\representation_relationship.rep_2)) = 0));
WR3: NOT (('PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_VIEW'
IN TYPEOF (SELF\representation_relationship.rep_1))
AND
NOT (SIZEOF (['PRESENTATION_ORGANIZATION_SCHEMA.' +
'PRESENTATION_AREA',
'PRESENTATION_ORGANIZATION_SCHEMA.' +
'PRESENTATION_VIEW',
'PRESENTATION_ORGANIZATION_SCHEMA.' +
'AREA_DEPENDENT_ANNOTATION_REPRESENTATION'] *
TYPEOF (SELF\representation_relationship.rep_2))=0));
WR4: (NOT ('PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_VIEW' IN
TYPEOF(SELF\representation_relationship.rep_2)))
XOR
('PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_AREA'IN
TYPEOF(SELF\representation_relationship.rep_1));
WR5: (NOT ('PRESENTATION_ORGANIZATION_SCHEMA.' +
'PRODUCT_DATA_REPRESENTATION_VIEW' IN
(TYPEOF(SELF\representation_relationship.rep_1) +
TYPEOF(SELF\representation_relationship.rep_2))))
XOR
('PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_VIEW' IN
TYPEOF(SELF\representation_relationship.rep_1))
AND
('PRESENTATION_ORGANIZATION_SCHEMA.PRODUCT_DATA_REPRESENTATION_VIEW' IN
TYPEOF(SELF\representation_relationship.rep_2));
END_ENTITY;
(*
Attribute definitions:
rep_1: one of the presentation_representations that is a part of the relationship.
rep_2: the other presentation_representation that is a part of the relationship.
transformation_operator: a graphical_transformation that relates the context_of_items of the two related presentation_representations.
Formal propositions:
WR1: A presentation_representation_relationship shall not participate in a tree of presentation_representations where the root of the tree is also a leaf of its own tree.
WR2: Pictures represented by product_data_representation_view or view_dependent_annotation_representation shall not be related to a picture represented by a presentation_area.
WR3: Pictures represented by presentation_area, presentation_view, or area_dependent_annotation_representation shall not be related to a picture represented by a presentation_view.
WR4: The picture represented by a presentation_view may only be related to the picture represented by a presentation_area.
WR5: A product_data_representation_view shall only participate in a presentation_representation_relationship, if the rep_1 is a presentation_view.
EXPRESS specification:
*)
ENTITY presentation_set;
INVERSE
areas : SET[1:?] OF area_in_set FOR in_set;
END_ENTITY;
(*
Attribute definitions:
areas: the set of presentation_area entities which make up the presentation_set. There shall exist at least one area_in_set for the presentation_set.
EXPRESS specification:
*)
ENTITY presentation_size;
unit : presentation_size_assignment_select;
size : planar_box;
UNIQUE
UR1: unit;
WHERE
WR1: (('PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_REPRESENTATION'
IN TYPEOF (unit)) AND
item_in_context (size,
unit\representation.context_of_items)
)
OR
(('PRESENTATION_ORGANIZATION_SCHEMA.AREA_IN_SET'
IN TYPEOF (unit)) AND
(SIZEOF (QUERY ( ais <* unit\area_in_set.in_set.areas |
NOT item_in_context (size, ais.area\representation.
context_of_items) )) = 0));
END_ENTITY;
(*
Attribute definitions:
unit: a presentation_view, a presentation_area, or an area_in_set as it relates a presentation_area with a presentation_set.
size: a planar_box which describes the size of a unit.
Formal propositions:
UR1: The unit should be unique within a population of the presentation_sizes.
WR1: If a presentation size is available for both, an area_in_set and for a presentation_area, refered to by area_in_set, the presentation_size for the area_in_set overwrites the other one for the purpose of the presentation_set.
NOTE Constraints on the usage of this entity are found in the rules of presentation_representation_relationship.
EXPRESS specification:
*)
ENTITY presentation_view
SUBTYPE OF (presentation_representation);
END_ENTITY;
(*
EXAMPLE In an Application Protocol, the properties associated with a specific product definition are presented. The Application Protocol completes the presented_item construct to relate the presentation to the product_definition.
EXPRESS specification:
*)
ENTITY presented_item
ABSTRACT SUPERTYPE
;
END_ENTITY;
(*
NOTE This allows a many-to-many relationship between the representation and presentation.
EXPRESS specification:
*)
ENTITY presented_item_representation;
presentation : presentation_representation_select;
item : presented_item;
END_ENTITY;
(*
Attribute definitions:
presentation: a presentation_representation or a presentation_set.
item: the item which is presented in the picture.
EXPRESS specification:
*)
ENTITY product_data_representation_view
SUBTYPE OF (presentation_representation);
SELF\representation.items : SET[1:?] OF product_data_representation_view_item;
WHERE
WR1: SIZEOF (QUERY (item <* SELF\representation.items |
('PRESENTATION_ORGANIZATION_SCHEMA.CAMERA_IMAGE' IN
TYPEOF (item))
)) >= 1;
WR2: (SIZEOF (QUERY (prr <* USEDIN (SELF, 'REPRESENTATION_SCHEMA.' +
'REPRESENTATION_RELATIONSHIP.REP_2') |
'PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_VIEW' IN
TYPEOF (prr\representation_relationship.rep_1))) > 0)
OR
(SIZEOF(QUERY( rm <* USEDIN(SELF, 'REPRESENTATION_SCHEMA.'+
'REPRESENTATION_MAP.'+
'MAPPED_REPRESENTATION') |
SIZEOF(QUERY( mi <* USEDIN(rm, 'REPRESENTATION_SCHEMA.'+
'MAPPED_ITEM.'+
'MAPPING_SOURCE') |
SIZEOF(QUERY( rep <* using_representations (mi) |
'PRESENTATION_ORGANIZATION_SCHEMA.'+
'PRESENTATION_VIEW' IN
TYPEOF (rep))) > 0
)) > 0))
> 0);
WR3: (SIZEOF (QUERY (prr <* USEDIN (SELF, 'REPRESENTATION_SCHEMA.' +
'REPRESENTATION_RELATIONSHIP.REP_2') |
NOT('PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_VIEW' IN
TYPEOF (prr\representation_relationship.rep_1)))) = 0)
AND
(SIZEOF(QUERY( rm <* USEDIN(SELF, 'REPRESENTATION_SCHEMA.'+
'REPRESENTATION_MAP.'+
'MAPPED_REPRESENTATION') |
SIZEOF(QUERY( mi <* USEDIN(rm, 'REPRESENTATION_SCHEMA.'+
'MAPPED_ITEM.'+
'MAPPING_SOURCE') |
SIZEOF(QUERY( rep <* using_representations (mi) |
NOT('PRESENTATION_ORGANIZATION_SCHEMA.'+
'PRESENTATION_VIEW' IN
TYPEOF (rep)))) > 0
)) > 0))
= 0);
END_ENTITY;
(*
Attribute definitions:
items: a set of axis2_placements or camera_images that the product_data_representation_view is a collection of.
Formal propositions:
WR1: At least one of the items in a product_data_representation_view shall be a camera_image.
WR2: A product_data_representation_view shall not be displayed without being placed in a presentation_view.
WR3: Require that all users are presentation_views.
EXAMPLE In a draughting application, a dimension consists of several occurrences of curves and text. The dimension is assigned to layer 'DIMENSION', while the text that presents the value of the dimension is assigned to layer 'DIMENSION VALUE'. To indicate that the dimension is assigned to layer 'DIMENSION', a presentation_layer_assignment includes the dimension as a member of the assigned_items set. To indicate that the text is on layer 'DIMENSION VALUE', a representation_item_dependent_layer_assignment includes the text as a member of the assigned_items set, and specifies the dimension as the context for the assignment.
EXPRESS specification:
*)
ENTITY representation_item_dependent_layer_assignment
SUBTYPE OF (presentation_layer_assignment);
item_context : representation_item;
END_ENTITY;
(*
Attribute definitions:
item_context: a representation_item that defines the context for the assignment of the assigned_items to the layer.
Informal propositions:
IP1: The assigned_items shall participate in the definition of the item_context.
EXPRESS specification:
*)
ENTITY view_dependent_annotation_representation
SUBTYPE OF (presentation_representation);
SELF\representation.items : SET[1:?] OF view_dependent_annotation_representation_item;
WHERE
WR1: SIZEOF (QUERY (item <* SELF\representation.items |
('PRESENTATION_DEFINITION_SCHEMA.ANNOTATION_OCCURRENCE' IN
TYPEOF (item))
)) >= 1;
WR2: (SIZEOF (QUERY (prr <* USEDIN (SELF, 'REPRESENTATION_SCHEMA.' +
'REPRESENTATION_RELATIONSHIP.REP_2') |
'PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_VIEW' IN
TYPEOF (prr\representation_relationship.rep_1))) > 0)
OR
(SIZEOF(QUERY( rm <* USEDIN(SELF, 'REPRESENTATION_SCHEMA.'+
'REPRESENTATION_MAP.'+
'MAPPED_REPRESENTATION') |
SIZEOF(QUERY( mi <* USEDIN(rm, 'REPRESENTATION_SCHEMA.'+
'MAPPED_ITEM.'+
'MAPPING_SOURCE') |
SIZEOF(QUERY( rep <* using_representations (mi) |
'PRESENTATION_ORGANIZATION_SCHEMA.'+
'PRESENTATION_VIEW' IN
TYPEOF (rep))) > 0
)) > 0))
> 0);
WR3: (SIZEOF (QUERY (prr <* USEDIN (SELF, 'REPRESENTATION_SCHEMA.' +
'REPRESENTATION_RELATIONSHIP.REP_2') |
NOT('PRESENTATION_ORGANIZATION_SCHEMA.PRESENTATION_VIEW' IN
TYPEOF (prr\representation_relationship.rep_1)))) = 0)
AND
(SIZEOF(QUERY( rm <* USEDIN(SELF, 'REPRESENTATION_SCHEMA.'+
'REPRESENTATION_MAP.'+
'MAPPED_REPRESENTATION') |
SIZEOF(QUERY( mi <* USEDIN(rm, 'REPRESENTATION_SCHEMA.'+
'MAPPED_ITEM.'+
'MAPPING_SOURCE') |
SIZEOF(QUERY( rep <* using_representations (mi) |
NOT('PRESENTATION_ORGANIZATION_SCHEMA.'+
'PRESENTATION_VIEW' IN
TYPEOF (rep)))) > 0
)) > 0))
= 0);
END_ENTITY;
(*
Attribute definitions:
items: a set of annotation_occurrences or axis2_placements that the view_dependent_annotation_representation is a collection of.
Formal propositions:
WR1: At least one of the items in a view_dependent_annotation_representation shall be an annotation_occurrence.
WR2: A view_dependent_annotation_representation shall be contained in a presentation_view.
WR3: Require that all users are presentation_views.
If the type of projection is parallel, the projection is made parallel to the line from the projection_point to the geometric centre of the view_window, and the view_volume is a parallelepiped. If the type of projection is central, the projection is made along lines emanating from a projection_point and intersecting with the view_window, and the view_volume is a truncated pyramid. See figure 12 for the definition of the parallelepiped and figure 11 for the definition of the truncated pyramid.
NOTE 1 Since view_volume is not a subtype of geometric_representation_item the instances of cartesian_point which is the projection_point attribute and planar_box which is the view_window attribute are not associated in the usual way with the geometric_representation_context of each representation using a camera_model_d3 containing this view_volume. The geometric_representation_context is associated via the founded_item supertype.
EXPRESS specification:
*)
ENTITY view_volume
SUBTYPE OF (founded_item);
projection_type : central_or_parallel;
projection_point : cartesian_point;
view_plane_distance : length_measure;
front_plane_distance : length_measure;
front_plane_clipping : BOOLEAN;
back_plane_distance : length_measure;
back_plane_clipping : BOOLEAN;
view_volume_sides_clipping : BOOLEAN;
view_window : planar_box;
INVERSE
camera_usages : SET[1:?] OF camera_model_d3 FOR perspective_of_volume;
WHERE
WR1: ('GEOMETRY_SCHEMA.AXIS2_PLACEMENT_2D' IN TYPEOF(SELF\view_volume.view_window.placement)) OR
(dot_product ((representation_item(' ') || geometric_representation_item() || direction([0.0,0.0,1.0])),
view_window\planar_box.placement\axis2_placement_3d.p[3] ) = 1.0);
WR2: view_plane_distance = view_window.placement\placement.location.coordinates[3];
END_ENTITY;
(*
Attribute definitions:
projection_type: the indication of whether the projection is central or parallel.
projection_point:
the centre of the projection, i.e.,the location from which the items are viewed. For a parallel projection, this
point indicates a line from itself to the geometric centre of the view_window. For a central projection, this point is the apex of
the truncated pyramid.
view_plane_distance: a distance along the z axis of the axis2_placement indicated by the view_reference_system. This distance positions the origin of the view_window.
front_plane_distance: a signed distance along the z axis of the axis2_placement indicated by the view_reference_system. This distance specifies a plane parallel to the view_window plane. It is the distance to either the top of the truncated pyramid or the front of the parallelepiped, depending on the type of projection.
front_plane_clipping: the indication of whether or not to clip the geometry of the projected representation against the plane represented by the front_plane_distance. A value of TRUE indicates that clipping is performed; a value of FALSE indicates that clipping is not performed.
NOTE 2 If front_plane_clipping has a value of FALSE, objects behind the projection point may be visible. Behind in this sense means in the opposite direction from the projection point than the view plane.
back_plane_distance: a distance along the z axis of the axis2_placement indicated by the view_reference_system attribute. This distance specifies a plane parallel to the view_window plane. It is either the bottom of the truncated pyramid or the back of the parallelepiped, depending on the type of projection.
back_plane_clipping: the indication of whether or not to clip the geometry of the projected representation against the plane represented by the back_plane_distance. A value of TRUE indicates that clipping is performed; a value of FALSE indicates that clipping is not performed.
view_volume_sides_clipping: the indication of whether or not to clip the geometry of the projected representation against the planes which are the sides of the volume defined by the view_volume. A value of TRUE indicates that clipping is performed; a value of FALSE indicates that clipping is not performed.
NOTE 3 If view_volume_sides_clipping has a value of FALSE, the two-dimensional projection may extend beyond the boundaries of the viewport specified by the camera_image.
view_window: a rectangle on the planar_box. The representation is mapped to this rectangle which is then mapped to the viewport of a camera_image.
camera_usages: the set of camera_model_d3s that references the view_window. There shall be at least one.
NOTE 4 A camera_model_d3 requires a three-dimensional geometric_representation_context. Because of this the placement of the view_window must be a axis2_placement_3d.
Formal propositions:
WR1: In the 3D case the view_window shall be parallel to the x-y plane.
WR2: The view_plane_distance shall have the same value as the z axis of the axis2_placement_3d indicated by the placement of the view_window.
Informal propositions:
IP1: The plane represented by the front_plane_distance shall be closer to the projection_point than the plane represented by the back_plane_distance.
IP2: The projection_point shall not lie in the view plane.
The pos_geometric_representation_item_subtypes constraint specifies a constraint that applies to instances of subtypes of geometric_representation_item.
A pos_geometric_representation_item_subtypes is a constraint that applies to instances of subtypes of geometric_representation_item.EXPRESS specification:
*)
SUBTYPE_CONSTRAINT pos_geometric_representation_item_subtypes FOR geometric_representation_item;
ONEOF (camera_model,
camera_model_d3_multi_clipping_intersection,
camera_model_d3_multi_clipping_union,
curve,
direction,
light_source);
END_SUBTYPE_CONSTRAINT;
(*
EXPRESS specification:
*)
FUNCTION acyclic_presentation_representation_relationship (relation : presentation_representation_relationship; children : SET[0:?] OF presentation_representation) : BOOLEAN;
LOCAL x : SET OF presentation_representation_relationship; local_children : SET OF presentation_representation; END_LOCAL; REPEAT i:=1 TO HIINDEX(children); IF relation\representation_relationship.rep_1 :=: children[i] THEN RETURN(FALSE); END_IF; END_REPEAT; x := bag_to_set (USEDIN ( relation\representation_relationship.rep_1, 'REPRESENTATION_SCHEMA.'+ 'REPRESENTATION_RELATIONSHIP.REP_2')); local_children := children + relation\representation_relationship.rep_1; IF SIZEOF (x) > 0 THEN REPEAT i:=1 TO HIINDEX (x); IF NOT acyclic_presentation_representation_relationship (x[i] , local_children) THEN RETURN (FALSE); END_IF; END_REPEAT; END_IF; RETURN (TRUE);
END_FUNCTION;
(*
Argument definitions:
relation: the presentation_representation_relationship which is tested. This is input to the function.
children: the presentation_representations referenced by relation. This is input to the function. On initial input this set contains as its only element the rep_2 of the relation.
EXPRESS specification:
*)
FUNCTION aspect_ratio (p : planar_box) : positive_ratio_measure;
IF (p.size_in_x > 0.) AND (p.size_in_y > 0.) THEN RETURN (p.size_in_x / p.size_in_y); ELSE RETURN (?); END_IF;
END_FUNCTION;
(*
Argument definitions:
p: the input planar_box to be checked.
EXPRESS specification:
*)
RULE symbol_representation_rule FOR
(presentation_representation_relationship);WHERE
WR1: SIZEOF(QUERY(each_1 <* presentation_representation_relationship |
NOT ('PRESENTATION_DEFINITION_SCHEMA.'+
'SYMBOL_REPRESENTATION_RELATIONSHIP' IN TYPEOF(each_1)) AND
(SIZEOF(QUERY(each_2 <* [each_1\representation_relationship.rep_1,
each_1\representation_relationship.rep_2] |
'PRESENTATION_DEFINITION_SCHEMA.SYMBOL_REPRESENTATION' IN TYPEOF(each_2)
)) > 0)
)) = 0;
END_RULE;
(*
Argument definitions:
presentation_representation_relationship : the set of all instances of presentation_representation_relationship.
Formal propositions:
WR1: presentation_representation_relationships which are not symbol_representation_relationships cannot relate symbol_representations.
*)
END_SCHEMA; -- presentation_organization_schema
(*
© ISO 2021 — All rights reserved