File indexing completed on 2024-05-12 15:59:05

0001 /*
0002  *  SPDX-FileCopyrightText: 2017 Wolthera van Hövell tot Westerflier <griffinvalley@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 #include "FilterMask.h"
0007 #include <kis_filter_mask.h>
0008 #include <kis_image.h>
0009 #include <kis_filter_configuration.h>
0010 #include <kis_filter_registry.h>
0011 #include <InfoObject.h>
0012 
0013 FilterMask::FilterMask(KisImageSP image, QString name, Filter &filter, QObject *parent) :
0014     Node(image, new KisFilterMask(image, name), parent)
0015 {
0016     KisFilterMask *mask = dynamic_cast<KisFilterMask*>(this->node().data());
0017     KIS_SAFE_ASSERT_RECOVER_RETURN(mask);
0018     
0019     mask->setFilter(filter.filterConfig()->cloneWithResourcesSnapshot());
0020 }
0021 
0022 FilterMask::FilterMask(KisImageSP image, KisFilterMaskSP mask, QObject *parent):
0023     Node(image, mask, parent)
0024 {
0025 
0026 }
0027 
0028 FilterMask::~FilterMask()
0029 {
0030 
0031 }
0032 
0033 QString FilterMask::type() const
0034 {
0035     return "filtermask";
0036 }
0037 
0038 void FilterMask::setFilter(Filter &filter)
0039 {
0040     KisFilterMask *mask = dynamic_cast<KisFilterMask*>(this->node().data());
0041     KIS_SAFE_ASSERT_RECOVER_RETURN(mask);
0042 
0043     mask->setFilter(filter.filterConfig()->cloneWithResourcesSnapshot());
0044 }
0045 
0046 Filter * FilterMask::filter()
0047 {
0048     Filter* filter = new Filter();
0049     const KisFilterMask *mask = qobject_cast<const KisFilterMask*>(this->node());
0050     KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(mask, 0);
0051 
0052     filter->setName(mask->filter()->name());
0053     filter->setConfiguration(new InfoObject(mask->filter()));
0054     return filter;
0055 }
0056