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 "SkRect.h"
12
13class SkBBoxHierarchy;
14
15class SK_API SkBBHFactory {
16public:
17    /**
18     *  Allocate a new SkBBoxHierarchy. Return NULL on failure.
19     */
20    virtual SkBBoxHierarchy* operator()(const SkRect& bounds) const = 0;
21    virtual ~SkBBHFactory() {};
22};
23
24class SK_API SkRTreeFactory : public SkBBHFactory {
25public:
26    SkBBoxHierarchy* operator()(const SkRect& bounds) const override;
27private:
28    typedef SkBBHFactory INHERITED;
29};
30
31#endif
32