ACF $AcfVersion:0$
Public Member Functions | List of all members
i2d::CSplineSegment Class Reference

Represents a single cubic polynomial segment of a spline curve. More...

#include <CSplineSegment.h>

Inheritance diagram for i2d::CSplineSegment:
istd::IChangeable istd::IPolymorphic

Public Member Functions

virtual i2d::CVector2d GetPointInSegment (double position) const
 Get point.
 
virtual i2d::CVector2d GetDerivationInSegment (double position) const
 Get derivation.
 
virtual i2d::CVector2d GetDerivationBegin () const
 Get derivation in begin point.
 
virtual i2d::CVector2d GetDerivationEnd () const
 Get derivation in end point.
 
virtual i2d::CVector2d GetPointBegin () const
 Get begin point.
 
virtual i2d::CVector2d GetPointEnd () const
 Get end point.
 
virtual i2d::CVector2d GetBezierPointBegin () const
 Get first Bezier's control point.
 
virtual i2d::CVector2d GetBezierPointEnd () const
 Get second Bezier's control point.
 
virtual bool IsCloserThan (const i2d::CVector2d position, double distance) const
 Check, if segment is closer than specifier distance.
 
virtual void GetHalfSegmentFirst (CSplineSegment &result) const
 Get a first half segment.
 
virtual void GetHalfSegmentSecond (CSplineSegment &result) const
 Get a second half segment.
 
const i2d::CVector2dA () const
 Get cubic coefficient A (coefficient of t^3 term).
 
void A (const i2d::CVector2d &value)
 Set cubic coefficient A (coefficient of t^3 term).
 
const i2d::CVector2dB () const
 Get quadratic coefficient B (coefficient of t^2 term).
 
void B (const i2d::CVector2d &value)
 Set quadratic coefficient B (coefficient of t^2 term).
 
const i2d::CVector2dC () const
 Get linear coefficient C (coefficient of t term).
 
void C (const i2d::CVector2d &value)
 Set linear coefficient C (coefficient of t term).
 
const i2d::CVector2dD () const
 Get constant coefficient D (constant term).
 
void D (const i2d::CVector2d &value)
 Set constant coefficient D (constant term).
 
virtual int GetSupportedOperations () const override
 Get set of flags for supported operations.
 
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override
 
virtual istd::TUniqueInterfacePtr< istd::IChangeableCloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const override
 Make a copy of this object.
 
- Public Member Functions inherited from istd::IChangeable
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS)
 Copy this object from another one.
 
virtual bool IsEqual (const IChangeable &object) const
 Compare this object with another object.
 
virtual bool ResetData (CompatibilityMode mode=CM_WITHOUT_REFS)
 Reset data to its default state.
 
virtual void BeginChanges (const ChangeSet &changeSet)
 Starts the change transaction.
 
virtual void EndChanges (const ChangeSet &changeSet)
 Ends the change transaction.
 
virtual void BeginChangeGroup (const ChangeSet &changeSet)
 Starts group of changes.
 
virtual void EndChangeGroup (const ChangeSet &changeSet)
 Ends group of changes.
 
- Public Member Functions inherited from istd::IPolymorphic
virtual ~IPolymorphic ()
 

Additional Inherited Members

- Public Types inherited from istd::IChangeable
enum  ChangeFlags {
  CF_ACF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING ,
  CF_DELEGATED , CF_NO_UNDO
}
 Data model change notification flags. More...
 
enum  SupportedOperations {
  SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 ,
  SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4
}
 Flags for supported operations. More...
 
enum  CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT }
 Control how relationship betweeen objects are interpreted. More...
 
typedef QMultiMap< QByteArray, QVariant > ChangeInfoMap
 
- Static Public Member Functions inherited from istd::IChangeable
static const ChangeSetGetNoChanges ()
 Get empty set of changes.
 
static const ChangeSetGetAnyChange ()
 Get anonymous change set.
 
static const ChangeSetGetAllChanges ()
 Get anonymous change set.
 
static const ChangeSetGetDelegatedChanges ()
 Get delegated change set.
 
- Protected Member Functions inherited from istd::IChangeable
virtual void OnBeginChanges ()
 Callback function for begin change event.
 
virtual void OnEndChanges (const ChangeSet &changeSet)
 Callback function for end change event.
 

Detailed Description

Represents a single cubic polynomial segment of a spline curve.

A spline segment is defined by four coefficient vectors (A, B, C, D) that form a cubic Bezier curve: P(t) = At^3 + Bt^2 + Ct + D, where t is in [0, 1].

Definition at line 20 of file CSplineSegment.h.

Member Function Documentation

◆ A() [1/2]

const i2d::CVector2d & i2d::CSplineSegment::A ( ) const
inline

Get cubic coefficient A (coefficient of t^3 term).

Returns
Coefficient vector A.

Definition at line 202 of file CSplineSegment.h.

◆ A() [2/2]

void i2d::CSplineSegment::A ( const i2d::CVector2d value)
inline

Set cubic coefficient A (coefficient of t^3 term).

Parameters
valueNew coefficient vector A.

