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__