File indexing completed on 2024-05-12 15:58:41
0001 /* 0002 * SPDX-FileCopyrightText: 2007 Sven Langkamp <sven.langkamp@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #ifndef KIS_SELECTION_COMPONENT_H 0007 #define KIS_SELECTION_COMPONENT_H 0008 0009 #include <kritaimage_export.h> 0010 0011 #include <QTransform> 0012 0013 class QRect; 0014 class KUndo2Command; 0015 class KisSelection; 0016 0017 #include "kis_types.h" 0018 0019 class KRITAIMAGE_EXPORT KisSelectionComponent 0020 { 0021 public: 0022 KisSelectionComponent() {} 0023 virtual ~KisSelectionComponent() {} 0024 0025 virtual KisSelectionComponent* clone(KisSelection* selection) = 0; 0026 0027 virtual void renderToProjection(KisPaintDeviceSP projection) = 0; 0028 virtual void renderToProjection(KisPaintDeviceSP projection, const QRect& r) = 0; 0029 0030 virtual void moveX(qint32 x); 0031 virtual void moveY(qint32 y) { Q_UNUSED(y); } 0032 0033 virtual KUndo2Command* transform(const QTransform &transform) { 0034 Q_UNUSED(transform); 0035 return 0; 0036 } 0037 0038 virtual bool isEmpty() const = 0; 0039 virtual QPainterPath outlineCache() const = 0; 0040 virtual bool outlineCacheValid() const = 0; 0041 virtual void recalculateOutlineCache() = 0; 0042 0043 virtual KUndo2Command* resetToEmpty() { return 0; } 0044 }; 0045 0046 #endif