26 #ifdef OPC_RAYHIT_CALLBACK
41 static void AllContacts(
const CollisionFace& hit,
void* user_data)
58 static void ClosestContact(
const CollisionFace& hit,
void* user_data)
105 static void RenderCullingCallback(
const CollisionFace& hit,
void* user_data)
107 CullData* Data = (CullData*)user_data;
110 if(hit.
mDistance>=Data->Closest->mDistance)
return;
115 if(hit.
mDistance<=Data->MinLimit)
return;
124 CullMode CM = (Data->Callback)(StabbedFaceIndex, Data->UserData);
131 Data->IMesh->GetTriangle(VP, StabbedFaceIndex);
142 if(KeepIt) *Data->Closest = hit;
155 picked_face.
mU = 0.0f;
156 picked_face.
mV = 0.0f;
158 Local::CullData Data;
159 Data.Closest = &picked_face;
160 Data.MinLimit = min_dist;
161 Data.Callback = callback;
162 Data.UserData = user_data;
163 Data.ViewPoint = view_point;
173 Data.ViewPoint *= InvWorld;
177 if(RC.
Collide(world_ray, model, world))