(*
 * $Id$
 *
 * JSDAI(TM), a way to implement STEP, ISO 10303
 * Copyright (C) 1997-2008, LKSoftWare GmbH, Germany
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License
 * version 3 as published by the Free Software Foundation (AGPL v3).
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * JSDAI is a registered trademark of LKSoftWare GmbH, Germany
 * This software is also available under commercial licenses.
 * See also http://www.jsdai.net/
 *)

(*
  Derived from ISO TC184/SC4/WG12 N - ISO/CD-TS 10303-xxxx Annotated presentation - EXPRESS ARM
  by LKSoftWare GmbH for implementation purpose within IDA-STEP(TM)
*) 


SCHEMA Annotated_presentation_xim;

USE FROM Appearance_assignment_xim;    -- ISO/TS 10303-1001

USE FROM Associative_text_xim;    -- ISO/TS 10303-1132

-- USE FROM Construction_geometry_xim;    -- ISO/TS 10303-1131 -- TO be removed as covered by basic_geometry_arm used by fill_area

USE FROM Contextual_shape_positioning_xim;    -- ISO/TS 10303-1027

USE FROM Curve_appearance_xim;    -- ISO/TS 10303-1003

USE FROM Elemental_geometric_shape_xim;    -- ISO/TS 10303-1004

USE FROM Foundation_representation_xim;    -- ISO/TS 10303-1006

USE FROM General_surface_appearance_xim;    -- ISO/CD-TS 10303-1007

USE FROM Group_xim;    -- ISO/TS 10303-1113

USE FROM Layer_assignment_xim;    -- ISO/TS 10303-1008

USE FROM Fill_area_style_xim; -- ISO/TS 10303-1672

--USE FROM Camera_view_mim;

(* NEED To review it completely anyway

USE FROM aic_mechanical_design_geometric_presentation(mechanical_design_geometric_presentation_area);

USE FROM presentation_organization_schema(
	presentation_area,
	presentation_view,
	presented_item_representation);

TYPE annotated_appearance_context = SELECT BASED_ON appearance_context WITH 
   (Group, 
    Layer_armx, 
    View, 
    presentation_area);
END_TYPE; 

TYPE annotation_select = EXTENSIBLE GENERIC_ENTITY SELECT
   (Annotation_element, 
    Draughting_callout_armx);
END_TYPE; 

TYPE area_select = EXTENSIBLE GENERIC_ENTITY SELECT
   (presentation_area);
END_TYPE; 

TYPE draughting_callout_content_select = SELECT
   (Annotation_curve, 
    Annotation_subfigure, 
    Annotation_symbol_armx, 
    Text_armx);
END_TYPE; 

TYPE presentation_association_select = EXTENSIBLE GENERIC_ENTITY SELECT;
END_TYPE; 

TYPE symbol_definition_select = SELECT
   (Dimension_symbol, 
    externally_defined_symbol,
    symbol_representation, 
    pre_defined_geometrical_tolerance_symbol, 
    marker_select, 
    pre_defined_surface_condition_symbol, 
    Terminator);
END_TYPE; 

TYPE view_placement_select = EXTENSIBLE GENERIC_ENTITY SELECT
   (item_defined_transformation, 
    cartesian_transformation_operator_2d);
END_TYPE; 

ENTITY Annotation_subfigure
  SUBTYPE OF (annotation_subfigure_occurrence);
END_ENTITY;

ENTITY Annotation_symbol_armx
  SUBTYPE OF (annotation_symbol_occurrence);
  symbol_definition : symbol_definition_select;
END_ENTITY;

ENTITY Dimension_symbol
	SUBTYPE OF (pre_defined_dimension_symbol);
END_ENTITY;

ENTITY Draughting_callout_armx
  SUBTYPE OF (draughting_elements);
  -- It is overlapping with the same attribute from AIM and it looks like ARM should not introduce some new here
  --contents : LIST[1:?] OF draughting_callout_content_select;
END_ENTITY;

ENTITY Styled_annotation_model
  SUBTYPE OF (draughting_model);
  SELF\representation.context_of_items RENAMED is_defined_in : geometric_representation_context;
END_ENTITY;

ENTITY View
  SUBTYPE OF (presentation_view);
  id_x : OPTIONAL STRING;
  -- Attributes are inherited from supertype
  --name : STRING; 
  --description : OPTIONAL STRING;
  layout : area_select;
  view_placement : view_placement_select;
  SELF\representation.context_of_items RENAMED view_space : geometric_representation_context;
  DERIVE
   SELF\representation.id : identifier := id_x;
END_ENTITY;

ENTITY View_area_assignment
  SUBTYPE OF (presented_item_representation);
  SELF\presented_item_representation.presentation RENAMED associated_view_area : presentation_area;
  is_describing : presentation_association_select;
END_ENTITY;

ENTITY View_area_relationship
  SUBTYPE OF (representation_relationship);
  SELF\representation_relationship.rep_2 RENAMED related : mechanical_design_geometric_presentation_area;
  SELF\representation_relationship.rep_1 RENAMED relating : mechanical_design_geometric_presentation_area;
  SELF\representation_relationship.name RENAMED relationship_type : label;
END_ENTITY;
*)
END_SCHEMA;  -- Annotated_presentation_xim


