#ifndef PRO_VOL_INTF
#define PRO_VOL_INTF



#include <ProSelection.h>
#include <ProObjects.h>
#include <ProToolkit.h>

PRO_BEGIN_C_DECLS

typedef struct volume_intf_data *ProVolumeInterferenceData;  

typedef struct ProVolumeIntfInfo
{
  ProAsmcomppath comp;                  /*component interfering with the quilt*/
  ProVolumeInterferenceData intf_data; /* Resulting volume interference data */
} ProVolumeInterferenceInfo;



extern ProError ProVolumeInterferenceDisplay (
                    ProVolumeInterferenceData interf_data,
                    ProColortype color, ProBool hilite);
/*
    Purpose: This function should be called after 
             ProVolumeInterferenceCompute(). It will display/hide the curves 
             and surfaces that interfere with the closed quilt that was 
             selected by user.

    Input Arguments:
        color - The preferred color for highlighting the ineterference
        hilite - PRO_B_TRUE for displaying or PRO_B_FALSE for hiding the 
                 current component interference data.

    Output Arguments:
        none

    Return Values:
        PRO_TK_NO_ERROR - The function succeeded.
        PRO_TK_GENERAL_ERROR - A general error is encountered.
        PRO_TK_BAD_INPUTS - The input argument is invalid.

*/
        
extern ProError ProVolumeInterferenceInfoArrayFree (
                    ProVolumeInterferenceInfo *p_intf_infos);
/*
    Purpose: This function frees the memory that was allocated by 
             ProVolumeInterferenceCompute(). Call this API to remove the 
             interference highlighted by the function 
             ProVolumeInterferenceDisplay. This function also refreshes the 
             screen. This API is supported in DLL mode only.

    Input Arguments:
        p_intf_infos - pointer to the interference data array that is no longer 
                       needed and should be freed.

    Output Arguments:
        none

    Return Values:
        PRO_TK_NO_ERROR - The function succeeded.
        PRO_TK_GENERAL_ERROR - A general error is encountered.
        PRO_TK_BAD_INPUTS - Pointer to the interference data array is invalid.

*/

PRO_END_C_DECLS

#endif