diff -r 000000000000 -r 6474c204b198 gfx/skia/trunk/src/pathops/SkPathOpsBounds.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/skia/trunk/src/pathops/SkPathOpsBounds.cpp Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,40 @@ +/* + * Copyright 2012 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ +#include "SkPathOpsBounds.h" +#include "SkPathOpsCubic.h" +#include "SkPathOpsLine.h" +#include "SkPathOpsQuad.h" + +void SkPathOpsBounds::setCubicBounds(const SkPoint a[4]) { + SkDCubic cubic; + cubic.set(a); + SkDRect dRect; + dRect.setBounds(cubic); + set(SkDoubleToScalar(dRect.fLeft), SkDoubleToScalar(dRect.fTop), + SkDoubleToScalar(dRect.fRight), SkDoubleToScalar(dRect.fBottom)); +} + +void SkPathOpsBounds::setLineBounds(const SkPoint a[2]) { + setPointBounds(a[0]); + add(a[1]); +} + +void SkPathOpsBounds::setQuadBounds(const SkPoint a[3]) { + SkDQuad quad; + quad.set(a); + SkDRect dRect; + dRect.setBounds(quad); + set(SkDoubleToScalar(dRect.fLeft), SkDoubleToScalar(dRect.fTop), + SkDoubleToScalar(dRect.fRight), SkDoubleToScalar(dRect.fBottom)); +} + +void (SkPathOpsBounds::*SetCurveBounds[])(const SkPoint[]) = { + NULL, + &SkPathOpsBounds::setLineBounds, + &SkPathOpsBounds::setQuadBounds, + &SkPathOpsBounds::setCubicBounds +};