|
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 95 of file kis_mesh_transform_strategy.cpp.
References m_d.
|
override |
Definition at line 111 of file kis_mesh_transform_strategy.cpp.
|
overridevirtual |
Reimplemented from KisTransformStrategyBase.
Definition at line 804 of file kis_mesh_transform_strategy.cpp.
References m_d, and KisMeshTransformStrategy::Private::SPLIT_SEGMENT.
|
overridevirtual |
Implements KisSimplifiedActionPolicyStrategy.
Definition at line 480 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 579 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 799 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 388 of file kis_mesh_transform_strategy.cpp.
References m_d, and verifyExpectedMeshSize().
|
overridevirtual |
Implements KisTransformStrategyBase.
Definition at line 332 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 238 of file kis_mesh_transform_strategy.cpp.
References m_d.
|
overridevirtual |
Implements KisTransformStrategyBase.
Definition at line 264 of file kis_mesh_transform_strategy.cpp.
References KisTransformStrategyBase::decorationThickness(), KisHandlePainterHelper::drawConnectionLine(), KisHandlePainterHelper::drawHandleCircle(), KisHandlePainterHelper::drawHandleSmallCircle(), KisHandlePainterHelper::drawPath(), KoColorDisplayRendererInterface::handlePaletteForDisplayColorSpace(), KisTransformUtils::handleRadius, KisHandleStyle::highlightedPrimaryHandles(), KisHandleStyle::highlightedPrimaryHandlesWithSolidOutline(), KisTransformUtils::imageToFlakeTransform(), KIS_SAFE_ASSERT_RECOVER_NOOP, m_d, palette, KisHandleStyle::primarySelection(), KisHandleStyle::selectedPrimaryHandles(), and KisHandlePainterHelper::setHandleStyle().
|
signal |
|
signal |
|
overridevirtual |
Implements KisSimplifiedActionPolicyStrategy.
Definition at line 115 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 243 of file kis_mesh_transform_strategy.cpp.
|
private |
Definition at line 470 of file kis_mesh_transform_strategy.cpp.
References distance(), KisTransformUtils::effectiveHandleGrabRadius(), m_d, and qFuzzyCompare().
|
private |
Definition at line 394 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 248 of file kis_mesh_transform_strategy.cpp.
References m_d, and requestCanvasUpdate().
|
private |
Definition at line 65 of file kis_mesh_transform_strategy.h.