void EclassModel::testSelect(Selector& selector, SelectionTest& test) { // Pass the call down to the model node, if applicable SelectionTestablePtr selectionTestable = Node_getSelectionTestable(m_model.getNode()); if (selectionTestable) { selectionTestable->testSelect(selector, test); } }
void Doom3Group::testSelect(Selector& selector, SelectionTest& test, SelectionIntersection& best) { // Pass the call down to the model node, if applicable SelectionTestablePtr selectionTestable = Node_getSelectionTestable(m_model.getNode()); if (selectionTestable) { selectionTestable->testSelect(selector, test); } m_curveNURBS.testSelect(selector, test, best); m_curveCatmullRom.testSelect(selector, test, best); }
// The visitor function bool pre(const scene::INodePtr& node) { // Check if the node is filtered if (node->visible()) { SelectionTestablePtr selectionTestable = Node_getSelectionTestable(node); if (selectionTestable != NULL) { bool occluded; OccludeSelector selector(_bestIntersection, occluded); selectionTestable->testSelect(selector, _selectionTest); if (occluded) { _node = node; } } } else { return false; // don't traverse filtered nodes } return true; }