Donner
Embeddable browser-grade SVG2 engine
Loading...
Searching...
No Matches
Path.h File Reference
#include <cstdint>
#include <ostream>
#include <span>
#include <vector>
#include "donner/base/BezierUtils.h"
#include "donner/base/Box.h"
#include "donner/base/FillRule.h"
#include "donner/base/Transform.h"
#include "donner/base/Vector2.h"
Include dependency graph for Path.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  donner::StrokeStyle
 Parameters for converting a stroked path to a filled outline. More...
class  donner::Path
 Immutable 2D vector path. More...
struct  donner::Path::Command
 A command in the path, pairing a verb with the index of its first point. More...
struct  donner::Path::PointOnPath
 Result of sampling the path at a given arc length distance. More...
struct  donner::Path::Vertex
 Vertex in a path's edge list, used for marker placement. More...
class  donner::PathBuilder
 Mutable builder for constructing immutable Path objects. More...

Namespaces

namespace  donner
 Top-level Donner namespace, which is split into different sub-namespaces such as donner::svg and donner::css.

Enumerations

enum class  donner::LineCap : uint8_t {
  donner::Butt ,
  donner::Round ,
  donner::Square
}
 Line cap style for stroke endpoints. More...
enum class  donner::LineJoin : uint8_t {
  donner::Miter ,
  donner::Round ,
  donner::Bevel
}
 Line join style for stroke corners. More...

Functions

std::ostream & donner::operator<< (std::ostream &os, LineCap cap)
 Ostream output operator for LineCap.
std::ostream & donner::operator<< (std::ostream &os, LineJoin join)
 Ostream output operator for LineJoin.

Class Documentation

◆ donner::StrokeStyle

struct donner::StrokeStyle

Parameters for converting a stroked path to a filled outline.

Class Members
LineCap cap = LineCap::Butt Line cap style for open subpath endpoints.
LineJoin join = LineJoin::Miter Line join style for corners between segments.
double miterLimit = 4.0 Maximum miter length ratio (as per SVG stroke-miterlimit).
double width = 1.0 Stroke width.

◆ donner::Path::PointOnPath

struct donner::Path::PointOnPath

Result of sampling the path at a given arc length distance.

Collaboration diagram for donner::Path::PointOnPath:
[legend]
Class Members
double angle Tangent angle in radians (atan2).
Vector2d point Position on the path.
Vector2d tangent Un-normalized tangent vector at the point.
bool valid = true False if distance exceeds path length.