1 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3 * OPCODE - Optimized Collision Detection
4 * Copyright (C) 2001 Pierre Terdiman
5 * Homepage: http://www.codercorner.com/Opcode.htm
7 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
9 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
11 * Contains code to perform "picking".
13 * \author Pierre Terdiman
14 * \date March, 20, 2001
16 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
18 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
20 #ifndef __OPC_PICKING_H__
21 #define __OPC_PICKING_H__
23 #ifdef OPC_RAYHIT_CALLBACK
32 typedef CullMode (*CullModeCallback
)(udword triangle_index
, void* user_data
);
34 OPCODE_API
bool SetupAllHits (RayCollider
& collider
, CollisionFaces
& contacts
);
35 OPCODE_API
bool SetupClosestHit (RayCollider
& collider
, CollisionFace
& closest_contact
);
36 OPCODE_API
bool SetupShadowFeeler (RayCollider
& collider
);
37 OPCODE_API
bool SetupInOutTest (RayCollider
& collider
);
39 OPCODE_API
bool Picking(
40 CollisionFace
& picked_face
,
41 const Ray
& world_ray
, const Model
& model
, const Matrix4x4
* world
,
42 float min_dist
, float max_dist
, const Point
& view_point
, CullModeCallback callback
, void* user_data
);
45 #endif //__OPC_PICKING_H__