| Index: cc/base/tiling_data.h
|
| diff --git a/cc/base/tiling_data.h b/cc/base/tiling_data.h
|
| index 45b763e9ef0ba5c906a69c4eb29176bc9aed9f88..a35be59f7484ccaacd51e32f8a7c9c626db4c2a7 100644
|
| --- a/cc/base/tiling_data.h
|
| +++ b/cc/base/tiling_data.h
|
| @@ -101,19 +101,21 @@ class CC_EXPORT TilingData {
|
| int bottom_;
|
| };
|
|
|
| - // Iterate through all indices whose bounds (not including borders) intersect
|
| - // with |consider| but which also do not intersect with |ignore|.
|
| - class CC_EXPORT DifferenceIterator : public BaseIterator {
|
| - public:
|
| - DifferenceIterator(const TilingData* tiling_data,
|
| - const gfx::Rect& consider_rect,
|
| - const gfx::Rect& ignore_rect);
|
| - DifferenceIterator& operator++();
|
| + class CC_EXPORT BaseDifferenceIterator : public BaseIterator {
|
| + protected:
|
| + BaseDifferenceIterator();
|
| + BaseDifferenceIterator(const TilingData* tiling_data,
|
| + const gfx::Rect& consider_rect,
|
| + const gfx::Rect& ignore_rect);
|
|
|
| - private:
|
| + bool HasConsiderRect() const;
|
| + bool in_consider_rect() const {
|
| + return index_x_ >= consider_left_ && index_x_ <= consider_right_ &&
|
| + index_y_ >= consider_top_ && index_y_ <= consider_bottom_;
|
| + }
|
| bool in_ignore_rect() const {
|
| - return index_x_ >= ignore_left_ && index_x_ <= ignore_right_ &&
|
| - index_y_ >= ignore_top_ && index_y_ <= ignore_bottom_;
|
| + return index_x_ >= ignore_left_ && index_x_ <= ignore_right_ &&
|
| + index_y_ >= ignore_top_ && index_y_ <= ignore_bottom_;
|
| }
|
|
|
| int consider_left_;
|
| @@ -126,10 +128,20 @@ class CC_EXPORT TilingData {
|
| int ignore_bottom_;
|
| };
|
|
|
| + // Iterate through all indices whose bounds (not including borders) intersect
|
| + // with |consider| but which also do not intersect with |ignore|.
|
| + class CC_EXPORT DifferenceIterator : public BaseDifferenceIterator {
|
| + public:
|
| + DifferenceIterator(const TilingData* tiling_data,
|
| + const gfx::Rect& consider_rect,
|
| + const gfx::Rect& ignore_rect);
|
| + DifferenceIterator& operator++();
|
| + };
|
| +
|
| // Iterate through all indices whose bounds + border intersect with
|
| // |consider| but which also do not intersect with |ignore|. The iterator
|
| // order is a counterclockwise spiral around the given center.
|
| - class CC_EXPORT SpiralDifferenceIterator : public BaseIterator {
|
| + class CC_EXPORT SpiralDifferenceIterator : public BaseDifferenceIterator {
|
| public:
|
| SpiralDifferenceIterator();
|
| SpiralDifferenceIterator(const TilingData* tiling_data,
|
| @@ -139,14 +151,6 @@ class CC_EXPORT TilingData {
|
| SpiralDifferenceIterator& operator++();
|
|
|
| private:
|
| - bool in_consider_rect() const {
|
| - return index_x_ >= consider_left_ && index_x_ <= consider_right_ &&
|
| - index_y_ >= consider_top_ && index_y_ <= consider_bottom_;
|
| - }
|
| - bool in_ignore_rect() const {
|
| - return index_x_ >= ignore_left_ && index_x_ <= ignore_right_ &&
|
| - index_y_ >= ignore_top_ && index_y_ <= ignore_bottom_;
|
| - }
|
| bool valid_column() const {
|
| return index_x_ >= consider_left_ && index_x_ <= consider_right_;
|
| }
|
| @@ -162,15 +166,6 @@ class CC_EXPORT TilingData {
|
| bool needs_direction_switch() const;
|
| void switch_direction();
|
|
|
| - int consider_left_;
|
| - int consider_top_;
|
| - int consider_right_;
|
| - int consider_bottom_;
|
| - int ignore_left_;
|
| - int ignore_top_;
|
| - int ignore_right_;
|
| - int ignore_bottom_;
|
| -
|
| enum Direction { UP, LEFT, DOWN, RIGHT };
|
|
|
| Direction direction_;
|
| @@ -181,7 +176,8 @@ class CC_EXPORT TilingData {
|
| int vertical_step_count_;
|
| };
|
|
|
| - class CC_EXPORT ReverseSpiralDifferenceIterator : public BaseIterator {
|
| + class CC_EXPORT ReverseSpiralDifferenceIterator
|
| + : public BaseDifferenceIterator {
|
| public:
|
| ReverseSpiralDifferenceIterator();
|
| ReverseSpiralDifferenceIterator(const TilingData* tiling_data,
|
| @@ -191,18 +187,10 @@ class CC_EXPORT TilingData {
|
| ReverseSpiralDifferenceIterator& operator++();
|
|
|
| private:
|
| - bool in_consider_rect() const {
|
| - return index_x_ >= consider_left_ && index_x_ <= consider_right_ &&
|
| - index_y_ >= consider_top_ && index_y_ <= consider_bottom_;
|
| - }
|
| bool in_around_rect() const {
|
| return index_x_ >= around_left_ && index_x_ <= around_right_ &&
|
| index_y_ >= around_top_ && index_y_ <= around_bottom_;
|
| }
|
| - bool in_ignore_rect() const {
|
| - return index_x_ >= ignore_left_ && index_x_ <= ignore_right_ &&
|
| - index_y_ >= ignore_top_ && index_y_ <= ignore_bottom_;
|
| - }
|
| bool valid_column() const {
|
| return index_x_ >= consider_left_ && index_x_ <= consider_right_;
|
| }
|
| @@ -218,18 +206,10 @@ class CC_EXPORT TilingData {
|
| bool needs_direction_switch() const;
|
| void switch_direction();
|
|
|
| - int consider_left_;
|
| - int consider_top_;
|
| - int consider_right_;
|
| - int consider_bottom_;
|
| int around_left_;
|
| int around_top_;
|
| int around_right_;
|
| int around_bottom_;
|
| - int ignore_left_;
|
| - int ignore_top_;
|
| - int ignore_right_;
|
| - int ignore_bottom_;
|
|
|
| enum Direction { LEFT, UP, RIGHT, DOWN };
|
|
|
|
|