Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
OPC_Picking.h
Go to the documentation of this file.
1 /*
3  * OPCODE - Optimized Collision Detection
4  * Copyright (C) 2001 Pierre Terdiman
5  * Homepage: http://www.codercorner.com/Opcode.htm
6  */
8 
10 
16 
19 // Include Guard
20 #ifndef __OPC_PICKING_H__
21 #define __OPC_PICKING_H__
22 
23 #ifdef OPC_RAYHIT_CALLBACK
24 
25  enum CullMode
26  {
27  CULLMODE_NONE = 0,
28  CULLMODE_CW = 1,
29  CULLMODE_CCW = 2
30  };
31 
32  typedef CullMode (*CullModeCallback)(udword triangle_index, void* user_data);
33 
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);
38 
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
44 
45 #endif //__OPC_PICKING_H__