#ifndef PROTOOLINPUT_H_FILE
#define PROTOOLINPUT_H_FILE
/* ProToolinput.h: definitions and action functions for ProToolinput object */
#include <ProToolElem.h>
PRO_BEGIN_C_DECLS
typedef struct Pro_Toolinput *ProWToolinput;
typedef PRO_CONST_ARG struct Pro_Toolinput *ProConstWToolinput;
typedef struct Pro_Toolinput *ProToolinputPtr;
typedef PRO_CONST_ARG struct Pro_Toolinput *ProConstToolinputPtr;
typedef enum Pro_Tool_Type {
PRO_TOOL_NONE = 0,
PRO_TOOL_DRILL = 1,
PRO_TOOL_TURN = 2,
PRO_TOOL_SAW = 4,
PRO_TOOL_MILL = 8,
PRO_TOOL_GROOVE = 16,
PRO_TOOL_NIBBLE = 32,
PRO_TOOL_PUNCH = 64,
PRO_TOOL_AUXILIARY = 128,
PRO_TOOL_FORM = 256,
PRO_TOOL_PUNPNT = 512,
PRO_TOOL_AREA_NIB = 1024,
PRO_TOOL_MFG_REFINE = 2048,
PRO_TOOL_BORE = 16384,
PRO_TOOL_TAP = 32768,
PRO_TOOL_CSINK = 65536,
PRO_TOOL_REAM = 131072,
PRO_TOOL_CENTER_DRL = 262144,
PRO_TOOL_TURN_GRV = 524288,
PRO_TOOL_MILL_THREAD = 1048576,
PRO_TOOL_TURN_THREAD = 2097152,
PRO_TOOL_SHEAR = 4194304,
PRO_TOOL_SIDE_MILL = 8388608,
PRO_TOOL_CMM_FIXED = 16777216,
PRO_TOOL_CMM_ROTATED = 33554432, /* 1<<25 */
PRO_TOOL_CMM_CAMERA = 67108864,
PRO_TOOL_BACK = 134217728, /* 1<<27 */
PRO_TOOL_PLUNGE_MILL = (1<<29),
PRO_TOOL_TAPER = (1<<30),
PRO_TOOL_UD_PUNCH = 3,
PRO_TOOL_CROUND = 5,
PRO_TOOL_CHAMFER = 6,
PRO_TOOL_APT7 = 7,
PRO_TOOL_MULTIPLE_TIP = 9,
PRO_TOOL_END_MILL = 10,
PRO_TOOL_BALL_MILL = 11,
PRO_TOOL_BULL_MILL = 12,
PRO_TOOL_BASIC_DRILL = 13,
PRO_TOOL_SPOT_DRILL = 14,
PRO_TOOL_BORING_BAR = 15,
PRO_TOOL_KEY_CUTTER = 17,
PRO_TOOL_LOLLIPOP = 18,
PRO_TOOL_MULTI_TASK = 19,
PRO_TOOL_TAPER_BALL_MILL = 20,
PRO_TOOL_LASER_BALL = 21, /* FOR FUTURE USE */
PRO_TOOL_BARREL_LENS = 22,
PRO_TOOL_TANGENT_TO_SHAFT = 23,
PRO_TOOL_BARREL_TAPER = 24
} ProToolType;
extern ProError ProToolinputAlloc (ProToolinputPtr *r_tool_input);
/*
Purpose: Allocates a <i>ProToolinput</i> data structure.
Input Arguments:
none
Output Arguments:
r_tool_input - The handle to the newly allocated structure
Return Values:
PRO_TK_NO_ERROR - The function successfully allocated the structure.
PRO_TK_BAD_INPUTS - The argument is NULL.
*/
extern ProError ProToolinputFree (ProToolinputPtr *r_tool_input);
/*
Purpose: Frees the memory occupied by a <i>ProToolinput</i> and its
dependents (the <i>ProToolElems</i> stored in it).
Input Arguments:
r_tool_input - The address of the pointer to the tool input to be
freed. This design allows you to use <i>*r_tool_input =
NULL</i> safely.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully freed the memory.
*/
extern void ProToolinputFreeAllElems (ProToolinputPtr tool_input);
/*
Purpose: Frees all the <i>ProToolElems</i> data structures stored within
the tool input.
Input Arguments:
tool_input - The tool input from which to free the <i>ProToolElems</i>
Output Arguments:
none
Return Values:
None
*/
extern ProError ProToolinputTypeSet (ProToolinputPtr tool_input,
ProToolType tool_type);
/*
Purpose: Sets the tool type information in the tool input.
Input Arguments:
tool_input - The tool input in which to set the type
tool_type - The tool type to be set
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully set the type.
PRO_TK_BAD_INPUTS - One or more of the arguments are invalid.
*/
extern ProError ProToolinputElemAdd (ProToolinputPtr tool_input,
ProToolElem tool_elem);
/*
Purpose: Adds a <i>ProToolElem</i> data structure to the tool input.
Input Arguments:
tool_input - The tool input to which to add the element
tool_elem - The tool element to be added
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully added the element.
PRO_TK_BAD_INPUTS - One or more of the arguments are invalid.
*/
PRO_END_C_DECLS
#endif /* PROTOOLINPUT_H_FILE */