bool TiXmlNode::RemoveChild( TiXmlNode* removeThis ) { if (DisconnectChild(removeThis) == 0) { assert(!"couldn't disconnect node"); return false; } // We own the node now. delete removeThis; return true; }
// ============================================================================ // ============================================================================ IVistaNode* VistaGroupNode::DisconnectChild(const std::string &strName) { int nChildindex = -1; //search for child with name <name> for ( unsigned int i=0; i<m_vecChildren.size(); i++ ) if(m_vecChildren[i]->GetName() == strName) { nChildindex = i; } return DisconnectChild(nChildindex); }
// ============================================================================ // ============================================================================ int VistaGroupNode::DisconnectChild(IVistaNode* pChild) { int nChildNum = -1; if(pChild) { //go through children to determine childnumber int i=0; for(VistaNodeVector::const_iterator cit = m_vecChildren.begin(); cit != m_vecChildren.end(); ++cit, ++i) { if(*cit == pChild) { nChildNum = i; break; } } DisconnectChild(nChildNum); } return nChildNum; }