reman3/Rayman_X/cpa/public/SPO/HiePick.h

106 lines
4.4 KiB
C

/* (c) Ubi Studios 1996*/
/* See Vincent Greco or Marc Villemain for any comment or question*/
#ifndef __HIEPICK_H__
#define __HIEPICK_H__
#ifdef __cplusplus
extern "C" {
#endif
/* For DLL using these function :*/
#include "cpa_expt.h"
#define HIE_C_DepthPickingObjects 3
typedef struct HIE_tdstPickInfo_
{
HIE_tdxHandleToSuperObject hSprObject; /* handle du super objet*/
ACP_tdxHandleOfObject hGeoObject;
GLI_tdstPickedObject stPickedObject;
} HIE_tdstPickInfo;
typedef HIE_tdstPickInfo HIE_aDEF_stTabOfPickInfo[HIE_C_DepthPickingObjects];
/*Chris 11/06/97*/
/*#define HIE_C_MaxTriangles 8
typedef struct HIE_tdstShadowInfo_
{
HIE_tdxHandleToSuperObject hSprObject; // handle du super objet
ACP_tdxHandleOfObject hGeoObject;
COL_tdstShadowElement a_stShadowObject[HIE_C_MaxTriangles];
ACP_tdxIndex xNbElement;
} HIE_tdstShadowInfo;
typedef HIE_tdstShadowInfo HIE_aDEF_stTabOfShadowInfo[HIE_C_DepthPickingObjects];
*/
/*Intersection with the Visual Set*/
extern CPA_EXPORT ACP_tdxIndex HIE_xIsSuperObjectPick(GLI_tdeModePicking xModePicking,
GLD_tdhDevice hDev,
GLD_tdhViewport hVp,
GLI_tdst2DVertex *p_stSouris2D,
HIE_tdxHandleToSuperObject hSprObj,
HIE_tdstPickInfo *p_stPickInfo );
/*Intersection with the ZDR of the Collide Set*/
extern CPA_EXPORT ACP_tdxIndex HIE_bIntersectSemiAxeWithSuperObject(GLI_tdeModePicking xModePicking,
MTH3D_tdstVector *p_stVertexA,
MTH3D_tdstVector *p_stVertexB,
MTH3D_tdstVector *p_stVectAB,
HIE_tdxHandleToSuperObject hSprObj,
HIE_tdstPickInfo *p_stPickInfo );
/*Intersection with the ZDR of the Collide Set (condensed result)*/
extern CPA_EXPORT ACP_tdxBool HIE_bIntersectSemiAxeWithFirstSuperObject ( MTH3D_tdstVector *_p_stVertexA,
MTH3D_tdstVector *_p_stVectAB,
HIE_tdxHandleToSuperObject hSprObj,
MTH3D_tdstVector *_p_stHit,
MTH3D_tdstVector *_p_stNormal,
HIE_tdxHandleToSuperObject *_p_hSprObjHit);
extern CPA_EXPORT ACP_tdxIndex HIE_bIntersectSegmentWithSuperObject(MTH3D_tdstVector *p_stVertexA,
MTH3D_tdstVector *p_stVectAB,
HIE_tdxHandleToSuperObject hSprObj,
HIE_tdstPickInfo *p_stPickInfo );
/* FPU pour la camera */
extern CPA_EXPORT ACP_tdxBool HIE_bDetectIntersectSegmentWithSuperObject ( MTH3D_tdstVector *p_stVertexA,
MTH3D_tdstVector *p_stVectAB,
HIE_tdxHandleToSuperObject hSprObj );
extern CPA_EXPORT ACP_tdxBool fn_bDetectIntersectSegmentWithBoundingSphere(GEO_tdxHandleToMatrix _p_stCurrentMatrix, MTH3D_tdstVector *_p_stVertexA,
MTH3D_tdstVector *_p_stVectAB, GEO_tdxHandleToBoundingSphere _hBoundingSphere);
extern CPA_EXPORT ACP_tdxBool HIE_bIntersectSegmentWithFirstSuperObject ( MTH3D_tdstVector *_p_stVertexA,
MTH3D_tdstVector *_p_stVectAB,
HIE_tdxHandleToSuperObject hSprObj,
MTH3D_tdstVector *_p_stHit,
MTH3D_tdstVector *_p_stNormal,
HIE_tdxHandleToSuperObject *_p_hSprObjHit);
/*Chris 11/06/97*/
/*extern CPA_EXPORT
ACP_tdxIndex HIE_bIntersectShadowSuperObject(MTH3D_tdstVector *p_stVertexA,
MTH3D_tdstVector *p_stVertexB,
MTH3D_tdstVector *p_stVectAB,
MTH_tdxReal _xNearDistance,
HIE_tdxHandleToSuperObject _hSprObj,
HIE_aDEF_stTabOfShadowInfo _a_stTabShadowInfo);
*/
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif /* __HIEPICK_H__ */