Schema: presentation_resource_schema

Source : ISO 10303-46



SCHEMA presentation_resource_schema;

REFERENCE FROM external_reference_schema   -- ISO 10303-41
  (externally_defined_item,
   pre_defined_item);

REFERENCE FROM geometry_schema   -- ISO 10303-42
  (axis2_placement,
   curve,
   geometric_representation_item);

REFERENCE FROM measure_schema   -- ISO 10303-41
  (length_measure,
   positive_length_measure,
   positive_ratio_measure,
   ratio_measure);

REFERENCE FROM presentation_definition_schema   -- ISO 10303-46
  (annotation_fill_area,
   symbol_representation);

REFERENCE FROM representation_schema   -- ISO 10303-43
  (item_in_context,
   representation);

REFERENCE FROM support_resource_schema   -- ISO 10303-41
  (identifier,
   label,
   text);


TYPE font_select = SELECT
   (pre_defined_text_font,
    externally_defined_text_font,
    text_font);
END_TYPE;

TYPE staircase_or_linear = ENUMERATION OF
   (staircase,
    linear);
END_TYPE;

ENTITY character_glyph_font_usage;
  character : generic_character_glyph_symbol;
  font : text_font;
END_ENTITY;

ENTITY character_glyph_symbol
  SUBTYPE OF (generic_character_glyph_symbol);
  character_box : planar_extent;
  baseline_ratio : ratio_measure;
DERIVE
  box_height : length_measure := character_box.size_in_y;
WHERE
  WR1: {0.0 <= baseline_ratio <= 1.0};
  WR2: item_in_context(character_box, SELF\representation.context_of_items);
  WR3: 'MEASURE_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF (box_height);
END_ENTITY;

ENTITY character_glyph_symbol_outline
  SUBTYPE OF (character_glyph_symbol);
  outlines : SET[1:?] OF annotation_fill_area;
WHERE
  WR1: outlines <= SELF\representation.items;
END_ENTITY;

ENTITY character_glyph_symbol_stroke
  SUBTYPE OF (character_glyph_symbol);
  strokes : SET[1:?] OF curve;
WHERE
  WR1: strokes <= SELF\representation.items;
END_ENTITY;

ENTITY colour;
END_ENTITY;

ENTITY colour_associated
  SUBTYPE OF (colour);
  name : label;
  variable_to_be_shown : SET[1:?] OF REAL;
  mapping : colour_association_table;
END_ENTITY;

ENTITY colour_association_table;
  discrete_states_with_colours : LIST[1:?] OF state_variable_with_colour;
  interpolation_type : staircase_or_linear;
END_ENTITY;

ENTITY colour_rgb
  SUBTYPE OF (colour_specification);
  red : REAL;
  green : REAL;
  blue : REAL;
WHERE
  WR1: {0.0 <= red <= 1.0};
  WR2: {0.0 <= green <= 1.0};
  WR3: {0.0 <= blue <= 1.0};
END_ENTITY;

ENTITY colour_specification
  SUBTYPE OF (colour);
  name : label;
END_ENTITY;

ENTITY draughting_pre_defined_colour
  SUBTYPE OF (pre_defined_colour);
WHERE
  WR1: SELF\pre_defined_item.name IN ['red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'black', 'white'];
END_ENTITY;

ENTITY draughting_pre_defined_text_font
  SUBTYPE OF (pre_defined_text_font);
WHERE
  WR1: SELF\pre_defined_item.name[1:8] = 'ISO 3098';
END_ENTITY;

ENTITY externally_defined_text_font
  SUBTYPE OF (externally_defined_item);
END_ENTITY;

ENTITY generic_character_glyph_symbol
  ABSTRACT SUPERTYPE
  SUBTYPE OF (symbol_representation);
END_ENTITY;

ENTITY planar_box
  SUBTYPE OF (planar_extent);
  placement : axis2_placement;
END_ENTITY;

ENTITY planar_extent
  SUBTYPE OF (geometric_representation_item);
  size_in_x : length_measure;
  size_in_y : length_measure;
END_ENTITY;

ENTITY pre_defined_colour
  SUBTYPE OF (pre_defined_item, colour);
END_ENTITY;

ENTITY pre_defined_text_font
  SUBTYPE OF (pre_defined_item);
END_ENTITY;

ENTITY presentation_scaled_placement
  SUBTYPE OF (geometric_representation_item);
  placement : axis2_placement;
  scaling : positive_ratio_measure;
END_ENTITY;

ENTITY state_variable_with_colour;
  state_variable : REAL;
  associated_colour : colour_specification;
END_ENTITY;

ENTITY text_font;
  id : identifier;
  name : label;
  description : text;
INVERSE
  glyphs : SET[1:?] OF character_glyph_font_usage FOR font;
END_ENTITY;

ENTITY text_font_family;
  id : identifier;
  name : label;
  description : text;
INVERSE
  fonts : SET[1:?] OF text_font_in_family FOR family;
END_ENTITY;

ENTITY text_font_in_family;
  font : text_font;
  family : text_font_family;
END_ENTITY;

SUBTYPE_CONSTRAINT prs_geometric_representation_item_subtypes FOR geometric_representation_item;
  ONEOF (curve,
         planar_extent,
         presentation_scaled_placement);
END_SUBTYPE_CONSTRAINT;

END_SCHEMA;  -- presentation_resource_schema