|
| template<class Point > |
| Point | KisAlgebra2D::abs (const Point &pt) |
| |
| QPointF | KisAlgebra2D::absoluteToRelative (const QPointF &pt, const QRectF &rc) |
| |
| qreal | KisAlgebra2D::absoluteToRelative (const qreal value, const QRectF &rc) |
| |
| QRectF | KisAlgebra2D::absoluteToRelative (const QRectF &rel, const QRectF &rc) |
| |
| template<template< class T > class Container, class Point > |
| PointTypeTraits< Point >::rect_type | KisAlgebra2D::accumulateBounds (const Container< Point > &points) |
| |
| template<template< class T > class Container, class Point , class Rect > |
| void | KisAlgebra2D::accumulateBounds (const Container< Point > &points, Rect *bounds) |
| |
| template<class Point , class Rect > |
| void | KisAlgebra2D::accumulateBounds (const Point &pt, Rect *bounds) |
| |
| template<class Point , class Rect > |
| void | KisAlgebra2D::accumulateBoundsNonEmpty (const Point &pt, Rect *bounds) |
| |
| void | KisAlgebra2D::adjustIfOnPolygonBoundary (const QPolygonF &poly, int polygonDirection, QPointF *pt) |
| |
| QPointF | KisAlgebra2D::alignForZoom (const QPointF &pt, qreal zoom) |
| |
| qreal | KisAlgebra2D::angleBetweenVectors (const QPointF &v1, const QPointF &v2) |
| |
| QRect | KisAlgebra2D::approximateRectFromPoints (const QVector< QPoint > &points) |
| |
| QRectF | KisAlgebra2D::approximateRectFromPoints (const QVector< QPointF > &points) |
| |
| QRect | KisAlgebra2D::approximateRectWithPointTransform (const QRect &rect, std::function< QPointF(QPointF)> func) |
| |
| template<class Rect > |
| Rect | KisAlgebra2D::blowRect (const Rect &rect, qreal coeff) |
| |
| QPolygonF | KisAlgebra2D::calculateConvexHull (const QPolygonF &polygon) |
| | calculateConvexHull Calculate the convex hull of the polygon using the QuickHull
|
| |
| template<class Point , class Rect > |
| Point | KisAlgebra2D::clampPoint (Point pt, const Rect &bounds) |
| |
| template<typename T > |
| T | KisAlgebra2D::copysign (T x, T y) |
| |
| template<class Point > |
| PointTypeTraits< Point >::rect_type | KisAlgebra2D::createRectFromCorners (Point corner1, Point corner2) |
| |
| QRectF | KisAlgebra2D::createRectFromCorners (QLineF line) |
| |
| void | KisAlgebra2D::cropLineToConvexPolygon (QLineF &line, const QPolygonF polygon, bool extendFirst, bool extendSecond) |
| |
| void | KisAlgebra2D::cropLineToRect (QLineF &line, const QRect rect, bool extendFirst, bool extendSecond) |
| | Crop line to rect; if it doesn't intersect, just return an empty line (QLineF()).
|
| |
| template<class T > |
| PointTypeTraits< T >::value_type | KisAlgebra2D::crossProduct (const T &a, const T &b) |
| |
| QRectF | KisAlgebra2D::cutOffRect (const QRectF &rc, const KisAlgebra2D::RightHalfPlane &p) |
| |
| qreal | KisAlgebra2D::directionBetweenPoints (const QPointF &p1, const QPointF &p2, qreal defaultAngle) |
| |
| template<class T > |
| std::enable_if< std::is_integral< T >::value, T >::type | KisAlgebra2D::divideFloor (T a, T b) |
| |
| template<class T > |
| PointTypeTraits< T >::value_type | KisAlgebra2D::dotProduct (const T &a, const T &b) |
| |
| QPoint | KisAlgebra2D::ensureInRect (QPoint pt, const QRect &bounds) |
| |
| QPointF | KisAlgebra2D::ensureInRect (QPointF pt, const QRectF &bounds) |
| |
| template<class Rect > |
| Rect | KisAlgebra2D::ensureRectNotSmaller (Rect rc, const decltype(Rect().size()) &size) |
| |
| template<class Size > |
| Size | KisAlgebra2D::ensureSizeNotSmaller (const Size &size, const Size &bounds) |
| |
| qreal | KisAlgebra2D::findMinimumGoldenSection (std::function< qreal(qreal)> f, qreal xA, qreal xB, qreal eps, int maxIter=100) |
| |
| qreal | KisAlgebra2D::findMinimumTernarySection (std::function< qreal(qreal)> f, qreal xA, qreal xB, qreal eps, int maxIter=100) |
| |
| QPointF | KisAlgebra2D::findNearestPointOnLine (const QPointF &point, const QLineF &line, bool unbounded) |
| |
| QVector< QPointF > | KisAlgebra2D::findTrianglePoint (const QPointF &p1, const QPointF &p2, qreal a, qreal b) |
| |
| boost::optional< QPointF > | KisAlgebra2D::findTrianglePointNearest (const QPointF &p1, const QPointF &p2, qreal a, qreal b, const QPointF &nearest) |
| |
| template<class Rect , typename Difference = decltype(Rect::width())> |
| bool | KisAlgebra2D::fuzzyCompareRects (const Rect &r1, const Rect &r2, Difference tolerance) |
| |
| bool | KisAlgebra2D::fuzzyMatrixCompare (const QTransform &t1, const QTransform &t2, qreal delta) |
| |
| template<template< typename > class Cont, class Point > |
| bool | KisAlgebra2D::fuzzyPointCompare (const Cont< Point > &c1, const Cont< Point > &c2, qreal delta) |
| |
| bool | KisAlgebra2D::fuzzyPointCompare (const QPointF &p1, const QPointF &p2) |
| |
| bool | KisAlgebra2D::fuzzyPointCompare (const QPointF &p1, const QPointF &p2, qreal delta) |
| |
| QList< int > | KisAlgebra2D::getLineSegmentCrossingLineIndexes (const QLineF &line, const QPainterPath &shape) |
| |
| QPainterPath | KisAlgebra2D::getOnePathFromRectangleCutThrough (const QList< QPointF > &points, const QLineF &line, bool left) |
| |
| QList< QLineF > | KisAlgebra2D::getParallelLines (const QLineF &line, const qreal distance) |
| |
| QList< QPainterPath > | KisAlgebra2D::getPathsFromRectangleCutThrough (const QRectF &rect, const QLineF &leftLine, const QLineF &rightLine) |
| | getPathsFromRectangleCutThrough get paths defining both sides of a rectangle cut through using two (supposedly parallel) lines It is used in the Knife Tool If you just want to cut a rectangle, you can use the same line in both
|
| |
| bool | KisAlgebra2D::intersectLineConvexPolygon (QLineF &line, const QPolygonF polygon, bool extendFirst, bool extendSecond) |
| |
| bool | KisAlgebra2D::intersectLineRect (QLineF &line, const QRect rect, bool extend) |
| |
| bool | KisAlgebra2D::intersectLineRect (QLineF &line, const QRect rect, bool extendFirst, bool extendSecond) |
| |
| boost::optional< QPointF > | KisAlgebra2D::intersectLines (const QLineF &boundedLine, const QLineF &unboundedLine) |
| |
| boost::optional< QPointF > | KisAlgebra2D::intersectLines (const QPointF &p1, const QPointF &p2, const QPointF &q1, const QPointF &q2) |
| |
| QVector< QPointF > | KisAlgebra2D::intersectTwoCircles (const QPointF ¢er1, qreal r1, const QPointF ¢er2, qreal r2) |
| |
| template<class T > |
| T | KisAlgebra2D::inwardUnitNormal (const T &a, int polygonDirection) |
| |
| template<typename T > |
| bool | KisAlgebra2D::isInRange (T x, T a, T b) |
| |
| bool | KisAlgebra2D::isInsideShape (const QPainterPath &path, const QPointF &point) |
| |
| bool | KisAlgebra2D::isInsideShape (const VectorPath &path, const QPointF &point) |
| |
| bool | KisAlgebra2D::isOnLine (const QLineF &line, const QPointF &point, const qreal eps, bool boundedStart, bool boundedEnd, bool includeEnds) |
| |
| template<class Polygon , typename Difference = decltype(Polygon::first())> |
| bool | KisAlgebra2D::isPolygonRect (const Polygon &poly, Difference tolerance) |
| |
| template<class T > |
| bool | KisAlgebra2D::isPolygonTrulyConvex (const QVector< T > &polygon) |
| |
| template<typename R > |
| R | KisAlgebra2D::lazyRound (qreal value) |
| |
| template<> |
| int | KisAlgebra2D::lazyRound< int > (qreal value) |
| |
| template<> |
| qreal | KisAlgebra2D::lazyRound< qreal > (qreal value) |
| |
| template<class T > |
| T | KisAlgebra2D::leftUnitNormal (const T &a) |
| |
| template<typename Point > |
| Point | KisAlgebra2D::lerp (const Point &pt1, const Point &pt2, qreal t) |
| |
| template<typename T > |
| T | KisAlgebra2D::linearReshapeFunc (T x, T x0, T x1, T y0, T y1) |
| |
| QTransform | KisAlgebra2D::mapToRect (const QRectF &rect) |
| |
| QTransform | KisAlgebra2D::mapToRectInverse (const QRectF &rect) |
| |
| template<class Size > |
| auto | KisAlgebra2D::maxDimension (Size size) -> decltype(size.width()) |
| |
| VectorPath | KisAlgebra2D::mergeShapesWithGutter (const VectorPath &shape1, const VectorPath &shape2, const VectorPath &oneEnd, const VectorPath &otherEnd, int index1, int index2, bool reverseSecondPoly, bool isSameShape) |
| | mergeShapesWithGutter merges two shapes with a gutter shape (defined as two paths)
|
| |
| template<class Size > |
| auto | KisAlgebra2D::minDimension (Size size) -> decltype(size.width()) |
| |
| QPointF | KisAlgebra2D::moveElasticPoint (const QPointF &pt, const QPointF &base, const QPointF &newBase, const QPointF &wingA, const QPointF &wingB) |
| | moveElasticPoint moves point pt based on the model of elasticity
|
| |
| QPointF | KisAlgebra2D::moveElasticPoint (const QPointF &pt, const QPointF &base, const QPointF &newBase, const QVector< QPointF > &anchorPoints) |
| | moveElasticPoint moves point pt based on the model of elasticity
|
| |
| QPointF | KisAlgebra2D::movePointAlongTheLine (const QPointF &point, const QLineF &direction, qreal distance, bool ensureOnLine) |
| | movePointAlongTheLine moves the point a particular distance in the specified direction
|
| |
| QPointF | KisAlgebra2D::movePointInTheDirection (const QPointF &point, const QPointF &direction, qreal distance) |
| | movePointAlongTheLine moves the point a particular distance in the specified direction
|
| |
| template<class T > |
| qreal | KisAlgebra2D::norm (const T &a) |
| |
| template<class Point > |
| Point | KisAlgebra2D::normalize (const Point &a) |
| |
| template<class T > |
| qreal | KisAlgebra2D::normSquared (const T &a) |
| |
| QDebug | KisAlgebra2D::operator<< (QDebug debug, const VectorPath &path) |
| |
| QDebug | KisAlgebra2D::operator<< (QDebug debug, const VectorPath::VectorPathPoint &point) |
| |
| qreal | KisAlgebra2D::pointToLineDistSquared (const QPointF &pt, const QLineF &line) |
| |
| template<class T > |
| int | KisAlgebra2D::polygonDirection (const QVector< T > &polygon) |
| |
| int | KisAlgebra2D::quadraticEquation (qreal a, qreal b, qreal c, qreal *x1, qreal *x2) |
| |
| QPointF | KisAlgebra2D::relativeToAbsolute (const QPointF &pt, const QRectF &rc) |
| |
| QRectF | KisAlgebra2D::relativeToAbsolute (const QRectF &rel, const QRectF &rc) |
| |
| qreal | KisAlgebra2D::relativeToAbsolute (qreal value, const QRectF &rc) |
| |
| QPainterPath | KisAlgebra2D::removeGutterSmart (const QPainterPath &shape1, int index1, const QPainterPath &shape2, int index2, bool isSameShape) |
| | removeGutterSmart
|
| |
| void | KisAlgebra2D::Private::resetEmptyRectangle (const QPoint &pt, QRect *rc) |
| |
| void | KisAlgebra2D::Private::resetEmptyRectangle (const QPointF &pt, QRectF *rc) |
| |
| template<class T > |
| T | KisAlgebra2D::rightUnitNormal (const T &a) |
| |
| QVector< QPoint > | KisAlgebra2D::sampleRectWithPoints (const QRect &rect) |
| |
| QVector< QPointF > | KisAlgebra2D::sampleRectWithPoints (const QRectF &rect) |
| |
| template<typename T > |
| T | KisAlgebra2D::signPZ (T x) |
| |
| template<typename T > |
| T | KisAlgebra2D::signZZ (T x) |
| |
| QPainterPath | KisAlgebra2D::smallArrow () |
| |
| QPointF | KisAlgebra2D::transformAsBase (const QPointF &pt, const QPointF &base1, const QPointF &base2) |
| |
| std::pair< QPointF, QTransform > | KisAlgebra2D::transformEllipse (const QPointF &axes, const QTransform &fullLocalToGlobal) |
| |
| QPainterPath | KisAlgebra2D::trySimplifyPath (const QPainterPath &path, qreal lengthThreshold) |
| | trySimplifyPath Tries to simplify a QPainterPath
|
| |
| template<typename T > |
| T | KisAlgebra2D::wrapValue (T value, T min, T max) |
| |
| template<typename T , typename std::enable_if< std::is_integral< T >::value, T >::type * = nullptr> |
| T | KisAlgebra2D::wrapValue (T value, T wrapBounds) |
| |