Loading common/view/view.cpp +22 −8 Original line number Original line Diff line number Diff line Loading @@ -153,10 +153,12 @@ struct queryVisitor { { } } void operator()( VIEW_ITEM* aItem ) bool operator()( VIEW_ITEM* aItem ) { { if( aItem->ViewIsVisible() ) if( aItem->ViewIsVisible() ) m_cont.push_back( VIEW::LAYER_ITEM_PAIR( aItem, m_layer ) ); m_cont.push_back( VIEW::LAYER_ITEM_PAIR( aItem, m_layer ) ); return true; } } Container& m_cont; Container& m_cont; Loading Loading @@ -387,7 +389,7 @@ struct VIEW::updateItemsColor { { } } void operator()( VIEW_ITEM* aItem ) bool operator()( VIEW_ITEM* aItem ) { { // Obtain the color that should be used for coloring the item // Obtain the color that should be used for coloring the item const COLOR4D color = painter->GetSettings()->GetColor( aItem, layer ); const COLOR4D color = painter->GetSettings()->GetColor( aItem, layer ); Loading @@ -395,6 +397,8 @@ struct VIEW::updateItemsColor if( group >= 0 ) if( group >= 0 ) gal->ChangeGroupColor( group, color ); gal->ChangeGroupColor( group, color ); return true; } } int layer; int layer; Loading Loading @@ -447,12 +451,14 @@ struct VIEW::changeItemsDepth { { } } void operator()( VIEW_ITEM* aItem ) bool operator()( VIEW_ITEM* aItem ) { { int group = aItem->getGroup( layer ); int group = aItem->getGroup( layer ); if( group >= 0 ) if( group >= 0 ) gal->ChangeGroupDepth( group, depth ); gal->ChangeGroupDepth( group, depth ); return true; } } int layer, depth; int layer, depth; Loading Loading @@ -571,15 +577,17 @@ struct VIEW::drawItem { { } } void operator()( VIEW_ITEM* aItem ) bool operator()( VIEW_ITEM* aItem ) { { // Conditions that have te be fulfilled for an item to be drawn // Conditions that have te be fulfilled for an item to be drawn bool drawCondition = aItem->ViewIsVisible() && bool drawCondition = aItem->ViewIsVisible() && aItem->ViewGetLOD( currentLayer->id ) < view->m_scale; aItem->ViewGetLOD( currentLayer->id ) < view->m_scale; if( !drawCondition ) if( !drawCondition ) return; return true; view->draw( aItem, currentLayer->id ); view->draw( aItem, currentLayer->id ); return true; } } const VIEW_LAYER* currentLayer; const VIEW_LAYER* currentLayer; Loading Loading @@ -676,9 +684,11 @@ bool VIEW::IsDirty() const struct VIEW::unlinkItem struct VIEW::unlinkItem { { void operator()( VIEW_ITEM* aItem ) bool operator()( VIEW_ITEM* aItem ) { { aItem->m_view = NULL; aItem->m_view = NULL; return true; } } }; }; Loading @@ -690,7 +700,7 @@ struct VIEW::recacheItem { { } } void operator()( VIEW_ITEM* aItem ) bool operator()( VIEW_ITEM* aItem ) { { // Remove previously cached group // Remove previously cached group int prevGroup = aItem->getGroup( layer ); int prevGroup = aItem->getGroup( layer ); Loading @@ -712,6 +722,8 @@ struct VIEW::recacheItem { { aItem->setGroup( layer, -1 ); aItem->setGroup( layer, -1 ); } } return true; } } VIEW* view; VIEW* view; Loading Loading @@ -792,12 +804,14 @@ struct VIEW::clearLayerCache { { } } void operator()( VIEW_ITEM* aItem ) bool operator()( VIEW_ITEM* aItem ) { { if( aItem->storesGroups() ) if( aItem->storesGroups() ) { { aItem->deleteGroups(); aItem->deleteGroups(); } } return true; } } VIEW* view; VIEW* view; Loading include/geometry/rtree.h +21 −23 Original line number Original line Diff line number Diff line Loading @@ -1286,7 +1286,7 @@ int RTREE_QUAL::PickBranch( Rect* a_rect, Node* a_node ) ELEMTYPEREAL increase; ELEMTYPEREAL increase; ELEMTYPEREAL bestIncr = (ELEMTYPEREAL) -1; ELEMTYPEREAL bestIncr = (ELEMTYPEREAL) -1; ELEMTYPEREAL area; ELEMTYPEREAL area; ELEMTYPEREAL bestArea; ELEMTYPEREAL bestArea = 0; int best = 0; int best = 0; Rect tempRect; Rect tempRect; Loading Loading @@ -1622,7 +1622,7 @@ void RTREE_QUAL::PickSeeds( PartitionVars* a_parVars ) &a_parVars->m_branchBuf[indexB].m_rect ); &a_parVars->m_branchBuf[indexB].m_rect ); waste = CalcRectVolume( &oneRect ) - area[indexA] - area[indexB]; waste = CalcRectVolume( &oneRect ) - area[indexA] - area[indexB]; if( waste > worst ) if( waste >= worst ) { { worst = waste; worst = waste; seed0 = indexA; seed0 = indexA; Loading Loading @@ -1856,8 +1856,6 @@ bool RTREE_QUAL::Search( Node* a_node, Rect* a_rect, int& a_foundCount, bool a_r } } //calculate the minimum distance between a point and a rectangle as defined by Manolopoulos et al. //calculate the minimum distance between a point and a rectangle as defined by Manolopoulos et al. //it uses the square distance to avoid the use of ELEMTYPEREAL values, which are slower. //it uses the square distance to avoid the use of ELEMTYPEREAL values, which are slower. RTREE_TEMPLATE RTREE_TEMPLATE Loading Loading
common/view/view.cpp +22 −8 Original line number Original line Diff line number Diff line Loading @@ -153,10 +153,12 @@ struct queryVisitor { { } } void operator()( VIEW_ITEM* aItem ) bool operator()( VIEW_ITEM* aItem ) { { if( aItem->ViewIsVisible() ) if( aItem->ViewIsVisible() ) m_cont.push_back( VIEW::LAYER_ITEM_PAIR( aItem, m_layer ) ); m_cont.push_back( VIEW::LAYER_ITEM_PAIR( aItem, m_layer ) ); return true; } } Container& m_cont; Container& m_cont; Loading Loading @@ -387,7 +389,7 @@ struct VIEW::updateItemsColor { { } } void operator()( VIEW_ITEM* aItem ) bool operator()( VIEW_ITEM* aItem ) { { // Obtain the color that should be used for coloring the item // Obtain the color that should be used for coloring the item const COLOR4D color = painter->GetSettings()->GetColor( aItem, layer ); const COLOR4D color = painter->GetSettings()->GetColor( aItem, layer ); Loading @@ -395,6 +397,8 @@ struct VIEW::updateItemsColor if( group >= 0 ) if( group >= 0 ) gal->ChangeGroupColor( group, color ); gal->ChangeGroupColor( group, color ); return true; } } int layer; int layer; Loading Loading @@ -447,12 +451,14 @@ struct VIEW::changeItemsDepth { { } } void operator()( VIEW_ITEM* aItem ) bool operator()( VIEW_ITEM* aItem ) { { int group = aItem->getGroup( layer ); int group = aItem->getGroup( layer ); if( group >= 0 ) if( group >= 0 ) gal->ChangeGroupDepth( group, depth ); gal->ChangeGroupDepth( group, depth ); return true; } } int layer, depth; int layer, depth; Loading Loading @@ -571,15 +577,17 @@ struct VIEW::drawItem { { } } void operator()( VIEW_ITEM* aItem ) bool operator()( VIEW_ITEM* aItem ) { { // Conditions that have te be fulfilled for an item to be drawn // Conditions that have te be fulfilled for an item to be drawn bool drawCondition = aItem->ViewIsVisible() && bool drawCondition = aItem->ViewIsVisible() && aItem->ViewGetLOD( currentLayer->id ) < view->m_scale; aItem->ViewGetLOD( currentLayer->id ) < view->m_scale; if( !drawCondition ) if( !drawCondition ) return; return true; view->draw( aItem, currentLayer->id ); view->draw( aItem, currentLayer->id ); return true; } } const VIEW_LAYER* currentLayer; const VIEW_LAYER* currentLayer; Loading Loading @@ -676,9 +684,11 @@ bool VIEW::IsDirty() const struct VIEW::unlinkItem struct VIEW::unlinkItem { { void operator()( VIEW_ITEM* aItem ) bool operator()( VIEW_ITEM* aItem ) { { aItem->m_view = NULL; aItem->m_view = NULL; return true; } } }; }; Loading @@ -690,7 +700,7 @@ struct VIEW::recacheItem { { } } void operator()( VIEW_ITEM* aItem ) bool operator()( VIEW_ITEM* aItem ) { { // Remove previously cached group // Remove previously cached group int prevGroup = aItem->getGroup( layer ); int prevGroup = aItem->getGroup( layer ); Loading @@ -712,6 +722,8 @@ struct VIEW::recacheItem { { aItem->setGroup( layer, -1 ); aItem->setGroup( layer, -1 ); } } return true; } } VIEW* view; VIEW* view; Loading Loading @@ -792,12 +804,14 @@ struct VIEW::clearLayerCache { { } } void operator()( VIEW_ITEM* aItem ) bool operator()( VIEW_ITEM* aItem ) { { if( aItem->storesGroups() ) if( aItem->storesGroups() ) { { aItem->deleteGroups(); aItem->deleteGroups(); } } return true; } } VIEW* view; VIEW* view; Loading
include/geometry/rtree.h +21 −23 Original line number Original line Diff line number Diff line Loading @@ -1286,7 +1286,7 @@ int RTREE_QUAL::PickBranch( Rect* a_rect, Node* a_node ) ELEMTYPEREAL increase; ELEMTYPEREAL increase; ELEMTYPEREAL bestIncr = (ELEMTYPEREAL) -1; ELEMTYPEREAL bestIncr = (ELEMTYPEREAL) -1; ELEMTYPEREAL area; ELEMTYPEREAL area; ELEMTYPEREAL bestArea; ELEMTYPEREAL bestArea = 0; int best = 0; int best = 0; Rect tempRect; Rect tempRect; Loading Loading @@ -1622,7 +1622,7 @@ void RTREE_QUAL::PickSeeds( PartitionVars* a_parVars ) &a_parVars->m_branchBuf[indexB].m_rect ); &a_parVars->m_branchBuf[indexB].m_rect ); waste = CalcRectVolume( &oneRect ) - area[indexA] - area[indexB]; waste = CalcRectVolume( &oneRect ) - area[indexA] - area[indexB]; if( waste > worst ) if( waste >= worst ) { { worst = waste; worst = waste; seed0 = indexA; seed0 = indexA; Loading Loading @@ -1856,8 +1856,6 @@ bool RTREE_QUAL::Search( Node* a_node, Rect* a_rect, int& a_foundCount, bool a_r } } //calculate the minimum distance between a point and a rectangle as defined by Manolopoulos et al. //calculate the minimum distance between a point and a rectangle as defined by Manolopoulos et al. //it uses the square distance to avoid the use of ELEMTYPEREAL values, which are slower. //it uses the square distance to avoid the use of ELEMTYPEREAL values, which are slower. RTREE_TEMPLATE RTREE_TEMPLATE Loading