reman3/Rayman_X/cpa/tempgrp/Mgt/MGTMain.h

58 lines
3.3 KiB
C

/**********************************************************
* *
* Magnet *
* *
* Author : Ubi China - Marc Trabucato *
* *
**********************************************************/
#if !defined( _MGTMAIN_H_ )
#define _MGTMAIN_H_
/*************************************************************************************************/
#include "cpa_expt.h"
#include "MGT\MGTStruc.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/*************************************************************************************************/
extern CPA_EXPORT void MGT_fn_vTreatMagnets ( void );
/*************************************************************************************************/
void MGT_fn_vInitTreatement ( void );
void MGT_fn_vEndTreatement ( void );
ACP_tdxBool MGT_fn_bMorphMagnetModif ( MGT_tdxHandleToMagnetModification h_MagnetModif );
void MGT_fn_vComputeInfluence ( HIE_tdxHandleToSuperObject h_SO , MS_tdxHandleToMSMagnet h_Magnet , ACP_tdxIndex x_Magnet );
ACP_tdxIndex MGT_fn_bComputeInfluenceOnSuperObject ( MS_tdxHandleToMSMagnet h_Magnet , ACP_tdxIndex x_Magnet , MTH_tdxReal xFarFar, HIE_tdxHandleToSuperObject h_SuperObject );
ACP_tdxBool MGT_fn_bComputeInfluenceOnObject ( ACP_tdxIndex x_Magnet, MTH_tdxReal xFarFar, GEO_tdstGeometricObject *p_stObject ,
ACP_tdxIndex *p_x_ModifiedObject ,
MTH3D_tdstVector *p_stMagnetPosition , HIE_tdxHandleToSuperObject h_SuperObject );
void MGT_fn_vUpdateInfluence ( MS_tdxHandleToMSMagnet h_Magnet, ACP_tdxBool bRecompute );
void MGT_fn_vSetMagnetModificationUse ( MS_tdxHandleToMSMagnet h_Magnet, ACP_tdxBool bRecompute );
void MGT_fn_vComputeNewPosition ( MGT_tdxHandleToMagnetModification h_MagnetModif , ACP_tdxIndex xIndexPoint, char *p_cFieldBitAlreadyInfluenced, unsigned long ulCurrentDuration ,
MTH3D_tdstVector *p_stInitialPosition , MTH3D_tdstVector *p_stCurrentPosition , MTH3D_tdstVector *p_stMagnetPosition ,
MTH_tdxReal xNear , MTH_tdxReal xStrength , MTH_tdxReal xInvFarMinusNear , MTH_tdxReal xInvFrames);
void MGT_fn_vComputePreviousPosition ( MGT_tdxHandleToMagnetModification h_MagnetModif , ACP_tdxIndex xIndexPoint, char *p_cFieldBitAlreadyInfluenced,
unsigned long ulCurrentDuration , unsigned long ulDecreaseDuration ,
MTH3D_tdstVector *p_stInitialPosition , MTH3D_tdstVector *p_stCurrentPosition);
void MGT_fn_bUpdateBoundingVolume ( void );
void MGT_fn_vClearMagnetModificationFlagInHierarchy ( HIE_tdxHandleToSuperObject h_SuperObject );
void MGT_fn_vRecurUpdateBoundingVolumeInHierarchy ( HIE_tdxHandleToSuperObject h_SuperObject );
/*************************************************************************************************/
#ifdef __cplusplus
};
#endif /* __cplusplus */
/*************************************************************************************************/
#endif /* _MGTMAIN_H_ */