File indexing completed on 2024-05-12 15:56:09
0001 /* 0002 * SPDX-FileCopyrightText: 2008 Boudewijn Rempt <boud@valdyas.org> 0003 * SPDX-FileCopyrightText: 2010-2011 Lukáš Tvrdý <lukast.dev@gmail.com> 0004 * 0005 * SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #include "kis_auto_brush_factory.h" 0009 0010 #include <QDomDocument> 0011 0012 #include "kis_auto_brush.h" 0013 #include "kis_mask_generator.h" 0014 #include <kis_dom_utils.h> 0015 #include <KoResourceLoadResult.h> 0016 0017 0018 KoResourceLoadResult KisAutoBrushFactory::createBrush(const QDomElement &brushDefinition, KisResourcesInterfaceSP resourcesInterface) 0019 { 0020 Q_UNUSED(resourcesInterface); 0021 0022 KisMaskGenerator* mask = KisMaskGenerator::fromXML(brushDefinition.firstChildElement("MaskGenerator")); 0023 double angle = KisDomUtils::toDouble(brushDefinition.attribute("angle", "0.0")); 0024 double randomness = KisDomUtils::toDouble(brushDefinition.attribute("randomness", "0.0")); 0025 qreal density = KisDomUtils::toDouble(brushDefinition.attribute("density", "1.0")); 0026 double spacing = KisDomUtils::toDouble(brushDefinition.attribute("spacing", "1.0")); 0027 bool useAutoSpacing = KisDomUtils::toInt(brushDefinition.attribute("useAutoSpacing", "0")); 0028 qreal autoSpacingCoeff = KisDomUtils::toDouble(brushDefinition.attribute("autoSpacingCoeff", "1.0")); 0029 0030 KisBrushSP brush = KisBrushSP(new KisAutoBrush(mask, angle, randomness, density)); 0031 brush->setSpacing(spacing); 0032 brush->setAutoSpacing(useAutoSpacing, autoSpacingCoeff); 0033 return brush; 0034 }