Application module: Camera view 3D | ISO/TS 10303-1316:2018-11(E) © ISO |
This clause specifies the information requirements for the Camera view 3D application module. The information requirements are specified as the Application Reference Model (ARM) of this application module.
NOTE 1 A graphical representation of the information requirements is given in Annex C.
NOTE 2 The mapping specification is specified in 5.1. It shows how the information requirements are met by using common resources and constructs defined or imported in the MIM schema of this application module.
This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following begins the Camera_view_3d_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Camera_view_3d_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
USE FROM
Basic_geometry_arm;
--
ISO/TS 10303-1652
USE FROM
Presentation_hierarchy_arm;
--
ISO/TS 10303-1330
USE FROM
Colour_arm;
--
ISO/TS 10303-1002
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Basic_geometry_arm ISO/TS 10303-1652 Presentation_hierarchy_arm ISO/TS 10303-1330 Colour_arm ISO/TS 10303-1002
NOTE 2 See Annex C, Figures C.1and C.2 for a graphical representation of this schema.
This subclause specifies the ARM types for this application module. The ARM types and definitions are specified below.
The clipping_element type allows for the designation of the data types Plane, and Clipping_operator.
EXPRESS specification:
*)
TYPE
clipping_element =
SELECT
(Plane,
Clipping_operator);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
clipping_mode =
ENUMERATION
OF
(union,
intersection);
END_TYPE;
(*
Enumerated item definitions:
union: the clipping mode is union.
intersection: the clipping mode is intersection.
The cv3_view_element_select type is an extension of the view_element_select type. It adds the data type Model_image_3d to the list of alternate data types.
EXPRESS specification:
*)
TYPE
cv3_view_element_select =
SELECT
BASED_ON
view_element_select
WITH
(Model_image_3d);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
light_type =
ENUMERATION
OF
(ambient,
directional,
spot,
positional);
END_TYPE;
(*
Enumerated item definitions:
ambient: the light is ambient;
directional: the light is directional;
spot: the light is spot;
positional: the light is positional.
EXPRESS specification:
*)
TYPE
view_projection_type =
ENUMERATION
OF
(central,
parallel);
END_TYPE;
(*
Enumerated item definitions:
central: the view projection type is central.
parallel: the view projection type is parallel.
This subclause specifies the ARM entities for this module. Each ARM application entity is an atomic element that embodies a unique application concept and contains attributes specifying the data elements of the entity. The ARM entities and definitions are specified below.
EXPRESS specification:
*)
ENTITY Camera_model_d3
SUBTYPE OF (Detailed_geometric_model_element);
clipping :
OPTIONAL
Clipping_operator;
hidden_element_appearance :
OPTIONAL
Appearance_assignment;
hidden_line_removal :
OPTIONAL
BOOLEAN;
sources :
OPTIONAL
SET[1:?] OF Light_source;
view_projection : view_projection_type;
view_window : Planar_box;
WHERE
WR1: NOT EXISTS(hidden_element_appearance) OR EXISTS(hidden_line_removal);
END_ENTITY;
(*
Attribute definitions:
clipping: specifies a role of the Clipping_operator for the Camera_model_d3. There shall exist one or more Clipping_operators for the Camera_model_d3. The value of this attribute need not be specified.
hidden_element_appearance: specifies a role of the Appearance_assignment for the Camera_model_d3. The value of this attribute need not be specified.
hidden_line_removal: specifies a logical value.
sources: specifies a role of the Light_source for the Camera_model_d3. There shall exist one or more Light_sources for the Camera_model_d3. The value of this attribute need not be specified.
view_projection: specifies a role of the view_projection_type for the Camera_model_d3.
view_window: specifies a role of the Planar_box for the Camera_model_d3.
Formal propositions:
WR1: If the hidden_line_removal is not set, then the hidden_element_appearance shall not be set as well.
EXPRESS specification:
*)
ENTITY Clipping_operator
SUBTYPE OF (Detailed_geometric_model_element);
elements : SET[1:?] OF clipping_element;
operator : clipping_mode;
END_ENTITY;
(*
Attribute definitions:
elements: specifies a role of the clipping_element for the Clipping_operator. There shall exist one or more clipping_elements for the Clipping_operator.
operator: specifies a role of the clipping_mode for the Clipping_operator.
EXPRESS specification:
*)
ENTITY Light_source
SUBTYPE OF (Detailed_geometric_model_element);
colour :
OPTIONAL
Colour;
light_type : light_type;
END_ENTITY;
(*
Attribute definitions:
colour: specifies a role of the Colour for the Light_source. The value of this attribute need not be specified.
light_type: specifies a light_type for the Light_source.
EXPRESS specification:
*)
ENTITY Model_image_3d
SUBTYPE OF (Detailed_geometric_model_element);
is_displaying : presented_model_select;
source : Camera_model_d3;
target : Planar_box;
END_ENTITY;
(*
Attribute definitions:
is_displaying: specifies a role of the presented_model_select for the Model_image_3d.
source: specifies a role of the Camera_model_d3 for the Model_image_3d.
target: specifies a role of the Planar_box for the Model_image_3d.
This subclause specifies the ARM subtype constraint for this module. The subtype constraint places a constraint on the possible super-type / subtype instantiations. The ARM subtype constraint and definition is specified below.
The cv3d_detailed_geometric_model_element_subtypes constraint specifies a constraint that applies to instances of Detailed_geometric_model_element and enforces the rule that its subtypes Clipping_operator, Model_image_3d, Light_source and Camera_model_d3 are exclusive.
EXPRESS specification:
*)
SUBTYPE_CONSTRAINT cv3d_detailed_geometric_model_element_subtypes FOR Detailed_geometric_model_element;
ONEOF (Clipping_operator,
Model_image_3d,
Light_source,
Camera_model_d3);
END_SUBTYPE_CONSTRAINT;
(*
*)
END_SCHEMA; -- Camera_view_3d_arm
(*
© ISO 2018 — All rights reserved