<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id$ -->
<!-- <!DOCTYPE module SYSTEM "../../../dtd/module.dtd"> -->
<!-- Generated by mkmodule.js, Eurostep Limited, http://www.eurostep.com -->
<!-- 
To view the module in IExplorer, open: sys/1_scope.xml
-->
<module
    name="general_surface_appearance"
    name.french="aspect de surface g&#233;n&#233;ral"
    part="1007"
    version="2"
    wg.number=""
    wg.number.supersedes="272"
    wg.number.arm="676"
    wg.number.mim=""
    checklist.internal_review=""
    checklist.project_leader=""
    checklist.convener=""
    status="CD-TS"
    language="E"
    publication.year=""
    published="n"
    rcs.date="$Date$"
    rcs.revision="$Revision$"
    development.folder="dvlp">

  <keywords>
    module, appearance, surface presentation, wireframe presentation, surface colour
  </keywords>

  <!-- Reference to contacts detailed in stepmod/data/basic/contacts.xml -->
  <contacts>
    <projlead ref="salmodules.projlead"/>
    <editor ref="salmodules.editor"/>
  </contacts>

  <!-- Introduction -->
  <!-- The introduction should start as shown: -->
  <purpose>
    <p>
      This part of ISO 10303 specifies an application module for the
      representation of non-shading surface presentation, including surface colour and wireframe style presentation.  This application module does not include specifications for realistic presentation of surfaces or scientific visualization.    
      </p><p>A set of application modules can be combined to provide the capability to assign shape elements to layers and visual attributes, such as colours and curve fonts, to geometric and topological elements.  For additional information, see Annex F of ISO/TS 10303-1009. 


    </p>
  </purpose>

  <!-- Items in scope -->
  <inscope>
    <li>specification of visual attributes which may be assigned to curves belonging to surfaces;</li>
    <li>selection of specific curve types for wireframe-like presentation of surfaces;</li>
    <li>specification of a mechanism of colour to surfaces.</li>
  </inscope>

  <!-- Items out of scope -->
  <outscope>
    <li>realistic presentation of surfaces;</li>
    <li>scientific visualization.</li>
  </outscope>

  <!--
      <normrefs/>

<definition/>

<abbreviations/>
  -->

  <!-- Clause 4 ARM  -->
  <arm>
    <!-- Short form EXPRESS-G -->
    <express-g>
      <imgfile file="armexpg1.xml"/>
      <imgfile file="armexpg2.xml"/>
    </express-g>
  </arm>


  <!-- Clause 5.1 Mapping specification -->
  <mapping_table>
    <ae entity="Boundary_curve_appearance">
      <aimelt>surface_style_boundary</aimelt>
      <source>ISO 10303-46</source>
    </ae>
    
    <ae entity="Control_grid_appearance">
      <aimelt>surface_style_control_grid</aimelt>
      <source>ISO-10303-46</source>

    </ae>
    <ae entity="Parameter_line_appearance">
      <aimelt>surface_style_parameter_line</aimelt>
      <source>ISO-10303-46</source>
      
      <aa attribute="number_of_u_curves">
	<aimelt>u_direction_count</aimelt>
	<source>ISO 10303-46</source>
	<refpath>surface_style_parameter_line
	surface_style_parameter_line.direction_counts[1]
	-&gt;
	direction_count_select
	direction_count_select =
	u_direction_count
	u_direction_count</refpath>
      </aa>
      <aa attribute="number_of_v_curves">
	<aimelt>v_direction_count</aimelt>
	<source>ISO 10303-46</source>
	<refpath>surface_style_parameter_line
	surface_style_parameter_line.direction_counts[1]
	-&gt;
	direction_count_select
	direction_count_select =
	v_direction_count
	v_direction_count</refpath>
      </aa>
      
    </ae>

    <ae entity="Segmentation_curve_appearance">
      <aimelt>surface_style_segmentation_curve</aimelt>
      <source>ISO 10303-46</source>
    </ae>
    <ae entity="Silhouette_curve_appearance">
      <aimelt>surface_style_silhouette</aimelt>
      <source>ISO 10303-46</source>
    </ae>

    <ae entity="Surface_appearance_wireframe">
      <aimelt>surface_style_usage</aimelt>
      <source>ISO 10303-46</source>
      <aa attribute="side">
	<aimelt>surface_side</aimelt>
	<source>ISO 10303-46</source>
	<refpath>surface_style_usage
	surface_style_usage.side -&gt;
	surface_side</refpath>
      </aa> 
      <aa attribute="styles" assertion_to="Surface_related_curve_appearance">
	<aimelt>PATH</aimelt>
	<refpath>surface_style_usage
	surface_style_usage.style -&gt; surface_side_style_select
	surface_side_style_select = surface_side_style
	surface_side_style
	surface_side_style.styles[i] -&gt;
	surface_style_element_select</refpath>
      </aa> 
    </ae>

    <ae entity="Surface_colour">
      <aimelt>surface_style_usage</aimelt>
      <source>ISO-10303-46</source>
      
      <aa attribute="side">
	<aimelt>surface_side</aimelt>
	<source>ISO 10303-46</source>
      </aa>
      
      <aa attribute="assigned_colour" assertion_to="Colour">
	<aimelt>PATH</aimelt>
	<refpath>surface_style_usage
	surface_style_usage.style -&gt;
	surface_side_style_select
	surface_side_style_select = surface_side_style
	surface_side_style
	surface_side_style.styles[i] -&gt;
	surface_style_element_select
	surface_style_element_select=surface_style_fill_area
	surface_style_fill_area.fill_area -&gt;
	fill_area_style
	fill_area_style.fill_styles[i] -&gt;
	fill_style_select
	fill_style_select = fill_area_style_colour
	fill_area_style_colour.fill_colour -&gt;
	colour</refpath>
      </aa>			
    </ae>   
    <ae entity="Surface_related_curve_appearance">
      <aimelt>(surface_style_boundary)
		(surface_style_silhouette)
		(surface_style_segmentation_curve)
		(surface_style_control_grid)
		(surface_style_parameter_line)</aimelt>
      <source>ISO 10303-46</source>
      <aa attribute="style" assertion_to="Curve_appearance">
	<aimelt>PATH</aimelt>
	<refpath>
	(surface_style_parameter_line
	surface_style_parameter_line
	surface_style_parameter_line.style_of_parameter_lines -&gt; 
	curve_or_render
	curve_or_render = curve_style
	curve_style)
	(surface_style_silhouette
	surface_style_silhouette
	surface_style_silhouette.style_of_silhouette -&gt;
	curve_or_render
	curve_or_render = curve_style
	curve_style)
	(surface_style_control_grid
	surface_style_control_grid
	surface_style_control_grid.style_of_control_grid -&gt;
	curve_or_render
	curve_or_render = curve_style
	curve_style)
	(surface_style_boundary
	surface_style_boundary
	surface_style_boundary.style_of_boundary -&gt;
	curve_or_render
	curve_or_render = curve_style
	curve_style)
	(surface_style_segmentation_curve
	surface_style_segmentation_curve
	surface_style_segmentation_curve.style_of_segmentation_curve -&gt;
	curve_or_render
	curve_or_render = curve_style
	curve_style)</refpath>
      </aa>
    </ae>   
  </mapping_table>

  <!-- Clause 5.2 MIM -->
  <mim>
    <!--  Note MIM short form express is in mim.xml -->
    <express-g>
      <imgfile file="mimexpg1.xml"/>
    </express-g>
  </mim>

</module>
