| Index: src/pathops/SkPathOpsRect.h
|
| ===================================================================
|
| --- src/pathops/SkPathOpsRect.h (revision 0)
|
| +++ src/pathops/SkPathOpsRect.h (revision 0)
|
| @@ -0,0 +1,56 @@
|
| +/*
|
| + * Copyright 2012 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +#ifndef SkPathOpsRect_DEFINED
|
| +#define SkPathOpsRect_DEFINED
|
| +
|
| +#include "SkPathOpsPoint.h"
|
| +
|
| +struct SkDRect {
|
| + double fLeft, fTop, fRight, fBottom;
|
| +
|
| + void add(const SkDPoint& pt) {
|
| + if (fLeft > pt.fX) {
|
| + fLeft = pt.fX;
|
| + }
|
| + if (fTop > pt.fY) {
|
| + fTop = pt.fY;
|
| + }
|
| + if (fRight < pt.fX) {
|
| + fRight = pt.fX;
|
| + }
|
| + if (fBottom < pt.fY) {
|
| + fBottom = pt.fY;
|
| + }
|
| + }
|
| +
|
| + // FIXME: used by debugging only ?
|
| + bool contains(const SkDPoint& pt) const {
|
| + return approximately_between(fLeft, pt.fX, fRight)
|
| + && approximately_between(fTop, pt.fY, fBottom);
|
| + }
|
| +
|
| + bool intersects(SkDRect* r) const {
|
| + SkASSERT(fLeft <= fRight);
|
| + SkASSERT(fTop <= fBottom);
|
| + SkASSERT(r->fLeft <= r->fRight);
|
| + SkASSERT(r->fTop <= r->fBottom);
|
| + return r->fLeft <= fRight && fLeft <= r->fRight && r->fTop <= fBottom && fTop <= r->fBottom;
|
| + }
|
| +
|
| + void set(const SkDPoint& pt) {
|
| + fLeft = fRight = pt.fX;
|
| + fTop = fBottom = pt.fY;
|
| + }
|
| +
|
| + void setBounds(const SkDLine&);
|
| + void setBounds(const SkDCubic&);
|
| + void setBounds(const SkDQuad&);
|
| + void setRawBounds(const SkDCubic&);
|
| + void setRawBounds(const SkDQuad&);
|
| +};
|
| +
|
| +#endif
|
|
|