(*
   $Id$
   ISO TC184/SC4/WG12 N4994 - ISO/CD-TS 10303-1672 Fill area style - EXPRESS ARM
   Supersedes ISO TC184/SC4/WG12 N3963
*)

SCHEMA Fill_area_style_arm;

USE FROM Basic_curve_arm;	-- ISO/TS 10303-1651
USE FROM Styled_curve_arm;	-- ISO/TS 10303-1749
USE FROM Value_with_unit_extension_arm;	-- ISO/TS 10303-1753
USE FROM Extended_basic_geometry_arm; 	-- ISO/TS 10303-1667 

  TYPE fill_area_style_select = EXTENSIBLE GENERIC_ENTITY SELECT
   (Hatch_style, 
	Tile_style);
  END_TYPE; 

  ENTITY Externally_defined_hatch_style
    SUBTYPE OF (Hatch_style); 
  END_ENTITY;

  ENTITY Externally_defined_tile_style
    SUBTYPE OF (Tile_style); 
  END_ENTITY;

  ENTITY Hatch_style
    ABSTRACT SUPERTYPE OF (ONEOF(Externally_defined_hatch_style, User_defined_hatch_style))
    SUBTYPE OF (Detailed_geometric_model_element);
  END_ENTITY;

  ENTITY Tile_style
    ABSTRACT SUPERTYPE OF (ONEOF(Externally_defined_tile_style, User_defined_tile_style))
	SUBTYPE OF (Detailed_geometric_model_element);
  END_ENTITY;

  ENTITY User_defined_hatch_style
    SUBTYPE OF (Hatch_style);
      hatch_line_appearance         : Curve_appearance;
      start_of_next_hatch_line      : Vector;
      point_of_reference_hatch_line : Cartesian_point;
      pattern_start                 : Cartesian_point;
      hatch_line_angle              : Angle_data_element;
    WHERE
     WR1 : 'STYLED_CURVE_ARM.SOLID_CURVE_FONT' IN TYPEOF(SELF.hatch_line_appearance.font);
  END_ENTITY;

  ENTITY User_defined_tile_style
    SUBTYPE OF (Tile_style);
      first_direction_repeat_factor  : Vector;
      second_direction_repeat_factor : Vector;
      tiling_scale                   : INTEGER;
  END_ENTITY;

END_SCHEMA;
