26#include <kritaimage_export.h>
56class KRITAIMAGE_EXPORT
KisImage :
public QObject,
100 void setWorkingThreadsLimit(
int value);
105 int workingThreadsLimit()
const;
117 KisImage *clone(
bool exactCopy =
false);
119 void copyFromImage(
const KisImage &rhs);
130 void copyFromImageImpl(
const KisImage &rhs,
int policy);
173 void immediateLockForReadOnly();
207 bool hasOverlaySelectionMask()
const;
218 QString nextLayerName(
const QString &baseName =
"")
const;
235 void resizeImage(
const QRect& newRect);
251 void cropImage(
const QRect& newRect);
260 void purgeUnusedData(
bool isCancellable);
276 void cropNode(
KisNodeSP node,
const QRect& newRect,
const bool activeFrameOnly =
false);
290 void scaleImage(
const QSize &size, qreal xres, qreal yres,
KisFilterStrategy *filterStrategy);
319 void rotateImage(
double radians);
348 void shear(
double angleX,
double angleY);
370 void convertImageProjectionColorSpace(
const KoColorSpace *dstColorSpace);
375 void convertImageColorSpace(
const KoColorSpace *dstColorSpace,
377 KoColorConversionTransformation::ConversionFlags conversionFlags);
385 void unifyLayersColorSpace();
390 void convertLayerColorSpace(
KisNodeSP node,
393 KoColorConversionTransformation::ConversionFlags conversionFlags);
420 bool assignImageProfile(
const KoColorProfile *profile,
bool blockAllUpdates =
false);
468 void setModifiedWithoutUndo();
489 void setResolution(
double xres,
double yres);
496 QPointF documentToPixel(
const QPointF &documentCoord)
const;
503 QPoint documentToImagePixelFloored(
const QPointF &documentCoord)
const;
510 QRectF documentToPixel(
const QRectF &documentRect)
const;
517 QPointF pixelToDocument(
const QPointF &pixelCoord)
const;
525 QPointF pixelToDocument(
const QPoint &pixelCoord)
const;
532 QRectF pixelToDocument(
const QRectF &pixelCoord)
const;
537 qint32 width()
const;
542 qint32 height()
const;
548 return QSize(width(), height());
566 qint32 nlayers()
const;
572 qint32 nHiddenLayers()
const;
578 qint32 nChildLayers()
const;
605 QRect
bounds()
const override;
612 QRect effectiveLodBounds()
const;
615 void notifyLayersChanged();
621 void setDefaultProjectionColor(
const KoColor &color);
626 KoColor defaultProjectionColor()
const;
641 void removeAnnotation(
const QString& type);
654 void notifyAboutToBeDeleted();
663 bool canReselectGlobalSelection();
697 void setWrapAroundModePermitted(
bool value);
707 bool wrapAroundModePermitted()
const;
727 bool wrapAroundModeActive()
const;
734 int currentLevelOfDetail()
const;
741 QPointF mirrorAxesCenter()
const;
747 void setMirrorAxesCenter(
const QPointF &
value)
const;
754 void setAllowMasksOnRootNode(
bool value);
759 bool allowMasksOnRootNode()
const;
768 void explicitRegenerateLevelOfDetail();
802 bool startIsolatedMode(
KisNodeSP node,
bool isolateLayer,
bool isolateGroup);
805 void stopIsolatedMode();
809 bool isIsolatingLayer()
const;
810 bool isIsolatingGroup()
const;
981 bool isIdle(
bool allowLocked =
false);
999 void barrierLock(
bool readOnly =
false);
1011 bool tryBarrierLock(
bool readOnly =
false);
1158 void initialRefreshGraph();
1189 void requestUndoDuringStroke();
1201 void requestRedoDuringStroke();
1212 void requestStrokeCancellation();
1229 void requestStrokeEnd();
1238 void requestStrokeEndActiveNode();
1252 void resizeImageImpl(
const QRect& newRect,
bool cropLayers);
1258 bool resizeImage,
double angleX,
double angleY,
KisSelectionSP selection);
1260 bool resizeImage,
double angleX,
double angleY,
KisSelectionSP selection);
1267 void setSize(
const QSize& size);
1269 void setProjectionColorSpace(
const KoColorSpace * colorSpace);
float value(const T *src, size_t ch)
void sigLayersChangedAsync()
void refreshHiddenArea(KisNodeSP rootNode, const QRect &preparedArea)
void sigNodeCollapsedChanged()
void sigProfileChanged(const KoColorProfile *profile)
void sigRequestNodeReselection(KisNodeSP activeNode, const KisNodeList &selectedNodes)
void sigStrokeCancellationRequested()
void sigRedoDuringStrokeRequested()
void sigInternalStopIsolatedModeRequested()
void sigIsolatedModeChanged()
void safeRemoveTwoNodes(KisNodeSP node1, KisNodeSP node2)
void sigRemoveNodeAsync(KisNodeSP node)
void sigResolutionChanged(double xRes, double yRes)
void sigColorSpaceChanged(const KoColorSpace *cs)
void sigStrokeEndRequested()
void sigUndoDuringStrokeRequested()
void sigNodeChanged(KisNodeSP node)
void sigAboutToBeDeleted()
void sigStrokeEndRequestedActiveNodeFiltered()
void cropNodes(KisNodeList nodes, const QRect &newRect, const bool activeFrameOnly=false)
void sigImageModifiedWithoutUndo()
void sigProofingConfigChanged()
void sigImageUpdated(const QRect &)
void sigNodeAddedAsync(KisNodeSP node, KisNodeAdditionFlags flags)
KisImage & operator=(const KisImage &rhs)
void sigSizeChanged(const QPointF &oldStillPoint, const QPointF &newStillPoint)
KisKeyframeChannel stores and manages KisKeyframes. Maps units of time to virtual keyframe values....
virtual void notifyProjectionUpdated(const QRect &rc)=0
The KisProofingConfiguration struct Little struct that stores the proofing configuration for a given ...
virtual const KUndo2Command * lastExecutedCommand() const =0
virtual KisPostExecutionUndoAdapter * postExecutionUndoAdapter() const =0
virtual KisStrokeId startStroke(KisStrokeStrategy *strokeStrategy)=0
virtual void endStroke(KisStrokeId id)=0
virtual void addJob(KisStrokeId id, KisStrokeJobData *data)=0
virtual bool cancelStroke(KisStrokeId id)=0
virtual KisProjectionUpdatesFilterCookie addProjectionUpdatesFilter(KisProjectionUpdatesFilterSP filter)=0
virtual void enableDirtyRequests()=0
virtual void notifyBatchUpdateStarted()=0
virtual void disableDirtyRequests()=0
virtual bool hasUpdatesRunning() const =0
virtual void notifyBatchUpdateEnded()=0
virtual void blockUpdates()=0
virtual KisProjectionUpdatesFilterCookie currentProjectionUpdatesFilter() const =0
virtual KisProjectionUpdatesFilterSP removeProjectionUpdatesFilter(KisProjectionUpdatesFilterCookie cookie)=0
virtual void disableUIUpdates()=0
virtual void notifyUIUpdateCompleted(const QRect &rc)=0
virtual void unblockUpdates()=0
void refreshGraphAsync(KisNodeSP root=nullptr, KisProjectionUpdateFlags flags=KisProjectionUpdateFlag::None)
virtual QVector< QRect > enableUIUpdates()=0
static QImage convertToQImage(char *buffer, qint32 width, qint32 height)
save the QImages as png files to directory image_tests
vKisAnnotationSP::iterator vKisAnnotationSP_it
void * KisProjectionUpdatesFilterCookie
virtual void notifySelectionChanged()
virtual void keyframeChannelHasBeenAdded(KisNode *node, KisKeyframeChannel *channel)
virtual KisNode * graphOverlayNode() const
virtual void aboutToRemoveANode(KisNode *parent, int index)
virtual void keyframeChannelAboutToBeRemoved(KisNode *node, KisKeyframeChannel *channel)
virtual void aboutToAddANode(KisNode *parent, int index)
virtual void requestProjectionUpdate(KisNode *node, const QVector< QRect > &rects, KisProjectionUpdateFlags flags)
virtual void nodeHasBeenAdded(KisNode *parent, int index, KisNodeAdditionFlags flags)
virtual void nodeChanged(KisNode *node)
virtual void invalidateFrames(const KisTimeSpan &range, const QRect &rect)
virtual void requestTimeSwitch(int time)
virtual void invalidateAllFrames()
virtual void nodeCollapsedChanged(KisNode *node)