void SwitchMaterialBase::assignMaterials(const MFUnrecMaterialPtr &value)
{
    MFUnrecMaterialPtr::const_iterator elemIt  =
        value.begin();
    MFUnrecMaterialPtr::const_iterator elemEnd =
        value.end  ();

    static_cast<SwitchMaterial *>(this)->clearMaterials();

    while(elemIt != elemEnd)
    {
        this->pushToMaterials(*elemIt);

        ++elemIt;
    }
}
void TiledQuadTreeTerrainBase::assignHeightTextures(const MFUnrecMaterialPtr &value)
{
    MFUnrecMaterialPtr::const_iterator elemIt  =
        value.begin();
    MFUnrecMaterialPtr::const_iterator elemEnd =
        value.end  ();

    static_cast<TiledQuadTreeTerrain *>(this)->clearHeightTextures();

    while(elemIt != elemEnd)
    {
        this->pushToHeightTextures(*elemIt);

        ++elemIt;
    }
}