#ifndef _FS_SNAPPOINTMGR_C_H_
#define _FS_SNAPPOINTMGR_C_H_

#ifdef __cplusplus
extern "C" {
#endif



typedef enum _FSSnappedPointType {
e_FSTypeNone = 0,
e_FSTypeEndpoint = 1,
e_FSTypeMidpoint = 2,
e_FSTypeIntersectionPoint = 3,
e_FSTypeNearestPoint = 4,
}FSSnappedPointType;



typedef enum _FSSnapPointFlags {
e_FSFlagEndpoint = 0x0001,
e_FSFlagMidpoint = 0x0002,
e_FSFlagIntersectionPoint = 0x0004,
e_FSFlagNearestPoint = 0x0008,
}FSSnapPointFlags;


FSErrorCode FSDK_SnappedPoint_Release(FS_SNAPPEDPOINT_HANDLE snappedpoint_handle);
FSErrorCode FSDK_SnappedPoint_IsEmpty(FS_SNAPPEDPOINT_HANDLE snappedpoint_handle, FS_BOOL* return_value);
FSErrorCode FSDK_SnappedPoint_GetType(FS_SNAPPEDPOINT_HANDLE snappedpoint_handle, FSSnappedPointType* return_value);
FSErrorCode FSDK_SnappedPoint_GetPoint(FS_SNAPPEDPOINT_HANDLE snappedpoint_handle, FSPointF* return_value);
FSErrorCode FSDK_SnapPointMgr_Create(const FS_PDFPAGE_HANDLE page, FS_SNAPPOINTMGR_HANDLE* snappointmgr_return_value);
FSErrorCode FSDK_SnapPointMgr_IsEmpty(FS_SNAPPOINTMGR_HANDLE snappointmgr_handle, FS_BOOL* return_value);
FSErrorCode FSDK_SnapPointMgr_Release(FS_SNAPPOINTMGR_HANDLE snappointmgr_handle);
FSErrorCode FSDK_SnapPointMgr_Reload(FS_SNAPPOINTMGR_HANDLE snappointmgr_handle);
FSErrorCode FSDK_SnapPointMgr_GetSnappedPointAtPos(FS_SNAPPOINTMGR_HANDLE snappointmgr_handle, const FSPointF position, FS_UINT32 flags, FS_SNAPPEDPOINT_HANDLE* return_value);
#ifdef __cplusplus
}
#endif
#endif
