Seamly2D
Code documentation
VAbstractCubicBezierPath Class Referenceabstract

#include <vabstractcubicbezierpath.h>

Inheritance diagram for VAbstractCubicBezierPath:
Collaboration diagram for VAbstractCubicBezierPath:

Public Member Functions

 VAbstractCubicBezierPath (const GOType &type, const quint32 &idObject=null_id, const Draw &mode=Draw::Calculation)
 
 VAbstractCubicBezierPath (const VAbstractCubicBezierPath &curve)
 
VAbstractCubicBezierPathoperator= (const VAbstractCubicBezierPath &curve)
 
virtual ~VAbstractCubicBezierPath ()
 
virtual qint32 CountSubSpl () const =0
 
virtual qint32 CountPoints () const =0
 
virtual void Clear ()=0
 
virtual VSpline GetSpline (qint32 index) const =0
 
virtual QVector< VSplinePointGetSplinePath () const =0
 
virtual QPainterPath GetPath () const Q_DECL_OVERRIDE
 GetPath return QPainterPath which reprezent spline path. More...
 
virtual QVector< QPointF > getPoints () const Q_DECL_OVERRIDE
 GetPathPoints return list of points what located on path. More...
 
virtual qreal GetLength () const Q_DECL_OVERRIDE
 GetLength return length of spline path. More...
 
virtual QVector< DirectionArrowDirectionArrows () const Q_DECL_OVERRIDE
 
int Segment (const QPointF &p) const
 
QPointF CutSplinePath (qreal length, qint32 &p1, qint32 &p2, QPointF &spl1p2, QPointF &spl1p3, QPointF &spl2p2, QPointF &spl2p3) const
 CutSplinePath cut spline path into two. This method don't return two spline path. You must create spline paths by yourself. Example: QPointF spl1p2, spl1p3, spl2p2, spl2p3; qint32 p1 = 0, p2 = 0; QPointF point = splPath->CutSplinePath(length, p1, p2, spl1p2, spl1p3, spl2p2, spl2p3);. More...
 
virtual QString NameForHistory (const QString &toolName) const Q_DECL_OVERRIDE
 NameForHistory helps to create name for dialog History. More...
 
virtual VPointF FirstPoint () const =0
 
virtual VPointF LastPoint () const =0
 
- Public Member Functions inherited from VAbstractBezier
 VAbstractBezier (const GOType &type, const quint32 &idObject=null_id, const Draw &mode=Draw::Calculation)
 
 VAbstractBezier (const VAbstractBezier &curve)
 
VAbstractBezieroperator= (const VAbstractBezier &curve)
 
virtual ~VAbstractBezier ()
 
virtual qreal GetC1Length () const =0
 
virtual qreal GetC2Length () const =0
 
- Public Member Functions inherited from VAbstractCurve
 VAbstractCurve (const GOType &type, const quint32 &idObject=null_id, const Draw &mode=Draw::Calculation)
 
 VAbstractCurve (const VAbstractCurve &curve)
 
virtual ~VAbstractCurve () Q_DECL_OVERRIDE
 
VAbstractCurveoperator= (const VAbstractCurve &curve)
 
void Swap (VAbstractCurve &curve) Q_DECL_NOTHROW
 
QVector< QPointF > GetSegmentPoints (const QPointF &begin, const QPointF &end, bool reverse=false) const
 
qreal GetLengthByPoint (const QPointF &point) const
 
virtual QVector< QPointF > IntersectLine (const QLineF &line) const
 IntersectLine return list of points for real intersection with line. More...
 
virtual bool IsIntersectLine (const QLineF &line) const
 
bool isPointOnCurve (const QPointF &p) const
 
virtual qreal GetStartAngle () const =0
 
virtual qreal GetEndAngle () const =0
 
quint32 GetDuplicate () const
 
void SetDuplicate (quint32 number)
 
QString getLineColor () const
 
void setLineColor (const QString &color)
 
QString GetPenStyle () const
 
void SetPenStyle (const QString &penStyle)
 
QString getLineWeight () const
 getLineWeight return weight of the lines More...
 
void setLineWeight (const QString &lineWeight)
 setLineWeight set weight of the lines More...
 
QPointF getFirstPoint ()
 
QPointF getLastPoint ()
 
- Public Member Functions inherited from VGObject
 VGObject ()
 VGObject default constructor. More...
 
 VGObject (const GOType &type, const quint32 &idObject=0, const Draw &mode=Draw::Calculation)
 VGObject constructor. More...
 
 VGObject (const VGObject &obj)
 VGObject copy constructor. More...
 
virtual ~VGObject ()
 
VGObjectoperator= (const VGObject &obj)
 operator = assignment operator. More...
 
void Swap (VGObject &obj) Q_DECL_NOTHROW
 
quint32 getIdObject () const
 getIdObject return parent id. More...
 
void setIdObject (const quint32 &value)
 setIdObject set parent id. More...
 
virtual QString name () const
 name return name graphical object. More...
 
