22#include <kpluginfactory.h>
24#include <klocalizedstring.h>
27K_PLUGIN_FACTORY_WITH_JSON(KritaEdgeDetectionFilterFactory,
"kritaedgedetection.json", registerPlugin<KritaEdgeDetectionFilter>();)
50 Q_ASSERT(device != 0);
58 configuration->getProperty(
"horizRadius",
value);
59 float horizontalRadius = t.
scale(
value.toFloat());
60 configuration->getProperty(
"vertRadius",
value);
61 float verticalRadius = t.
scale(
value.toFloat());
63 QBitArray channelFlags;
65 channelFlags = configuration->channelFlags();
69 if (config->getString(
"type") ==
"prewitt") {
71 }
else if (config->getString(
"type") ==
"simple") {
76 if (config->getString(
"output") ==
"xGrowth") {
78 }
else if (config->getString(
"output") ==
"xFall") {
80 }
else if (config->getString(
"output") ==
"yGrowth") {
82 }
else if (config->getString(
"output") ==
"yFall") {
84 }
else if (config->getString(
"output") ==
"radian") {
96 config->getBool(
"transparency",
false));
102 config->setProperty(
"horizRadius", 1);
103 config->setProperty(
"vertRadius", 1);
104 config->setProperty(
"type",
"prewitt");
105 config->setProperty(
"output",
"pythagorean");
106 config->setProperty(
"lockAspect",
true);
107 config->setProperty(
"transparency",
false);
130 return rect.adjusted(-halfWidth * 2, -halfHeight * 2, halfWidth * 2, halfHeight * 2);
142 return rect.adjusted( -halfWidth, -halfHeight, halfWidth, halfHeight);
145#include "kis_edge_detection_filter.moc"
float value(const T *src, size_t ch)
KisFilterConfigurationSP defaultConfiguration(KisResourcesInterfaceSP resourcesInterface) const override
QRect neededRect(const QRect &rect, const KisFilterConfigurationSP _config, int lod) const override
KisConfigWidget * createConfigurationWidget(QWidget *parent, const KisPaintDeviceSP dev, bool useForMasks) const override
QRect changedRect(const QRect &rect, const KisFilterConfigurationSP _config, int lod) const override
void processImpl(KisPaintDeviceSP device, const QRect &rect, const KisFilterConfigurationSP config, KoUpdater *progressUpdater) const override
static int kernelSizeFromRadius(qreal radius)
static void applyEdgeDetection(KisPaintDeviceSP device, const QRect &rect, qreal xRadius, qreal yRadius, FilterType type, const QBitArray &channelFlags, KoUpdater *progressUpdater, FilterOutput output=pythagorean, bool writeToAlpha=false)
applyEdgeDetection This applies the edge detection filter to the device.
void add(KisFilterSP item)
static KisFilterRegistry * instance()
void setSupportsLevelOfDetail(bool value)
~KritaEdgeDetectionFilter() override
KritaEdgeDetectionFilter(QObject *parent, const QVariantList &)
K_PLUGIN_FACTORY_WITH_JSON(KritaASCCDLFactory, "kritaasccdl.json", registerPlugin< KritaASCCDL >();) KritaASCCDL
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
const KoID FiltersCategoryEdgeDetectionId("edge_filters", ki18nc("The category of edge detection filters. Noun.", "Edge Detection"))
KisSharedPtr< KisFilter > KisFilterSP
void setShowConfigurationWidget(bool v)
virtual KisFilterConfigurationSP factoryConfiguration(KisResourcesInterfaceSP resourcesInterface) const
void setSupportsAdjustmentLayers(bool v)
void setSupportsPainting(bool v)
void setColorSpaceIndependence(ColorSpaceIndependence v)