|
Krita Source Code Documentation
|
#include <kis_mesh_transform_strategy.h>
Inheritance diagram for KisMeshTransformStrategy:Classes | |
| struct | Private |
Signals | |
| void | requestCanvasUpdate () |
| void | requestImageRecalculation () |
Private Member Functions | |
| Q_PRIVATE_SLOT (m_d, void recalculateTransformations()) | |
| bool | shouldDeleteNode (qreal distance, qreal param) |
| bool | splitHoveredSegment (const QPointF &pt) |
| void | verifyExpectedMeshSize () |
Private Attributes | |
| const QScopedPointer< Private > | m_d |
Additional Inherited Members | |
Protected Member Functions inherited from KisSimplifiedActionPolicyStrategy | |
| virtual void | hoverActionCommon (const QPointF &pt) |
Definition at line 23 of file kis_mesh_transform_strategy.h.
| KisMeshTransformStrategy::KisMeshTransformStrategy | ( | const KisCoordinatesConverter * | converter, |
| KoSnapGuide * | snapGuide, | ||
| ToolTransformArgs & | currentArgs, | ||
| TransformTransactionProperties & | transaction ) |
Definition at line 94 of file kis_mesh_transform_strategy.cpp.
|
override |
Definition at line 110 of file kis_mesh_transform_strategy.cpp.
|
overridevirtual |
Reimplemented from KisTransformStrategyBase.
Definition at line 802 of file kis_mesh_transform_strategy.cpp.
References m_d, and KisMeshTransformStrategy::Private::SPLIT_SEGMENT.
|
overridevirtual |
Implements KisSimplifiedActionPolicyStrategy.
Definition at line 478 of file kis_mesh_transform_strategy.cpp.
References KisAlgebra2D::accumulateBounds(), KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, m_d, KisAlgebra2D::maxDimension(), KisMeshTransformStrategy::Private::MOVE_MODE, KisMeshTransformStrategy::Private::MULTIPLE_POINT_SELECTION, KisMeshTransformStrategy::Private::OVER_NODE, KisMeshTransformStrategy::Private::OVER_NODE_WHOLE_LINE, KisMeshTransformStrategy::Private::OVER_PATCH, KisMeshTransformStrategy::Private::OVER_PATCH_LOCKED, KisMeshTransformStrategy::Private::OVER_POINT, KisMeshTransformStrategy::Private::OVER_POINT_SYMMETRIC, KisMeshTransformStrategy::Private::OVER_SEGMENT, KisMeshTransformStrategy::Private::OVER_SEGMENT_SYMMETRIC, KisMeshTransformStrategy::Private::ROTATE_MODE, KisMeshTransformStrategy::Private::SCALE_MODE, KisMeshTransformStrategy::Private::SPLIT_SEGMENT, and splitHoveredSegment().
|
virtual |
Implements KisSimplifiedActionPolicyStrategy.
|
overridevirtual |
Note: Snapping with Offset is not yet used in the transform strategies. When the user starts an action, we just move the handle to the mouse position, even if it was positioned with an offset. That is not what we do in Crop Tool.
Implements KisTransformStrategyBase.
Definition at line 27 of file kis_simplified_action_policy_strategy.cpp.
|
overridevirtual |
Implements KisSimplifiedActionPolicyStrategy.
Definition at line 577 of file kis_mesh_transform_strategy.cpp.
References KisAlgebra2D::angleBetweenVectors(), KisBezierUtils::bezierCurve(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::control_point_iterator_impl< is_const >::controlIndex(), KisBezierUtils::curveProportionByParam(), distance(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::endSegments(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::find(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::segment_iterator_impl< is_const >::itP0(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::segment_iterator_impl< is_const >::itP1(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::segment_iterator_impl< is_const >::itP2(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::segment_iterator_impl< is_const >::itP3(), KIS_SAFE_ASSERT_RECOVER_NOOP, KIS_SAFE_ASSERT_RECOVER_RETURN, kisDistance(), KisAlgebra2D::linearReshapeFunc(), m_d, KisMeshTransformStrategy::Private::MOVE_MODE, KisBezierUtils::offsetSegment(), KisMeshTransformStrategy::Private::OVER_NODE, KisMeshTransformStrategy::Private::OVER_NODE_WHOLE_LINE, KisMeshTransformStrategy::Private::OVER_PATCH, KisMeshTransformStrategy::Private::OVER_PATCH_LOCKED, KisMeshTransformStrategy::Private::OVER_POINT, KisMeshTransformStrategy::Private::OVER_POINT_SYMMETRIC, KisMeshTransformStrategy::Private::OVER_SEGMENT, KisMeshTransformStrategy::Private::OVER_SEGMENT_SYMMETRIC, KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::segment_iterator_impl< is_const >::p0(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::segment_iterator_impl< is_const >::p1(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::segment_iterator_impl< is_const >::p2(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::segment_iterator_impl< is_const >::p3(), R, KisMeshTransformStrategy::Private::ROTATE_MODE, KisMeshTransformStrategy::Private::SCALE_MODE, KisMeshTransformStrategy::Private::SPLIT_SEGMENT, and splitHoveredSegment().
|
virtual |
Implements KisSimplifiedActionPolicyStrategy.
|
overridevirtual |
HACK ALERT!
Here we explicitly check for Shift key pressed! The choice of the stroke type is usually done before the tablet press, but for some actions like constrain proportions we should be able to activate it even after the stroke has been started. For now, KisShortcutMatcher does not support it, so just hardcode this special case.
See bug 340496
Implements KisTransformStrategyBase.
Definition at line 28 of file kis_simplified_action_policy_strategy.cpp.
|
overridevirtual |
Implements KisSimplifiedActionPolicyStrategy.
Definition at line 797 of file kis_mesh_transform_strategy.cpp.
References m_d, and KisMeshTransformStrategy::Private::NOTHING.
|
virtual |
Implements KisSimplifiedActionPolicyStrategy.
|
overridevirtual |
Implements KisTransformStrategyBase.
Definition at line 29 of file kis_simplified_action_policy_strategy.cpp.
|
overridevirtual |
Implements KisTransformStrategyBase.
Definition at line 386 of file kis_mesh_transform_strategy.cpp.
References m_d, and verifyExpectedMeshSize().
|
overridevirtual |
Implements KisTransformStrategyBase.
Definition at line 330 of file kis_mesh_transform_strategy.cpp.
References KisCursor::arrowCursor(), KisCursor::crossCursor(), KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, m_d, KisCursor::meshCursorFree(), KisCursor::meshCursorLocked(), KisMeshTransformStrategy::Private::MOVE_MODE, KisCursor::moveCursor(), KisMeshTransformStrategy::Private::MULTIPLE_POINT_SELECTION, KisMeshTransformStrategy::Private::NOTHING, KisMeshTransformStrategy::Private::OVER_NODE, KisMeshTransformStrategy::Private::OVER_NODE_WHOLE_LINE, KisMeshTransformStrategy::Private::OVER_PATCH, KisMeshTransformStrategy::Private::OVER_PATCH_LOCKED, KisMeshTransformStrategy::Private::OVER_POINT, KisMeshTransformStrategy::Private::OVER_POINT_SYMMETRIC, KisMeshTransformStrategy::Private::OVER_SEGMENT, KisMeshTransformStrategy::Private::OVER_SEGMENT_SYMMETRIC, KisMeshTransformStrategy::Private::ROTATE_MODE, KisCursor::rotateCursor(), KisMeshTransformStrategy::Private::SCALE_MODE, KisCursor::sizeVerCursor(), KisMeshTransformStrategy::Private::SPLIT_SEGMENT, KisCursor::splitHCursor(), and KisCursor::splitVCursor().
|
overridevirtual |
Reimplemented from KisSimplifiedActionPolicyStrategy.
Definition at line 237 of file kis_mesh_transform_strategy.cpp.
References m_d.
|
overridevirtual |
Implements KisTransformStrategyBase.
Definition at line 263 of file kis_mesh_transform_strategy.cpp.
References KisTransformStrategyBase::decorationThickness(), KisHandlePainterHelper::drawConnectionLine(), KisHandlePainterHelper::drawHandleCircle(), KisHandlePainterHelper::drawHandleSmallCircle(), KisHandlePainterHelper::drawPath(), KisTransformUtils::handleRadius, KisHandleStyle::highlightedPrimaryHandles(), KisHandleStyle::highlightedPrimaryHandlesWithSolidOutline(), KisTransformUtils::imageToFlakeTransform(), KIS_SAFE_ASSERT_RECOVER_NOOP, m_d, KisHandleStyle::primarySelection(), KisHandleStyle::selectedPrimaryHandles(), and KisHandlePainterHelper::setHandleStyle().
|
signal |
|
signal |
|
overridevirtual |
Implements KisSimplifiedActionPolicyStrategy.
Definition at line 114 of file kis_mesh_transform_strategy.cpp.
References KisTransformUtils::effectiveHandleGrabRadius(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::control_point_iterator_impl< is_const >::isBorderNode(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::control_point_iterator_impl< is_const >::isCornerNode(), KIS_SAFE_ASSERT_RECOVER_RETURN, m_d, KisMeshTransformStrategy::Private::MOVE_MODE, KisMeshTransformStrategy::Private::MULTIPLE_POINT_SELECTION, KisMeshTransformStrategy::Private::NOTHING, KisMeshTransformStrategy::Private::OVER_NODE, KisMeshTransformStrategy::Private::OVER_NODE_WHOLE_LINE, KisMeshTransformStrategy::Private::OVER_PATCH, KisMeshTransformStrategy::Private::OVER_PATCH_LOCKED, KisMeshTransformStrategy::Private::OVER_POINT, KisMeshTransformStrategy::Private::OVER_POINT_SYMMETRIC, KisMeshTransformStrategy::Private::OVER_SEGMENT, KisMeshTransformStrategy::Private::OVER_SEGMENT_SYMMETRIC, KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::segment_iterator_impl< is_const >::pointAtParam(), requestCanvasUpdate(), KisMeshTransformStrategy::Private::ROTATE_MODE, KisMeshTransformStrategy::Private::SCALE_MODE, KisMeshTransformStrategy::Private::SPLIT_SEGMENT, and verifyExpectedMeshSize().
|
overridevirtual |
Reimplemented from KisSimplifiedActionPolicyStrategy.
Definition at line 242 of file kis_mesh_transform_strategy.cpp.
|
private |
Definition at line 468 of file kis_mesh_transform_strategy.cpp.
References distance(), KisTransformUtils::effectiveHandleGrabRadius(), m_d, and qFuzzyCompare().
|
private |
Definition at line 392 of file kis_mesh_transform_strategy.cpp.
References KisBezierUtils::curveProportionByParam(), distance(), eps, KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::segment_iterator_impl< is_const >::isHorizontal(), KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, m_d, KisBezierUtils::nearestPoint(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::segment_iterator_impl< is_const >::p0(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::segment_iterator_impl< is_const >::p1(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::segment_iterator_impl< is_const >::p2(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::segment_iterator_impl< is_const >::p3(), KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::segment_iterator_impl< is_const >::segmentIndex(), and shouldDeleteNode().
|
private |
Definition at line 247 of file kis_mesh_transform_strategy.cpp.
References m_d, and requestCanvasUpdate().
|
private |
Definition at line 65 of file kis_mesh_transform_strategy.h.