Integrated generic resource: Visual presentation ISO 10303-46: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 Presentation organization
   4.1 General
   4.2 Fundamental concepts and assumptions
   4.3 Presentation organization type definitions
   4.4 Presentation organization entity definitions
   4.5 Presentation organization subtype constraint definition
   4.6 Presentation organization function definitions
   4.7 Presentation organization rule definitions
5 Presentation definition
   5.1 General
   5.2 Fundamental concepts and assumptions
   5.3 Presentation definition type definitions
   5.4 Presentation definition entity definitions
   5.5 Presentation definition subtype constraint definition
   5.6 Presentation definition function definitions
6 Presentation appearance
   6.1 General
   6.2 Fundamental concepts and assumptions
   6.3 Presentation appearance type definitions
   6.4 Presentation appearance entity definitions
   6.5 Presentation appearance subtype constraint definitions
   6.6 Presentation appearance function definitions
7 Presentation resource
   7.1 General
   7.2 Fundamental concepts and assumptions
   7.3 Presentation resource type definitions
   7.4 Presentation resource entity definitions
   7.5 Presentation resource subtype constraint definition

A Short names of entities
B Information object registration
C Computer interpretable listings
D EXPRESS-G diagrams
E Technical discussion
F Change history
Bibliography
Index

4 Presentation organization schema

4.1 General

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:

Level 1:
presentation set: A presentation set is a collection of independent pictures that are concerned with the same subject. Examples of presentation sets are a collection of drawing sheets or a collection of the images of several display screens. A presentation set is composed of one or many presentation areas.
Level 2:
presentation area: A presentation area is a generalization of a display that represents a single area on a display screen or device. A presentation area contains any number of presentation areas, presentation views, and area-dependent annotation representations.
Level 3:
presentation view: A presentation view is a two-dimensional presentation of product shape, which includes any annotation that is associated with that view. A presentation view contains any number of product data representation views and view-dependent annotation representations.
area dependent annotation representation: An area dependent annotation representation is all annotation with a presentation area.
Level 4:
product data representation view: A product data representation view is a two-dimensional presentation of product shape, which includes any annotation associated with the product shape.
view-dependent annotation representation: A view-dependent annotation representation is the annotation associated with a presentation view.


Figure 2 —  Presentation hierarchy

Figure 2 —  Presentation hierarchy

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.



Figure 3 —  Example of a presentation hierarchy

Figure 3 —  Example of a presentation hierarchy

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 presentation_organization_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 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.

4.2 Fundamental concepts and assumptions

Presentation hierarchy

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.



Figure 4 —  Mapping the presentation hierarchy to instances of entities

Figure 4 —  Mapping the presentation hierarchy to instances of entities

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.



Figure 5 —  Association of presentation view and presentation area using mapped_item

Figure 5 —  Association of presentation view and presentation area using mapped_item

Camera model and projection

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.

Layers

A 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 model

This 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.

4.3 presentation_organization_schema type definitions

4.3.1 annotation_representation_select   EXPRESS-G

The annotation_representation_select type is an extensible list of alternate data types. It provides a mechanism to refer to instances of the data types included in the annotation_representation_select type or in its extensions.

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

4.3.2 area_dependent_annotation_representation_item   EXPRESS-G

The area_dependent_annotation_representation_item type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE area_dependent_annotation_representation_item = SELECT
   (annotation_occurrence,
    axis2_placement);
END_TYPE;
(*

4.3.3 area_or_view   EXPRESS-G

The area_or_view type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types. The area_or_view type indicates the things that may be assigned a background colour.

EXPRESS specification:

*)
TYPE area_or_view = SELECT
   (presentation_area,
    presentation_view);
