17839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger/* 27839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger * Copyright 2012 Google Inc. 37839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger * 47839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger * Use of this source code is governed by a BSD-style license that can be 57839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger * found in the LICENSE file. 67839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger */ 77839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger#include "SkPathOpsBounds.h" 87839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger#include "SkPathOpsCubic.h" 97839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger#include "SkPathOpsLine.h" 107839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger#include "SkPathOpsQuad.h" 117839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger 127839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenbergervoid SkPathOpsBounds::setCubicBounds(const SkPoint a[4]) { 137839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger SkDCubic cubic; 147839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger cubic.set(a); 157839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger SkDRect dRect; 167839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger dRect.setBounds(cubic); 177839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger set(SkDoubleToScalar(dRect.fLeft), SkDoubleToScalar(dRect.fTop), 187839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger SkDoubleToScalar(dRect.fRight), SkDoubleToScalar(dRect.fBottom)); 197839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger} 207839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger 217839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenbergervoid SkPathOpsBounds::setLineBounds(const SkPoint a[2]) { 227839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger setPointBounds(a[0]); 237839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger add(a[1]); 247839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger} 257839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger 267839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenbergervoid SkPathOpsBounds::setQuadBounds(const SkPoint a[3]) { 277839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger SkDQuad quad; 287839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger quad.set(a); 297839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger SkDRect dRect; 307839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger dRect.setBounds(quad); 317839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger set(SkDoubleToScalar(dRect.fLeft), SkDoubleToScalar(dRect.fTop), 327839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger SkDoubleToScalar(dRect.fRight), SkDoubleToScalar(dRect.fBottom)); 337839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger} 347839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger 357839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenbergervoid (SkPathOpsBounds::*SetCurveBounds[])(const SkPoint[]) = { 367839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger NULL, 377839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger &SkPathOpsBounds::setLineBounds, 387839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger &SkPathOpsBounds::setQuadBounds, 397839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger &SkPathOpsBounds::setCubicBounds 407839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger}; 41