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 "SkPath.h"
     11 #include "SkPathOpsCubic.h"
     12 #include "SkPathOpsLine.h"
     13 #include "SkPathOpsQuad.h"
     14 #include "SkTArray.h"
     15 
     16 union SkReduceOrder {
     17     enum Quadratics {
     18         kNo_Quadratics,
     19         kAllow_Quadratics
     20     };
     21     enum Style {
     22         kStroke_Style,
     23         kFill_Style
     24     };
     25 
     26     int reduce(const SkDCubic& cubic, Quadratics, Style);
     27     int reduce(const SkDLine& line);
     28     int reduce(const SkDQuad& quad, Style);
     29 
     30     static SkPath::Verb Cubic(const SkPoint pts[4], SkPoint* reducePts);
     31     static SkPath::Verb Quad(const SkPoint pts[3], SkPoint* reducePts);
     32 
     33     SkDLine fLine;
     34     SkDQuad fQuad;
     35     SkDCubic fCubic;
     36 };
     37 
     38 #endif
     39