END_TYPE;
(*

4.3.4 camera_model_d3_multi_clipping_intersection_select   EXPRESS-G

The camera_model_d3_multi_clipping_intersection_select type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE camera_model_d3_multi_clipping_intersection_select = SELECT
   (camera_model_d3_multi_clipping_union,
    plane);
END_TYPE;
(*

4.3.5 camera_model_d3_multi_clipping_union_select   EXPRESS-G

The camera_model_d3_multi_clipping_union_select type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE camera_model_d3_multi_clipping_union_select = SELECT
   (camera_model_d3_multi_clipping_intersection,
    plane);
END_TYPE;
(*

4.3.6 central_or_parallel   EXPRESS-G

A central_or_parallel indicates the type of perspective transformation that is used by the camera_model. The types are either a parallel projection onto the viewing plane or a central projection from the projection_point to the viewing plane. See Figures 11 and 12.

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.

4.3.7 layered_item   EXPRESS-G

The layered_item type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types. The layered_item specifies items to be grouped into layers by a presentation_layer_assignment.

EXPRESS specification:

*)
TYPE layered_item = SELECT
   (presentation_representation,
    representation_item);
END_TYPE;
(*

4.3.8 presentation_representation_select   EXPRESS-G

The presentation_representation_select type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types. A presentation_representation_select is used to allow presented_item_representation to associate a presentation with the item being presented.

EXPRESS specification:

*)
TYPE presentation_representation_select = SELECT
   (presentation_representation,
    presentation_set);
END_TYPE;
(*

4.3.9 presentation_size_assignment_select   EXPRESS-G

The presentation_size_assignment_select type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE presentation_size_assignment_select = SELECT
   (presentation_view,
    presentation_area,
    area_in_set);
END_TYPE;
(*

4.3.10 product_data_representation_view_item   EXPRESS-G

The product_data_representation_view_item type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE product_data_representation_view_item = SELECT
   (camera_image,
    axis2_placement);
END_TYPE;
(*

4.3.11 view_dependent_annotation_representation_item   EXPRESS-G

The view_dependent_annotation_representation_item type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE view_dependent_annotation_representation_item = SELECT
   (annotation_occurrence,
    axis2_placement);
END_TYPE;
(*

4.4 presentation_organization_schema entity definitions

4.4.1 area_dependent_annotation_representation   EXPRESS-G

An area_dependent_annotation_representation is a type of presentation_representation. An area_dependent_annotation_representation is a picture that may be contained in the picture of a presentation_area. The picture it represents is made up of those of its items which are annotation_occurrence entities. An area_dependent_annotation_representation may be related only to a presentation_area.

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.

4.4.2 area_in_set   EXPRESS-G

An area_in_set is a relationship between a presentation_area and a presentation_set. A presentation_area may participate in many presentation_sets; a presentation_set shall include at least one 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.

4.4.3 background_colour   EXPRESS-G

A background_colour is a type of colour. A background_colour is the colour used for the background of a presentation area or view.

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.

4.4.4 camera_image   EXPRESS-G

A camera_image is a type of mapped_item. A camera_image may be either a camera_image_2d_with_scale or a camera_image_3d_with_scale. A camera_image is the result of projecting two- or three-dimensional geometry where the projection transformation is the mapping of the camera_model to the viewport.

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.

4.4.5 camera_image_2d_with_scale   EXPRESS-G

A camera_image_2d_with_scale is a type of camera_image with a derived scale. The scale is the ratio between the size of the viewport and the size of the view window of the camera_model.

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.

4.4.6 camera_image_3d_with_scale   EXPRESS-G

A camera_image_3d_with_scale is a type of camera_image that projects three-dimensional geometry and has a derived scale. The scale is the ratio between the size of the viewport and the size of the view_window of the view_volume.

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.

4.4.7 camera_model   EXPRESS-G

A camera_model is a type of geometric_representation_item. A camera_model is a camera_model_d2 or a camera_model_d3. A camera_model contains the information needed to create a projection or mapping from a representation to a picture of that representation.

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.

4.4.8 camera_model_d2   EXPRESS-G

A camera_model_d2 is a type of camera_model. A camera_model_d2 contains the information needed to create a two-dimensional mapping from a representation to a picture of that representation.

NOTE 1   The mechanism of the camera_model_d2 is shown in figure 6.



Figure 6 —  Camera model d2

Figure 6 —  Camera model d2

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.

4.4.9 camera_model_d2_shape_clipping   EXPRESS-G

A camera_model_d2_shape_clipping is a type of camera_model_d2 with additional clipping specified for the mapped representation.

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.

4.4.10 camera_model_d3   EXPRESS-G

A camera_model_d3 is a type of camera_model. A camera_model_d3 contains the information needed to create the projection from a three-dimensional representation to a two-dimensional picture of that representation. See view_volume for details of the projection.

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.

4.4.11 camera_model_d3_multi_clipping   EXPRESS-G

A camera_model_d3_multi_clipping is a type of camera_model_d3. A camera_model_d3_multi_clipping contains the information needed to create a projection from a representation to a picture of that representation using planes in the coordinate space of the projected representation to clip the geometry of the representation prior to projection.

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.

4.4.12 camera_model_d3_multi_clipping_intersection   EXPRESS-G

A camera_model_d3_multi_clipping_intersection is a type of geometric_representation_item that defines an intermediate acceptance region for a camera_model_d3_multi_clipping_union.

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.

4.4.13 camera_model_d3_multi_clipping_union   EXPRESS-G

A camera_model_d3_multi_clipping_union is a type of geometric_representation_item that defines an intermediate acceptance region for a camera_model_d3_multi_clipping_intersection or a camera_model_d3_multi_clipping.

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.

4.4.14 camera_model_d3_with_hlhsr   EXPRESS-G

A camera_model_d3_with_hlhsr is a type of camera_model_d3 that indicates whether hidden line and hidden surface removal shall be performed.

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.

4.4.15 camera_model_with_light_sources   EXPRESS-G

A camera_model_with_light_sources is a type of camera_model_d3. A camera_model_with_light_sources contains the information needed to create a projection from a representation to a picture of that representation with additional information about the light sources to be used for shading.

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.

4.4.16 camera_usage   EXPRESS-G

A camera_usage is a type of representation_map. A camera_usage is the association between two- or three-dimensional representation, and the origin for the mapping. The camera_model is the source part of the projection mapping.

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.

4.4.17 graphical_transformation   EXPRESS-G

A graphical_transformation is a type of item_defined_transformation. A graphical_transformation is a transformation which allows arbitrary two-dimensional positioning, rotation, and uniform scaling. It is used by presentation_representation_relationship to define the transformation between related presentation_representations. The transformation is defined as follows.

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.



Figure 7 —  Graphical transformation

Figure 7 —  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.

4.4.18 light_source   EXPRESS-G

A light_source is a type of geometric_representation_item. A light_source may be a light_source_ambient or a light_source_directional or a light_source_positional or a light_source_spot. A light_source affects the display of surfaces. Lighting is applied on a surface by surface basis, i.e., no interactions between surfaces are defined.

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.

4.4.19 light_source_ambient   EXPRESS-G

A light_source_ambient is a type of light_source. A light_source_ambient affects a surface independent of the orientation and position of the surface.

EXPRESS specification:

*)
ENTITY light_source_ambient
  SUBTYPE OF (light_source);
END_ENTITY;
(*

4.4.20 light_source_directional   EXPRESS-G

A light_source_directional is a type of light_source. A light_source_directional affects a surface based on its orientation but independent of the position of the surface. All the rays of light are parallel to the direction.

NOTE    Figure 8 shows the definition of light_source_directional.



Figure 8 —  Light source directional

Figure 8 —  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.

4.4.21 light_source_positional   EXPRESS-G

A light_source_positional is a type of light_source. A light_source_positional affects a surface based on the orientation and position of the surface.

NOTE 1   Figure 9 shows the definition of light_source_positional.



Figure 9 —  Light source positional

Figure 9 —  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.

4.4.22 light_source_spot   EXPRESS-G

A light_source_spot is a type of light_source. A light_source_spot affects a surface based on the position and direction of the surface and the cone of influence of the light source. The cone of influence is determined by the position, orientation, and spread_angle of the light source spot. Only those parts of an object that lie within the cone of influence will be affected by a light_source_spot.

NOTE 1   Figure 10 shows the definition of light_source_spot.



Figure 10 —  Light source positional

Figure 10 —  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_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.

4.4.23 presentation_area   EXPRESS-G

A presentation_area is a type of presentation_representation. A presentation_area represents a picture that can contain other pictures and can itself be contained in another picture which is also a presentation_area.

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.

4.4.24 presentation_layer_assignment   EXPRESS-G

A presentation_layer_assignment is assignment of an identifier to a set of presentation_representations or representation_items. This set contains the pictures, or elements of pictures, that are assigned to a layer. A representation_item that is assigned to a layer shall be a styled_item, or shall be defined by one or more styled_items. In the case of a presentation_representation, the assignment also associates the layer identifier with each styled representation_item that is contained in or referenced by that presentation_representation, unless this assignment is over-ridden by a representation_item_dependent_layer_assignment. In the case of a representation_item, the assignment also associates the layer identifier with each styled representation_item that is referenced directly or indirectly by that item, unless this assignment is over-ridden by a representation_item_dependent_layer_assignment.

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.

4.4.25 presentation_layer_usage   EXPRESS-G

A presentation_layer_usage is a relationship between a presentation_layer_assignment and a presentation_representation in order to provide a context for the assignment of style and visibility to items assigned to a layer. Many presentation_representations may be related to a single presentation_layer_assignment; a single presentation_representation may be related to many presentation_layer_assignments.

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.

4.4.26 presentation_representation   EXPRESS-G

A presentation_representation is a type of representation. A presentation_representation represents the definition of the picture to be generated by a system which displays the presentation information. The picture refers to an object which may consist of two-dimensional geometry, three-dimensional geometry, and annotation. The reference to geometry and annotation is made indirectly by building a hierarchy of presentation_representations. Lower levels of this hierarchy are constrained to contain only geometry or annotation. A presentation_representation may be either a area_dependent_annotation_representation or a presentation_area or a presentation_view or a product_data_representation_view or a view_dependent_annotation_representation.

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.

4.4.27 presentation_representation_relationship   EXPRESS-G

A presentation_representation_relationship is a type of representation_relationship_with_transformation. A presentation_representation_relationship is a relationship between presentation_representation entities. The relationship is directed, meaning that the child representation (rep_2) is transformed into the parent representation (rep_1), and no meaning is intended for the inverse transformation. The presentation_representation_relationship restricts the relationships between certain presentation_representations to ensure that presentation_representation entities are arranged in a hierarchy.

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.

4.4.28 presentation_set   EXPRESS-G

A presentation_set is a collection of presentation_areas.

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.

4.4.29 presentation_size   EXPRESS-G

A presentation_size is used to define the size of a presentation_area or presentation_view. The size for a presentation_area may be assigned directly or may be assigned dependent on a presentation_set which contains a presentation_area. This allows the assignment of different sizes to a single presentation_area for each presentation_set which contains the area. 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.

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.

4.4.30 presentation_view   EXPRESS-G

A presentation_view is a type of presentation_representation. A presentation_view is a picture that may contain other pictures and may itself be contained in a picture. It does not represent a complete picture and shall not be displayed without being placed in a presentation_area. A presentation_view shall be the root of some tree of presentation_representation entities which are related using the presentation_representation_relationship entity, or it shall include mapped_items, whose sources are presentation_representations, in its items set. This allows the placement of pictures within pictures. Any number of product_data_representation_view or view_dependent_annotation_representation entities may be related to or contained in a single presentation_view. The size of a presentation_view may be defined by its reference from a presentation_size entity. Clipping based on the presentation_view size is executed by the system that creates an actual display based on the presentation information. If a presentation_view size is not defined, then clipping is executed solely based on the size of the presentation_area in which the presentation_view is contained. A background colour may be specified through the use of the background_colour entity.

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

4.4.31 presented_item   EXPRESS-G

A presented_item is the identification of the subject of a picture. The specification of the subject of a picture is provided in an Application Protocol.

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

4.4.32 presented_item_representation   EXPRESS-G

A presented_item_representation is the association of presentation_representation or presentation_set with the item for which it is a picture.

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.

4.4.33 product_data_representation_view   EXPRESS-G

A product_data_representation_view is a type of presentation_representation. A product_data_representation_view is a picture that consists of two-dimensional projections of geometry, annotation, or both. It may contain other pictures, and may be contained in a picture. It does not represent a complete picture and shall not be displayed without being placed in a presentation_view.

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.

4.4.34 representation_item_dependent_layer_assignment   EXPRESS-G

A representation_item_dependent_layer_assignment is a type of presentation_layer_assignment that assigns a layer to a presentation_representation or a styled representation_item only as it participates in the definition of a representation_item. This assignment over-rides any layer assignment for the presentation_representation or styled representation_item through its participation in the definition of the representation_item.

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.

4.4.35 view_dependent_annotation_representation   EXPRESS-G

A view_dependent_annotation_representation is a type of presentation_representation. A view_dependent_annotation_representation is a picture that may be contained in the picture of a presentation_view. The picture that it represents contains only items which are annotation_occurrence entities. A view_dependent_annotation_representation may be related only to a presentation_view.

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.

4.4.36 view_volume   EXPRESS-G

A view_volume is a type of founded_item. A view_volume is defined in the view_reference_system of the camera model which uses the volume. It defines a volume that is projected onto the viewport of the product_data_representation_view. This volume is either a truncated pyramid or a parallelepiped. The contents of this volume are projected onto the rectangle defined by the view_window which is then mapped onto the viewport.

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.

Figure 11 —  View volume, projection type CENTRAL

Figure 11 —   View volume, projection type CENTRAL



Figure 12 —  View volume, projection type PARALLEL

Figure 12 —  View volume, projection type PARALLEL

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.

4.5 presentation_organization_schema subtype constraint definition

4.5.1 pos_geometric_representation_item_subtypes   EXPRESS-G

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

4.6 presentation_organization_schema function definitions

4.6.1 acyclic_presentation_representation_relationship

The acyclic_presentation_representation_relationship function checks whether the graph defined by a presentation_representation_relationship, the related presentation_representation, and all presentation_representation_relationships referring to the related presentation_representation is acyclic. The function returns TRUE if the graph is acyclic; and FALSE if it is cyclic.

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.

4.6.2 aspect_ratio

The aspect_ratio function checks that both the attributes, size_in_x and size_in_y, have positive values and returns a positive_ratio_measure that is the ratio of length to height for a given planar_box. In other cases, an indeterminate value is returned.

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.

4.7 presentation_organization_schema rule definitions

4.7.1 symbol_representation_rule

The symbol_representation_rule ensures that a presentation_representation_relationship, which relates two symbol_representations, is a symbol_representation_relationship.

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