/* (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__ */