/* MODULE : PRT (Particle system Library) AUTHOR : Frederic PHILIPPE UBI R&D FILE : PRT.h (Principal header file) */ #ifndef D_THROW_PRT #ifndef PRT_PRTSYST_H #define PRT_PRTSYST_H #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include "cpa_expt.h" /* For Global declaration in C files : */ #ifdef PRT_GLOBALS #define PRT_EXTERN extern #else /* !PRT_GLOBALS */ #define PRT_EXTERN #endif /* !PRT_GLOBALS */ /* ----------------------------------------------------------------------------- INCLUDES FILES ----------------------------------------------------------------------------- */ /* ----------------------------------------------------------------------------- CONSTANT DECLARATION ----------------------------------------------------------------------------- */ #define PRT_C_xNullParticles 0 #define PRT_C_xBubbleParticles 1 #define PRT_C_xPointParticles 2 #define PRT_C_xSegmentParticles 3 #define PRT_C_xSpriteParticles 4 #define PRT_C_xTriangleParticles 5 #define PRT_C_xRectangleParticles 6 /* ----------------------------------------------------------------------------- TYPES DEFINITION ----------------------------------------------------------------------------- */ /* element particules structure */ typedef struct PRT_tdstParticlesSystem_ { ACP_tdxIndex xNbParticles; ACP_tdxIndex xNbActiveParticles; MTH3D_tdstVector *d_stSpeed; ACP_tdxHandleOfObject hParticlesSystemObject; ACP_tdxIndex xParticlesType; void *d_stListOfParticles; void *p_stCommonData; } PRT_tdstParticlesSystem; /* ----------------------------------------------------------------------------- GLOBAL VARIABLE DECLARATION ----------------------------------------------------------------------------- */ /* ----------------------------------------------------------------------------- FUNCTIONS DECLARATION ----------------------------------------------------------------------------- */ #define PRT_M_vCopyParticlesSystem( _p_stDstParticlesSystem, _p_stSrcParticlesSystem )\ memcpy ( _p_stDstParticlesSystem, _p_stSrcParticlesSystem, sizeof ( PRT_tdstParticlesSystem ) ) extern CPA_EXPORT void PRT_fn_vCreateParticlesSystem ( PRT_tdstParticlesSystem **_p_pstParticlesSystem, ACP_tdxIndex _xNbParticles ); extern CPA_EXPORT void PRT_fn_vInitParticlesSystem ( PRT_tdstParticlesSystem *_p_stParticlesSystem ); extern CPA_EXPORT void PRT_fn_vSetObjectParticlesSystem ( PRT_tdstParticlesSystem *_p_stParticlesSystem, ACP_tdxHandleOfObject _hParticlesSystemObject ); #ifdef __cplusplus }; #endif /* __cplusplus */ #endif /* PRT_PRTSYST_H */ #endif /* D_THROW_PRT */