reman3/Rayman_X/cpa/public/GLI/camera.h

133 lines
4.4 KiB
C

#ifndef CAMERAH
#define CAMERAH
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include "util.h"
typedef struct GLI_tdstCamera_
{
long lSizeOfThis;
long lTypeOfThis;
long lCameraMode;
POS_tdstCompletePosition stMatrix;
MTH_tdxReal xAlphaX;
MTH_tdxReal xAlphaY;
GLI_tdxValue xNear;
GLI_tdxValue xFar;
GLI_tdxValue xScreen;
GLI_tdst2DVertex stScale;
GLI_tdst2DVertex stTrans;
long lVptInitialHeight;
long lVptInitialWidth;
MTH3D_tdstVector stNormPlaneLeft;
MTH_tdxReal xDistPlaneLeft;
MTH3D_tdstVector stNormPlaneRight;
MTH_tdxReal xDistPlaneRight;
MTH3D_tdstVector stNormPlaneUp;
MTH_tdxReal xDistPlaneUp;
MTH3D_tdstVector stNormPlaneDown;
MTH_tdxReal xDistPlaneDown;
MTH_tdxReal xRatio ;
}
GLI_tdstCamera ;
/* For DLL using these function :*/
#include "cpa_expt.h"
#define GLI_C_lIsoCamWithDistorsion 100
#define GLI_C_lIsoCamWithoutDistorsion 101
#define GLI_C_lPersCamWithDistorsion 102
#define GLI_C_lPersCamWithoutDistorsion 103
#define GLI_C_xZClippingNear GLI_M_FloatToValue ( 0.25f )
extern CPA_EXPORT void
GLI_xCreateCamera ( struct GLI_tdstCamera_ **h_stCam ,
long lCameraMode ) ;
extern CPA_EXPORT void
GLI_xSetCameraNearFar ( struct GLI_tdstCamera_ *p_stCam ,
MTH_tdxReal xNear ,
MTH_tdxReal xFar );
extern CPA_EXPORT void
GLI_xGetCameraNearFar ( struct GLI_tdstCamera_ *p_stCam ,
GLI_tdxValue *p_xNear ,
GLI_tdxValue *p_xFar );
extern CPA_EXPORT void
GLI_xGetCameraMatrix ( struct GLI_tdstCamera_ *p_stCam ,
struct POS_stCompletePosition *p_stMatrix ) ;
extern CPA_EXPORT void
GLI_xSetCameraMatrix ( struct GLI_tdstCamera_ *p_stCam ,
struct POS_stCompletePosition *p_stMatrix ) ;
extern CPA_EXPORT void
GLI_xSetViewportCamera ( GLD_tdhDevice, GLD_tdhViewport,
struct GLI_tdstCamera_ * ) ;
extern CPA_EXPORT void
GLI_xGetViewportCamera ( GLD_tdhDevice hDevice,
GLD_tdhViewport hViewport,
struct GLI_tdstCamera_ **p_stCam );
extern CPA_EXPORT void
GLI_xSetCameraAspectAndRatio ( struct GLI_tdstCamera_ *p_stCam ,
MTH_tdxReal xAlphaX ,
MTH_tdxReal xRatio ) ;
extern CPA_EXPORT void
GLI_xGetCameraAspectAndRatio ( struct GLI_tdstCamera_ *p_stCam ,
MTH_tdxReal *p_xAlphaX ,
MTH_tdxReal *p_xRatio ) ;
extern CPA_EXPORT void
GLI_xSetCameraRatio ( struct GLI_tdstCamera_ *p_stCam ,
MTH_tdxReal xRatio ) ;
extern CPA_EXPORT void
GLI_xGetCameraRatio ( struct GLI_tdstCamera_ *p_stCam ,
MTH_tdxReal *p_xRatio ) ;
extern CPA_EXPORT void
GLI_xGetCameraMode ( struct GLI_tdstCamera_ *p_stCam , long *p_lMode);
extern CPA_EXPORT void
GLI_xSetCameraMode ( struct GLI_tdstCamera_ *p_stCam , long lMode);
extern CPA_EXPORT void
GLI_xAdjustCameraToViewport ( GLD_tdhDevice hDevice,
GLD_tdhViewport hViewport,
struct GLI_tdstCamera_ *p_stCam ) ;
extern CPA_EXPORT void
GLI_xAdjustCameraToViewport2 ( GLD_tdstDeviceAttributes *p_stDev,
GLD_tdstViewportAttributes *p_stVpt,
GLI_tdstCamera *p_stCam ) ;
extern CPA_EXPORT void
GLI_vCopyCamera ( struct GLI_tdstCamera_ *p_stCamDest ,struct GLI_tdstCamera_ *p_stCamSource );
extern CPA_EXPORT struct GLI_tdstCamera_ *
GLI_xDuplicateCamera ( struct GLI_tdstCamera_ *p_stCamSource );
extern CPA_EXPORT void GLI_xGetCameraTransXY(struct GLI_tdstCamera_ *p_stCam , MTH_tdxReal *p_xX , MTH_tdxReal *p_xY);
extern CPA_EXPORT void GLI_xSetCameraTransXY(struct GLI_tdstCamera_ *p_stCam , MTH_tdxReal *p_xX , MTH_tdxReal *p_xY);
extern CPA_EXPORT void GLI_xMulCameraScale(struct GLI_tdstCamera_ *p_stCam , MTH_tdxReal xCoef);
extern CPA_EXPORT MTH_tdxReal GLI_xGetCameraFocalizationPoint(struct GLI_tdstCamera_ *p_stCam , MTH_tdxReal xDistanceZ);
extern CPA_EXPORT MTH_tdxReal GLI_xGetCameraFocalizationPlane(struct GLI_tdstCamera_ *p_stCam );
/*ANNECY JMD 24/02/98{*/
extern CPA_EXPORT void GLI_vGet3DVertexFromScreenPos ( GLD_tdstViewportAttributes *p_stVpt,MTH3D_tdstVector *p_stVertex,MTH_tdxReal xX, MTH_tdxReal xY, MTH_tdxReal xSize ) ;
/*ENDANNECY JMD }*/
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif