107393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com/* 207393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com * Copyright 2012 Google Inc. 307393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com * 407393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com * Use of this source code is governed by a BSD-style license that can be 507393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com * found in the LICENSE file. 607393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com */ 707393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com#ifndef SkDQuadImplicit_DEFINED 807393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com#define SkDQuadImplicit_DEFINED 907393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com 1007393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com#include "SkPathOpsQuad.h" 1107393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com 1207393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.comclass SkDQuadImplicit { 1307393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.compublic: 1407393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com explicit SkDQuadImplicit(const SkDQuad& q); 1507393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com 1607393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com bool match(const SkDQuadImplicit& two) const; 1707393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com static bool Match(const SkDQuad& quad1, const SkDQuad& quad2); 1807393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com 1907393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com double x2() const { return fP[kXx_Coeff]; } 2007393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com double xy() const { return fP[kXy_Coeff]; } 2107393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com double y2() const { return fP[kYy_Coeff]; } 2207393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com double x() const { return fP[kX_Coeff]; } 2307393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com double y() const { return fP[kY_Coeff]; } 2407393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com double c() const { return fP[kC_Coeff]; } 2507393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com 2607393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.comprivate: 2707393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com enum Coeffs { 2807393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com kXx_Coeff, 2907393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com kXy_Coeff, 3007393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com kYy_Coeff, 3107393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com kX_Coeff, 3207393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com kY_Coeff, 3307393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com kC_Coeff, 3407393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com }; 3507393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com 3607393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com double fP[kC_Coeff + 1]; 3707393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com}; 3807393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com 3907393cab57ce74a4aae89a31fae9aaa9780fc19dcaryclark@google.com#endif 40