1 /* 2 * Copyright 2012 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 #ifndef SkReduceOrder_DEFINED 8 #define SkReduceOrder_DEFINED 9 10 #include "SkPathOpsCubic.h" 11 #include "SkPathOpsLine.h" 12 #include "SkPathOpsQuad.h" 13 14 union SkReduceOrder { 15 enum Quadratics { 16 kNo_Quadratics, 17 kAllow_Quadratics 18 }; 19 20 int reduce(const SkDCubic& cubic, Quadratics); 21 int reduce(const SkDLine& line); 22 int reduce(const SkDQuad& quad); 23 24 static SkPath::Verb Conic(const SkPoint pts[3], SkScalar weight, SkPoint* reducePts); 25 static SkPath::Verb Cubic(const SkPoint pts[4], SkPoint* reducePts); 26 static SkPath::Verb Quad(const SkPoint pts[3], SkPoint* reducePts); 27 28 SkDLine fLine; 29 SkDQuad fQuad; 30 SkDCubic fCubic; 31 }; 32 33 #endif 34