106 lines
4.4 KiB
C
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__ */
|