Commit e29a829a authored by Maciej Suminski's avatar Maciej Suminski

Added implementation of level of details per layer and item type pairs basis...

Added implementation of level of details per layer and item type pairs basis (items on every layer have a possibility to define the minimum VIEW scale to be shown).
parent 9c4e0237
......@@ -459,7 +459,8 @@ struct VIEW::drawItem
// Draw using cached information or create one
int group = aItem->getGroup( currentLayer->id );
if( group >= 0 && aItem->ViewIsVisible() )
if( group >= 0 && aItem->ViewIsVisible() &&
aItem->ViewGetLOD( currentLayer->id ) < view->m_scale )
{
gal->DrawGroup( group );
}
......@@ -471,7 +472,8 @@ struct VIEW::drawItem
gal->EndGroup();
}
}
else if( aItem->ViewIsVisible() )
else if( aItem->ViewIsVisible() &&
aItem->ViewGetLOD( currentLayer->id ) < view->m_scale )
{
// Immediate mode
view->m_painter->Draw( aItem, currentLayer->id );
......
......@@ -227,6 +227,17 @@ public:
return m_viewVisible;
}
/**
* Function ViewGetLOD()
* Returns the level of detail of the item. A level of detail is the minimal VIEW scale that
* is sufficient for an item to be shown on a given layer.
*/
virtual unsigned int ViewGetLOD( int aLayer ) const
{
// By default always show the item
return 0;
}
/**
* Function ViewUpdate()
* For dynamic VIEWs, informs the associated VIEW that the graphical representation of
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment