1 /*
2  * Copyright 2015 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 #include "SkPathOpsBounds.h"
8 #include "SkPathOpsRect.h"
9 #include "SkPathOpsCurve.h"
10 
setConicBounds(const SkPoint curve[3],SkScalar curveWeight,double tStart,double tEnd,SkPathOpsBounds * bounds)11 void SkDCurve::setConicBounds(const SkPoint curve[3], SkScalar curveWeight,
12         double tStart, double tEnd, SkPathOpsBounds* bounds) {
13     SkDConic dCurve;
14     dCurve.set(curve, curveWeight);
15     SkDRect dRect;
16     dRect.setBounds(dCurve, fConic, tStart, tEnd);
17     bounds->set(SkDoubleToScalar(dRect.fLeft), SkDoubleToScalar(dRect.fTop),
18             SkDoubleToScalar(dRect.fRight), SkDoubleToScalar(dRect.fBottom));
19 }
20 
setCubicBounds(const SkPoint curve[4],SkScalar,double tStart,double tEnd,SkPathOpsBounds * bounds)21 void SkDCurve::setCubicBounds(const SkPoint curve[4], SkScalar ,
22         double tStart, double tEnd, SkPathOpsBounds* bounds) {
23     SkDCubic dCurve;
24     dCurve.set(curve);
25     SkDRect dRect;
26     dRect.setBounds(dCurve, fCubic, tStart, tEnd);
27     bounds->set(SkDoubleToScalar(dRect.fLeft), SkDoubleToScalar(dRect.fTop),
28             SkDoubleToScalar(dRect.fRight), SkDoubleToScalar(dRect.fBottom));
29 }
30 
setQuadBounds(const SkPoint curve[3],SkScalar,double tStart,double tEnd,SkPathOpsBounds * bounds)31 void SkDCurve::setQuadBounds(const SkPoint curve[3], SkScalar ,
32         double tStart, double tEnd, SkPathOpsBounds* bounds) {
33     SkDQuad dCurve;
34     dCurve.set(curve);
35     SkDRect dRect;
36     dRect.setBounds(dCurve, fQuad, tStart, tEnd);
37     bounds->set(SkDoubleToScalar(dRect.fLeft), SkDoubleToScalar(dRect.fTop),
38             SkDoubleToScalar(dRect.fRight), SkDoubleToScalar(dRect.fBottom));
39 }
40