#ifndef PRO_SPLITBODY_H
#define PRO_SPLITBODY_H
/*
Creo Parametric TOOLKIT declarations related to split body feature.
*/
#include <ProFeature.h>
PRO_BEGIN_C_DECLS
/*****************************************************************************
Feature element tree
PRO_E_FEATURE_TREE
|
|--PRO_E_FEATURE_TYPE
|
|--PRO_E_STD_FEATURE_NAME
|
|--PRO_E_SPLIT_BY_OPTION
|
|--PRO_E_SPLIT_BODY_TYPE
|
|--PRO_E_SPLIT_BODY
| |--PRO_E_SPLIT_TARGET_BODY
| |--PRO_E_SPLIT_BODY_REF
| |--PRO_E_SPLIT_BODY_SLICE_OPT
| |--PRO_E_SPLIT_TOOL_EXTEND_OPT
|
|--PRO_E_SPLIT_OUT
| |--PRO_E_SPLIT_VOL_SRFS
Feature elements table
----------------------------------------------------------------------------------------------------------
Element Id Element Name Data Type Valid Values
----------------------------------------------------------------------------------------------------------
PRO_E_FEATURE_TYPE Feature type PRO_VALUE_TYPE_INT PRO_FEAT_SPLIT_BODY
PRO_E_STD_FEATURE_NAME Feature Name PRO_VALUE_TYPE_WSTRING
PRO_E_SPLIT_BY_OPTION Split by option PRO_VALUE_TYPE_INT ProSplitByType
PRO_E_SPLIT_BODY_TYPE Operation PRO_VALUE_TYPE_INT ProSplitOperation
PRO_E_SPLIT_BODY Split by object Compound
PRO_E_SPLIT_TARGET_BODY Target body PRO_VALUE_TYPE_SELECTION
PRO_E_SPLIT_BODY_REF Split By PRO_VALUE_TYPE_SELECTION
PRO_E_SPLIT_BODY_SLICE_OPT Slice direction PRO_VALUE_TYPE_INT ProSplitBodySliceOpt
PRO_E_SPLIT_TOOL_EXTEND_OPT Extend splitting object PRO_VALUE_TYPE_INT ProSplitBodyToolExtendOpt
PRO_E_SPLIT_OUT Split by volume Compound
PRO_E_SPLIT_VOL_SRFS Surfaces PRO_VALUE_TYPE_SELECTION
-----------------------------------------------------------------------------------------------------------
Note 1 : Using the split body feature a given body can be splitted
either by a splitting object or by volume.
--------------------------------------------------------------------------------
Table 1: Mandatory elements for Split by object type of splitting.
------------------------------------------------------------------------------
| | Element Id | Comment |
------------------------------------------------------------------------------
| Splitting : PRO_E_SPLIT_BY_OPTION : PRO_SPLIT_BY_SPLITTING_OBJ|
| Object of type ProSplitByType |
| : PRO_E_SPLIT_TARGET_BODY : Body to be split |
| : PRO_E_SPLIT_BODY_REF : Splitting object |
| : PRO_E_SPLIT_BODY_SLICE_OPT : Side 1 / Side 2 of type |
| ProSplitBodySliceOpt |
| : PRO_E_SPLIT_TOOL_EXTEND_OPT : Extend option of type |
| ProSplitBodyToolExtendOpt |
|............................................................................|
--------------------------------------------------------------------------------
Table 2: Mandatory elements for Split by volume type of splitting.
------------------------------------------------------------------------------
| | Element Id | Comment |
------------------------------------------------------------------------------
| Volume : PRO_E_SPLIT_BY_OPTION : PRO_SPLIT_BY_VOLUME |
| of type ProSplitByType |
| : PRO_E_SPLIT_VOL_SRFS : Surfaces and / or surface |
| regions |
|----------------------------------------------------------------------------|
*****************************************************************************/
/* PRO_E_SPLIT_BY_OPTION */
typedef enum pro_split_by_type
{
PRO_SPLIT_BY_SPLITTING_OBJ = 1,
PRO_SPLIT_BY_VOLUME = 2
} ProSplitByType;
typedef enum pro_split_operation
{
PRO_SPLIT_BODY = 1,
PRO_TRIM_BODY = 2
} ProSplitOperation;
/* PRO_E_SPLIT_BODY_SLICE_OPT */
typedef enum pro_split_body_slice_opt
{
PRO_E_SPLIT_BODY_SLICE_FIRST_OPT = 0,
PRO_E_SPLIT_BODY_SLICE_SECOND_OPT = 1
} ProSplitBodySliceOpt;
/* PRO_E_SPLIT_TOOL_EXTEND_OPT */
typedef enum pro_split_body_tool_extend_opt
{
PRO_E_SPLIT_TOOL_EXTEND_OPT_NO = 0,
PRO_E_SPLIT_TOOL_EXTEND_OPT_YES = 1
} ProSplitBodyToolExtendOpt;
PRO_END_C_DECLS
#endif