#ifndef PROCLCMD_H
#define PROCLCMD_H


#include <ProObjects.h>




typedef struct usr_cl_cmd_data
{
   Pro3dPnt   location;
   ProVector  axis;
   double     feed;
}  ProClCmdData;



PRO_BEGIN_C_DECLS

/*===========================================================================*/

typedef ProError (*ProClCommandExpandAction) (ProFeature *pro_feat,
		      wchar_t (*command)[512], int num_cmd_lines,
		      ProClCmdData **r_output_arr, int *output_num);
/*
    Purpose: This is the callback to interpret the user's CL commands. 
             <p> If you do not supply a callback, the system uses the CL 
             command location.

    Input Arguments:
        pro_feat - The feature.
        command - The CL command. This is an array of lines.
        num_cmd_lines - The number of lines in the command.

    Output Arguments:
        r_output_arr - The resultant array.
        output_num - The number if items in the array <i>r_output_arr</i>.

    Return Values:
        PRO_TK_NO_ERROR - The function was successful.
        PRO_TK_GENERAL_ERROR - A general error occurred and the function 
                               failed.
        PRO_TK_E_NOT_FOUND - The specified CL command was not found.

*/


/*===========================================================================*/

typedef ProBoolean (*ProClCommandGetLocAction) (ProFeature     *pro_feat, 
                                          wchar_t        (*command)[512],
                                          int            num_cmd_lines,
                                          ProPoint3d     location );
/*
    Purpose: Gets the location of the specified CL command.

    Input Arguments:
        pro_feat - The feature
        command - The CL command whose location to get
        num_cmd_lines - The number of lines in the CL command

    Output Arguments:
        location - The location

    Return Values:
        PRO_B_TRUE - The function found the specified CL command and return its 
                     location.
        PRO_B_FALSE - The function did not find the specified CL command.

*/

PRO_END_C_DECLS

#endif