/*
 * Copyright 2012 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */
#include "SkPathOpsQuad.h"

extern const SkDQuad quadraticLines[];
extern const SkDQuad quadraticPoints[];
extern const SkDQuad quadraticModEpsilonLines[];
extern const SkDQuad quadraticTests[][2];

extern const size_t quadraticLines_count;
extern const size_t quadraticPoints_count;
extern const size_t quadraticModEpsilonLines_count;
extern const size_t quadraticTests_count;
