QGIS API Documentation 3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
qgsmaterialregistry.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsmaterialregistry.cpp
3 --------------------------------------
4 Date : July 2020
5 Copyright : (C) 2020 by Nyall Dawson
6 Email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#include "qgsmaterialregistry.h"
17
19
23
25{
26 qDeleteAll( mMetadata );
27}
28
30{
31 if ( !metadata || mMetadata.contains( metadata->type() ) )
32 return false;
33
34 mMetadata[metadata->type()] = metadata;
35 mMaterialsOrder << metadata->type();
36 return true;
37}
38
40{
41 if ( !mMetadata.contains( type ) )
42 return nullptr;
43
44 return mMetadata[type]->create();
45}
46
48{
49 return mMetadata.value( type );
50}
51
53{
54 QStringList types;
55 for ( const QString &material : mMaterialsOrder )
56 {
57 if ( mMetadata.value( material ) )
58 types << material;
59 }
60 return types;
61}
Abstract base class for material settings.
bool addMaterialSettingsType(QgsMaterialSettingsAbstractMetadata *metadata)
Registers a new material settings type. Takes ownership of the metadata instance.
QgsMaterialSettingsAbstractMetadata * materialSettingsMetadata(const QString &type) const
Returns metadata for specified material settings type. Returns nullptr if not found.
QgsAbstractMaterialSettings * createMaterialSettings(const QString &type) const
Creates a new instance of the material settings of the specified type.
QStringList materialSettingsTypes() const
Returns a list of all available material settings types.
Stores metadata about one 3D material settings class.
QString type() const
Returns the unique material type string.