Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00008
00010
00016
00017
00019
00020 #ifndef __OPC_PICKING_H__
00021 #define __OPC_PICKING_H__
00022
00023 #ifdef OPC_RAYHIT_CALLBACK
00024
00025 enum CullMode
00026 {
00027 CULLMODE_NONE = 0,
00028 CULLMODE_CW = 1,
00029 CULLMODE_CCW = 2
00030 };
00031
00032 typedef CullMode (*CullModeCallback)(udword triangle_index, void* user_data);
00033
00034 OPCODE_API bool SetupAllHits (RayCollider& collider, CollisionFaces& contacts);
00035 OPCODE_API bool SetupClosestHit (RayCollider& collider, CollisionFace& closest_contact);
00036 OPCODE_API bool SetupShadowFeeler (RayCollider& collider);
00037 OPCODE_API bool SetupInOutTest (RayCollider& collider);
00038
00039 OPCODE_API bool Picking(
00040 CollisionFace& picked_face,
00041 const Ray& world_ray, const Model& model, const Matrix4x4* world,
00042 float min_dist, float max_dist, const Point& view_point, CullModeCallback callback, void* user_data);
00043 #endif
00044
00045 #endif //__OPC_PICKING_H__