12345678910111213141516171819202122232425262728293031 |
- /*
- * Copyright 2014 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- #ifndef SkMatrix22_DEFINED
- #define SkMatrix22_DEFINED
- #include "include/core/SkPoint.h"
- class SkMatrix;
- /** Find the Givens matrix G, which is the rotational matrix
- * that rotates the vector h to the positive hoizontal axis.
- * G * h = [hypot(h), 0]
- *
- * This is equivalent to
- *
- * SkScalar r = h.length();
- * SkScalar r_inv = r ? SkScalarInvert(r) : 0;
- * h.scale(r_inv);
- * G->setSinCos(-h.fY, h.fX);
- *
- * but has better numerical stability by using (partial) hypot,
- * and saves a multiply by not computing r.
- */
- void SkComputeGivensRotation(const SkVector& h, SkMatrix* G);
- #endif
|