#ifndef __AFCAMERA_H
#define __AFCAMERA_H

#ifndef __FCAMERA_H
#include "hjm_fcamera.h"
#endif  /* __FCAMERA_H */


struct autoForCamera
	{
	struct forCamera *camera;  /* camera */
	struct forAutoForCamera *autoData;  /* automatic camera data */
	int time;  /* a frame number of a camera, incremented serialy */
	void *data;  /* for various use */
	};
typedef struct autoForCamera autoForCamera;

#define FAFC_END (-1)  /* end of automatic camera, time=0 */
#define FAFC_ENDLESS (-2)  /* endless automatic camera, time incremented */

struct forAutoForCamera
	{
	int time;  /* time of an automatic camera */
	void (*program)(autoForCamera *pAuto,void *pData);  /* a program */
	void *data;  /* an argument for forAutoForCamera->program */
	};
typedef struct forAutoForCamera forAutoForCamera;


void autoCamera(autoForCamera *pAuto);

void setAutoForCamera(autoForCamera *pAuto,void *pData);
void setAutoForCameraAutoData(autoForCamera *pAuto,void *pData);
void setAutoForCameraCommonAbsolute(autoForCamera *pAuto,void *pData);
void setAutoForCameraCommonRelativeLook(autoForCamera *pAuto,void *pData);
void setAutoForCameraCommonRelativeCamera(autoForCamera *pAuto,void *pData);
void setAutoForCameraCommonFollow(autoForCamera *pAuto,void *pData);
void setAutoForCameraCommonFollow2D(autoForCamera *pAuto,void *pData);


#endif  /* __AFCAMERA_H */
