/*=========================================================================
*
* Normals.h	- normal functions
*
* Version			1.0
* Revision date
*
*=======================================================================*/
#ifndef _NORMALS_H_
#define _NORMALS_H_



//--- Includes --------------------------------------------------------

#include "MTH.h"

#include "geoobj.h"

//----------------------------------------------------------------------

#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus 
/********************************************************/
#endif // _WINDOWS



//--- Functions ---------------------------------------------------------

// global compute 
extern void MLT_xComputeAllNormals				(void);
// index
extern void MLT_vIndexFace						(MLT_tdstGeometricObject *p_stObj);
// compute for object
extern void MLT_xComputeObjectNormals			(MLT_tdstGeometricObject *p_stObj );
extern void MLT_xComputeAltimapObjectNormals	(MLT_tdstGeometricObject *p_stObj );
// compute for face
extern void MLT_xComputeNormalWeightedBySurf	(MTH3D_tdstVector *p_stPResult, MTH3D_tdstVector *p_stPA, MTH3D_tdstVector *p_stPB, MTH3D_tdstVector *p_stPC );
// test functions
extern BOOL MLT_bIntersBoundingBoxes			(MLT_tdstGeometricObject *p_stObj1, MLT_tdstGeometricObject *p_stObj2);
extern BOOL MLT_bPointInBoundingBox				(MTH3D_tdstVector stPoint, MLT_tdstGeometricObject *p_stObj);


#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus */
/********************************************************/
#endif // _WINDOWS

#endif // _NORMALS_H_ 
