// Selection test void MD5Surface::testSelect(Selector& selector, SelectionTest& test, const Matrix4& localToWorld) { test.BeginMesh(localToWorld); SelectionIntersection best; test.TestTriangles( vertexpointer_arbitrarymeshvertex(_vertices.data()), IndexPointer(_indices.data(), IndexPointer::index_type(_indices.size())), best ); if(best.valid()) { selector.addIntersection(best); } }
// Perform selection test for this surface void RenderablePicoSurface::testSelect(Selector& selector, SelectionTest& test, const Matrix4& localToWorld) const { if (!_vertices.empty() && !_indices.empty()) { // Test for triangle selection test.BeginMesh(localToWorld); SelectionIntersection result; test.TestTriangles( VertexPointer(&_vertices[0].vertex, sizeof(ArbitraryMeshVertex)), IndexPointer(&_indices[0], IndexPointer::index_type(_indices.size())), result ); // Add the intersection to the selector if it is valid if(result.valid()) { selector.addIntersection(result); } } }