#ifndef PROCONNECT
#define PROCONNECT
#include <ProToolkit.h>
/*
1. Feature element tree for Connect
PRO_E_FEATURE_TREE
|
|--PRO_E_FEATURE_TYPE
|
|--PRO_E_STD_PIPE_LINE_ENV
| |--PRO_E_STD_PIPE_LINE_ID
| |--PRO_E_STD_PIPE_LINE_LNSTK
| |--PRO_E_STD_PIPE_LINE_CORNER_TYPE
| |--PRO_E_STD_PIPE_LINE_BEND_RAD
| |--PRO_E_STD_PIPE_LINE_MITER_NUM
| |--PRO_E_STD_PIPE_LINE_MITER_LEN
|
|--PRO_E_PIPE_CONNECT_FROM_MAIN_REF
|--PRO_E_PIPE_CONNECT_TO_MAIN_REF
|
|--PRO_E_PIPE_CONNECT_DIMS_SCHEME
|
|--PRO_E_PIPE_ROUTE_ENDS
| |--PRO_E_PIPE_ROUTE_END_FIRST
| |--PRO_E_PIPE_ROUTE_END_OPT
| |--PRO_E_PIPE_ROUTE_END_LENGTH
| |--PRO_E_PIPE_ROUTE_END_REF
| |--PRO_E_PIPE_CONNECT_END_ANGLE
| |--PRO_E_PIPE_ROUTE_END_SECOND
| |--PRO_E_PIPE_ROUTE_END_OPT
| |--PRO_E_PIPE_ROUTE_END_LENGTH
| |--PRO_E_PIPE_ROUTE_END_REF
| |--PRO_E_PIPE_CONNECT_END_ANGLE
2. Feature elements table
--------------------------------------------------------------------------------------------
Element Id Element Name Data Type Valid Values
--------------------------------------------------------------------------------------------
PRO_E_FEATURE_TYPE Feature Type PRO_VALUE_TYPE_INT PRO_FEAT_PIPE_JOIN
PRO_E_STD_PIPE_LINE_ENV Pipe Line Environment PRO_ELEM_TYPE_COMPOUND
PRO_E_STD_PIPE_LINE_ID Pipe Line Id PRO_ELEM_TYPE_INT
PRO_E_STD_PIPE_LINE_LNSTK Pipe Line Stock Id PRO_ELEM_TYPE_INT
PRO_E_STD_PIPE_LINE_CORNER_TYPE Pipe Line Corner Type PRO_ELEM_TYPE_OPTION ProPipeCornerType
PRO_E_STD_PIPE_LINE_BEND_RAD Pipe Line Bend Radius PRO_ELEM_TYPE_DOUBLE
PRO_E_STD_PIPE_LINE_MITER_NUM Pipe Line miter number PRO_ELEM_TYPE_INT
PRO_E_STD_PIPE_LINE_MITER_LEN Pipe Line miter length PRO_ELEM_TYPE_DOUBLE
PRO_E_PIPE_CONNECT_FROM_MAIN_REF main from reference PRO_ELEM_TYPE_SELECT
PRO_E_PIPE_CONNECT_TO_MAIN_REF main from reference PRO_ELEM_TYPE_SELECT
PRO_E_PIPE_CONNECT_DIMS_SCHEME dims scheme PRO_ELEM_TYPE_OPTION ProPipeConnDimScheme
PRO_E_PIPE_ROUTE_ENDS connect ends PRO_ELEM_TYPE_COMPOUND
PRO_E_PIPE_ROUTE_END_FIRST first end PRO_ELEM_TYPE_COMPOUND
PRO_E_PIPE_ROUTE_END_SECOND second end PRO_ELEM_TYPE_COMPOUND
PRO_E_PIPE_ROUTE_END_OPT end opt PRO_ELEM_TYPE_OPTION ProPipeEndOffsetOpt
PRO_E_PIPE_ROUTE_END_LENGTH end length PRO_ELEM_TYPE_DOUBLE
PRO_E_PIPE_ROUTE_END_REF end reference PRO_ELEM_TYPE_SELECT
PRO_E_PIPE_CONNECT_END_ANGLE end angle PRO_ELEM_TYPE_DOUBLE
3. Mandatory or Optional
------------------------------------------------------------------------------------------------
| Element Id | Mandatory |
------------------------------------------------------------------------------------------------
| PRO_E_STD_PIPE_LINE_ID | Mandatory, unless working under route environment |
|----------------------------------------------------------------------------------------------|
| PRO_E_STD_PIPE_LINE_LNSTK | Optional, default is taken from the related pipeline |
|----------------------------------------------------------------------------------------------|
| PRO_E_STD_PIPE_LINE_CORNER_TYPE | Optional ( must be set in the related linestock), |
| | default is taken from the related pipeline. |
|----------------------------------------------------------------------------------------------|
| PRO_E_STD_PIPE_LINE_BEND_RAD | Optional (Relevant only if corner type is bend), |
| | default is taken from related linestock. If spec driven, |
| | value must be defined in the related linestock. |
|----------------------------------------------------------------------------------------------|
| PRO_E_STD_PIPE_LINE_MITER_NUM | Optional (Relevant only if corner type is miter), |
| | default is taken from related linestock. If spec driven, |
| | value must be defined in the related linestock. |
|----------------------------------------------------------------------------------------------|
| PRO_E_STD_PIPE_LINE_MITER_LEN | Optional (Relevant only if corner type is miter), |
| | default is taken from related linestock. If spec driven, |
| | value must be defined in the related linestock. |
|----------------------------------------------------------------------------------------------|
| PRO_E_PIPE_CONNECT_FROM_MAIN_REF | Mandatory |
|----------------------------------------------------------------------------------------------|
| PRO_E_PIPE_CONNECT_TO_MAIN_REF | Mandatory |
|----------------------------------------------------------------------------------------------|
| PRO_E_PIPE_CONNECT_DIMS_SCHEME | Optional, default is PRO_PIPE_DIM_SCHEME_L1_L2. |
| | If one of the parameters ( length or angle ) is missing |
| | the scheme will be the default. |
|----------------------------------------------------------------------------------------------|
| PRO_E_PIPE_ROUTE_END_OPT | Optional, default is PRO_PIPE_OFFSET_END |
|----------------------------------------------------------------------------------------------|
| PRO_E_PIPE_ROUTE_END_LENGTH | Optional, length_1 is needed if dim scheme includes L1 |
| | length_2 is needed if dim scheme includes L2 |
| | Default is 0.0 |
|----------------------------------------------------------------------------------------------|
| PRO_E_PIPE_ROUTE_END_REF | Mandatory if end_offset_opt = PRO_PIPE_OFFSET_REFERENCE |
|----------------------------------------------------------------------------------------------|
| PRO_E_PIPE_CONNECT_END_ANGLE | Optional, angle_1 is needed if dim scheme includes A1 |
| | angle_2 is needed if dim scheme includes A2 |
| | Default is 0.0 |
------------------------------------------------------------------------------------------------
*/
/* Valid values */
typedef enum pro_pipe_corner_type
{
PRO_PIPE_CORNER_TYPE_FITTING = 0,
PRO_PIPE_CORNER_TYPE_MITER = 1,
PRO_PIPE_CORNER_TYPE_BEND = 2
}ProPipeCornerType;
typedef enum pro_pipe_end_offset_opt
{
PRO_PIPE_OFFSET_REFERENCE = 1,
PRO_PIPE_OFFSET_END = 2
}ProPipeEndOffsetOpt;
typedef enum pro_pipe_dims_scheme
{
PRO_PIPE_DIM_SCHEME_L1_L2 = 1,
PRO_PIPE_DIM_SCHEME_L1_A1 = 2,
PRO_PIPE_DIM_SCHEME_L1_A2 = 3,
PRO_PIPE_DIM_SCHEME_L2_A1 = 4,
PRO_PIPE_DIM_SCHEME_L2_A2 = 5,
PRO_PIPE_DIM_SCHEME_A1_A2 = 6
} ProPipeDimScheme;
#endif