Home | History | Annotate | Download | only in pathops
      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