Definition at line 208 of file CSplineSegment.h.

◆ B() [1/2]

const i2d::CVector2d & i2d::CSplineSegment::B ( ) const
inline

Get quadratic coefficient B (coefficient of t^2 term).

Returns
Coefficient vector B.

Definition at line 214 of file CSplineSegment.h.

◆ B() [2/2]

void i2d::CSplineSegment::B ( const i2d::CVector2d value)
inline

Set quadratic coefficient B (coefficient of t^2 term).

Parameters
valueNew coefficient vector B.

Definition at line 220 of file CSplineSegment.h.

◆ C() [1/2]

const i2d::CVector2d & i2d::CSplineSegment::C ( ) const
inline

Get linear coefficient C (coefficient of t term).

Returns
Coefficient vector C.

Definition at line 226 of file CSplineSegment.h.

◆ C() [2/2]

void i2d::CSplineSegment::C ( const i2d::CVector2d value)
inline

Set linear coefficient C (coefficient of t term).

Parameters
valueNew coefficient vector C.

Definition at line 232 of file CSplineSegment.h.

◆ CloneMe()

virtual istd::TUniqueInterfacePtr< istd::IChangeable > i2d::CSplineSegment::CloneMe ( CompatibilityMode  mode = CM_WITHOUT_REFS) const
overridevirtual

Make a copy of this object.

Returns
new instance or NULL, if this operation is not supported.

Reimplemented from istd::IChangeable.

◆ CopyFrom()

virtual bool i2d::CSplineSegment::CopyFrom ( const IChangeable &  object,
CompatibilityMode  mode = CM_WITHOUT_REFS 
)
overridevirtual

◆ D() [1/2]

const i2d::CVector2d & i2d::CSplineSegment::D ( ) const
inline

Get constant coefficient D (constant term).

Returns
Coefficient vector D.

Definition at line 238 of file CSplineSegment.h.

◆ D() [2/2]

void i2d::CSplineSegment::D ( const i2d::CVector2d value)
inline

Set constant coefficient D (constant term).

Parameters
valueNew coefficient vector D.

Definition at line 244 of file CSplineSegment.h.

◆ GetBezierPointBegin()

i2d::CVector2d i2d::CSplineSegment::GetBezierPointBegin ( ) const
inlinevirtual

Get first Bezier's control point.

Definition at line 170 of file CSplineSegment.h.

◆ GetBezierPointEnd()

i2d::CVector2d i2d::CSplineSegment::GetBezierPointEnd ( ) const
inlinevirtual

Get second Bezier's control point.

Definition at line 176 of file CSplineSegment.h.

◆ GetDerivationBegin()

i2d::CVector2d i2d::CSplineSegment::GetDerivationBegin ( ) const
inlinevirtual

Get derivation in begin point.

Definition at line 146 of file CSplineSegment.h.

◆ GetDerivationEnd()

i2d::CVector2d i2d::CSplineSegment::GetDerivationEnd ( ) const
inlinevirtual

Get derivation in end point.

Definition at line 152 of file CSplineSegment.h.

◆ GetDerivationInSegment()

i2d::CVector2d i2d::CSplineSegment::GetDerivationInSegment ( double  position) const
inlinevirtual

Get derivation.

Parameters
positionPosition in segment. Must be in range [0, 1], where 0 is begin, and 1 is end of segment.

Definition at line 140 of file CSplineSegment.h.

◆ GetHalfSegmentFirst()

void i2d::CSplineSegment::GetHalfSegmentFirst ( CSplineSegment result) const
inlinevirtual

Get a first half segment.

Definition at line 182 of file CSplineSegment.h.

◆ GetHalfSegmentSecond()

void i2d::CSplineSegment::GetHalfSegmentSecond ( CSplineSegment result) const
inlinevirtual

Get a second half segment.

Definition at line 191 of file CSplineSegment.h.

◆ GetPointBegin()

i2d::CVector2d i2d::CSplineSegment::GetPointBegin ( ) const
inlinevirtual

Get begin point.

Definition at line 158 of file CSplineSegment.h.

◆ GetPointEnd()

i2d::CVector2d i2d::CSplineSegment::GetPointEnd ( ) const
inlinevirtual

Get end point.

Definition at line 164 of file CSplineSegment.h.

◆ GetPointInSegment()

i2d::CVector2d i2d::CSplineSegment::GetPointInSegment ( double  position) const
inlinevirtual

Get point.

Parameters
positionPosition in segment. Must be in range [0, 1], where 0 is begin, and 1 is end of segment.

Definition at line 134 of file CSplineSegment.h.

◆ GetSupportedOperations()

virtual int i2d::CSplineSegment::GetSupportedOperations ( ) const
overridevirtual

Get set of flags for supported operations.

See also
SupportedOperations

Reimplemented from istd::IChangeable.

◆ IsCloserThan()

virtual bool i2d::CSplineSegment::IsCloserThan ( const i2d::CVector2d  position,
double  distance 
) const
virtual

Check, if segment is closer than specifier distance.


The documentation for this class was generated from the following file: