7#ifndef __HDI_CORE_BEZIER__
8#define __HDI_CORE_BEZIER__
10#if defined(HDI_CORE_AIP_MODE)
24 class ArtboardSegPoint;
37 AdjustmentReflectedStartOut = 1 << 0,
38 AdjustmentReflectedEndIn = 1 << 1,
39 AdjustmentRotatedStartOut = 1 << 2,
40 AdjustmentRotatedEndIn = 1 << 3
203 virtual double sublength(
const double startT_,
const double endT_)
const;
273 virtual bool radius(
const double t_,
double& radius__)
const;
344 friend aip::Bezier* __accessImpl(
const Bezier&);
345 friend Bezier __accessCtor(
const aip::Bezier&);
357 Bezier(
const aip::Bezier&);
360 typedef std::unique_ptr<Bezier> BezierUP;
361 typedef std::shared_ptr<Bezier> BezierSP;
362 typedef std::weak_ptr<Bezier> BezierWP;
364 extern aip::Bezier* __accessImpl(
const Bezier&);
365 extern Bezier __accessCtor(
const aip::Bezier&);
Describes an angle, and allows for easy conversion between various units.
Definition: hdicoreAngle.h:26
Describes a point on the Illustrator artboard.
Definition: hdicoreArtboardPoint.h:31
Describes a rectangular area on the Illustrator artboard.
Definition: hdicoreArtboardRect.h:28
Describes a segment point of a bezier path on the Illustrator artboard.
Definition: hdicoreArtboardSegPoint.h:27
Allows for cubic bezier calculations and manipulation (e.g. division, tangents, normals,...
Definition: hdicoreBezier.h:30
virtual Bezier section(const double startT_, const double endT_) const
Gets a section of the target bezier, from a starting t-value to an ending t-value.
AdjustmentResult
Indicates what happened when a bezier was adjusted to pass through a point.
Definition: hdicoreBezier.h:36
virtual ArtboardPoint endPoint() const
Gets the second anchor point of the bezier.
virtual ArtboardRect bounds() const
Gets the bounds rect for the target bezier; that is, the rect that completely encloses all the contro...
virtual ArtboardPoint endInPoint() const
Gets the second control point of the bezier.
virtual void setPoints(const ArtboardPoint &start_, const ArtboardPoint &startOut_, const ArtboardPoint &endIn_, const ArtboardPoint &end_)
Sets the anchor and control points of the bezier.
Bezier(const ArtboardSegPoint &segPt1_, const ArtboardSegPoint &segPt2_)
Constructs a new Bezier object from two segment endpoints.
virtual ArtboardPoint evaluate(const double t_) const
Evaluates a given t-value along the target bezier as a point on the artboard.
Bezier(const Bezier &bez_)
Constructs a new Bezier object from an existing Bezier object (copy constructor)
Bezier(const ArtboardPoint &start_, const ArtboardPoint &startOut_, const ArtboardPoint &endIn_, const ArtboardPoint &end_)
Constructs a new Bezier object from individual component points.
virtual double sublength(const double startT_, const double endT_) const
Gives approximate length of a bezier from t-value startT_ to t-value endT_.
virtual bool operator==(const Bezier &rhs_) const
Tests whether a given Bezier object is the same as another.
virtual Bezier & operator=(const Bezier &rhs_)
Allows one Bezier object to be assigned from another.
Bezier()
Constructs a new Bezier object with all points at (0,0)
virtual ArtboardPoint startPoint() const
Gets the first anchor point of the bezier.
virtual ~Bezier()
Destructs a Bezier object.
virtual ArtboardPoint startOutPoint() const
Gets the first control point of the bezier.
virtual bool center(const double t_, ArtboardPoint ¢er__) const
Gets the center point of the curve at some t-value along the bezier.
virtual bool isCircularArc() const
Gets whether the bezier describes an arc segment of a circle.
virtual bool radiusAndCenter(const double t_, double &radius__, ArtboardPoint ¢er__) const
Gets both the radius and center point of the curve at some t-value along the bezier.
virtual Angle normalAngle(const double t_) const
Gets the normal angle at some t-value along the bezier.
virtual bool radius(const double t_, double &radius__) const
Gets the radius of the curve at some t-value along the bezier.
virtual double length() const
Gets the length of the bezier.
virtual bool curved() const
Determines whether the bezier has a curved path.
virtual Angle tangentAngle(const double t_) const
Gets the tangent angle at some t-value along the bezier.
virtual AdjustmentResult adjustThruPoint(const ArtboardPoint &pt_, const double t_)
Adjusts the bezier such that the given t-value will pass through the provided point.
virtual void divide(const double t_, Bezier &bez1__, Bezier &bez2__) const
Splits the target bezier into two separate beziers at a given t-value.
virtual double tAtLength(const double length_) const
Gives the t-value at a specific length along the target bezier.
virtual bool operator!=(const Bezier &rhs_) const
Tests whether a given Bezier object is not the same as another.
Header file for describing angles.
Header file for geometric rectangle manipulation on the Illustrator artboard.