#ifndef PROMIRRORH
#define PROMIRRORH
 

 
#include <ProToolkit.h>
#include <ProFeature.h>
 
PRO_BEGIN_C_DECLS
 
 
/*****************************************************************************\
 
Feature element tree
 
  PRO_E_FEATURE_TREE
    |
    |--PRO_E_FEATURE_TYPE
    |
    |--PRO_E_SRF_TRANS_TYPE
    |
    |--PRO_E_STD_FEATURE_NAME
    |
    |--PRO_E_MIRROR_REF_ITEMS
    |
    |--PRO_E_MIRROR_REF_PLANE
    |
    |--PRO_E_COPY_NO_COPY


Feature elements table
 
------------------------------------------------------------------------------
Element Id                	  Element Name          	Data Type        		
------------------------------------------------------------------------------
PRO_E_FEATURE_TYPE            Feature Type              PRO_VALUE_TYPE_INT

PRO_E_SRF_TRANS_TYPE          Transform Type            PRO_VALUE_TYPE_INT

PRO_E_STD_FEATURE_NAME    	  Feature Name  		    PRO_VALUE_TYPE_WSTRING

PRO_E_MIRROR_REF_ITEMS		  Mirror Items 		        PRO_VALUE_TYPE_SELECTION
						      ( Multivalued Element )

PRO_E_MIRROR_REF_PLANE	 	  Mirror Plane		        PRO_VALUE_TYPE_SELECTION

PRO_E_COPY_NO_COPY		      copy no copy		        PRO_VALUE_TYPE_INT


------------------------------------------------------------------------------


Table Mirror:1 Common values of elements required for Mirror
-------------------------------------------------------------------------
| Element Id               | Value                                      |
|-----------------------------------------------------------------------|
|                          |                                            |
| PRO_E_FEATURE_TYPE       | = PRO_FEAT_SRF_MDL,if geometry is selected |
|                          | = PRO_FEAT_GEN_MERGE, if part is selected  |
|                          |                                            |
|-----------------------------------------------------------------------|
|                          |                                            |
| PRO_E_SRF_TRANS_TYPE     | = PRO_SURF_TRANS_TYPE_MIRROR                |
|                          |    if geometry is selected                 |
|                          | = PRO_SURF_TRANS_TYPE_PART_MIRROR           |
|                          |    if part is selected                     |
|                          |                                            |
|-----------------------------------------------------------------------|
|                          |                                            |
| PRO_E_MIRROR_REF_ITEMS   | PRO_CURVE, PRO_COMP_CRV, PRO_AXIS,         |
|                          | PRO_QUILT, PRO_DATUM_PLANE, PRO_CSYS,      |
|                          | PRO_POINT, PRO_PART (Refer Note#1)         |
|                          |                                            |
|-----------------------------------------------------------------------|
|                          |                                            |
| PRO_E_MIRROR_REF_PLANE   | PRO_DATUM_PLANE , PRO_SURFACE ( only       |
|                          | plane surfaces allowed )                   |
|                          |                                            |
|-----------------------------------------------------------------------|
|                          |                                            |
| PRO_E_COPY_NO_COPY       | ProMirrorCopy                              |
|                          | = PRO_MIRROR_KEEP_ORIGINAL                 |
|                          | = PRO_MIRROR_HIDE_ORIGINAL                 |
|                          |                                            |
-------------------------------------------------------------------------


Table Mirror:2 Elements required for Mirror
-------------------------------------------------------------------------
| Element Id                 	| Comment                                 |
-------------------------------------------------------------------------
| PRO_E_FEATURE_TYPE          : Mandatory                               |
-------------------------------------------------------------------------
| PRO_E_SRF_TRANS_TYPE        : Mandatory                               |
-------------------------------------------------------------------------
| PRO_E_STD_FEATURE_NAME      : Optional                                |
-------------------------------------------------------------------------
| PRO_E_MIRROR_REF_ITEMS      : Mandatory                               |
-------------------------------------------------------------------------
| PRO_E_MIRROR_REF_PLANE      : Mandatory                               |
-------------------------------------------------------------------------
| PRO_E_COPY_NO_COPY          : Mandatory                               |
|                             :                                         |
|                             : This element's value will not have any  |
|                             : meaning in the case where part is       |
|                             : selected as reference item for          |
|                             : mirroring.                              |
-------------------------------------------------------------------------



Note 1 : In Pro/ENGINEER Wildfire 2.0, the PRO_E_MIRROR_REF_ITEMS of 
         PRO_FEATURE type are not supported. 

\*****************************************************************************/

typedef enum pro_mirror_copy
{
   PRO_MIRROR_KEEP_ORIGINAL	= 0,
   PRO_MIRROR_HIDE_ORIGINAL	= 1

} ProMirrorCopy;


PRO_END_C_DECLS
 
#endif