• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

marble

  • sources
  • kde-4.14
  • kdeedu
  • marble
  • src
  • lib
  • marble
  • blendings
BlendingFactory.cpp
Go to the documentation of this file.
1 // Copyright 2010 Jens-Michael Hoffmann <jmho@c-xx.com>
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library. If not, see <http://www.gnu.org/licenses/>.
15 
16 #include "BlendingFactory.h"
17 
18 #include <QDebug>
19 
20 #include "blendings/SunLightBlending.h"
21 #include "BlendingAlgorithms.h"
22 
23 namespace Marble
24 {
25 
26 void BlendingFactory::setLevelZeroLayout( int levelZeroColumns, int levelZeroRows )
27 {
28  m_sunLightBlending->setLevelZeroLayout( levelZeroColumns, levelZeroRows );
29 }
30 
31 Blending const * BlendingFactory::findBlending( QString const & name ) const
32 {
33  if ( name.isEmpty() )
34  return 0;
35 
36  Blending const * const result = m_blendings.value( name, 0 );
37  if ( !result )
38  qWarning() << "Unknown blending" << name << "specified in .dgml file. Please fix the .dgml file.";
39  return result;
40 }
41 
42 BlendingFactory::BlendingFactory( const SunLocator *sunLocator )
43  : m_sunLightBlending( new SunLightBlending( sunLocator ) )
44 {
45  m_blendings.insert( "OverpaintBlending", new OverpaintBlending );
46 
47  // Neutral blendings
48  m_blendings.insert( "AllanonBlending", new AllanonBlending );
49  m_blendings.insert( "ArcusTangentBlending", new ArcusTangentBlending );
50  m_blendings.insert( "GeometricMeanBlending", new GeometricMeanBlending );
51  m_blendings.insert( "LinearLightBlending", new LinearLightBlending );
52  //m_blendings.insert( "NoiseBlending", new NoiseBlending );
53  m_blendings.insert( "OverlayBlending", new OverlayBlending );
54  //m_blendings.insert( "ParallelBlending", new ParallelBlending );
55  //m_blendings.insert( "TextureBlending", new TextureBlending );
56 
57  // Darkening blendings
58  m_blendings.insert( "AlphaBlending", new OverpaintBlending ); // for backwards compatibility
59  m_blendings.insert( "ColorBurnBlending", new ColorBurnBlending );
60  m_blendings.insert( "DarkBlending", new DarkBlending );
61  m_blendings.insert( "DarkenBlending", new DarkenBlending );
62  m_blendings.insert( "DivideBlending", new DivideBlending );
63  m_blendings.insert( "GammaDarkBlending", new GammaDarkBlending );
64  m_blendings.insert( "LinearBurnBlending", new LinearBurnBlending );
65  m_blendings.insert( "MultiplyBlending", new MultiplyBlending );
66  m_blendings.insert( "SubtractiveBlending", new SubtractiveBlending );
67 
68  // Lightening blendings
69  m_blendings.insert( "AdditiveBlending", new AdditiveBlending );
70  m_blendings.insert( "ColorDodgeBlending", new ColorDodgeBlending );
71  m_blendings.insert( "GammaLightBlending", new GammaLightBlending );
72  m_blendings.insert( "HardLightBlending", new HardLightBlending );
73  m_blendings.insert( "LightBlending", new LightBlending );
74  m_blendings.insert( "LightenBlending", new LightenBlending );
75  m_blendings.insert( "PinLightBlending", new PinLightBlending );
76  m_blendings.insert( "ScreenBlending", new ScreenBlending );
77  m_blendings.insert( "SoftLightBlending", new SoftLightBlending );
78  m_blendings.insert( "VividLightBlending", new VividLightBlending );
79 
80  // Inverter blendings
81  //m_blendings.insert( "AdditiveSubtractiveBlending", new AdditiveSubtractiveBlending );
82  m_blendings.insert( "BleachBlending", new BleachBlending );
83  m_blendings.insert( "DifferenceBlending", new DifferenceBlending );
84  m_blendings.insert( "EquivalenceBlending", new EquivalenceBlending );
85  m_blendings.insert( "HalfDifferenceBlending", new HalfDifferenceBlending );
86 
87  // Special purpose blendings
88  m_blendings.insert( "CloudsBlending", new CloudsBlending );
89  m_blendings.insert( "SunLightBlending", m_sunLightBlending );
90  m_blendings.insert( "GrayscaleBlending", new GrayscaleBlending );
91 }
92 
93 BlendingFactory::~BlendingFactory()
94 {
95  m_blendings.remove( "SunLightBlending" );
96  delete m_sunLightBlending;
97  qDeleteAll( m_blendings );
98 }
99 
100 }
Marble::BlendingFactory::findBlending
Blending const * findBlending(QString const &name) const
Definition: BlendingFactory.cpp:31
Marble::DarkBlending
Definition: BlendingAlgorithms.h:103
Marble::SoftLightBlending
Definition: BlendingAlgorithms.h:196
Marble::DivideBlending
Definition: BlendingAlgorithms.h:115
Marble::SunLightBlending
Definition: SunLightBlending.h:29
Marble::GammaLightBlending
Definition: BlendingAlgorithms.h:160
Marble::Blending
Definition: Blending.h:25
Marble::BleachBlending
Definition: BlendingAlgorithms.h:217
Marble::VividLightBlending
Definition: BlendingAlgorithms.h:202
Marble::LinearBurnBlending
Definition: BlendingAlgorithms.h:127
Marble::ScreenBlending
Definition: BlendingAlgorithms.h:190
Marble::BlendingFactory::~BlendingFactory
~BlendingFactory()
Definition: BlendingFactory.cpp:93
Marble::GrayscaleBlending
Definition: BlendingAlgorithms.h:250
Marble::LightBlending
Definition: BlendingAlgorithms.h:172
Marble::CloudsBlending
Definition: BlendingAlgorithms.h:244
BlendingFactory.h
BlendingAlgorithms.h
Marble::SubtractiveBlending
Definition: BlendingAlgorithms.h:139
Marble::BlendingFactory::setLevelZeroLayout
void setLevelZeroLayout(int levelZeroColumns, int levelZeroRows)
Definition: BlendingFactory.cpp:26
Marble::MultiplyBlending
Definition: BlendingAlgorithms.h:133
Marble::ColorDodgeBlending
Definition: BlendingAlgorithms.h:154
Marble::SunLocator
Definition: SunLocator.h:33
Marble::LightenBlending
Definition: BlendingAlgorithms.h:178
Marble::DifferenceBlending
Definition: BlendingAlgorithms.h:223
SunLightBlending.h
QString::isEmpty
bool isEmpty() const
QString
Marble::OverpaintBlending
Definition: BlendingAlgorithms.h:26
Marble::GammaDarkBlending
Definition: BlendingAlgorithms.h:121
Marble::HalfDifferenceBlending
Definition: BlendingAlgorithms.h:235
Marble::ArcusTangentBlending
Definition: BlendingAlgorithms.h:54
Marble::OverlayBlending
Definition: BlendingAlgorithms.h:76
Marble::PinLightBlending
Definition: BlendingAlgorithms.h:184
Marble::SunLightBlending::setLevelZeroLayout
void setLevelZeroLayout(int levelZeroColumns, int levelZeroRows)
Definition: SunLightBlending.cpp:132
Marble::AllanonBlending
Definition: BlendingAlgorithms.h:48
Marble::LinearLightBlending
Definition: BlendingAlgorithms.h:66
Marble::DarkenBlending
Definition: BlendingAlgorithms.h:109
Marble::BlendingFactory::BlendingFactory
BlendingFactory(const SunLocator *sunLocator)
Definition: BlendingFactory.cpp:42
Marble::AdditiveBlending
Definition: BlendingAlgorithms.h:148
Marble::GeometricMeanBlending
Definition: BlendingAlgorithms.h:60
Marble::EquivalenceBlending
Definition: BlendingAlgorithms.h:229
Marble::HardLightBlending
Definition: BlendingAlgorithms.h:166
Marble::ColorBurnBlending
Definition: BlendingAlgorithms.h:97
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:38 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

Skip menu "marble"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal