136 return ((m_a * position + m_b) * position + m_c) * position + m_d;
142 return (m_a * (3 * position) + m_b * 2) * position + m_c;
154 return m_a * 3 + m_b * 2 + m_c;
166 return m_a + m_b + m_c + m_d;
172 return m_d + m_c / 3;
178 return m_c + m_d + (m_b - m_c) / 3;
184 result.m_a = m_a * 0.125;
185 result.m_b = m_b * 0.25;
186 result.m_c = m_c * 0.5;
193 result.m_a = m_a * 0.125;
194 result.m_b = m_a * 0.375 + m_b * 0.25;
195 result.m_c = m_a * 0.375 + (m_b + m_c) * 0.5;
196 result.m_d = m_a * 0.125 + m_b * 0.25 + m_c * 0.5 + m_d;
Represents a single cubic polynomial segment of a spline curve.
const i2d::CVector2d & C() const
Get linear coefficient C (coefficient of t term).
virtual i2d::CVector2d GetDerivationInSegment(double position) const
Get derivation.
const i2d::CVector2d & D() const
Get constant coefficient D (constant term).
virtual bool CopyFrom(const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override
virtual bool IsCloserThan(const i2d::CVector2d position, double distance) const
Check, if segment is closer than specifier distance.
virtual i2d::CVector2d GetPointInSegment(double position) const
Get point.
virtual i2d::CVector2d GetBezierPointBegin() const
Get first Bezier's control point.
virtual i2d::CVector2d GetPointBegin() const
Get begin point.
virtual int GetSupportedOperations() const override
Get set of flags for supported operations.
virtual void GetHalfSegmentFirst(CSplineSegment &result) const
Get a first half segment.
virtual void GetHalfSegmentSecond(CSplineSegment &result) const
Get a second half segment.
const i2d::CVector2d & A() const
Get cubic coefficient A (coefficient of t^3 term).
virtual i2d::CVector2d GetDerivationBegin() const
Get derivation in begin point.
virtual i2d::CVector2d GetBezierPointEnd() const
Get second Bezier's control point.
virtual i2d::CVector2d GetDerivationEnd() const
Get derivation in end point.
virtual istd::TUniqueInterfacePtr< istd::IChangeable > CloneMe(CompatibilityMode mode=CM_WITHOUT_REFS) const override
Make a copy of this object.
const i2d::CVector2d & B() const
Get quadratic coefficient B (coefficient of t^2 term).
virtual i2d::CVector2d GetPointEnd() const
Get end point.
Definition of position or mathematical vector on 2D plane.
Common interface for data model objects, which can be changed.
CompatibilityMode
Control how relationship betweeen objects are interpreted.
@ CM_WITHOUT_REFS
External references are simple ignored.
Unique ownership smart pointer for interface types.