1 /* 2 * Copyright 2014 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef SkBBHFactory_DEFINED 9 #define SkBBHFactory_DEFINED 10 11 #include "SkTypes.h" 12 class SkBBoxHierarchy; 13 struct SkRect; 14 15 class SK_API SkBBHFactory { 16 public: 17 /** 18 * Allocate a new SkBBoxHierarchy. Return NULL on failure. 19 */ 20 virtual SkBBoxHierarchy* operator()(const SkRect& bounds) const = 0; ~SkBBHFactory()21 virtual ~SkBBHFactory() {}; 22 }; 23 24 class SK_API SkRTreeFactory : public SkBBHFactory { 25 public: 26 SkRTreeFactory(); 27 SkBBoxHierarchy* operator()(const SkRect& bounds) const override; 28 private: 29 typedef SkBBHFactory INHERITED; 30 }; 31 32 #endif 33