void NullModel::testSelect(Selector& selector, SelectionTest& test, const Matrix4& localToWorld) { test.BeginMesh(localToWorld); SelectionIntersection best; aabb_testselect(_aabbLocal, test, best); if(best.valid()) { selector.addIntersection(best); } }
void MiscParticle::testSelect (Selector& selector, SelectionTest& test, const Matrix4& localToWorld) { test.BeginMesh(localToWorld); SelectionIntersection best; aabb_testselect(m_aabb_local, test, best); if (best.valid()) { selector.addIntersection(best); } }
void BrushInstance::testSelect (Selector& selector, SelectionTest& test) { test.BeginMesh(localToWorld()); SelectionIntersection best; for (FaceInstances::iterator i = m_faceInstances.begin(); i != m_faceInstances.end(); ++i) { (*i).testSelect(test, best); } if (best.valid()) { selector.addIntersection(best); } }
// 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); } } }