#ifndef __RENDERFRAME
#define __RENDERFRAME

#include "vectors.h"

enum{
	kClipBasePoint=0,
	kClipFarPoint,
	kClipXPlane,
	kClipYPlane,
	kClipRearPlane,
	kClipRightPlane,	
	kClipLeftPlane,
	kClipTopPlane,
	kClipBotPlane,
	kNumClipPlanes
};

#define kClipSaveDistance 0

//#define __POLYCOUNT

#ifdef __POLYCOUNT
extern int gPolyCount;
#endif

enum{
	kCameraChase,
	kCameraChaseClose,	
	kCameraCockpitCarHidden,
	kCameraLeftWheel,
	kCameraLeftSide,
	kCameraTripod,
	kCameraTop,
	kCameraNumModes,
	kCameraFree,
	kCameraCockpit
};

extern int gCameraMode,gCameraReverse,gClipEnable;
extern tMatrix3 gTransformDir;
extern tVector3 gTransformPos;

#define ClipDistance() (320.0f+480.0f*gConfig->gfxDynamics)

void SetupTranslation(tVector3 objPos,tMatrix3 objDir);
void SetupWorldTranslation();
void SetupLighting();
void RenderFrame();
int ClipPoint(tVector3 *clipPlanes,tVector3 *point);
int ClipPointDistanced(tVector3 *clipPlanes,tVector3 *point,float distance);
void RenderFrame(int screenUpdate);

#endif