/*!****************************************************************************

 @file         PVRTGeometry.h
 @copyright    Copyright (c) Imagination Technologies Limited.
 @brief        Code to affect triangle mesh geometry.

******************************************************************************/
#ifndef _PVRTGEOMETRY_H_
#define _PVRTGEOMETRY_H_


/****************************************************************************
** Defines
****************************************************************************/
#define PVRTGEOMETRY_IDX	unsigned int

#define PVRTGEOMETRY_SORT_VERTEXCACHE (0x01	/* Sort triangles for optimal vertex cache usage */)
#define PVRTGEOMETRY_SORT_IGNOREVERTS (0x02	/* Do not sort vertices for optimal memory cache usage */)

/****************************************************************************
** Functions
****************************************************************************/

/*!***************************************************************************
 @brief      	    Triangle sorter
 @param[in,out]		pVtxData		Pointer to array of vertices
 @param[in,out]		pwIdx			Pointer to array of indices
 @param[in]			nStride			Size of a vertex (in bytes)
 @param[in]			nVertNum		Number of vertices. Length of pVtxData array
 @param[in]			nTriNum			Number of triangles. Length of pwIdx array is 3* this
 @param[in]			nBufferVtxLimit	Number of vertices that can be stored in a buffer
 @param[in]			nBufferTriLimit	Number of triangles that can be stored in a buffer
 @param[in]			dwFlags			PVRTGEOMETRY_SORT_* flags
*****************************************************************************/
void PVRTGeometrySort(
	void				* const pVtxData,
	PVRTGEOMETRY_IDX	* const pwIdx,
	const int			nStride,
	const int			nVertNum,
	const int			nTriNum,
	const int			nBufferVtxLimit,
	const int			nBufferTriLimit,
	const unsigned int	dwFlags);


#endif /* _PVRTGEOMETRY_H_ */

/*****************************************************************************
 End of file (PVRTGeometry.h)
*****************************************************************************/