Commit 3701e131 authored by Maciej Suminski's avatar Maciej Suminski Committed by Wayne Stambaugh
Browse files

Commit merge request lp:197858 (fixes lp:1249736).

parents dbd72122 d7fc8db0
Loading
Loading
Loading
Loading
+22 −8
Original line number Diff line number Diff line
@@ -153,10 +153,12 @@ struct queryVisitor
    {
    }

    void operator()( VIEW_ITEM* aItem )
    bool operator()( VIEW_ITEM* aItem )
    {
        if( aItem->ViewIsVisible() )
            m_cont.push_back( VIEW::LAYER_ITEM_PAIR( aItem, m_layer ) );

        return true;
    }

    Container&  m_cont;
@@ -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
        const COLOR4D color = painter->GetSettings()->GetColor( aItem, layer );
@@ -395,6 +397,8 @@ struct VIEW::updateItemsColor

        if( group >= 0 )
            gal->ChangeGroupColor( group, color );

        return true;
    }

    int layer;
@@ -447,12 +451,14 @@ struct VIEW::changeItemsDepth
    {
    }

    void operator()( VIEW_ITEM* aItem )
    bool operator()( VIEW_ITEM* aItem )
    {
        int group = aItem->getGroup( layer );

        if( group >= 0 )
            gal->ChangeGroupDepth( group, depth );

        return true;
    }

    int layer, depth;
@@ -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
        bool drawCondition = aItem->ViewIsVisible() &&
                             aItem->ViewGetLOD( currentLayer->id ) < view->m_scale;
        if( !drawCondition )
            return;
            return true;

        view->draw( aItem, currentLayer->id );

        return true;
    }

    const VIEW_LAYER* currentLayer;
@@ -676,9 +684,11 @@ bool VIEW::IsDirty() const

struct VIEW::unlinkItem
{
    void operator()( VIEW_ITEM* aItem )
    bool operator()( VIEW_ITEM* aItem )
    {
        aItem->m_view = NULL;

        return true;
    }
};

@@ -690,7 +700,7 @@ struct VIEW::recacheItem
    {
    }

    void operator()( VIEW_ITEM* aItem )
    bool operator()( VIEW_ITEM* aItem )
    {
        // Remove previously cached group
        int prevGroup = aItem->getGroup( layer );
@@ -712,6 +722,8 @@ struct VIEW::recacheItem
        {
            aItem->setGroup( layer, -1 );
        }

        return true;
    }

    VIEW* view;
@@ -792,12 +804,14 @@ struct VIEW::clearLayerCache
    {
    }

    void operator()( VIEW_ITEM* aItem )
    bool operator()( VIEW_ITEM* aItem )
    {
        if( aItem->storesGroups() )
        {
            aItem->deleteGroups();
        }

        return true;
    }

    VIEW* view;
+21 −23
Original line number Diff line number Diff line
@@ -1286,7 +1286,7 @@ int RTREE_QUAL::PickBranch( Rect* a_rect, Node* a_node )
    ELEMTYPEREAL    increase;
    ELEMTYPEREAL    bestIncr = (ELEMTYPEREAL) -1;
    ELEMTYPEREAL    area;
    ELEMTYPEREAL    bestArea;
    ELEMTYPEREAL    bestArea = 0;
    int             best = 0;
    Rect            tempRect;

@@ -1622,7 +1622,7 @@ void RTREE_QUAL::PickSeeds( PartitionVars* a_parVars )
                                        &a_parVars->m_branchBuf[indexB].m_rect );
            waste = CalcRectVolume( &oneRect ) - area[indexA] - area[indexB];

            if( waste > worst )
            if( waste >= worst )
            {
                worst   = waste;
                seed0   = indexA;
@@ -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.
//it uses the square distance to avoid the use of ELEMTYPEREAL values, which are slower.
RTREE_TEMPLATE

include/rtree.h

deleted100644 → 0
+0 −1758

File deleted.

Preview size limit exceeded, changes collapsed.

+1 −2
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@

#include <math/box2.h>

#include <rtree.h>
#include <geometry/rtree.h>

namespace KIGFX
{
@@ -76,7 +76,6 @@ public:
     * Executes a function object aVisitor for each item whose bounding box intersects
     * with aBounds.
     */

    template <class Visitor>
    void Query( const BOX2I& aBounds, Visitor& aVisitor )    // const
    {