Seamly2D
Code documentation
VAbstractCurve Class Referenceabstract

#include <vabstractcurve.h>

Inheritance diagram for VAbstractCurve:
Collaboration diagram for VAbstractCurve:

Public Member Functions

 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
 
virtual QVector< QPointF > getPoints () const =0
 
QVector< QPointF > GetSegmentPoints (const QPointF &begin, const QPointF &end, bool reverse=false) const
 
virtual QPainterPath GetPath () const
 
virtual qreal GetLength () const =0
 
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 ()
 
virtual QString NameForHistory (const QString &toolName) const =0
 
virtual QVector< DirectionArrowDirectionArrows () const
 
- 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
 

Static Public Member Functions

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

static const qreal lengthCurveDirectionArrow = 14
 
- Static Public Attributes inherited from VGObject
static const double accuracyPointOnLine = (0.1555 / 25.4) * 96.0
 

Protected Member Functions

virtual void CreateName ()=0
 

Static Private Member Functions

static QVector< QPointF > FromBegin (const QVector< QPointF > &points, const QPointF &begin, bool *ok=nullptr)
 
static QVector< QPointF > ToEnd (const QVector< QPointF > &points, const QPointF &end, bool *ok=nullptr)
 

Private Attributes

QSharedDataPointer< VAbstractCurveDatad
 

Additional Inherited Members

- Static Protected Member Functions inherited from VGObject
static QTransform flipTransform (const QLineF &axis)
 

Detailed Description

Definition at line 68 of file vabstractcurve.h.

Constructor & Destructor Documentation

◆ VAbstractCurve() [1/2]

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

Definition at line 73 of file vabstractcurve.cpp.

◆ VAbstractCurve() [2/2]

VAbstractCurve::VAbstractCurve ( const VAbstractCurve curve)
explicit

Definition at line 78 of file vabstractcurve.cpp.

◆ ~VAbstractCurve()

VAbstractCurve::~VAbstractCurve ( )
virtual

Definition at line 95 of file vabstractcurve.cpp.

Member Function Documentation

◆ CreateName()

virtual void VAbstractCurve::CreateName ( )
protectedpure virtual

◆ CurveIntersectLine()

QVector< QPointF > VAbstractCurve::CurveIntersectLine ( const QVector< QPointF > &  points,
const QLineF &  line 
)
static

◆ DirectionArrows()

◆ FromBegin()

QVector< QPointF > VAbstractCurve::FromBegin ( const QVector< QPointF > &  points,
const QPointF &  begin,
bool *  ok = nullptr 
)
staticprivate

Definition at line 129 of file vabstractcurve.cpp.

References VGObject::IsPointOnLineSegment().

Referenced by GetSegmentPoints(), and ToEnd().

◆ GetDuplicate()

◆ GetEndAngle()

virtual qreal VAbstractCurve::GetEndAngle ( ) const
pure virtual

◆ getFirstPoint()

QPointF VAbstractCurve::getFirstPoint ( )

Definition at line 464 of file vabstractcurve.cpp.

References getPoints().

◆ getLastPoint()

QPointF VAbstractCurve::getLastPoint ( )

Definition at line 475 of file vabstractcurve.cpp.

References getPoints().

◆ GetLength()

virtual qreal VAbstractCurve::GetLength ( ) const
pure virtual

◆ GetLengthByPoint()

qreal VAbstractCurve::GetLengthByPoint ( const QPointF &  point) const

Definition at line 226 of file vabstractcurve.cpp.

References getPoints(), PathLength(), and ToEnd().

◆ getLineColor()

◆ getLineWeight()

◆ GetPath()

◆ GetPenStyle()

◆ getPoints()

◆ GetSegmentPoints() [1/2]

QVector< QPointF > VAbstractCurve::GetSegmentPoints ( const QPointF &  begin,
const QPointF &  end,
bool  reverse = false 
) const

Definition at line 123 of file vabstractcurve.cpp.

References getPoints(), and GetSegmentPoints().

◆ GetSegmentPoints() [2/2]

QVector< QPointF > VAbstractCurve::GetSegmentPoints ( const QVector< QPointF > &  points,
const QPointF &  begin,
const QPointF &  end,
bool  reverse = false 
)
static

Definition at line 99 of file vabstractcurve.cpp.

References FromBegin(), VGObject::GetReversePoints(), and ToEnd().

Referenced by GetSegmentPoints().

◆ GetStartAngle()

virtual qreal VAbstractCurve::GetStartAngle ( ) const
pure virtual

◆ IntersectLine()

QVector< QPointF > VAbstractCurve::IntersectLine ( const QLineF &  line) const
virtual

IntersectLine return list of points for real intersection with line.

Parameters
lineline that intersect with curve
Returns
list of intersection points

Definition at line 254 of file vabstractcurve.cpp.

References CurveIntersectLine(), and getPoints().

Referenced by IsIntersectLine().

◆ IsIntersectLine()

bool VAbstractCurve::IsIntersectLine ( const QLineF &  line) const
virtual

◆ isPointOnCurve() [1/2]

bool VAbstractCurve::isPointOnCurve ( const QPointF &  p) const

Definition at line 292 of file vabstractcurve.cpp.

References getPoints(), and isPointOnCurve().

◆ isPointOnCurve() [2/2]

bool VAbstractCurve::isPointOnCurve ( const QVector< QPointF > &  points,
const QPointF &  p 
)
static

◆ NameForHistory()

virtual QString VAbstractCurve::NameForHistory ( const QString &  toolName) const
pure virtual

◆ operator=()

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

◆ PathLength()

qreal VAbstractCurve::PathLength ( const QVector< QPointF > &  path)
static

◆ SetDuplicate()

◆ setLineColor()

◆ setLineWeight()

◆ SetPenStyle()

◆ ShowDirection()

QPainterPath VAbstractCurve::ShowDirection ( const QVector< DirectionArrow > &  arrows,
qreal  width 
)
static

◆ Swap()

void VAbstractCurve::Swap ( VAbstractCurve curve)

◆ ToEnd()

QVector< QPointF > VAbstractCurve::ToEnd ( const QVector< QPointF > &  points,
const QPointF &  end,
bool *  ok = nullptr 
)
staticprivate

Definition at line 201 of file vabstractcurve.cpp.

References FromBegin(), and VGObject::GetReversePoints().

Referenced by GetLengthByPoint(), and GetSegmentPoints().

Member Data Documentation

◆ d

QSharedDataPointer<VAbstractCurveData> VAbstractCurve::d
private

◆ lengthCurveDirectionArrow

const qreal VAbstractCurve::lengthCurveDirectionArrow = 14
static

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