#include "third_party/blink/renderer/core/layout/svg/svg_marker_data.h"
#include "base/auto_reset.h"
#include "third_party/blink/renderer/core/svg/svg_path_byte_stream_source.h"
#include "third_party/blink/renderer/core/svg/svg_path_parser.h"
#include "third_party/blink/renderer/platform/wtf/vector.h"
namespace blink {
static double BisectingAngle(double in_angle, double out_angle) { … }
void SVGMarkerDataBuilder::Build(const Path& path) { … }
void SVGMarkerDataBuilder::UpdateFromPathElement(void* info,
const PathElement& element) { … }
namespace {
class MarkerPathSegmentProcessor : public SVGPathNormalizer { … };
Vector<PathSegmentData> MarkerPathSegmentProcessor::DecomposeArc(
const PathSegmentData& segment) { … }
void MarkerPathSegmentProcessor::EmitSegment(
const PathSegmentData& original_segment) { … }
}
void SVGMarkerDataBuilder::Build(const SVGPathByteStream& stream) { … }
void SVGMarkerDataBuilder::EmitSegment(const PathSegmentData& segment) { … }
double SVGMarkerDataBuilder::CurrentAngle(AngleType type) const { … }
SVGMarkerDataBuilder::AngleType SVGMarkerDataBuilder::DetermineAngleType(
bool ends_subpath) const { … }
void SVGMarkerDataBuilder::UpdateAngle(bool ends_subpath) { … }
void SVGMarkerDataBuilder::ComputeQuadTangents(SegmentData& data,
const gfx::PointF& start,
const gfx::PointF& control,
const gfx::PointF& end) { … }
SVGMarkerDataBuilder::SegmentData
SVGMarkerDataBuilder::ExtractPathElementFeatures(
const PathElement& element) const { … }
void SVGMarkerDataBuilder::UpdateFromPathElement(const PathElement& element) { … }
void SVGMarkerDataBuilder::Flush() { … }
}