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 
     22     int reduce(const SkDCubic& cubic, Quadratics);
     23     int reduce(const SkDLine& line);
     24     int reduce(const SkDQuad& quad);
     25 
     26     static SkPath::Verb Cubic(const SkPoint pts[4], SkPoint* reducePts);
     27     static SkPath::Verb Quad(const SkPoint pts[3], SkPoint* reducePts);
     28 
     29     SkDLine fLine;
     30     SkDQuad fQuad;
     31     SkDCubic fCubic;
     32 };
     33 
     34 #endif
     35