QGIS API Documentation 3.29.0-Master (694ebda27c)
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"
18
20{
21}
22
24{
25 qDeleteAll( mMetadata );
26}
27
29{
30 if ( !metadata || mMetadata.contains( metadata->type() ) )
31 return false;
32
33 mMetadata[metadata->type()] = metadata;
34 mMaterialsOrder << metadata->type();
35 return true;
36}
37
39{
40 if ( !mMetadata.contains( type ) )
41 return nullptr;
42
43 return mMetadata[type]->create();
44}
45
47{
48 return mMetadata.value( type );
49}
50
52{
53 QStringList types;
54 for ( const QString &material : mMaterialsOrder )
55 {
56 if ( mMetadata.value( material ) )
57 types << material;
58 }
59 return types;
60}
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.