/* * XdmfGrid.cpp * * Created on: Jan 25, 2010 * Author: kleiter */ #include "XdmfDomain.hpp" #include "XdmfGrid.hpp" XdmfDomain::XdmfDomain() { std::cout << "Created Domain " << this << std::endl; } XdmfDomain::~XdmfDomain() { std::cout << "Deleted Domain " << this << std::endl; } const std::string XdmfDomain::ItemTag = "Domain"; void XdmfDomain::insert(const boost::shared_ptr grid) { mGrids.push_back(grid); } boost::shared_ptr XdmfDomain::getGrid(const unsigned int index) { return boost::const_pointer_cast(static_cast(*this).getGrid(index)); } boost::shared_ptr XdmfDomain::getGrid(const unsigned int index) const { if(index >= mGrids.size()) { assert(false); // Out of range --- should we throw exceptions? } return mGrids[index]; } std::map XdmfDomain::getItemProperties() const { std::map domainProperties; return domainProperties; } std::string XdmfDomain::getItemTag() const { return ItemTag; } unsigned int XdmfDomain::getNumberOfGrids() const { return mGrids.size(); } void XdmfDomain::populateItem(const std::map & itemProperties, std::vector > & childItems) { for(std::vector >::const_iterator iter = childItems.begin(); iter != childItems.end(); ++iter) { this->insert(boost::shared_dynamic_cast(*iter)); } } void XdmfDomain::removeGrid(const unsigned int index) { if(index >= mGrids.size()) { assert(false); } mGrids.erase(mGrids.begin() + index); } void XdmfDomain::traverse(const boost::shared_ptr visitor) const { for(std::vector >::const_iterator iter = mGrids.begin(); iter != mGrids.end(); ++iter) { (*iter)->accept(visitor); } }