Warning, file /office/calligra/libs/pigment/KoColorSpaceEngine.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002  *  Copyright (c) 2008 Cyrille Berger <cberger@cberger.net>
0003  *
0004  * This library is free software; you can redistribute it and/or
0005  * modify it under the terms of the GNU Lesser General Public
0006  * License as published by the Free Software Foundation; either
0007  * version 2.1 of the License, or (at your option) any later version.
0008  *
0009  * This library is distributed in the hope that it will be useful,
0010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  * Lesser General Public License for more details.
0013  *
0014  * You should have received a copy of the GNU Lesser General Public License
0015  * along with this library; see the file COPYING.LIB.  If not, write to
0016  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017  * Boston, MA 02110-1301, USA.
0018 */
0019 
0020 #ifndef _KO_COLOR_SPACE_ENGINE_H_
0021 #define _KO_COLOR_SPACE_ENGINE_H_
0022 
0023 #include <KoColorConversionTransformationAbstractFactory.h>
0024 #include <KoGenericRegistry.h>
0025 
0026 /**
0027  * A KoColorSpaceEngine is a class use to create color conversion
0028  * transformation between color spaces, for which all profiles can
0029  * output to all profiles.
0030  *
0031  * Typically, when you have an ICC color space and color profile, you
0032  * can convert to any other ICC color space and color profile. While
0033  * creating a KoColorTransformationFactory for each of this transformation
0034  * is possible, the number of links will make the Color Conversion explode
0035  * System. KoColorSpaceEngine provides a virtual node in the Color
0036  * Conversion System that can convert to any other node supported by the
0037  * engine.
0038  */
0039 class PIGMENTCMS_EXPORT KoColorSpaceEngine : public KoColorConversionTransformationAbstractFactory
0040 {
0041 public:
0042     KoColorSpaceEngine(const QString& id, const QString& name);
0043     ~KoColorSpaceEngine() override;
0044     const QString& id() const;
0045     const QString& name() const;
0046     virtual void addProfile(const QString &filename) = 0;
0047     virtual void removeProfile(const QString &filename) = 0;
0048 private:
0049     struct Private;
0050     Private* const d;
0051 };
0052 
0053 class PIGMENTCMS_EXPORT KoColorSpaceEngineRegistry : public KoGenericRegistry< KoColorSpaceEngine* >
0054 {
0055 public:
0056     KoColorSpaceEngineRegistry();
0057     ~KoColorSpaceEngineRegistry() override;
0058     static KoColorSpaceEngineRegistry* instance();
0059 };
0060 
0061 #endif