void setName (const QString &name)
 setName set name graphical object. More...
 
Draw getMode () const
 getMode return mode creation. More...
 
void setMode (const Draw &value)
 setMode set mode creation. More...
 
GOType getType () const
 getType return object type. More...
 
void setType (const GOType &type)
 
quint32 id () const
 id return id object. More...
 
virtual void setId (const quint32 &id)
 setId set id object. More...
 
quint32 getIdTool () const
 

Protected Member Functions

virtual void CreateName () Q_DECL_OVERRIDE
 

Additional Inherited Members

- Static Public Member Functions inherited from VAbstractCurve
static QVector< QPointF > GetSegmentPoints (const QVector< QPointF > &points, const QPointF &begin, const QPointF &end, bool reverse=false)
 
static bool isPointOnCurve (const QVector< QPointF > &points, const QPointF &p)
 
static qreal PathLength (const QVector< QPointF > &path)
 
static QVector< QPointF > CurveIntersectLine (const QVector< QPointF > &points, const QLineF &line)
 
static QPainterPath ShowDirection (const QVector< DirectionArrow > &arrows, qreal width)
 
- Static Public Member Functions inherited from VGObject
static QLineF BuildLine (const QPointF &p1, const qreal &length, const qreal &angle)
 
static QPointF BuildRay (const QPointF &firstPoint, const qreal &angle, const QRectF &scRect)
 
static QLineF BuildAxis (const QPointF &p, const qreal &angle, const QRectF &scRect)
 
static QLineF BuildAxis (const QPointF &p1, const QPointF &p2, const QRectF &scRect)
 
static int ContactPoints (const QPointF &p, const QPointF &center, qreal radius, QPointF &p1, QPointF &p2)
 
static QPointF LineIntersectRect (const QRectF &rec, const QLineF &line)
 LineIntersectRect find point intersection line and rect. More...
 
static int IntersectionCircles (const QPointF &c1, double r1, const QPointF &c2, double r2, QPointF &p1, QPointF &p2)
 
static qint32 LineIntersectCircle (const QPointF &center, qreal radius, const QLineF &line, QPointF &p1, QPointF &p2)
 LineIntersectCircle find point intersection line and circle. More...
 
static QPointF ClosestPoint (const QLineF &line, const QPointF &point)
 ClosestPoint find point projection of point onto line. More...
 
static QPointF addVector (const QPointF &p, const QPointF &p1, const QPointF &p2, qreal k)
 
static void LineCoefficients (const QLineF &line, qreal *a, qreal *b, qreal *c)
 LineCoefficients coefficient for equation of segment. Segment equestion ax+by+c=0. More...
 
static bool IsPointOnLineSegment (const QPointF &t, const QPointF &p1, const QPointF &p2)
 IsPointOnLineSegment Check if the point is on the line segment. More...
 
static bool IsPointOnLineviaPDP (const QPointF &t, const QPointF &p1, const QPointF &p2)
 IsPointOnLineviaPDP use the perp dot product (PDP) way. More...
 
template<typename T >
static QVector< T > GetReversePoints (const QVector< T > &points)
 GetReversePoint return revers container of points. More...
 
static int GetLengthContour (const QVector< QPointF > &contour, const QVector< QPointF > &newPoints)
 GetLengthContour return length of contour. More...
 
- Static Public Attributes inherited from VAbstractCurve
static const qreal lengthCurveDirectionArrow = 14
 
- Static Public Attributes inherited from VGObject
static const double accuracyPointOnLine = (0.1555 / 25.4) * 96.0
 
- Static Protected Member Functions inherited from VGObject
static QTransform flipTransform (const QLineF &axis)
 

Detailed Description

Definition at line 64 of file vabstractcubicbezierpath.h.

Constructor & Destructor Documentation

◆ VAbstractCubicBezierPath() [1/2]

VAbstractCubicBezierPath::VAbstractCubicBezierPath ( const GOType type,
const quint32 &  idObject = null_id,
const Draw mode = Draw::Calculation 
)

Definition at line 63 of file vabstractcubicbezierpath.cpp.

◆ VAbstractCubicBezierPath() [2/2]

VAbstractCubicBezierPath::VAbstractCubicBezierPath ( const VAbstractCubicBezierPath curve)

Definition at line 69 of file vabstractcubicbezierpath.cpp.

◆ ~VAbstractCubicBezierPath()

VAbstractCubicBezierPath::~VAbstractCubicBezierPath ( )
virtual

Definition at line 86 of file vabstractcubicbezierpath.cpp.

Member Function Documentation

◆ Clear()

virtual void VAbstractCubicBezierPath::Clear ( )
pure virtual

Implemented in VSplinePath, and VCubicBezierPath.

◆ CountPoints()

virtual qint32 VAbstractCubicBezierPath::CountPoints ( ) const
pure virtual

Implemented in VSplinePath, and VCubicBezierPath.

Referenced by CreateName(), and NameForHistory().

