Changed: Libtoolize check has been put back into the bootstrap
[ode.git] / OPCODE / OPC_Picking.h
blobd22fa38ac814c9ef6accbad70f35c805def84afe
1 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2 /*
3 * OPCODE - Optimized Collision Detection
4 * Copyright (C) 2001 Pierre Terdiman
5 * Homepage: http://www.codercorner.com/Opcode.htm
6 */
7 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
9 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
10 /**
11 * Contains code to perform "picking".
12 * \file OPC_Picking.h
13 * \author Pierre Terdiman
14 * \date March, 20, 2001
16 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
18 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
19 // Include Guard
20 #ifndef __OPC_PICKING_H__
21 #define __OPC_PICKING_H__
23 #ifdef OPC_RAYHIT_CALLBACK
25 enum CullMode
27 CULLMODE_NONE = 0,
28 CULLMODE_CW = 1,
29 CULLMODE_CCW = 2
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);
43 #endif
45 #endif //__OPC_PICKING_H__