14constexpr static Scalar kPrecision = 4;
23 const Scalar k = scale_factor * .75f * kPrecision;
28 return std::sqrt(k * std::sqrt(max_len_sq));
35 const Scalar k = scale_factor * .25f * kPrecision;
36 return std::sqrt(k * (p0 -
p1 * 2 +
p2).GetLength());
65 const Scalar dw = std::abs(-2 * w + 2);
70 Scalar k = scale_factor * kPrecision;
71 const Scalar rp_minus_1 = std::max(0.0f, max_len * k - 1);
72 const Scalar numer = std::sqrt(dp.
Dot(dp)) * k + rp_minus_1 * dw;
73 const Scalar denom = 4 * std::min(w, 1.0f);
79 return std::sqrt(numer / denom);
Scalar ComputeConicSubdivisions(Scalar scale_factor, Point p0, Point p1, Point p2, Scalar w)
Scalar ComputeQuadradicSubdivisions(Scalar scale_factor, Point p0, Point p1, Point p2)
Scalar ComputeCubicSubdivisions(Scalar scale_factor, Point p0, Point p1, Point p2, Point p3)
constexpr TPoint Max(const TPoint &p) const
constexpr Type GetLengthSquared() const
constexpr TPoint Min(const TPoint &p) const
constexpr Type Dot(const TPoint &p) const