◆ CountSubSpl()

virtual qint32 VAbstractCubicBezierPath::CountSubSpl ( ) const
pure virtual

◆ CreateName()

◆ CutSplinePath()

QPointF VAbstractCubicBezierPath::CutSplinePath ( qreal  length,
qint32 &  p1,
qint32 &  p2,
QPointF &  spl1p2,
QPointF &  spl1p3,
QPointF &  spl2p2,
QPointF &  spl2p3 
) const

CutSplinePath cut spline path into two. This method don't return two spline path. You must create spline paths by yourself. Example: QPointF spl1p2, spl1p3, spl2p2, spl2p3; qint32 p1 = 0, p2 = 0; QPointF point = splPath->CutSplinePath(length, p1, p2, spl1p2, spl1p3, spl2p2, spl2p3);.

VSplinePoint splP1 = splPath->at(p1); VSplinePoint splP2 = splPath->at(p2); VSpline spl1 = VSpline(splP1.P(), spl1p2, spl1p3, *p, splPath->GetKCurve()); VSpline spl2 = VSpline(*p, spl2p2, spl2p3, splP2.P(), splPath->GetKCurve());

Parameters
lengthlength first spline path.
p1index first spline point in list.
p2index second spline point in list.
spl1p2first control point first spline.
spl1p3second control point first spline.
spl2p2first control point second spline.
spl2p3second control point second spline.
Returns
cutting point.

Definition at line 189 of file vabstractcubicbezierpath.cpp.

References CountSubSpl(), VSpline::CutSpline(), GetLength(), VSpline::GetLength(), GetSpline(), Mm, and ToPixel().

◆ DirectionArrows()

QVector< DirectionArrow > VAbstractCubicBezierPath::DirectionArrows ( ) const
virtual

◆ FirstPoint()

virtual VPointF VAbstractCubicBezierPath::FirstPoint ( ) const
pure virtual

Implemented in VSplinePath, and VCubicBezierPath.

Referenced by CreateName(), and NameForHistory().

◆ GetLength()

qreal VAbstractCubicBezierPath::GetLength ( ) const
virtual

GetLength return length of spline path.

Returns
length.

Implements VAbstractCurve.

Definition at line 130 of file vabstractcubicbezierpath.cpp.

References CountSubSpl(), VSpline::GetLength(), and GetSpline().

Referenced by CutSplinePath(), and VToolCutSplinePath::makeToolTip().

◆ GetPath()

QPainterPath VAbstractCubicBezierPath::GetPath ( ) const
virtual

GetPath return QPainterPath which reprezent spline path.

Returns
path.

Reimplemented from VAbstractCurve.

Definition at line 95 of file vabstractcubicbezierpath.cpp.

References CountSubSpl(), VAbstractCurve::GetPath(), and GetSpline().

Referenced by VisToolCubicBezierPath::RefreshGeometry(), VisToolCutSplinePath::RefreshGeometry(), and VisToolSplinePath::RefreshGeometry().

◆ getPoints()

QVector< QPointF > VAbstractCubicBezierPath::getPoints ( ) const
virtual

GetPathPoints return list of points what located on path.

Returns
list.

Implements VAbstractCurve.

Definition at line 110 of file vabstractcubicbezierpath.cpp.

References CountSubSpl(), VSpline::getPoints(), and GetSpline().

◆ GetSpline()

virtual VSpline VAbstractCubicBezierPath::GetSpline ( qint32  index) const
pure virtual

◆ GetSplinePath()

virtual QVector<VSplinePoint> VAbstractCubicBezierPath::GetSplinePath ( ) const
pure virtual

Implemented in VSplinePath, and VCubicBezierPath.

◆ LastPoint()

virtual VPointF VAbstractCubicBezierPath::LastPoint ( ) const
pure virtual

Implemented in VSplinePath, and VCubicBezierPath.

Referenced by CreateName(), and NameForHistory().

◆ NameForHistory()

QString VAbstractCubicBezierPath::NameForHistory ( const QString &  toolName) const
virtual

NameForHistory helps to create name for dialog History.

Parameters
toolNamefirst part of name. Like 'Spline path' or 'Cubic Bezier path'.
Returns
name of curve for history records.

Implements VAbstractCurve.

Definition at line 243 of file vabstractcubicbezierpath.cpp.

References CountPoints(), CountSubSpl(), FirstPoint(), VAbstractCurve::GetDuplicate(), LastPoint(), and VGObject::name().

◆ operator=()

VAbstractCubicBezierPath & VAbstractCubicBezierPath::operator= ( const VAbstractCubicBezierPath curve)

Definition at line 75 of file vabstractcubicbezierpath.cpp.

References VAbstractBezier::operator=().

◆ Segment()

int VAbstractCubicBezierPath::Segment ( const QPointF &  p) const

Definition at line 152 of file vabstractcubicbezierpath.cpp.

References CountSubSpl(), GetSpline(), and VSpline::ParamT().


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