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