112 lines
4.7 KiB
C
112 lines
4.7 KiB
C
#ifndef __CAM_BASE_H__
|
|
#define __CAM_BASE_H__
|
|
|
|
extern char cLastCutAngleSens;
|
|
extern char cJustBetterPos;
|
|
|
|
/*
|
|
*************************************************************************************************
|
|
*************************************************************************************************
|
|
*************************************************************************************************
|
|
*************************************************************************************************
|
|
*/
|
|
|
|
/*
|
|
* Structure to update position of camera.
|
|
* The fileds of that structure are passed to meca parsing.
|
|
*/
|
|
typedef struct CAM_tdstComputedPosition_
|
|
{
|
|
MTH3D_tdstVector stTarget;
|
|
MTH3D_tdstVector stMovePos;
|
|
MTH3D_tdstVector stRefAxisZ;
|
|
MTH_tdxReal xLinearSpeed;
|
|
MTH_tdxReal xAngularSpeed;
|
|
MTH_tdxReal xTargetSpeed;
|
|
} CAM_tdstComputedPosition;
|
|
|
|
/*
|
|
* Structure to use for update actions of camera.
|
|
*/
|
|
typedef struct CAM_tdstUpdateCamera_
|
|
{
|
|
DNM_tdstReport *p_stReport;
|
|
DNM_tdstDynamics *p_stDynamics;
|
|
|
|
MS_tdxHandleToCineinfo hCineinfo;
|
|
MS_tdxHandleToInternalCineinfo hCineinfoWork;
|
|
MS_tdxHandleToInternalCineinfo hCineinfoCurrent;
|
|
MS_tdxHandleToInternalCineinfo hCineinfoInit;
|
|
MS_tdxHandleToInternalCineinfo hCineinfoVisibility;
|
|
|
|
HIE_tdxHandleToSuperObject hSuperObjCamera;
|
|
|
|
MTH3D_tdstVector stCurrentCameraPos;
|
|
MTH3D_tdstVector stWantedCameraPos;
|
|
MTH3D_tdstVector stRealWantedCameraPos;
|
|
|
|
MTH3D_tdstVector stTargetedPersoRealPos;
|
|
MTH3D_tdstVector stTargetedPersoPos;
|
|
MTH3D_tdstVector stSecondTargetedPersoRealPos;
|
|
MTH3D_tdstVector stSecondTargetedPersoPos;
|
|
|
|
char cHasCutAlpha;
|
|
MTH_tdxReal xAngleAlphaCut;
|
|
MTH_tdxReal xAngleDeltaAlphaCut;
|
|
|
|
char cTgtPersoIsMovingAbsolute;
|
|
MTH3D_tdstVector stTgtPersoMoveAbsolute;
|
|
char cTgtPersoIsMovingRelative;
|
|
MTH3D_tdstVector stTgtPersoMoveRelative;
|
|
|
|
CAM_tdstComputedPosition stCptPos;
|
|
} CAM_tdstUpdateCamera;
|
|
|
|
/*
|
|
*************************************************************************************************
|
|
*************************************************************************************************
|
|
*************************************************************************************************
|
|
*************************************************************************************************
|
|
*/
|
|
|
|
#define CONSTANT_CUT_COL (CAM_g_stCameraConstants.wFlags & 0x0001)
|
|
#define CONSTANT_RESETTEMP (CAM_g_stCameraConstants.wFlags & 0x0002)
|
|
#define CONSTANT_FORCEBESTPOS (CAM_g_stCameraConstants.wFlags & 0x0004)
|
|
#define CONSTANT_NOVISPROJ (CAM_g_stCameraConstants.wFlags & 0x0008)
|
|
#define CONSTANT_NORMALIFJOIN (CAM_g_stCameraConstants.wFlags & 0x0010)
|
|
#define CONSTANT_NOBETTERPOS (CAM_g_stCameraConstants.wFlags & 0x0020)
|
|
#define CONSTANT_NODISTVIS (CAM_g_stCameraConstants.wFlags & 0x0040)
|
|
|
|
/*
|
|
*************************************************************************************************
|
|
*************************************************************************************************
|
|
*************************************************************************************************
|
|
*************************************************************************************************
|
|
*/
|
|
|
|
|
|
extern void CAM_fn_vComputeRefAxis(CAM_tdstUpdateCamera *, MTH3D_tdstVector *);
|
|
extern void CAM_fn_vComputeTargetedPersoPos(CAM_tdstUpdateCamera *, HIE_tdxHandleToSuperObject, MTH3D_tdstVector *, MTH3D_tdstVector *);
|
|
extern void CAM_fn_vComputeReferencePoint(CAM_tdstUpdateCamera *);
|
|
|
|
extern void CAM_fn_vDynChangeTarget(CAM_tdstUpdateCamera *, MTH3D_tdstVector *);
|
|
extern void CAM_fn_vComputeTarget(CAM_tdstUpdateCamera *);
|
|
|
|
extern void CAM_fn_vBoundAngleWithTolerance(CAM_tdstUpdateCamera *, MTH_tdxReal *, MTH_tdxReal *, MTH_tdxReal *, MTH_tdxReal, MTH_tdxReal);
|
|
extern void CAM_fn_vComputeCameraAxisAngles(CAM_tdstUpdateCamera *, MTH3D_tdstVector *, MTH3D_tdstVector *, MTH_tdxReal *, MTH_tdxReal *);
|
|
extern void CAM_fn_vRotateCameraAxis( MTH3D_tdstVector *, MTH_tdxReal, MTH_tdxReal, MTH3D_tdstVector *);
|
|
extern void CAM_fn_vComputeRealWantedPos(CAM_tdstUpdateCamera *);
|
|
extern char CAM_fn_cDynChangeTheta(CAM_tdstUpdateCamera *, MTH3D_tdstVector *);
|
|
extern void CAM_fn_vTakeCareOfCameraAltitude(MS_tdxHandleToCineinfo, MTH3D_tdstVector *);
|
|
extern void CAM_fn_vComputeMovePos(CAM_tdstUpdateCamera *);
|
|
extern void CAM_fn_vComputeMovePosWithDynTheta(CAM_tdstUpdateCamera *);
|
|
|
|
extern void CAM_fn_vComputeSpeed(CAM_tdstUpdateCamera *);
|
|
|
|
extern void CAM_fn_vConstraintMoveAfterVisFailure(CAM_tdstUpdateCamera *);
|
|
extern void CAM_fn_vConstraintMove(CAM_tdstUpdateCamera *);
|
|
|
|
extern void CAM_fn_vUpdateGeneralCamera(CAM_tdstUpdateCamera *);
|
|
|
|
#endif /* __CAM_BASE_H__ */
|