Home | History | Annotate | Download | only in core
      1 /*
      2  * Copyright 2018 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 
      8 #ifndef SkRRectPriv_DEFINED
      9 #define SkRRectPriv_DEFINED
     10 
     11 #include "SkRRect.h"
     12 
     13 class SkRRectPriv {
     14 public:
     15     static bool IsCircle(const SkRRect& rr) {
     16         return rr.isOval() && SkScalarNearlyEqual(rr.fRadii[0].fX, rr.fRadii[0].fY);
     17     }
     18 
     19     static SkVector GetSimpleRadii(const SkRRect& rr) {
     20         SkASSERT(!rr.isComplex());
     21         return rr.fRadii[0];
     22     }
     23 
     24     static bool IsSimpleCircular(const SkRRect& rr) {
     25         return rr.isSimple() && SkScalarNearlyEqual(rr.fRadii[0].fX, rr.fRadii[0].fY);
     26     }
     27 
     28     static bool EqualRadii(const SkRRect& rr) {
     29         return rr.isRect() || SkRRectPriv::IsCircle(rr)  || SkRRectPriv::IsSimpleCircular(rr);
     30     }
     31 
     32     static bool AllCornersCircular(const SkRRect& rr, SkScalar tolerance = SK_ScalarNearlyZero);
     33 };
     34 
     35 #endif
     36 
     37