663 lines
31 KiB
C
663 lines
31 KiB
C
#if !defined(__CINEINFO_H__)
|
|
#define __CINEINFO_H__
|
|
|
|
/******************************************/
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif /* _MSC_VER >= 1000 */
|
|
/******************************************/
|
|
|
|
#include "GAM/Header.h"
|
|
|
|
#undef EXTERN
|
|
#undef extern
|
|
#if !defined(D_CineInfo_VariableDefine)
|
|
#define EXTERN extern
|
|
#else
|
|
#define EXTERN
|
|
#endif /* D_CineInfo_VariableDefine */
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C"
|
|
{
|
|
#endif /* __cplusplus */
|
|
|
|
|
|
/*
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
FOR CAMERA CONSTANTS
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
*/
|
|
|
|
|
|
|
|
|
|
typedef struct CAM_tdstCameraConstants_
|
|
{
|
|
/* never change the order of those members !!!*/
|
|
/* always add new members at the end of the structure !!!*/
|
|
|
|
MTH_tdxReal xRayCameraSphereToGo1; /* Ray of camera sphere to determin if camera can go to a given position (source and dest) */
|
|
MTH_tdxReal xRayCameraSphereToGo2;
|
|
MTH_tdxReal xRayCameraSphereToSee1; /* Ray of camera sphere to determin if camera can see a given position (source and dest) */
|
|
MTH_tdxReal xRayCameraSphereToSee2;
|
|
|
|
/* never change the order of those members !!!*/
|
|
/* always add new members at the end of the structure !!!*/
|
|
MTH_tdxReal xBaseAngleComputePosNormal; /* Min angle for choosing a new good position in normal mode */
|
|
MTH_tdxReal xBaseAngleComputePosFailure; /* Min angle for choosing a new good position in case of failure */
|
|
|
|
/* never change the order of those members !!!*/
|
|
/* always add new members at the end of the structure !!!*/
|
|
MTH_tdxReal xAverageForComputePos; /* Window time to compute position of targeted perso */
|
|
MTH_tdxReal xAverageForComputeLinearSpeed; /* Window time to compute linear speed of targeted perso */
|
|
|
|
/* never change the order of those members !!!*/
|
|
/* always add new members at the end of the structure !!!*/
|
|
MTH_tdxReal xMinLinearSpeedCamera; /* Below, camera is considered not move... */
|
|
MTH_tdxReal xMinLinearSpeedTgtPerso; /* Below, is considered not move... */
|
|
MTH_tdxReal xMinAngularSpeedTgtPerso; /* Below, is considered not turn... */
|
|
|
|
/* never change the order of those members !!!*/
|
|
/* always add new members at the end of the structure !!!*/
|
|
MTH_tdxReal xEpsilonDynTgtAngle; /* Dyn target compute if greate than... */
|
|
MTH_tdxReal xEpsilonDynTgtFocalAngle; /* Perso must be in focal with that epsilon */
|
|
MTH_tdxReal xEpsilonForEqualVectors; /* Two vectors are considered to be equal with that tolerance */
|
|
|
|
/* never change the order of those members !!!*/
|
|
/* always add new members at the end of the structure !!!*/
|
|
MTH_tdxReal xOffsetMinDistPerso; /* Minimum distance of camera to targeted perso depending on BoundDistMin */
|
|
MTH_tdxReal xDistanceForNoCut; /* When visibility failure, no cut if new pos at this distance of camera */
|
|
|
|
/* never change the order of those members !!!*/
|
|
/* always add new members at the end of the structure !!!*/
|
|
short xNumRayCameraCanGo; /* Number of ray to determin if camera can go to a given point */
|
|
short xNumRayCameraCanSee; /* Number of ray to determin if camera can see a given point */
|
|
|
|
/* never change the order of those members !!!*/
|
|
/* always add new members at the end of the structure !!!*/
|
|
short xTickTestVisibility; /* Every n trames, we test visibility */
|
|
short xTickFindBetterPos; /* Every n trames, we try to find a better position if we are not at the first ideal one */
|
|
short xTickFindBetterPosIfNoMove; /* The same but force if the camera is not moving */
|
|
short xTickFailureCantSee; /* If camera can't see target during n trames, failure */
|
|
|
|
/* never change the order of those members !!!*/
|
|
/* always add new members at the end of the structure !!!*/
|
|
/* For dynamic speed */
|
|
MTH_tdxReal xDynSpeed_LinearFactNorm;
|
|
MTH_tdxReal xDynSpeed_LinearMax;
|
|
MTH_tdxReal xDynSpeed_LinearMulPerso;
|
|
MTH_tdxReal xDynSpeed_AngularFactNorm;
|
|
MTH_tdxReal xDynSpeed_AngularMax;
|
|
MTH_tdxReal xDynSpeed_AngularMulPerso;
|
|
MTH_tdxReal xDynSpeed_TargetFactNorm;
|
|
MTH_tdxReal xDynSpeed_TargetMax;
|
|
MTH_tdxReal xDynSpeed_TargetMulPerso;
|
|
|
|
/* never change the order of those members !!!*/
|
|
/* always add new members at the end of the structure !!!*/
|
|
MTH_tdxReal xBaseCutAngle; /* To cut angles */
|
|
MTH_tdxReal xCutAngleFactorPos;
|
|
MTH_tdxReal xCutAngleFactorTgt;
|
|
|
|
/* never change the order of those members !!!*/
|
|
/* always add new members at the end of the structure !!!*/
|
|
short wFlags; /* Some flags */
|
|
|
|
/* new members here ! */
|
|
short wAlign;
|
|
|
|
} CAM_tdstCameraConstants;
|
|
|
|
extern CAM_tdstCameraConstants CAM_g_stCameraConstants;
|
|
extern CAM_tdstCameraConstants CAM_g_stCopyCameraConstants;
|
|
|
|
|
|
#define CAM_C_xRayCameraSphereToGo1 (CAM_g_stCameraConstants.xRayCameraSphereToGo1)
|
|
#define CAM_C_xRayCameraSphereToGo2 (CAM_g_stCameraConstants.xRayCameraSphereToGo2)
|
|
#define CAM_C_xRayCameraSphereToSee1 (CAM_g_stCameraConstants.xRayCameraSphereToSee1)
|
|
#define CAM_C_xRayCameraSphereToSee2 (CAM_g_stCameraConstants.xRayCameraSphereToSee2)
|
|
|
|
#define CAM_C_xBaseAngleComputePosNormal (CAM_g_stCameraConstants.xBaseAngleComputePosNormal)
|
|
#define CAM_C_xBaseAngleComputePosFailure (CAM_g_stCameraConstants.xBaseAngleComputePosFailure)
|
|
#define CAM_C_xBaseCutAngle (CAM_g_stCameraConstants.xBaseCutAngle)
|
|
|
|
#define CAM_C_xAverageForComputePos (CAM_g_stCameraConstants.xAverageForComputePos)
|
|
#define CAM_C_xAverageForComputeLinearSpeed (CAM_g_stCameraConstants.xAverageForComputeLinearSpeed)
|
|
|
|
#define CAM_C_xMinLinearSpeedCamera (CAM_g_stCameraConstants.xMinLinearSpeedCamera)
|
|
#define CAM_C_xMinLinearSpeedTgtPerso (CAM_g_stCameraConstants.xMinLinearSpeedTgtPerso)
|
|
#define CAM_C_xMinAngularSpeedTgtPerso (CAM_g_stCameraConstants.xMinAngularSpeedTgtPerso)
|
|
|
|
#define CAM_C_xEpsilonDynTgtAngle (CAM_g_stCameraConstants.xEpsilonDynTgtAngle)
|
|
#define CAM_C_xEpsilonDynTgtFocalAngle (CAM_g_stCameraConstants.xEpsilonDynTgtFocalAngle)
|
|
#define CAM_C_xEpsilonForEqualVectors (CAM_g_stCameraConstants.xEpsilonForEqualVectors)
|
|
|
|
#define CAM_C_xMinDistPerso (_p_stStruct->hCineinfoWork->xBoundDistMin)
|
|
#define CAM_C_xMinDistPersoToComputePos (MTH_M_xAdd(CAM_C_xMinDistPerso, CAM_g_stCameraConstants.xOffsetMinDistPerso))
|
|
#define CAM_C_xDistanceForNoCut (CAM_g_stCameraConstants.xDistanceForNoCut)
|
|
|
|
#define CAM_C_xDynSpeed_LinearFactNorm (CAM_g_stCameraConstants.xDynSpeed_LinearFactNorm)
|
|
#define CAM_C_xDynSpeed_LinearMax (CAM_g_stCameraConstants.xDynSpeed_LinearMax)
|
|
#define CAM_C_xDynSpeed_LinearMulPerso (CAM_g_stCameraConstants.xDynSpeed_LinearMulPerso)
|
|
#define CAM_C_xDynSpeed_AngularFactNorm (CAM_g_stCameraConstants.xDynSpeed_AngularFactNorm)
|
|
#define CAM_C_xDynSpeed_AngularMax (CAM_g_stCameraConstants.xDynSpeed_AngularMax)
|
|
#define CAM_C_xDynSpeed_AngularMulPerso (CAM_g_stCameraConstants.xDynSpeed_AngularMulPerso)
|
|
#define CAM_C_xDynSpeed_TargetFactNorm (CAM_g_stCameraConstants.xDynSpeed_TargetFactNorm)
|
|
#define CAM_C_xDynSpeed_TargetMax (CAM_g_stCameraConstants.xDynSpeed_TargetMax)
|
|
#define CAM_C_xDynSpeed_TargetMulPerso (CAM_g_stCameraConstants.xDynSpeed_TargetMulPerso)
|
|
|
|
#define CAM_C_xNumRayCameraCanGo (CAM_g_stCameraConstants.xNumRayCameraCanGo)
|
|
#define CAM_C_xNumRayCameraCanSee (CAM_g_stCameraConstants.xNumRayCameraCanSee)
|
|
|
|
#define CAM_C_xTickTestVisibility (CAM_g_stCameraConstants.xTickTestVisibility)
|
|
#define CAM_C_xTickFindBetterPos (CAM_g_stCameraConstants.xTickFindBetterPos)
|
|
#define CAM_C_xTickFindBetterPosIfNoMove (CAM_g_stCameraConstants.xTickFindBetterPosIfNoMove)
|
|
#define CAM_C_xTickFailureCantSee (CAM_g_stCameraConstants.xTickFailureCantSee)
|
|
|
|
#define CAM_C_xCutAngleFactorPos (CAM_g_stCameraConstants.xCutAngleFactorPos)
|
|
#define CAM_C_xCutAngleFactorTgt (CAM_g_stCameraConstants.xCutAngleFactorTgt)
|
|
|
|
#define CAM_C_xTickTimeTestVisibility (MTH_M_xMul(MTH_M_xFloatToReal(CAM_g_stCameraConstants.xTickTestVisibility*1000.0f),g_stEngineStructure.stEngineTimer.xFrameLength))
|
|
#define CAM_C_xTickTimeFindBetterPos (MTH_M_xMul(MTH_M_xFloatToReal(CAM_g_stCameraConstants.xTickFindBetterPos*1000.0f),g_stEngineStructure.stEngineTimer.xFrameLength))
|
|
#define CAM_C_xTickTimeFindBetterPosIfNoMove (MTH_M_xMul(MTH_M_xFloatToReal(CAM_g_stCameraConstants.xTickFindBetterPosIfNoMove*1000.0f),g_stEngineStructure.stEngineTimer.xFrameLength))
|
|
#define CAM_C_xTickTimeFailureCantSee (MTH_M_xMul(MTH_M_xFloatToReal(CAM_g_stCameraConstants.xTickFailureCantSee*1000.0f),g_stEngineStructure.stEngineTimer.xFrameLength))
|
|
|
|
|
|
/*
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
DEFINITION FOR SCRIPT
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
*/
|
|
|
|
|
|
#define C_SectionCineinfoDescription "Cineinfo"
|
|
|
|
#define C_CAM_EntryShiftTarget "ShiftTarget"
|
|
#define C_CAM_EntryShiftPos "ShiftPos"
|
|
#define C_CAM_EntryDistance "Distance"
|
|
#define C_CAM_EntryAlpha "Alpha"
|
|
#define C_CAM_EntryTheta "Theta"
|
|
#define C_CAM_EntryLinearSpeed "LinearSpeed"
|
|
#define C_CAM_EntryAngularSpeed "AngularSpeed"
|
|
#define C_CAM_EntryTargetSpeed "TargetSpeed"
|
|
#define C_CAM_EntryDNMFlags "DNMFlags"
|
|
#define C_CAM_EntryIAFlags "IAFlags"
|
|
#define C_CAM_EntryFocal "Focal"
|
|
#define C_CAM_EntryZMinMax "ZMinMax"
|
|
#define C_CAM_EntryViewport "Viewport"
|
|
#define C_CAM_EntryChannel "Channel"
|
|
#define C_CAM_EntryActivation "Activation"
|
|
|
|
|
|
/*
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
DEFINITION FOR IA Flags
|
|
IA Flags are stored in wIAFLags member of CineInfo structure
|
|
and is reinitialized for each trame
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
*/
|
|
|
|
/*
|
|
* Flags that can be change in IA (uwIAFlags).
|
|
*/
|
|
#define C_IAFlags_NoDynamicTarget 0x0001
|
|
#define C_IAFlags_NoAverageMoveTgtPerso 0x0002
|
|
#define C_IAFlags_NoParseCutAngle 0x0004
|
|
#define C_IAFlags_NoVisibility 0x0008
|
|
#define C_IAFlags_NoVisibilityWithDynHie 0x0010
|
|
#define C_IAFlags_NoDynChangeTheta 0x0020
|
|
#define C_IAFlags_NoShiftUntilPosReached 0x0040
|
|
#define C_IAFlags_NoDynSpeed 0x0080
|
|
#define C_IAFlags_User 0x0FFF
|
|
|
|
/*
|
|
* Can't change that flags. They are in internal cineinfo just to change them temporary
|
|
* (by changing them in cineinfo work).
|
|
*/
|
|
#define C_IAFlags_TargetIsAlreadyComputed 0x1000
|
|
#define C_IAFlags_PositionIsAlreadyComputed 0x2000
|
|
#define C_IAFlags_RefAxisIsAlreadyComputed 0x4000
|
|
|
|
/*
|
|
* Private flags.
|
|
* Erased at each trame (ucVolatileIAFlags).
|
|
*/
|
|
#define C_VolIAFlags_CurrentAlreadyCopiedInWork 0x01
|
|
#define C_VolIAFlags_InitJustCopiedInCurrent 0x02
|
|
#define C_VolIAFlags_CameraNotMove 0x04
|
|
|
|
/*
|
|
* Private flags.
|
|
* Persistent (ucPersistentIAFlags).
|
|
*/
|
|
#define C_PerIAFlags_ShowInfo 0x01
|
|
#define C_PerIAFlags_VisibilityCopied 0x02
|
|
#define C_PerIAFlags_NoShift 0x04
|
|
#define C_PerIAFlags_ConstraintMoveVisFailure 0x08
|
|
#define C_PerIAFlags_PosIsForced 0x10
|
|
|
|
|
|
/*
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
CINEINFO STRUCTURE DEFINITION
|
|
=> Internal
|
|
=> General
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
*/
|
|
|
|
|
|
#if defined(D_CineInfo_StructureDefine)
|
|
|
|
struct tdstInternalStructurCineinfo_
|
|
{
|
|
/* Offset to add to the position of the new position. This is the point looked by the camera. */
|
|
MTH3D_tdstVector stShiftTarget;
|
|
|
|
/* Offset to add to the position of the target */
|
|
MTH3D_tdstVector stShiftPos;
|
|
|
|
/* Define distance */
|
|
MTH_tdxReal xDistMin;
|
|
MTH_tdxReal xDistMax;
|
|
MTH_tdxReal xBoundDistMin;
|
|
MTH_tdxReal xBoundDistMax;
|
|
|
|
/* Angle Alpha (axe rotation around axis Z) */
|
|
MTH_tdxReal xAngleAlpha;
|
|
MTH_tdxReal xAngleShiftAlpha;
|
|
|
|
/* Angle Theta (axe rotation around axis X) */
|
|
MTH_tdxReal xAngleTheta;
|
|
MTH_tdxReal xAngleShiftTheta;
|
|
|
|
/* Datas of Camera Linear Speed */
|
|
MTH_tdxReal xLinearSpeed;
|
|
MTH_tdxReal xLinearIncreaseSpeed;
|
|
MTH_tdxReal xLinearDecreaseSpeed;
|
|
|
|
/* Datas of Camera Angular Speed */
|
|
MTH_tdxReal xAngularSpeed;
|
|
MTH_tdxReal xAngularIncreaseSpeed;
|
|
MTH_tdxReal xAngularDecreaseSpeed;
|
|
|
|
/* Datas of Camera Angular Speed */
|
|
MTH_tdxReal xTargetSpeed;
|
|
MTH_tdxReal xTargetIncreaseSpeed;
|
|
MTH_tdxReal xTargetDecreaseSpeed;
|
|
|
|
/* Focal */
|
|
MTH_tdxReal xFocal;
|
|
|
|
/* Camera Altitude */
|
|
MTH_tdxReal xZMin;
|
|
MTH_tdxReal xZMax;
|
|
|
|
/* Super object targeted by camera */
|
|
HIE_tdxHandleToSuperObject hSuperObjectTargeted;
|
|
HIE_tdxHandleToSuperObject hSecondSuperObjectTargeted;
|
|
|
|
/* Flags of camera */
|
|
unsigned short uwDNMFlags; /* For mechanics */
|
|
unsigned short uwIAFlags; /* For IA */
|
|
|
|
/*
|
|
* 0 : pas de viewport associe
|
|
* 1 : viewport principal
|
|
* 2 : viewport secondaire
|
|
*/
|
|
enum e_ucListViewport_ eTypeOfViewport;
|
|
|
|
/*
|
|
* Number of channel
|
|
*/
|
|
char cChannel;
|
|
|
|
/* Activity */
|
|
ACP_tdxBool bIsActive;
|
|
};
|
|
|
|
/*
|
|
*=================================================================================================
|
|
*=================================================================================================
|
|
*/
|
|
/* ANNECY MT - 25/08/98 {*/
|
|
#define C_ucNbOfCheckedSpeeds 8
|
|
|
|
typedef struct tdstAveragePosition_
|
|
{
|
|
struct MTH3D_tdstVector_ a_CheckedSpeed[C_ucNbOfCheckedSpeeds];
|
|
struct MTH3D_tdstVector_ a_CheckedPos[C_ucNbOfCheckedSpeeds];
|
|
MTH_tdxReal a_CheckedTime[C_ucNbOfCheckedSpeeds];
|
|
}tdstAveragePosition;
|
|
|
|
typedef struct tdstSightAxisSystem_
|
|
{
|
|
struct MTH3D_tdstVector_ SightAxis;
|
|
struct MTH3D_tdstVector_ FirstComplementaryAxis;
|
|
struct MTH3D_tdstVector_ SecondComplementaryAxis;
|
|
}tdstSightAxisSystem;
|
|
/* END ANNECY MT }*/
|
|
|
|
/*
|
|
*=================================================================================================
|
|
*=================================================================================================
|
|
*/
|
|
struct tdstCineinfo_
|
|
{
|
|
/******************************************/
|
|
/* Internal structures */
|
|
/******************************************/
|
|
|
|
struct tdstInternalStructurCineinfo_ *hInit;
|
|
struct tdstInternalStructurCineinfo_ *hCurrent;
|
|
struct tdstInternalStructurCineinfo_ *hVisibility;
|
|
struct tdstInternalStructurCineinfo_ *hWork;
|
|
|
|
/******************************************/
|
|
/* Fields only accessibles by programmers */
|
|
/******************************************/
|
|
|
|
|
|
/*
|
|
* For visibility.
|
|
*/
|
|
MTH3D_tdstVector stLastFailedOrigin;
|
|
MTH3D_tdstVector stLastFailedWanted;
|
|
|
|
/*
|
|
* To force targeted point, or camera position.
|
|
*/
|
|
MTH3D_tdstVector stForceTarget;
|
|
MTH3D_tdstVector stForcePosition;
|
|
MTH3D_tdstVector stForceRefAxisY;
|
|
MTH3D_tdstVector stForceRefAxisZ;
|
|
|
|
/*
|
|
* When a second super object is defined.
|
|
*/
|
|
MTH_tdxReal xApexRatio;
|
|
|
|
/*
|
|
* To save delta angle when cutting.
|
|
*/
|
|
MTH_tdxReal xLastDeltaCut;
|
|
|
|
/*
|
|
* State
|
|
*/
|
|
enum e_ucCameraStates_ eState;
|
|
|
|
/*
|
|
* Counters.
|
|
* 1 : To test better pos
|
|
* 2 : To test visibility
|
|
* 3 : Failure if we can't see target during this number of trames
|
|
* 4 : To count the time the camera is not moving.
|
|
*/
|
|
|
|
/* ANNECY MT - 03/08/99 { */
|
|
/*
|
|
short wCounter1;
|
|
short wCounter2;
|
|
short wCounter3;
|
|
short wCounter4;
|
|
*/
|
|
MTH_tdxReal xCounter1;
|
|
MTH_tdxReal xCounter2;
|
|
MTH_tdxReal xCounter3;
|
|
MTH_tdxReal xCounter4;
|
|
/* END ANNECY MT } */
|
|
|
|
/*
|
|
* Private flags of camera.
|
|
*/
|
|
unsigned char ucVolIAFlags;
|
|
unsigned char ucPerIAFlags;
|
|
|
|
/* When cutting angles */
|
|
char cLastCutAngleSens;
|
|
|
|
/* ANNECY MT - 25/08/98 {*/
|
|
/*arrays on positions and speeds on the character*/
|
|
struct tdstAveragePosition_ AveragePosition;
|
|
/*list on the used requests*/
|
|
struct tdstSightAxisSystem_ stSightAxisSystem;
|
|
/* END ANNECY MT }*/
|
|
ACP_tdxBool bCanDoBestPos;
|
|
};
|
|
#endif /* D_CineInfo_StructureDefine */
|
|
|
|
|
|
/*
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
Handle define
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
*/
|
|
|
|
|
|
typedef struct tdstInternalStructurCineinfo_ *MS_tdxHandleToInternalCineinfo;
|
|
typedef struct tdstCineinfo_ *MS_tdxHandleToCineinfo;
|
|
typedef struct tdstAveragePosition_ *MS_tdxHandleToAveragePosition;
|
|
typedef struct tdstSightAxisSystem_ *MS_tdxHandleToSightAxisSystem;
|
|
|
|
/*
|
|
* macro to get internal cine info from camera super object
|
|
*/
|
|
#define M_GetCineinfo(_p_stSuperObject_, _Name_)\
|
|
(\
|
|
(MS_tdxHandleToInternalCineinfo)\
|
|
(\
|
|
(\
|
|
M_GetMSHandle(_p_stSuperObject_,Cineinfo)\
|
|
)\
|
|
->h##_Name_\
|
|
)\
|
|
)
|
|
|
|
/*
|
|
* macro to get internal cineinfo from cineinfo struct
|
|
*/
|
|
#define M_GetInternalCineinfo(_hCineinfo_, _Name_)\
|
|
(\
|
|
(MS_tdxHandleToInternalCineinfo)\
|
|
(\
|
|
(\
|
|
(MS_tdxHandleToCineinfo)(_hCineinfo_)\
|
|
)\
|
|
->h##_Name_\
|
|
)\
|
|
)
|
|
|
|
|
|
/*
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
Access Functions for fields in the internal structure
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
*/
|
|
|
|
|
|
extern CPA_EXPORT MTH3D_tdstVector *CAM_fn_p_stCineInfoGetShiftTarget(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetShiftTarget(MS_tdxHandleToInternalCineinfo _hIntCineinfo, MTH3D_tdstVector *_p_stLookVertex);
|
|
|
|
extern CPA_EXPORT MTH3D_tdstVector *CAM_fn_p_stCineInfoGetShiftPos(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetShiftPos(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH3D_tdstVector *_p_stShiftPerso);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetDistMin(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetDistMin(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xDistance);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetDistMax(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetDistMax(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xDistance);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetBoundDistMin(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetBoundDistMin(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xDistance);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetBoundDistMax(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetBoundDistMax(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xDistance);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetAngleAlpha(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetAngleAlpha(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xAngle);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetAngleShiftAlpha(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetAngleShiftAlpha(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xAngle);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetAngleTheta(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetAngleTheta(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xAngle);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetAngleShiftTheta(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetAngleShiftTheta(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xAngle);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetLinearSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetLinearSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xSpeed);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetLinearIncreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetLinearIncreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xInertia);
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetLinearDecreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetLinearDecreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xInertia);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetAngularSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetAngularSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xAngle);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetAngularIncreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetAngularIncreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xInertia);
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetAngularDecreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetAngularDecreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xInertia);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetTargetSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetTargetSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xSpeed);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetTargetIncreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetTargetIncreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xInertia);
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetTargetDecreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetTargetDecreaseSpeed(MS_tdxHandleToInternalCineinfo _hIntCineinfo,MTH_tdxReal _xInertia);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetFocal(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetFocal(MS_tdxHandleToInternalCineinfo _hIntCineinfo, MTH_tdxReal _xAngle);
|
|
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetZMin(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetZMin(MS_tdxHandleToInternalCineinfo _hIntCineinfo, MTH_tdxReal _xZ);
|
|
extern CPA_EXPORT MTH_tdxReal CAM_fn_xCineInfoGetZMax(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetZMax(MS_tdxHandleToInternalCineinfo _hIntCineinfo, MTH_tdxReal _xZ);
|
|
|
|
extern CPA_EXPORT HIE_tdxHandleToSuperObject CAM_fn_hCineInfoGetSuperObjectTargeted(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetSuperObjectTargeted( MS_tdxHandleToInternalCineinfo _hIntCineinfo, HIE_tdxHandleToSuperObject _hSuperObject );
|
|
|
|
extern CPA_EXPORT unsigned short CAM_fn_uwCineInfoGetDNMFlags(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetDNMFlags(MS_tdxHandleToInternalCineinfo _hIntCineinfo,unsigned short _uwFlag);
|
|
|
|
extern CPA_EXPORT unsigned short CAM_fn_uwCineInfoGetIAFlags(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetIAFlags(MS_tdxHandleToInternalCineinfo _hIntCineinfo,unsigned short _uwFlag);
|
|
|
|
extern CPA_EXPORT enum e_ucCameraStates_ CAM_fn_eCineInfoGetState(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetState(MS_tdxHandleToInternalCineinfo _hIntCineinfo,enum e_ucCameraStates_ _eState);
|
|
|
|
extern CPA_EXPORT enum e_ucListViewport_ CAM_fn_eCineInfoGetTypeOfViewport(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetTypeOfViewport(MS_tdxHandleToInternalCineinfo _hIntCineinfo,enum e_ucListViewport_ _eType);
|
|
|
|
extern CPA_EXPORT ACP_tdxBool CAM_fn_bCineInfoGetIsActive(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetIsActive(MS_tdxHandleToInternalCineinfo _hIntCineinfo,ACP_tdxBool _bIsActive);
|
|
|
|
extern CPA_EXPORT char CAM_fn_cCineInfoGetChannel(MS_tdxHandleToInternalCineinfo _hIntCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vCineInfoSetChannel(MS_tdxHandleToInternalCineinfo _hIntCineinfo,char _cChannel);
|
|
|
|
|
|
/*
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
Base functions
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
*/
|
|
|
|
|
|
extern CPA_EXPORT void CAM_fn_vInitCompleteCineinfo(MS_tdxHandleToCineinfo _hCineinfo);
|
|
|
|
#if !defined(U64)
|
|
extern CPA_EXPORT SCR_tde_Anl_ReturnValue CAM_fn_eCineinfoScriptCallBack(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
|
|
#endif /* U64 */
|
|
|
|
extern CPA_EXPORT unsigned long CAM_fn_ulCineinfoSizeOf( void );
|
|
extern CPA_EXPORT unsigned long CAM_fn_ulCineinfoInternalSizeOf( void );
|
|
extern CPA_EXPORT void CAM_fn_vCineinfoAlloc(struct tdstEngineObject_ *_p_stObject);
|
|
extern CPA_EXPORT MS_tdxHandleToCineinfo CAM_fn_hCineinfoRealAlloc( void );
|
|
extern CPA_EXPORT MS_tdxHandleToInternalCineinfo CAM_fn_hCineinfoInternalRealAlloc( void );
|
|
extern CPA_EXPORT void CAM_fn_vCineinfoFree(struct tdstEngineObject_ *_p_stObject);
|
|
extern CPA_EXPORT void CAM_fn_vCineinfoInit(struct tdstEngineObject_ *_p_stObject,enum tdeObjectTreeInit_ _eObjectInit);
|
|
extern CPA_EXPORT void CAM_fn_vCineinfoDesinit(struct tdstEngineObject_ *_p_stObject,enum tdeObjectTreeInit_ _eObjectInit);
|
|
extern CPA_EXPORT void CAM_fn_vCineinfoCopyClone(struct tdstEngineObject_ *_p_stObjectDest,struct tdstEngineObject_ *_p_stObjectSrc);
|
|
extern CPA_EXPORT void fn_vGetPersoSightAxisSystem(MS_tdxHandleToCineinfo _hCineinfo,MTH3D_tdstVector *_p_stSightAxis,MTH3D_tdstVector *_p_stFirstComplementaryAxis,MTH3D_tdstVector *_p_stSecondComplementaryAxis);
|
|
|
|
extern CPA_EXPORT void Cineinfo_fn_vReadBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
|
|
extern CPA_EXPORT unsigned long IntStrCineInfo_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
|
|
extern CPA_EXPORT unsigned long Cineinfo_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
|
|
|
|
|
|
/*
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
Special functions
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
*/
|
|
|
|
|
|
extern CPA_EXPORT HIE_tdxHandleToSuperObject CAM_fn_hGetMainActiveCamera(HIE_tdxHandleToSuperObject hSuperObject);
|
|
extern void CAM_fn_vLoadCameraConstants(void);
|
|
|
|
extern CPA_EXPORT void CAM_fn_vSetCameraInList(HIE_tdxHandleToSuperObject _hSupObjectCamera);
|
|
extern CPA_EXPORT void CAM_fn_vDeleteCameraInList(HIE_tdxHandleToSuperObject _hSupObjectCamera);
|
|
|
|
/*extern CPA_EXPORT void CAM_fn_vCameraActivedByEditor(HIE_tdxHandleToSuperObject _hSuperObject);*/
|
|
/*extern CPA_EXPORT void CAM_fn_vCameraDesactivedByEditor(HIE_tdxHandleToSuperObject _hSuperObject);*/
|
|
|
|
extern CPA_EXPORT void CAM_fn_vSetCineinfoCurrentFromInit(MS_tdxHandleToCineinfo _hCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vSetCineinfoWorkFromCurrent(MS_tdxHandleToCineinfo _hCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vSetCineinfoVisibilityFromCurrent(MS_tdxHandleToCineinfo _hCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vSetCineinfoCurrentFromVisibility(MS_tdxHandleToCineinfo _hCineinfo);
|
|
extern CPA_EXPORT void CAM_fn_vSetCineinfoWorkFromVisibility(MS_tdxHandleToCineinfo _hCineinfo);
|
|
|
|
/*
|
|
**************************************************************************************************
|
|
**************************************************************************************************
|
|
*/
|
|
/* ANNECY MT 26/08/98 {*/
|
|
/*extern CPA_EXPORT void fn_vCineinfoSetCheckedSpeed (MS_tdxHandleToCineinfo _hCineinfo,unsigned long _ul,struct MTH3D_tdstVector_*p_Speed);*/
|
|
/*extern CPA_EXPORT void fn_vCineinfoSetCheckedPos (MS_tdxHandleToCineinfo _hCineinfo,unsigned long _ul,struct MTH3D_tdstVector_*p_Pos);*/
|
|
/*extern CPA_EXPORT void fn_vCineinfoSetCheckedTime (MS_tdxHandleToCineinfo _hCineinfo,unsigned long _ul,MTH_tdxReal _dt);*/
|
|
extern CPA_EXPORT void fn_vCineinfoSetSightAxis (MS_tdxHandleToCineinfo _hCineinfo,struct MTH3D_tdstVector_*p_stVector);
|
|
extern CPA_EXPORT void fn_vCineinfoSetFirstComplementaryAxis (MS_tdxHandleToCineinfo _hCineinfo,struct MTH3D_tdstVector_*p_stVector);
|
|
extern CPA_EXPORT void fn_vCineinfoSetSecondComplementaryAxis (MS_tdxHandleToCineinfo _hCineinfo,struct MTH3D_tdstVector_*p_stVector);
|
|
extern CPA_EXPORT void fn_vCineinfoSetSightAxisSystem (MS_tdxHandleToCineinfo _hCineinfo,struct tdstSightAxisSystem_ *p_stAxisSystem);
|
|
|
|
/*extern CPA_EXPORT MTH3D_tdstVector *fn_p_CineinfoGetCheckedSpeed(MS_tdxHandleToCineinfo _hCineinfo,unsigned long _ul);*/
|
|
/*extern CPA_EXPORT MTH_tdxReal fn_xCineinfoGetCheckedTime (MS_tdxHandleToCineinfo _hCineinfo,unsigned long _ul);*/
|
|
/*extern CPA_EXPORT MTH3D_tdstVector *fn_p_CineinfoGetCheckedPos (MS_tdxHandleToCineinfo _hCineinfo,unsigned long _ul);*/
|
|
|
|
extern CPA_EXPORT void CAM_fn_vRemindSpeed (MS_tdxHandleToCineinfo _hCineinfo,MTH_tdstMove *_p_Speed);
|
|
extern CPA_EXPORT void CAM_fn_vRemindPos (MS_tdxHandleToCineinfo _hCineinfo,MTH_tdstMove *_p_Pos);
|
|
extern CPA_EXPORT void CAM_fn_vRemindTime (MS_tdxHandleToCineinfo _hCineinfo,MTH_tdxReal _dt);
|
|
|
|
extern CPA_EXPORT void CAM_fn_vAverageSpeed (MS_tdxHandleToCineinfo _hCineinfo,MTH_tdxReal xTimeWindow,MTH3D_tdstVector *p_result);
|
|
extern CPA_EXPORT void CAM_fn_vAveragePosition (MS_tdxHandleToCineinfo _hCineinfo,MTH_tdxReal xTimeWindow,MTH3D_tdstVector *p_result);
|
|
|
|
extern CPA_EXPORT void CAM_fn_vUpdateTargetPosition(MS_tdxHandleToCineinfo _hCineinfo);
|
|
/* END ANNECY MT }*/
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* __CINEINFO_H__ */
|
|
|