Index: src/core/SkBBoxHierarchy.h |
diff --git a/src/core/SkBBoxHierarchy.h b/src/core/SkBBoxHierarchy.h |
index fd9680c6aaa91431003f11730dff10b1abe9b45b..53eabc8b884d3199597fafe65059bb25075f05d7 100644 |
--- a/src/core/SkBBoxHierarchy.h |
+++ b/src/core/SkBBoxHierarchy.h |
@@ -14,42 +14,25 @@ |
#include "SkRefCnt.h" |
/** |
- * Interface for a client class that implements utility methods needed |
- * by SkBBoxHierarchy that require intrinsic knowledge of the data |
- * object type that is stored in the bounding box hierarchy. |
- */ |
-class SkBBoxHierarchyClient { |
-public: |
- virtual ~SkBBoxHierarchyClient() {} |
- |
- /** |
- * Implements a rewind stop condition used by rewindInserts |
- * Must returns true if 'data' points to an object that should be re-wound |
- * by rewinfInserts. |
- */ |
- virtual bool shouldRewind(void* data) = 0; |
-}; |
- |
-/** |
- * Interface for a spatial data structure that associates user data pointers with axis-aligned |
+ * Interface for a spatial data structure that associates user data with axis-aligned |
* bounding boxes, and allows efficient retrieval of intersections with query rectangles. |
*/ |
class SkBBoxHierarchy : public SkRefCnt { |
public: |
SK_DECLARE_INST_COUNT(SkBBoxHierarchy) |
- SkBBoxHierarchy() : fClient(NULL) {} |
+ SkBBoxHierarchy() {} |
/** |
- * Insert a data pointer and corresponding bounding box |
- * @param data The data pointer, may be NULL |
+ * Insert opIndex and corresponding bounding box |
+ * @param opIndex Any value, will be returned in order. |
* @param bounds The bounding box, should not be empty |
* @param defer Whether or not it is acceptable to delay insertion of this element (building up |
* an entire spatial data structure at once is often faster and produces better |
* structures than repeated inserts) until flushDeferredInserts is called or the first |
* search. |
*/ |
- virtual void insert(void* data, const SkRect& bounds, bool defer = false) = 0; |
+ virtual void insert(unsigned opIndex, const SkRect& bounds, bool defer = false) = 0; |
/** |
* If any insertions have been deferred, this forces them to be inserted |
@@ -57,9 +40,9 @@ public: |
virtual void flushDeferredInserts() = 0; |
/** |
- * Populate 'results' with data pointers corresponding to bounding boxes that intersect 'query' |
+ * Populate results with sorted opIndex corresponding to bounding boxes that intersect query. |
*/ |
- virtual void search(const SkRect& query, SkTDArray<void*>* results) const = 0; |
+ virtual void search(const SkRect& query, SkTDArray<unsigned>* results) const = 0; |
virtual void clear() = 0; |
@@ -78,19 +61,6 @@ public: |
*/ |
virtual int getDepth() const = 0; |
- /** |
- * Rewinds all the most recently inserted data elements until an element |
- * is encountered for which client->shouldRewind(data) returns false. May |
- * not rewind elements that were inserted prior to the last call to |
- * flushDeferredInserts. |
- */ |
- virtual void rewindInserts() = 0; |
- |
- void setClient(SkBBoxHierarchyClient* client) { fClient = client; } |
- |
-protected: |
- SkBBoxHierarchyClient* fClient; |
- |
private: |
typedef SkRefCnt INHERITED; |
}; |