(*
 * $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/
 *)

(*schema_mapping fill_area_style(Fill_area_style_arm, Fill_area_style_mim);*)


entity_mapping Externally_defined_hatch_style(Externally_defined_hatch_style, externally_defined_hatch_style);

mapping_constraints;

end_mapping_constraints;

end_entity_mapping;

entity_mapping Externally_defined_tile_style(Externally_defined_tile_style, externally_defined_tile_style);

mapping_constraints;

end_mapping_constraints;

end_entity_mapping;

entity_mapping Hatch_style(Hatch_style, ((fill_area_style_hatching))((externally_defined_hatch_style)));

end_entity_mapping;

entity_mapping Tile_style(Tile_style, ((fill_area_style_tiles))((externally_defined_tile_style)
     ));

end_entity_mapping;

entity_mapping User_defined_hatch_style(User_defined_hatch_style, fill_area_style_hatching);

mapping_constraints;

end_mapping_constraints;

attribute_mapping hatch_line_angle(hatch_line_angle, fill_area_style_hatching.hatch_line_angle, plane_angle_measure_with_unit);

end_attribute_mapping;

attribute_mapping pattern_start(pattern_start, $PATH, Cartesian_point);
fill_area_style_hatching
fill_area_style_hatching.pattern_start ->
cartesian_point

end_attribute_mapping;

attribute_mapping point_of_reference_hatch_line(point_of_reference_hatch_line, $PATH, Cartesian_point);
fill_area_style_hatching
fill_area_style_hatching.point_of_reference_hatch_line ->
cartesian_point

end_attribute_mapping;

attribute_mapping hatch_line_appearance(hatch_line_appearance, $PATH, Curve_appearance);
fill_area_style_hatching
fill_area_style_hatching.hatch_line_appearance ->
curve_style

end_attribute_mapping;

attribute_mapping start_of_next_hatch_line(start_of_next_hatch_line, $PATH, Vector);
fill_area_style_hatching
fill_area_style_hatching.start_of_next_hatch_line ->
one_direction_repeat_factor
one_direction_repeat_factor.repeat_factor ->
vector

end_attribute_mapping;

end_entity_mapping;

entity_mapping User_defined_tile_style(User_defined_tile_style, fill_area_style_tiles);

mapping_constraints;
  fill_area_style_tiles
  {fill_area_style_tiles.tiles -> fill_area_style_tile_shape_select
   fill_area_style_tile_shape_select = fill_area_style_tile_symbol_with_style}
end_mapping_constraints;

attribute_mapping tiling_scale(tiling_scale, fill_area_style_tiles.tiling_scale);

end_attribute_mapping;

attribute_mapping first_direction_repeat_factor(first_direction_repeat_factor, $PATH, Vector);
fill_area_style_tiles
fill_area_style_tiles.tiling_pattern ->
two_direction_repeat_factor
two_direction_repeat_factor <=
one_direction_repeat_factor
one_direction_repeat_factor.repeat_factor ->
vector

end_attribute_mapping;

attribute_mapping second_direction_repeat_factor(second_direction_repeat_factor, $PATH, Vector);
fill_area_style_tiles
fill_area_style_tiles.tiling_pattern ->
two_direction_repeat_factor
two_direction_repeat_factor.second_repeat_factor ->
vector

end_attribute_mapping;

end_entity_mapping;
(*end_schema_mapping;*)
