diff --git a/src/Mod/Material/App/MaterialLibrary.cpp b/src/Mod/Material/App/MaterialLibrary.cpp index 32f00934ae..5ccfa03466 100644 --- a/src/Mod/Material/App/MaterialLibrary.cpp +++ b/src/Mod/Material/App/MaterialLibrary.cpp @@ -42,9 +42,6 @@ using namespace Materials; TYPESYSTEM_SOURCE(Materials::MaterialLibrary, LibraryBase) -MaterialLibrary::MaterialLibrary() -{} - MaterialLibrary::MaterialLibrary(const QString& libraryName, const QString& dir, const QString& icon, @@ -232,15 +229,16 @@ std::shared_ptr MaterialLibrary::saveMaterial(std::shared_ptrsetName(info.baseName()); material->setLibrary(getptr()); material->setDirectory(getRelativePath(path)); - material->save(stream, saveAsCopy, saveInherited); + material->save(stream, overwrite, saveAsCopy, saveInherited); } return addMaterial(material, path); @@ -338,7 +336,7 @@ MaterialLibrary::getMaterialTree() const // Empty folders aren't included in _materialPathMap, so we add them by looking at the file // system auto folderList = MaterialLoader::getMaterialFolders(*this); - for (auto folder : *folderList) { + for (auto& folder : *folderList) { QStringList list = folder.split(QString::fromStdString("/")); // Start at the root @@ -364,9 +362,6 @@ MaterialLibrary::getMaterialTree() const TYPESYSTEM_SOURCE(Materials::MaterialExternalLibrary, MaterialLibrary::MaterialLibrary) -MaterialExternalLibrary::MaterialExternalLibrary() -{} - MaterialExternalLibrary::MaterialExternalLibrary(const QString& libraryName, const QString& dir, const QString& icon, diff --git a/src/Mod/Material/App/MaterialLibrary.h b/src/Mod/Material/App/MaterialLibrary.h index c0df47b6bb..73a554ad61 100644 --- a/src/Mod/Material/App/MaterialLibrary.h +++ b/src/Mod/Material/App/MaterialLibrary.h @@ -31,7 +31,6 @@ #include #include - #include "Materials.h" #include "Model.h" #include "ModelLibrary.h" @@ -48,7 +47,7 @@ class MaterialsExport MaterialLibrary: public LibraryBase, TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - MaterialLibrary(); + MaterialLibrary() = default; MaterialLibrary(const MaterialLibrary&) = delete; MaterialLibrary(const QString& libraryName, const QString& dir, @@ -106,7 +105,7 @@ class MaterialsExport MaterialExternalLibrary: public MaterialLibrary TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - MaterialExternalLibrary(); + MaterialExternalLibrary() = default; MaterialExternalLibrary(const QString& libraryName, const QString& dir, const QString& icon, diff --git a/src/Mod/Material/App/MaterialLoader.cpp b/src/Mod/Material/App/MaterialLoader.cpp index 620a32a2a4..a6b7a1f75f 100644 --- a/src/Mod/Material/App/MaterialLoader.cpp +++ b/src/Mod/Material/App/MaterialLoader.cpp @@ -43,10 +43,7 @@ using namespace Materials; -MaterialEntry::MaterialEntry() -{} - -MaterialEntry::MaterialEntry(std::shared_ptr library, +MaterialEntry::MaterialEntry(const std::shared_ptr& library, const QString& modelName, const QString& dir, const QString& modelUuid) @@ -56,7 +53,7 @@ MaterialEntry::MaterialEntry(std::shared_ptr library, , _uuid(modelUuid) {} -MaterialYamlEntry::MaterialYamlEntry(std::shared_ptr library, +MaterialYamlEntry::MaterialYamlEntry(const std::shared_ptr& library, const QString& modelName, const QString& dir, const QString& modelUuid, @@ -78,6 +75,17 @@ QString MaterialYamlEntry::yamlValue(const YAML::Node& node, return QString::fromStdString(defaultValue); } +std::shared_ptr> MaterialYamlEntry::readList(const YAML::Node& node) +{ + auto list = std::make_shared>(); + for (auto it = node.begin(); it != node.end(); it++) { + QVariant nodeName = QString::fromStdString(it->as()); + list->append(nodeName); + } + + return list; +} + std::shared_ptr MaterialYamlEntry::read2DArray(const YAML::Node& node) { // Base::Console().Log("Read 2D Array\n"); @@ -86,8 +94,8 @@ std::shared_ptr MaterialYamlEntry::read2DArray(const YAML::Node if (node.size() == 2) { // Get the default - Base::Quantity defaultValue = - Base::Quantity::parse(QString::fromStdString(node[0].as())); + Base::Quantity defaultValue( + Base::Quantity::parse(QString::fromStdString(node[0].as()))); array2d->setDefault(QVariant::fromValue(defaultValue)); auto yamlArray = node[1]; @@ -115,8 +123,8 @@ std::shared_ptr MaterialYamlEntry::read3DArray(const YAML::Node if (node.size() == 2) { // Get the default - Base::Quantity defaultValue = - Base::Quantity::parse(QString::fromStdString(node[0].as())); + Base::Quantity defaultValue( + Base::Quantity::parse(QString::fromStdString(node[0].as()))); array3d->setDefault(QVariant::fromValue(defaultValue)); auto yamlArray = node[1]; @@ -207,7 +215,12 @@ void MaterialYamlEntry::addToTree( auto type = prop->getType(); try { - if (type == MaterialValue::Array2D) { + if (type == MaterialValue::List) { + auto list = readList(itp->second); + finalModel->setPhysicalValue(QString::fromStdString(propertyName), + list); + } + else if (type == MaterialValue::Array2D) { auto array2d = read2DArray(itp->second); finalModel->setPhysicalValue(QString::fromStdString(propertyName), array2d); @@ -259,7 +272,12 @@ void MaterialYamlEntry::addToTree( auto type = prop->getType(); try { - if (type == MaterialValue::Array2D) { + if (type == MaterialValue::List) { + auto list = readList(itp->second); + finalModel->setAppearanceValue(QString::fromStdString(propertyName), + list); + } + else if (type == MaterialValue::Array2D) { auto array2d = read2DArray(itp->second); finalModel->setAppearanceValue(QString::fromStdString(propertyName), array2d); @@ -305,12 +323,6 @@ MaterialLoader::MaterialLoader( loadLibraries(); } -/* - * Destroys the object and frees any allocated resources - */ -MaterialLoader::~MaterialLoader() -{} - void MaterialLoader::addLibrary(std::shared_ptr model) { _libraryList->push_back(model); @@ -483,8 +495,6 @@ void MaterialLoader::loadLibrary(std::shared_ptr library) QFileInfo file(pathname); if (file.isFile()) { if (file.suffix().toStdString() == "FCMat") { - QString libraryName = file.baseName(); - auto model = getMaterialFromPath(library, file.canonicalFilePath()); if (model) { (*_materialEntryMap)[model->getUUID()] = model; diff --git a/src/Mod/Material/App/MaterialLoader.h b/src/Mod/Material/App/MaterialLoader.h index 427d348630..61a6c9b9a8 100644 --- a/src/Mod/Material/App/MaterialLoader.h +++ b/src/Mod/Material/App/MaterialLoader.h @@ -37,8 +37,8 @@ namespace Materials class MaterialEntry { public: - MaterialEntry(); - MaterialEntry(std::shared_ptr library, + MaterialEntry() = default; + MaterialEntry(const std::shared_ptr& library, const QString& modelName, const QString& dir, const QString& modelUuid); @@ -74,7 +74,7 @@ protected: class MaterialYamlEntry: public MaterialEntry { public: - MaterialYamlEntry(std::shared_ptr library, + MaterialYamlEntry(const std::shared_ptr& library, const QString& modelName, const QString& dir, const QString& modelUuid, @@ -98,6 +98,7 @@ private: QString yamlValue(const YAML::Node& node, const std::string& key, const std::string& defaultValue); + std::shared_ptr> readList(const YAML::Node& node); std::shared_ptr read2DArray(const YAML::Node& node); std::shared_ptr read3DArray(const YAML::Node& node); @@ -109,7 +110,7 @@ class MaterialLoader public: MaterialLoader(std::shared_ptr>> materialMap, std::shared_ptr>> libraryList); - virtual ~MaterialLoader(); + ~MaterialLoader() = default; std::shared_ptr>> getMaterialLibraries(); static std::shared_ptr> getMaterialFolders(const MaterialLibrary& library); diff --git a/src/Mod/Material/App/MaterialManager.cpp b/src/Mod/Material/App/MaterialManager.cpp index 0ee411d917..131f1b09b3 100644 --- a/src/Mod/Material/App/MaterialManager.cpp +++ b/src/Mod/Material/App/MaterialManager.cpp @@ -123,7 +123,7 @@ std::shared_ptr MaterialManager::getMaterialByPath(const QString& path { QString cleanPath = QDir::cleanPath(path); - for (auto library : *_libraryList) { + for (auto& library : *_libraryList) { // Base::Console().Log("MaterialManager::getMaterialByPath() Checking library '%s'->'%s'\n", // library->getName().toStdString().c_str(), // library->getDirectory().toStdString().c_str()); @@ -189,7 +189,7 @@ bool MaterialManager::exists(std::shared_ptr library, const QSt std::shared_ptr MaterialManager::getLibrary(const QString& name) const { - for (auto library : *_libraryList) { + for (auto& library : *_libraryList) { if (library->getName() == name) { return library; } diff --git a/src/Mod/Material/App/MaterialPyImpl.cpp b/src/Mod/Material/App/MaterialPyImpl.cpp index b59d51f404..3067b139f9 100644 --- a/src/Mod/Material/App/MaterialPyImpl.cpp +++ b/src/Mod/Material/App/MaterialPyImpl.cpp @@ -360,22 +360,22 @@ static PyObject* _pyObjectFromVariant(const QVariant& value) if (value.userType() == qMetaTypeId()) { return new Base::QuantityPy(new Base::Quantity(value.value())); } - else if (value.userType() == QMetaType::Double) { + if (value.userType() == QMetaType::Double) { return PyFloat_FromDouble(value.toDouble()); } - else if (value.userType() == QMetaType::Float) { + if (value.userType() == QMetaType::Float) { return PyFloat_FromDouble(value.toFloat()); } - else if (value.userType() == QMetaType::Int) { + if (value.userType() == QMetaType::Int) { return PyLong_FromLong(value.toInt()); } - else if (value.userType() == QMetaType::Long) { + if (value.userType() == QMetaType::Long) { return PyLong_FromLong(value.toInt()); } - else if (value.userType() == QMetaType::Bool) { + if (value.userType() == QMetaType::Bool) { return Py::new_reference_to(Py::Boolean(value.toBool())); } - else if (value.userType() == QMetaType::QString) { + if (value.userType() == QMetaType::QString) { return PyUnicode_FromString(value.toString().toStdString().c_str()); } diff --git a/src/Mod/Material/App/MaterialValue.cpp b/src/Mod/Material/App/MaterialValue.cpp index a756a00945..2d2d00df01 100644 --- a/src/Mod/Material/App/MaterialValue.cpp +++ b/src/Mod/Material/App/MaterialValue.cpp @@ -26,6 +26,7 @@ #include #include +#include #include #include @@ -83,10 +84,18 @@ bool MaterialValue::operator==(const MaterialValue& other) const return (_valueType == other._valueType) && (_value == other._value); } +QString MaterialValue::escapeString(const QString& source) +{ + QString res = source; + res.replace(QString::fromStdString("\\"), QString::fromStdString("\\\\")); + res.replace(QString::fromStdString("\""), QString::fromStdString("\\\"")); + return res; +} + void MaterialValue::setInitialValue(ValueType inherited) { -#if QT_VERSION < QT_VERSION_CHECK(6,0,0) - if (_valueType == String) { +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + if (_valueType == String || _valueType == MultiLineString) { _value = QVariant(static_cast(QMetaType::QString)); } else if (_valueType == Boolean) { @@ -110,11 +119,8 @@ void MaterialValue::setInitialValue(ValueType inherited) else if (_valueType == Image) { _value = QVariant(static_cast(QMetaType::QString)); } - else if (_valueType == List) { - _value = QVariant(static_cast(QMetaType::QString)); - } #else - if (_valueType == String) { + if (_valueType == String || _valueType == MultiLineString) { _value = QVariant(QMetaType(QMetaType::QString)); } else if (_valueType == Boolean) { @@ -138,15 +144,16 @@ void MaterialValue::setInitialValue(ValueType inherited) else if (_valueType == Image) { _value = QVariant(QMetaType(QMetaType::QString)); } - else if (_valueType == List) { - _value = QVariant(QMetaType(QMetaType::QString)); - } #endif else if (_valueType == Quantity) { Base::Quantity qu; qu.setInvalid(); _value = QVariant::fromValue(qu); } + else if (_valueType == List) { + auto list = QList(); + _value = QVariant::fromValue(list); + } else if (_valueType == Array2D) { if (_valueType != inherited) { throw InvalidMaterialType("Initializing a regular material value as a 2D Array"); @@ -168,6 +175,11 @@ void MaterialValue::setInitialValue(ValueType inherited) } } +void MaterialValue::setList(const QList& value) +{ + _value = QVariant::fromValue(value); +} + bool MaterialValue::isNull() const { if (_value.isNull()) { @@ -178,12 +190,16 @@ bool MaterialValue::isNull() const return !_value.value().isValid(); } + if (_valueType == List) { + return _value.value>().isEmpty(); + } + return false; } const QString MaterialValue::getYAMLString() const { - QString yaml = QString::fromStdString("\""); + QString yaml; if (!isNull()) { if (getType() == MaterialValue::Quantity) { Base::Quantity quantity = getValue().value(); @@ -195,11 +211,27 @@ const QString MaterialValue::getYAMLString() const yaml += QString(QString::fromStdString("%1")).arg(value.toFloat(), 0, 'g', 6); } } + else if (getType() == MaterialValue::MultiLineString) { + yaml = QString::fromStdString(">2"); + auto list = getValue().toString().split(QRegExp(QString::fromStdString("[\r\n]")), + Qt::SkipEmptyParts); + for (auto& it : list) { + yaml += QString::fromStdString("\n ") + it; + } + return yaml; + } + else if (getType() == MaterialValue::List) { + for (auto& it : getList()) { + yaml += QString::fromStdString("\n - \"") + escapeString(it.toString()) + + QString::fromStdString("\""); + } + return yaml; + } else { yaml += getValue().toString(); } } - yaml += QString::fromStdString("\""); + yaml = QString::fromStdString("\"") + escapeString(yaml) + QString::fromStdString("\""); return yaml; } @@ -239,9 +271,9 @@ Material2DArray& Material2DArray::operator=(const Material2DArray& other) void Material2DArray::deepCopy(const Material2DArray& other) { // Deep copy - for (auto row : other._rows) { + for (auto& row : other._rows) { std::vector v; - for (auto col : *row) { + for (auto& col : *row) { QVariant newVariant(col); v.push_back(newVariant); } @@ -335,7 +367,7 @@ const QVariant Material2DArray::getValue(int row, int column) const void Material2DArray::dumpRow(std::shared_ptr> row) const { Base::Console().Log("row: "); - for (auto column : *row) { + for (auto& column : *row) { Base::Console().Log("'%s' ", column.toString().toStdString().c_str()); } Base::Console().Log("\n"); @@ -343,7 +375,7 @@ void Material2DArray::dumpRow(std::shared_ptr> row) const void Material2DArray::dump() const { - for (auto row : _rows) { + for (auto& row : _rows) { dumpRow(row); } } @@ -367,7 +399,7 @@ const QString Material2DArray::getYAMLString() const // Next the array contents yaml += QString::fromStdString(" - ["); bool firstRow = true; - for (auto row : _rows) { + for (auto& row : _rows) { if (!firstRow) { // Each row is on its own line, padded for correct indentation yaml += QString::fromStdString(",\n") + pad; @@ -378,7 +410,7 @@ const QString Material2DArray::getYAMLString() const yaml += QString::fromStdString("["); bool first = true; - for (auto column : *row) { + for (auto& column : *row) { if (!first) { // TODO: Fix for arrays with too many columns to fit on a single line yaml += QString::fromStdString(", "); @@ -698,7 +730,7 @@ const QString Material3DArray::getYAMLString() const bool firstRow = true; auto rows = getTable(depth); - for (auto row : *rows) { + for (auto& row : *rows) { if (!firstRow) { // Each row is on its own line, padded for correct indentation yaml += QString::fromStdString(",\n") + pad2; @@ -709,7 +741,7 @@ const QString Material3DArray::getYAMLString() const yaml += QString::fromStdString("["); bool first = true; - for (auto column : *row) { + for (auto& column : *row) { if (!first) { // TODO: Fix for arrays with too many columns to fit on a single line yaml += QString::fromStdString(", "); diff --git a/src/Mod/Material/App/MaterialValue.h b/src/Mod/Material/App/MaterialValue.h index ceaaf2682f..12b7f066a7 100644 --- a/src/Mod/Material/App/MaterialValue.h +++ b/src/Mod/Material/App/MaterialValue.h @@ -54,10 +54,11 @@ public: Color = 10, Image = 11, File = 12, - URL = 13 + URL = 13, + MultiLineString = 14 }; MaterialValue(); - MaterialValue(const MaterialValue& other); + explicit MaterialValue(const MaterialValue& other); explicit MaterialValue(ValueType type); virtual ~MaterialValue() = default; @@ -73,10 +74,18 @@ public: return _valueType; } - const QVariant getValue() const + QVariant getValue() const { return _value; } + QList getList() + { + return _value.value>(); + } + const QList getList() const + { + return _value.value>(); + } virtual bool isNull() const; virtual const QVariant getValueAt(const QVariant& value) const @@ -88,8 +97,10 @@ public: { _value = value; } + void setList(const QList& value); virtual const QString getYAMLString() const; + static QString escapeString(const QString& source); protected: MaterialValue(ValueType type, ValueType inherited); diff --git a/src/Mod/Material/App/Materials.cpp b/src/Mod/Material/App/Materials.cpp index b567d9fad3..142370292f 100644 --- a/src/Mod/Material/App/Materials.cpp +++ b/src/Mod/Material/App/Materials.cpp @@ -42,20 +42,21 @@ using namespace Materials; TYPESYSTEM_SOURCE(Materials::MaterialProperty, Materials::ModelProperty) +int const MaterialProperty::PRECISION = 6; + MaterialProperty::MaterialProperty() { _valuePtr = std::make_shared(MaterialValue::None); } -MaterialProperty::MaterialProperty(const ModelProperty& property) - : ModelProperty(property) +MaterialProperty::MaterialProperty(const ModelProperty& other) + : ModelProperty(other) , _valuePtr(nullptr) { setType(getPropertyType()); - auto columns = property.getColumns(); - for (std::vector::const_iterator it = columns.begin(); it != columns.end(); - it++) { - MaterialProperty prop(*it); + auto columns = other.getColumns(); + for (auto& it : columns) { + MaterialProperty prop(it); addColumn(prop); } @@ -67,7 +68,7 @@ MaterialProperty::MaterialProperty(const ModelProperty& property) } } -void MaterialProperty::copyValuePtr(std::shared_ptr value) +void MaterialProperty::copyValuePtr(const std::shared_ptr& value) { if (value->getType() == MaterialValue::Array2D) { _valuePtr = @@ -84,16 +85,16 @@ void MaterialProperty::copyValuePtr(std::shared_ptr value) MaterialProperty::MaterialProperty(const MaterialProperty& other) : ModelProperty(other) + , _modelUUID(other._modelUUID) { - _modelUUID = other._modelUUID; copyValuePtr(other._valuePtr); - for (auto it = other._columns.begin(); it != other._columns.end(); it++) { - _columns.push_back(*it); + for (auto& it : other._columns) { + _columns.push_back(it); } } -MaterialProperty::MaterialProperty(std::shared_ptr other) +MaterialProperty::MaterialProperty(const std::shared_ptr& other) : MaterialProperty(*other) {} @@ -102,7 +103,12 @@ void MaterialProperty::setModelUUID(const QString& uuid) _modelUUID = uuid; } -const QVariant MaterialProperty::getValue() const +QVariant MaterialProperty::getValue() +{ + return _valuePtr->getValue(); +} + +QVariant MaterialProperty::getValue() const { return _valuePtr->getValue(); } @@ -112,31 +118,31 @@ std::shared_ptr MaterialProperty::getMaterialValue() return _valuePtr; } -const std::shared_ptr MaterialProperty::getMaterialValue() const +std::shared_ptr MaterialProperty::getMaterialValue() const { return _valuePtr; } -const QString MaterialProperty::getString() const +QString MaterialProperty::getString() const { if (isNull()) { - return QString(); + return {}; } if (getType() == MaterialValue::Quantity) { - Base::Quantity quantity = getValue().value(); + auto quantity = getValue().value(); return quantity.getUserString(); } - else if (getType() == MaterialValue::Float) { + if (getType() == MaterialValue::Float) { auto value = getValue(); if (value.isNull()) { - return QString(); + return {}; } - return QString(QString::fromStdString("%1")).arg(value.toFloat(), 0, 'g', 6); + return QString(QString::fromStdString("%1")).arg(value.toFloat(), 0, 'g', PRECISION); } return getValue().toString(); } -const QString MaterialProperty::getYAMLString() const +QString MaterialProperty::getYAMLString() const { return _valuePtr->getYAMLString(); } @@ -179,6 +185,9 @@ void MaterialProperty::setType(const QString& type) else if (type == QString::fromStdString("List")) { _valuePtr = std::make_shared(MaterialValue::List); } + else if (type == QString::fromStdString("MultiLineString")) { + _valuePtr = std::make_shared(MaterialValue::MultiLineString); + } else if (type == QString::fromStdString("2DArray")) { _valuePtr = std::make_shared(); } @@ -188,8 +197,8 @@ void MaterialProperty::setType(const QString& type) else { // Error. Throw something _valuePtr = std::make_shared(MaterialValue::None); - std::string stringType = type.toStdString(); - std::string name = getName().toStdString(); + // std::string stringType = type.toStdString(); - useful for debugging since we can't see + // std::string name = getName().toStdString(); throw UnknownValueType(); } } @@ -240,19 +249,19 @@ QVariant MaterialProperty::getColumnNull(int column) const switch (valueType) { case MaterialValue::Quantity: { - Base::Quantity q = Base::Quantity(0, getColumnUnits(column)); - return QVariant::fromValue(q); + Base::Quantity quant = Base::Quantity(0, getColumnUnits(column)); + return QVariant::fromValue(quant); } case MaterialValue::Float: case MaterialValue::Integer: - return QVariant(0); + return 0; default: break; } - return QVariant(QString()); + return QString(); } void MaterialProperty::setValue(const QVariant& value) @@ -274,11 +283,9 @@ void MaterialProperty::setValue(const QString& value) else if (_valuePtr->getType() == MaterialValue::URL) { setURL(value); } - else if (_valuePtr->getType() == MaterialValue::Array2D) { - //_valuePtr->setValue(QVariant(std::make_shared())); - } - else if (_valuePtr->getType() == MaterialValue::Array3D) { - //_valuePtr = std::make_shared(); + else if (_valuePtr->getType() == MaterialValue::Array2D + || _valuePtr->getType() == MaterialValue::Array3D) { + // This value can't be directly assigned } else if (_valuePtr->getType() == MaterialValue::Quantity) { // Base::Console().Log("\tParse quantity '%s'\n", value.toStdString().c_str()); @@ -298,7 +305,7 @@ void MaterialProperty::setValue(const QString& value) } } -void MaterialProperty::setValue(std::shared_ptr value) +void MaterialProperty::setValue(const std::shared_ptr& value) { _valuePtr = value; } @@ -323,8 +330,7 @@ void MaterialProperty::setBoolean(int value) void MaterialProperty::setBoolean(const QString& value) { - // _valueType = MaterialValue::Boolean; - bool boolean; + bool boolean = false; std::string val = value.toStdString(); if ((val == "true") || (val == "True")) { boolean = true; @@ -374,6 +380,11 @@ void MaterialProperty::setQuantity(const QString& value) setQuantity(Base::Quantity::parse(value)); } +void MaterialProperty::setList(const QList& value) +{ + _valuePtr->setList(value); +} + void MaterialProperty::setURL(const QString& value) { _valuePtr->setValue(QVariant(value)); @@ -391,8 +402,8 @@ MaterialProperty& MaterialProperty::operator=(const MaterialProperty& other) copyValuePtr(other._valuePtr); _columns.clear(); - for (auto it = other._columns.begin(); it != other._columns.end(); it++) { - _columns.push_back(*it); + for (auto& it : other._columns) { + _columns.push_back(it); } return *this; @@ -417,7 +428,7 @@ Material::Material() , _editState(ModelEdit_None) {} -Material::Material(std::shared_ptr library, +Material::Material(const std::shared_ptr& library, const QString& directory, const QString& uuid, const QString& name) @@ -444,29 +455,29 @@ Material::Material(const Material& other) , _dereferenced(other._dereferenced) , _editState(other._editState) { - for (auto it = other._tags.begin(); it != other._tags.end(); it++) { - _tags.push_back(*it); + for (auto& it : other._tags) { + _tags.push_back(it); } - for (auto it = other._physicalUuids.begin(); it != other._physicalUuids.end(); it++) { - _physicalUuids.push_back(*it); + for (auto& it : other._physicalUuids) { + _physicalUuids.push_back(it); } - for (auto it = other._appearanceUuids.begin(); it != other._appearanceUuids.end(); it++) { - _appearanceUuids.push_back(*it); + for (auto& it : other._appearanceUuids) { + _appearanceUuids.push_back(it); } - for (auto it = other._allUuids.begin(); it != other._allUuids.end(); it++) { - _allUuids.push_back(*it); + for (auto& it : other._allUuids) { + _allUuids.push_back(it); } - for (auto it = other._physical.begin(); it != other._physical.end(); it++) { - MaterialProperty prop(it->second); - _physical[it->first] = std::make_shared(prop); + for (auto& it : other._physical) { + MaterialProperty prop(it.second); + _physical[it.first] = std::make_shared(prop); } - for (auto it = other._appearance.begin(); it != other._appearance.end(); it++) { - MaterialProperty prop(it->second); - _appearance[it->first] = std::make_shared(prop); + for (auto& it : other._appearance) { + MaterialProperty prop(it.second); + _appearance[it.first] = std::make_shared(prop); } } -const QString Material::getAuthorAndLicense() const +QString Material::getAuthorAndLicense() const { QString authorAndLicense; @@ -486,7 +497,7 @@ const QString Material::getAuthorAndLicense() const void Material::addModel(const QString& uuid) { - for (QString modelUUID : _allUuids) { + for (QString& modelUUID : _allUuids) { if (modelUUID == uuid) { return; } @@ -499,19 +510,14 @@ void Material::addModel(const QString& uuid) try { auto model = manager.getModel(uuid); auto inheritance = model->getInheritance(); - for (auto inherits = inheritance.begin(); inherits != inheritance.end(); inherits++) { - addModel(*inherits); + for (auto& inherits : inheritance) { + addModel(inherits); } } catch (ModelNotFound const&) { } } -void Material::removeModel(const QString& uuid) -{ - Q_UNUSED(uuid); -} - void Material::clearModels() { _physicalUuids.clear(); @@ -592,20 +598,20 @@ void Material::addPhysical(const QString& uuid) auto model = manager.getModel(uuid); auto& inheritance = model->getInheritance(); - for (auto it = inheritance.begin(); it != inheritance.end(); it++) { + for (auto& it : inheritance) { // Inherited models may already have the properties, so just // remove the uuid - removeUUID(_physicalUuids, *it); + removeUUID(_physicalUuids, it); } _physicalUuids.push_back(uuid); addModel(uuid); setEditStateExtend(); - for (auto it = model->begin(); it != model->end(); it++) { - QString propertyName = it->first; + for (auto& it : *model) { + QString propertyName = it.first; if (!hasPhysicalProperty(propertyName)) { - ModelProperty property = static_cast(it->second); + ModelProperty property = static_cast(it.second); try { _physical[propertyName] = std::make_shared(property); @@ -630,8 +636,8 @@ void Material::removePhysical(const QString& uuid) // If it's an inherited model, do nothing bool inherited = true; - for (auto it = _physicalUuids.begin(); it != _physicalUuids.end(); it++) { - if (*it == uuid) { + for (auto& it : _physicalUuids) { + if (it == uuid) { inherited = false; break; } @@ -646,15 +652,15 @@ void Material::removePhysical(const QString& uuid) auto model = manager.getModel(uuid); auto& inheritance = model->getInheritance(); - for (auto it = inheritance.begin(); it != inheritance.end(); it++) { - removeUUID(_physicalUuids, *it); - removeUUID(_allUuids, *it); + for (auto& it : inheritance) { + removeUUID(_physicalUuids, it); + removeUUID(_allUuids, it); } removeUUID(_physicalUuids, uuid); removeUUID(_allUuids, uuid); - for (auto it = model->begin(); it != model->end(); it++) { - _physical.erase(it->first); + for (auto& it : *model) { + _physical.erase(it.first); } setEditStateAlter(); @@ -675,20 +681,20 @@ void Material::addAppearance(const QString& uuid) auto model = manager.getModel(uuid); auto& inheritance = model->getInheritance(); - for (auto it = inheritance.begin(); it != inheritance.end(); it++) { + for (auto& it : inheritance) { // Inherited models may already have the properties, so just // remove the uuid - removeUUID(_appearanceUuids, *it); + removeUUID(_appearanceUuids, it); } _appearanceUuids.push_back(uuid); addModel(uuid); setEditStateExtend(); - for (auto it = model->begin(); it != model->end(); it++) { - QString propertyName = it->first; + for (auto& it : *model) { + QString propertyName = it.first; if (!hasAppearanceProperty(propertyName)) { - ModelProperty property = static_cast(it->second); + ModelProperty property = static_cast(it.second); _appearance[propertyName] = std::make_shared(property); } @@ -706,8 +712,8 @@ void Material::removeAppearance(const QString& uuid) // If it's an inherited model, do nothing bool inherited = true; - for (auto it = _appearanceUuids.begin(); it != _appearanceUuids.end(); it++) { - if (*it == uuid) { + for (auto& it : _appearanceUuids) { + if (it == uuid) { inherited = false; break; } @@ -722,15 +728,15 @@ void Material::removeAppearance(const QString& uuid) auto model = manager.getModel(uuid); auto& inheritance = model->getInheritance(); - for (auto it = inheritance.begin(); it != inheritance.end(); it++) { - removeUUID(_appearanceUuids, *it); - removeUUID(_allUuids, *it); + for (auto& it : inheritance) { + removeUUID(_appearanceUuids, it); + removeUUID(_allUuids, it); } removeUUID(_appearanceUuids, uuid); removeUUID(_allUuids, uuid); - for (auto it = model->begin(); it != model->end(); it++) { - _appearance.erase(it->first); + for (auto& it : *model) { + _appearance.erase(it.first); } setEditStateAlter(); @@ -790,20 +796,27 @@ void Material::setPhysicalValue(const QString& name, double value) _physical[name]->setFloat(value); } -void Material::setPhysicalValue(const QString& name, const Base::Quantity value) +void Material::setPhysicalValue(const QString& name, const Base::Quantity& value) { setPhysicalEditState(name); _physical[name]->setQuantity(value); } -void Material::setPhysicalValue(const QString& name, std::shared_ptr value) +void Material::setPhysicalValue(const QString& name, const std::shared_ptr& value) { setPhysicalEditState(name); _physical[name]->setValue(value); } +void Material::setPhysicalValue(const QString& name, const std::shared_ptr>& value) +{ + setPhysicalEditState(name); + + _physical[name]->setList(*value); +} + void Material::setAppearanceValue(const QString& name, const QString& value) { setAppearanceEditState(name); @@ -811,13 +824,21 @@ void Material::setAppearanceValue(const QString& name, const QString& value) _appearance[name]->setValue(value); // may not be a string type, conversion may be required } -void Material::setAppearanceValue(const QString& name, std::shared_ptr value) +void Material::setAppearanceValue(const QString& name, const std::shared_ptr& value) { setAppearanceEditState(name); _appearance[name]->setValue(value); } +void Material::setAppearanceValue(const QString& name, + const std::shared_ptr>& value) +{ + setPhysicalEditState(name); + + _appearance[name]->setList(*value); +} + std::shared_ptr Material::getPhysicalProperty(const QString& name) { try { @@ -828,7 +849,7 @@ std::shared_ptr Material::getPhysicalProperty(const QString& n } } -const std::shared_ptr Material::getPhysicalProperty(const QString& name) const +std::shared_ptr Material::getPhysicalProperty(const QString& name) const { try { return _physical.at(name); @@ -848,7 +869,7 @@ std::shared_ptr Material::getAppearanceProperty(const QString& } } -const std::shared_ptr Material::getAppearanceProperty(const QString& name) const +std::shared_ptr Material::getAppearanceProperty(const QString& name) const { try { return _appearance.at(name); @@ -858,9 +879,9 @@ const std::shared_ptr Material::getAppearanceProperty(const QS } } -const QVariant +QVariant Material::getValue(const std::map>& propertyList, - const QString& name) const + const QString& name) { try { return propertyList.at(name)->getValue(); @@ -870,28 +891,29 @@ Material::getValue(const std::map>& p } } -const QString +QString Material::getValueString(const std::map>& propertyList, - const QString& name) const + const QString& name) { try { - auto property = propertyList.at(name); + const auto& property = propertyList.at(name); if (property->isNull()) { - return QString(); + return {}; } if (property->getType() == MaterialValue::Quantity) { auto value = property->getValue(); if (value.isNull()) { - return QString(); + return {}; } return value.value().getUserString(); } - else if (property->getType() == MaterialValue::Float) { + if (property->getType() == MaterialValue::Float) { auto value = property->getValue(); if (value.isNull()) { - return QString(); + return {}; } - return QString(QString::fromStdString("%1")).arg(value.toFloat(), 0, 'g', 6); + return QString(QString::fromStdString("%1")) + .arg(value.toFloat(), 0, 'g', MaterialProperty::PRECISION); } return property->getValue().toString(); } @@ -900,32 +922,32 @@ Material::getValueString(const std::map(); } -const QString Material::getPhysicalValueString(const QString& name) const +QString Material::getPhysicalValueString(const QString& name) const { return getValueString(_physical, name); } -const QVariant Material::getAppearanceValue(const QString& name) const +QVariant Material::getAppearanceValue(const QString& name) const { return getValue(_appearance, name); } -const Base::Quantity Material::getAppearanceQuantity(const QString& name) const +Base::Quantity Material::getAppearanceQuantity(const QString& name) const { return getValue(_appearance, name).value(); } -const QString Material::getAppearanceValueString(const QString& name) const +QString Material::getAppearanceValueString(const QString& name) const { return getValueString(_appearance, name); } @@ -1007,8 +1029,8 @@ bool Material::isPhysicalModelComplete(const QString& uuid) const try { auto model = manager.getModel(uuid); - for (auto it = model->begin(); it != model->end(); it++) { - QString propertyName = it->first; + for (auto& it : *model) { + QString propertyName = it.first; auto property = getPhysicalProperty(propertyName); if (property->isNull()) { @@ -1033,8 +1055,8 @@ bool Material::isAppearanceModelComplete(const QString& uuid) const try { auto model = manager.getModel(uuid); - for (auto it = model->begin(); it != model->end(); it++) { - QString propertyName = it->first; + for (auto& it : *model) { + QString propertyName = it.first; auto property = getAppearanceProperty(propertyName); if (property->isNull()) { @@ -1053,21 +1075,21 @@ void Material::saveGeneral(QTextStream& stream) const { stream << "General:\n"; stream << " UUID: \"" << _uuid << "\"\n"; - stream << " Name: \"" << _name << "\"\n"; + stream << " Name: \"" << MaterialValue::escapeString(_name) << "\"\n"; if (!_author.isEmpty()) { - stream << " Author: \"" << _author << "\"\n"; + stream << " Author: \"" << MaterialValue::escapeString(_author) << "\"\n"; } if (!_license.isEmpty()) { - stream << " License: \"" << _license << "\"\n"; + stream << " License: \"" << MaterialValue::escapeString(_license) << "\"\n"; } if (!_description.isEmpty()) { - stream << " Description: \"" << _description << "\"\n"; + stream << " Description: \"" << MaterialValue::escapeString(_description) << "\"\n"; } if (!_url.isEmpty()) { - stream << " SourceURL: \"" << _url << "\"\n"; + stream << " SourceURL: \"" << MaterialValue::escapeString(_url) << "\"\n"; } if (!_reference.isEmpty()) { - stream << " ReferenceSource: \"" << _reference << "\"\n"; + stream << " ReferenceSource: \"" << MaterialValue::escapeString(_reference) << "\"\n"; } } @@ -1088,11 +1110,11 @@ void Material::saveInherits(QTextStream& stream) const } } -bool Material::modelChanged(const std::shared_ptr parent, - const std::shared_ptr model) const +bool Material::modelChanged(const std::shared_ptr& parent, + const std::shared_ptr& model) const { - for (auto itp = model->begin(); itp != model->end(); itp++) { - QString propertyName = itp->first; + for (auto& it : *model) { + QString propertyName = it.first; auto property = getPhysicalProperty(propertyName); try { auto parentProperty = parent->getPhysicalProperty(propertyName); @@ -1109,11 +1131,11 @@ bool Material::modelChanged(const std::shared_ptr parent, return false; } -bool Material::modelAppearanceChanged(const std::shared_ptr parent, - const std::shared_ptr model) const +bool Material::modelAppearanceChanged(const std::shared_ptr& parent, + const std::shared_ptr& model) const { - for (auto itp = model->begin(); itp != model->end(); itp++) { - QString propertyName = itp->first; + for (auto& it : *model) { + QString propertyName = it.first; auto property = getAppearanceProperty(propertyName); try { auto parentProperty = parent->getAppearanceProperty(propertyName); @@ -1132,49 +1154,51 @@ bool Material::modelAppearanceChanged(const std::shared_ptr parent, void Material::saveModels(QTextStream& stream, bool saveInherited) const { - if (!_physical.empty()) { - ModelManager modelManager; - MaterialManager materialManager; + if (_physical.empty()) { + return; + } - bool inherited = saveInherited && (_parentUuid.size() > 0); - std::shared_ptr parent; - if (inherited) { - try { - parent = materialManager.getMaterial(_parentUuid); - } - catch (const MaterialNotFound&) { - inherited = false; - } + ModelManager modelManager; + MaterialManager materialManager; + + bool inherited = saveInherited && (_parentUuid.size() > 0); + std::shared_ptr parent; + if (inherited) { + try { + parent = materialManager.getMaterial(_parentUuid); } + catch (const MaterialNotFound&) { + inherited = false; + } + } - bool headerPrinted = false; - for (auto itm = _physicalUuids.begin(); itm != _physicalUuids.end(); itm++) { - auto model = modelManager.getModel(*itm); - if (!inherited || modelChanged(parent, model)) { - if (!headerPrinted) { - stream << "Models:\n"; - headerPrinted = true; + bool headerPrinted = false; + for (auto& itm : _physicalUuids) { + auto model = modelManager.getModel(itm); + if (!inherited || modelChanged(parent, model)) { + if (!headerPrinted) { + stream << "Models:\n"; + headerPrinted = true; + } + stream << " " << MaterialValue::escapeString(model->getName()) << ":\n"; + stream << " UUID: \"" << model->getUUID() << "\"\n"; + for (const auto& it : *model) { + QString propertyName = it.first; + std::shared_ptr property = getPhysicalProperty(propertyName); + std::shared_ptr parentProperty; + try { + if (inherited) { + parentProperty = parent->getPhysicalProperty(propertyName); + } + } + catch (const PropertyNotFound&) { + Base::Console().Log("Material::saveModels Property not found '%s'\n", + propertyName.toStdString().c_str()); } - stream << " " << model->getName() << ":\n"; - stream << " UUID: \"" << model->getUUID() << "\"\n"; - for (auto itp = model->begin(); itp != model->end(); itp++) { - QString propertyName = itp->first; - std::shared_ptr property = getPhysicalProperty(propertyName); - std::shared_ptr parentProperty; - try { - if (inherited) { - parentProperty = parent->getPhysicalProperty(propertyName); - } - } - catch (const PropertyNotFound&) { - Base::Console().Log("Material::saveModels Property not found '%s'\n", - propertyName.toStdString().c_str()); - } - if (!inherited || (*property != *parentProperty)) { - if (!property->isNull()) { - stream << " " << *property << "\n"; - } + if (!inherited || !parentProperty || (*property != *parentProperty)) { + if (!property->isNull()) { + stream << " " << *property << "\n"; } } } @@ -1184,48 +1208,49 @@ void Material::saveModels(QTextStream& stream, bool saveInherited) const void Material::saveAppearanceModels(QTextStream& stream, bool saveInherited) const { - if (!_appearance.empty()) { - ModelManager modelManager; - MaterialManager materialManager; + if (_appearance.empty()) { + return; + } - bool inherited = saveInherited && (_parentUuid.size() > 0); - std::shared_ptr parent; - if (inherited) { - try { - parent = materialManager.getMaterial(_parentUuid); - } - catch (const MaterialNotFound&) { - inherited = false; - } + ModelManager modelManager; + MaterialManager materialManager; + + bool inherited = saveInherited && (_parentUuid.size() > 0); + std::shared_ptr parent; + if (inherited) { + try { + parent = materialManager.getMaterial(_parentUuid); } + catch (const MaterialNotFound&) { + inherited = false; + } + } - bool headerPrinted = false; - for (auto itm = _appearanceUuids.begin(); itm != _appearanceUuids.end(); itm++) { - auto model = modelManager.getModel(*itm); - if (!inherited || modelAppearanceChanged(parent, model)) { - if (!headerPrinted) { - stream << "AppearanceModels:\n"; - headerPrinted = true; + bool headerPrinted = false; + for (auto& itm : _appearanceUuids) { + auto model = modelManager.getModel(itm); + if (!inherited || modelAppearanceChanged(parent, model)) { + if (!headerPrinted) { + stream << "AppearanceModels:\n"; + headerPrinted = true; + } + stream << " " << MaterialValue::escapeString(model->getName()) << ":\n"; + stream << " UUID: \"" << model->getUUID() << "\"\n"; + for (const auto& it : *model) { + QString propertyName = it.first; + std::shared_ptr property = getAppearanceProperty(propertyName); + std::shared_ptr parentProperty; + try { + if (inherited) { + parentProperty = parent->getAppearanceProperty(propertyName); + } + } + catch (const PropertyNotFound&) { } - stream << " " << model->getName() << ":\n"; - stream << " UUID: \"" << model->getUUID() << "\"\n"; - for (auto itp = model->begin(); itp != model->end(); itp++) { - QString propertyName = itp->first; - std::shared_ptr property = - getAppearanceProperty(propertyName); - std::shared_ptr parentProperty; - try { - if (inherited) { - parentProperty = parent->getAppearanceProperty(propertyName); - } - } - catch (const PropertyNotFound&) { - } - if (!inherited || (*property != *parentProperty)) { - if (!property->isNull()) { - stream << " " << *property << "\n"; - } + if (!inherited || !parentProperty || (*property != *parentProperty)) { + if (!property->isNull()) { + stream << " " << *property << "\n"; } } } @@ -1242,29 +1267,29 @@ QString Material::getModelByName(const QString& name) const { ModelManager manager; - for (auto it = _allUuids.begin(); it != _allUuids.end(); it++) { + for (auto& it : _allUuids) { try { - auto model = manager.getModel(*it); + auto model = manager.getModel(it); if (model->getName() == name) { - return *it; + return it; } } catch (ModelNotFound const&) { } } - return QString(); + return {}; } -void Material::save(QTextStream& stream, bool saveAsCopy, bool saveInherited) +void Material::save(QTextStream& stream, bool overwrite, bool saveAsCopy, bool saveInherited) { if (saveInherited && !saveAsCopy) { // Check to see if we're an original or if we're already in the list of models MaterialManager materialManager; - if (materialManager.exists(_uuid)) { + if (materialManager.exists(_uuid) && !overwrite) { // Make a new version based on the current setParentUUID(_uuid); - newUuid(); + // newUuid(); } } @@ -1277,6 +1302,13 @@ void Material::save(QTextStream& stream, bool saveAsCopy, bool saveInherited) saveInherited = true; } } + else { + if (!overwrite) { + // Creating a new derived model when overwriting sets itself as a parent, + // that will no longer exist because it's been overwritten + newUuid(); + } + } stream << "---\n"; stream << "# File created by " << QString::fromStdString(App::Application::Config()["ExeName"]) @@ -1311,32 +1343,32 @@ Material& Material::operator=(const Material& other) _editState = other._editState; _tags.clear(); - for (auto it = other._tags.begin(); it != other._tags.end(); it++) { - _tags.push_back(*it); + for (auto& it : other._tags) { + _tags.push_back(it); } _physicalUuids.clear(); - for (auto it = other._physicalUuids.begin(); it != other._physicalUuids.end(); it++) { - _physicalUuids.push_back(*it); + for (auto& it : other._physicalUuids) { + _physicalUuids.push_back(it); } _appearanceUuids.clear(); - for (auto it = other._appearanceUuids.begin(); it != other._appearanceUuids.end(); it++) { - _appearanceUuids.push_back(*it); + for (auto& it : other._appearanceUuids) { + _appearanceUuids.push_back(it); } _allUuids.clear(); - for (auto it = other._allUuids.begin(); it != other._allUuids.end(); it++) { - _allUuids.push_back(*it); + for (auto& it : other._allUuids) { + _allUuids.push_back(it); } // Create copies of the properties rather than modify the originals _physical.clear(); - for (auto it = other._physical.begin(); it != other._physical.end(); it++) { - MaterialProperty prop(it->second); - _physical[it->first] = std::make_shared(prop); + for (auto& it : other._physical) { + MaterialProperty prop(it.second); + _physical[it.first] = std::make_shared(prop); } _appearance.clear(); - for (auto it = other._appearance.begin(); it != other._appearance.end(); it++) { - MaterialProperty prop(it->second); - _appearance[it->first] = std::make_shared(prop); + for (auto& it : other._appearance) { + MaterialProperty prop(it.second); + _appearance[it.first] = std::make_shared(prop); } return *this; @@ -1351,11 +1383,11 @@ QStringList Material::normalizeModels(const QStringList& models) ModelManager manager; - for (auto uuid : models) { + for (auto& uuid : models) { auto model = manager.getModel(uuid); bool found = false; - for (auto childUuid : models) { + for (auto& childUuid : models) { if (uuid != childUuid) { auto childModel = manager.getModel(childUuid); if (childModel->inherits(childUuid)) { @@ -1377,16 +1409,16 @@ QStringList Material::normalizeModels(const QStringList& models) * Set or change the base material for the current material, updating the properties as * required. */ -void Material::updateInheritance([[maybe_unused]]const QString& parent) +void Material::updateInheritance([[maybe_unused]] const QString& parent) {} /* * Return a list of models that are defined in the parent material but not in this one */ -QStringList Material::inheritedMissingModels(const Material& parent) +QStringList Material::inheritedMissingModels(const Material& parent) const { QStringList missing; - for (auto uuid : parent._allUuids) { + for (auto& uuid : parent._allUuids) { if (!hasModel(uuid)) { missing << uuid; } @@ -1398,10 +1430,10 @@ QStringList Material::inheritedMissingModels(const Material& parent) /* * Return a list of models that are defined in this model but not the parent */ -QStringList Material::inheritedAddedModels(const Material& parent) +QStringList Material::inheritedAddedModels(const Material& parent) const { QStringList added; - for (auto uuid : _allUuids) { + for (auto& uuid : _allUuids) { if (!parent.hasModel(uuid)) { added << uuid; } @@ -1413,5 +1445,5 @@ QStringList Material::inheritedAddedModels(const Material& parent) /* * Return a list of properties that have different values from the parent material */ -void Material::inheritedPropertyDiff([[maybe_unused]]const QString& parent) +void Material::inheritedPropertyDiff([[maybe_unused]] const QString& parent) {} diff --git a/src/Mod/Material/App/Materials.h b/src/Mod/Material/App/Materials.h index 0749c6684f..c1c0d7c1fc 100644 --- a/src/Mod/Material/App/Materials.h +++ b/src/Mod/Material/App/Materials.h @@ -34,6 +34,7 @@ #include +#include "MaterialValue.h" #include "Model.h" namespace Materials @@ -47,9 +48,9 @@ class MaterialsExport MaterialProperty: public ModelProperty public: MaterialProperty(); - MaterialProperty(const MaterialProperty& property); - explicit MaterialProperty(const ModelProperty& property); - explicit MaterialProperty(std::shared_ptr property); + MaterialProperty(const MaterialProperty& other); + explicit MaterialProperty(const ModelProperty& other); + explicit MaterialProperty(const std::shared_ptr& other); ~MaterialProperty() override = default; MaterialValue::ValueType getType() const @@ -58,15 +59,24 @@ public: } const QString getModelUUID() const; - const QVariant getValue() const; + QVariant getValue(); + QVariant getValue() const; + QList getList() + { + return _valuePtr->getList(); + } + QList getList() const + { + return _valuePtr->getList(); + } bool isNull() const { return _valuePtr->isNull(); } std::shared_ptr getMaterialValue(); - const std::shared_ptr getMaterialValue() const; - const QString getString() const; - const QString getYAMLString() const; + std::shared_ptr getMaterialValue() const; + QString getString() const; + QString getYAMLString() const; bool getBoolean() const; int getInt() const; double getFloat() const; @@ -83,7 +93,7 @@ public: void setPropertyType(const QString& type) override; void setValue(const QVariant& value); void setValue(const QString& value); - void setValue(std::shared_ptr value); + void setValue(const std::shared_ptr& value); void setString(const QString& value); void setBoolean(bool value); void setBoolean(int value); @@ -95,14 +105,12 @@ public: void setQuantity(const Base::Quantity& value); void setQuantity(double value, const QString& units); void setQuantity(const QString& value); + void setList(const QList& value); void setURL(const QString& value); MaterialProperty& operator=(const MaterialProperty& other); - friend QTextStream& operator<<(QTextStream& output, const MaterialProperty& property) - { - output << property.getName() << ": " << property.getYAMLString(); - return output; - } + friend QTextStream& operator<<(QTextStream& output, const MaterialProperty& property); + bool operator==(const MaterialProperty& other) const; bool operator!=(const MaterialProperty& other) const { @@ -111,10 +119,13 @@ public: // void save(QTextStream& stream); + // Define precision for displaying floating point values + static int const PRECISION; + protected: void setType(const QString& type); // void setType(MaterialValue::ValueType type) { _valueType = type; } - void copyValuePtr(std::shared_ptr value); + void copyValuePtr(const std::shared_ptr& value); void addColumn(MaterialProperty& column) { @@ -140,7 +151,7 @@ public: }; Material(); - Material(std::shared_ptr library, + Material(const std::shared_ptr& library, const QString& directory, const QString& uuid, const QString& name); @@ -151,40 +162,40 @@ public: { return _library; } - const QString getDirectory() const + QString getDirectory() const { return _directory; } - const QString getUUID() const + QString getUUID() const { return _uuid; } - const QString getName() const + QString getName() const { return _name; } - const QString getAuthorAndLicense() const; - const QString getAuthor() const + QString getAuthorAndLicense() const; + QString getAuthor() const { return _author; } - const QString getLicense() const + QString getLicense() const { return _license; } - const QString getParentUUID() const + QString getParentUUID() const { return _parentUuid; } - const QString getDescription() const + QString getDescription() const { return _description; } - const QString getURL() const + QString getURL() const { return _url; } - const QString getReference() const + QString getReference() const { return _reference; } @@ -205,7 +216,7 @@ public: return &_appearanceUuids; } - void setLibrary(std::shared_ptr library) + void setLibrary(const std::shared_ptr& library) { _library = library; } @@ -259,22 +270,24 @@ public: void setPhysicalValue(const QString& name, const QString& value); void setPhysicalValue(const QString& name, int value); void setPhysicalValue(const QString& name, double value); - void setPhysicalValue(const QString& name, const Base::Quantity value); - void setPhysicalValue(const QString& name, std::shared_ptr value); + void setPhysicalValue(const QString& name, const Base::Quantity& value); + void setPhysicalValue(const QString& name, const std::shared_ptr& value); + void setPhysicalValue(const QString& name, const std::shared_ptr>& value); void setAppearanceValue(const QString& name, const QString& value); - void setAppearanceValue(const QString& name, std::shared_ptr value); + void setAppearanceValue(const QString& name, const std::shared_ptr& value); + void setAppearanceValue(const QString& name, const std::shared_ptr>& value); std::shared_ptr getPhysicalProperty(const QString& name); - const std::shared_ptr getPhysicalProperty(const QString& name) const; + std::shared_ptr getPhysicalProperty(const QString& name) const; std::shared_ptr getAppearanceProperty(const QString& name); - const std::shared_ptr getAppearanceProperty(const QString& name) const; - const QVariant getPhysicalValue(const QString& name) const; - const Base::Quantity getPhysicalQuantity(const QString& name) const; - const QString getPhysicalValueString(const QString& name) const; - const QVariant getAppearanceValue(const QString& name) const; - const Base::Quantity getAppearanceQuantity(const QString& name) const; - const QString getAppearanceValueString(const QString& name) const; + std::shared_ptr getAppearanceProperty(const QString& name) const; + QVariant getPhysicalValue(const QString& name) const; + Base::Quantity getPhysicalQuantity(const QString& name) const; + QString getPhysicalValueString(const QString& name) const; + QVariant getAppearanceValue(const QString& name) const; + Base::Quantity getAppearanceQuantity(const QString& name) const; + QString getAppearanceValueString(const QString& name) const; bool hasPhysicalProperty(const QString& name) const; bool hasAppearanceProperty(const QString& name) const; @@ -312,7 +325,7 @@ public: /* * Normalize models by removing any inherited models */ - QStringList normalizeModels(const QStringList& models); + static QStringList normalizeModels(const QStringList& models); /* * Set or change the base material for the current material, updating the properties as @@ -322,36 +335,35 @@ public: /* * Return a list of models that are defined in the parent material but not in this one */ - QStringList inheritedMissingModels(const Material& parent); + QStringList inheritedMissingModels(const Material& parent) const; /* * Return a list of models that are defined in this model but not the parent */ - QStringList inheritedAddedModels(const Material& parent); + QStringList inheritedAddedModels(const Material& parent) const; /* * Return a list of properties that have different values from the parent material */ void inheritedPropertyDiff(const QString& parent); - void save(QTextStream& stream, bool saveAsCopy, bool saveInherited); + void save(QTextStream& stream, bool overwrite, bool saveAsCopy, bool saveInherited); Material& operator=(const Material& other); protected: void addModel(const QString& uuid); - void removeModel(const QString& uuid); - void removeUUID(QStringList& uuidList, const QString& uuid); + static void removeUUID(QStringList& uuidList, const QString& uuid); - const QVariant + static QVariant getValue(const std::map>& propertyList, - const QString& name) const; - const QString + const QString& name); + static QString getValueString(const std::map>& propertyList, - const QString& name) const; + const QString& name); - bool modelChanged(const std::shared_ptr parent, - const std::shared_ptr model) const; - bool modelAppearanceChanged(const std::shared_ptr parent, - const std::shared_ptr model) const; + bool modelChanged(const std::shared_ptr& parent, + const std::shared_ptr& model) const; + bool modelAppearanceChanged(const std::shared_ptr& parent, + const std::shared_ptr& model) const; void saveGeneral(QTextStream& stream) const; void saveInherits(QTextStream& stream) const; void saveModels(QTextStream& stream, bool saveInherited) const; @@ -378,7 +390,13 @@ private: ModelEdit _editState; }; -typedef FolderTreeNode MaterialTreeNode; +inline QTextStream& operator<<(QTextStream& output, const MaterialProperty& property) +{ + output << MaterialValue::escapeString(property.getName()) << ": " << property.getYAMLString(); + return output; +} + +using MaterialTreeNode = FolderTreeNode; } // namespace Materials diff --git a/src/Mod/Material/App/ModelLoader.cpp b/src/Mod/Material/App/ModelLoader.cpp index ecf3fb1d77..3976f2a28c 100644 --- a/src/Mod/Material/App/ModelLoader.cpp +++ b/src/Mod/Material/App/ModelLoader.cpp @@ -37,7 +37,7 @@ using namespace Materials; -ModelEntry::ModelEntry(std::shared_ptr library, +ModelEntry::ModelEntry(const std::shared_ptr& library, const QString& baseName, const QString& modelName, const QString& dir, @@ -228,8 +228,6 @@ void ModelLoader::addToTree(std::shared_ptr model, auto directory = model->getDirectory(); auto uuid = model->getUUID(); - QString version = yamlValue(yamlModel["General"], "Version", ""); - QString description = yamlValue(yamlModel[base], "Description", ""); QString url = yamlValue(yamlModel[base], "URL", ""); QString doi = yamlValue(yamlModel[base], "DOI", ""); @@ -273,7 +271,7 @@ void ModelLoader::addToTree(std::shared_ptr model, // Base::Console().Log("Reading columns\n"); // Read the columns auto cols = yamlProp["Columns"]; - for (auto col : cols) { + for (const auto& col : cols) { std::string colName = col.first.as(); // Base::Console().Log("\tColumns '%s'\n", colName.c_str()); @@ -316,8 +314,6 @@ void ModelLoader::loadLibrary(std::shared_ptr library) QFileInfo file(pathname); if (file.isFile()) { if (file.suffix().toStdString() == "yml") { - QString libraryName = file.baseName(); - try { auto model = getModelFromPath(library, file.canonicalFilePath()); (*_modelEntryMap)[model->getUUID()] = model; diff --git a/src/Mod/Material/App/ModelLoader.h b/src/Mod/Material/App/ModelLoader.h index 9db76092b3..3497510993 100644 --- a/src/Mod/Material/App/ModelLoader.h +++ b/src/Mod/Material/App/ModelLoader.h @@ -36,7 +36,7 @@ namespace Materials class ModelEntry { public: - ModelEntry(std::shared_ptr library, + ModelEntry(const std::shared_ptr& library, const QString& baseName, const QString& modelName, const QString& dir, diff --git a/src/Mod/Material/App/ModelManager.cpp b/src/Mod/Material/App/ModelManager.cpp index 88d4e85012..799be693fb 100644 --- a/src/Mod/Material/App/ModelManager.cpp +++ b/src/Mod/Material/App/ModelManager.cpp @@ -99,7 +99,7 @@ std::shared_ptr ModelManager::getModelByPath(const QString& path) const { QString cleanPath = QDir::cleanPath(path); - for (auto library : *_libraryList) { + for (auto& library : *_libraryList) { // Base::Console().Log("ModelManager::getModelByPath() Checking library '%s'->'%s'\n", // library->getName().toStdString().c_str(), // library->getDirectory().toStdString().c_str()); @@ -127,7 +127,7 @@ std::shared_ptr ModelManager::getModelByPath(const QString& path, const Q std::shared_ptr ModelManager::getLibrary(const QString& name) const { - for (auto library : *_libraryList) { + for (auto& library : *_libraryList) { if (library->getName() == name) { return library; } diff --git a/src/Mod/Material/App/ModelManager.h b/src/Mod/Material/App/ModelManager.h index 9d64ea49a9..9ded3b3c78 100644 --- a/src/Mod/Material/App/ModelManager.h +++ b/src/Mod/Material/App/ModelManager.h @@ -33,7 +33,6 @@ #include "Model.h" #include "ModelLibrary.h" - namespace Materials { diff --git a/src/Mod/Material/App/ModelUuids.cpp b/src/Mod/Material/App/ModelUuids.cpp index 78c02ace68..270eb6f9a6 100644 --- a/src/Mod/Material/App/ModelUuids.cpp +++ b/src/Mod/Material/App/ModelUuids.cpp @@ -68,3 +68,6 @@ const QString ModelUUIDs::ModelUUID_Rendering_Advanced = QString::fromStdString("c880f092-cdae-43d6-a24b-55e884aacbbf"); const QString ModelUUIDs::ModelUUID_Rendering_Vector = QString::fromStdString("fdf5a80e-de50-4157-b2e5-b6e5f88b680e"); + +const QString ModelUUIDs::ModelUUID_Test_Material = + QString::fromStdString("c6c64159-19c1-40b5-859c-10561f20f979"); diff --git a/src/Mod/Material/App/ModelUuids.h b/src/Mod/Material/App/ModelUuids.h index db667940db..97b82fe91f 100644 --- a/src/Mod/Material/App/ModelUuids.h +++ b/src/Mod/Material/App/ModelUuids.h @@ -65,6 +65,8 @@ public: static const QString ModelUUID_Rendering_Texture; static const QString ModelUUID_Rendering_Advanced; static const QString ModelUUID_Rendering_Vector; + + static const QString ModelUUID_Test_Material; }; } // namespace Materials diff --git a/src/Mod/Material/CMakeLists.txt b/src/Mod/Material/CMakeLists.txt index 03beeb66c3..79db6e584c 100644 --- a/src/Mod/Material/CMakeLists.txt +++ b/src/Mod/Material/CMakeLists.txt @@ -32,133 +32,133 @@ SET(Material_Icon_Files # collect all the material cards: # FILE( GLOB MaterialLib_Files ./StandardMaterial/*.FCMat ./StandardMaterial/*.txt ) SET(MaterialLib_Files - Resources/Materials/StandardMaterial/Aggregate/Concrete-EN-C35_45.FCMat - Resources/Materials/StandardMaterial/Aggregate/Concrete-Generic.FCMat - Resources/Materials/StandardMaterial/Aggregate/Reinforcement-FIB-B500.FCMat - Resources/Materials/StandardMaterial/Carbon/Graphite.FCMat - Resources/Materials/StandardMaterial/Glass/Glass-E-GlassFibre.FCMat - Resources/Materials/StandardMaterial/Glass/Glass-Generic.FCMat - Resources/Materials/StandardMaterial/Glass/Glass-S2-GlassFibre.FCMat - Resources/Materials/StandardMaterial/Metal/Alloys/Invar-Generic.FCMat - Resources/Materials/StandardMaterial/Metal/Aluminum/AlMg3F24.FCMat - Resources/Materials/StandardMaterial/Metal/Aluminum/AlMgSi1F31.FCMat - Resources/Materials/StandardMaterial/Metal/Aluminum/Aluminum-6061-T6.FCMat - Resources/Materials/StandardMaterial/Metal/Aluminum/Aluminum-Generic.FCMat - Resources/Materials/StandardMaterial/Metal/Aluminum/AlZn4-5Mg1F35.FCMat - Resources/Materials/StandardMaterial/Metal/Copper/Copper-Generic.FCMat - Resources/Materials/StandardMaterial/Metal/Iron/Iron-Generic.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/CalculiX-Steel.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-15CrNi6.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-17CrNiMo6.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C22.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C35.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C45.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C60.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-20NiCrMo2.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-28Mn6.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-2C10.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-30CrNiMo8.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-34CrNiMo6.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-36CrNiMo4.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-36NiCrMo16.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-3C15.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-3C22.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-3C35.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-3V45.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-C10.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-C15.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-C22E.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-C25E.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-C30E.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-C40E.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-C50E.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-C55E.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-C60E.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-E295-GC.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-E295.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-E335-GC.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-E335.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-E360-GC.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-E360.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-100.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-150.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-200.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-250.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-300.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-350.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMB-350-10.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMB-550-4.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMB-650-2.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-350-4.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-360-12.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-400-5.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-450-7.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-400-15.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-500-7.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-600-3.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-700-2.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-800-1.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-G16Mn5.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-G200.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-G20Mn5.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-G230.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-G260.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-G300.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-G30Mn5.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-Generic.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S185.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S235JO.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S235JR.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S235JRG1.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S260NC.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S275JO.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S275JR.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S275N.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S335JO.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S335JR.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S335N.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S340MC.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S355J2G3.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S380MC.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S420MC.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S420N.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S460MC.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S460N.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S500MC.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S550MC.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-S690MC.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-37-2K.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-255.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-315.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-380.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-460.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-500.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-X2CrNiMoN17-13-3.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-X2CrNiN24-4.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-X39CrMo17-1.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-X3CrNiMo13-14.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-X5CrNi18-10.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-X5CrNiMo17-12-2.FCMat - Resources/Materials/StandardMaterial/Metal/Steel/Steel-X6CrNiTi18-10.FCMat - Resources/Materials/StandardMaterial/Metal/Titanium/Ti-6Al-4V.FCMat - Resources/Materials/StandardMaterial/Thermoplast/ABS-Generic.FCMat - Resources/Materials/StandardMaterial/Thermoplast/Acrylic-Glass-Generic.FCMat - Resources/Materials/StandardMaterial/Thermoplast/PA6-Generic.FCMat - Resources/Materials/StandardMaterial/Thermoplast/PET-Generic.FCMat - Resources/Materials/StandardMaterial/Thermoplast/PLA-Generic.FCMat - Resources/Materials/StandardMaterial/Thermoplast/PP-Generic.FCMat - Resources/Materials/StandardMaterial/Thermoplast/PTFE-Generic.FCMat - Resources/Materials/StandardMaterial/Thermoplast/PVC-Generic.FCMat - Resources/Materials/StandardMaterial/Wood/Wood-Generic.FCMat + Resources/Materials/Standard/Aggregate/Concrete-EN-C35_45.FCMat + Resources/Materials/Standard/Aggregate/Concrete-Generic.FCMat + Resources/Materials/Standard/Aggregate/Reinforcement-FIB-B500.FCMat + Resources/Materials/Standard/Carbon/Graphite.FCMat + Resources/Materials/Standard/Glass/Glass-E-GlassFibre.FCMat + Resources/Materials/Standard/Glass/Glass-Generic.FCMat + Resources/Materials/Standard/Glass/Glass-S2-GlassFibre.FCMat + Resources/Materials/Standard/Metal/Alloys/Invar-Generic.FCMat + Resources/Materials/Standard/Metal/Aluminum/AlMg3F24.FCMat + Resources/Materials/Standard/Metal/Aluminum/AlMgSi1F31.FCMat + Resources/Materials/Standard/Metal/Aluminum/Aluminum-6061-T6.FCMat + Resources/Materials/Standard/Metal/Aluminum/Aluminum-Generic.FCMat + Resources/Materials/Standard/Metal/Aluminum/AlZn4-5Mg1F35.FCMat + Resources/Materials/Standard/Metal/Copper/Copper-Generic.FCMat + Resources/Materials/Standard/Metal/Iron/Iron-Generic.FCMat + Resources/Materials/Standard/Metal/Steel/CalculiX-Steel.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-15CrNi6.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-17CrNiMo6.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-1C22.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-1C35.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-1C45.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-1C60.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-20NiCrMo2.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-28Mn6.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-2C10.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-30CrNiMo8.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-34CrNiMo6.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-36CrNiMo4.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-36NiCrMo16.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-3C15.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-3C22.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-3C35.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-3V45.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-C10.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-C15.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-C22E.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-C25E.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-C30E.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-C40E.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-C50E.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-C55E.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-C60E.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-E295-GC.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-E295.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-E335-GC.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-E335.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-E360-GC.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-E360.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-100.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-150.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-200.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-250.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-300.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-350.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMB-350-10.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMB-550-4.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMB-650-2.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-350-4.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-360-12.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-400-5.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-450-7.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-400-15.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-500-7.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-600-3.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-700-2.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-800-1.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-G16Mn5.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-G200.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-G20Mn5.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-G230.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-G260.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-G300.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-G30Mn5.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-Generic.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S185.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S235JO.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S235JR.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S235JRG1.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S260NC.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S275JO.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S275JR.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S275N.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S335JO.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S335JR.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S335N.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S340MC.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S355J2G3.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S380MC.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S420MC.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S420N.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S460MC.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S460N.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S500MC.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S550MC.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-S690MC.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-St-37-2K.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-St-E-255.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-St-E-315.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-St-E-380.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-St-E-460.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-St-E-500.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-X2CrNiMoN17-13-3.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-X2CrNiN24-4.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-X39CrMo17-1.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-X3CrNiMo13-14.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-X5CrNi18-10.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-X5CrNiMo17-12-2.FCMat + Resources/Materials/Standard/Metal/Steel/Steel-X6CrNiTi18-10.FCMat + Resources/Materials/Standard/Metal/Titanium/Ti-6Al-4V.FCMat + Resources/Materials/Standard/Thermoplast/ABS-Generic.FCMat + Resources/Materials/Standard/Thermoplast/Acrylic-Glass-Generic.FCMat + Resources/Materials/Standard/Thermoplast/PA6-Generic.FCMat + Resources/Materials/Standard/Thermoplast/PET-Generic.FCMat + Resources/Materials/Standard/Thermoplast/PLA-Generic.FCMat + Resources/Materials/Standard/Thermoplast/PP-Generic.FCMat + Resources/Materials/Standard/Thermoplast/PTFE-Generic.FCMat + Resources/Materials/Standard/Thermoplast/PVC-Generic.FCMat + Resources/Materials/Standard/Wood/Wood-Generic.FCMat ) SET(FluidMaterial_Files - Resources/Materials/FluidMaterial/None.FCMat - Resources/Materials/FluidMaterial/Air.FCMat - Resources/Materials/FluidMaterial/Argon.FCMat - Resources/Materials/FluidMaterial/Carbon_dioxide.FCMat - Resources/Materials/FluidMaterial/Nitrogen.FCMat - Resources/Materials/FluidMaterial/Water.FCMat + Resources/Materials/Fluid/None.FCMat + Resources/Materials/Fluid/Air.FCMat + Resources/Materials/Fluid/Argon.FCMat + Resources/Materials/Fluid/Carbon_dioxide.FCMat + Resources/Materials/Fluid/Nitrogen.FCMat + Resources/Materials/Fluid/Water.FCMat ) SET(AppearanceLib_Files @@ -186,6 +186,10 @@ SET(AppearanceLib_Files Resources/Materials/Appearance/Stone.FCMat ) +SET(MaterialTestLib_Files + "Resources/Materials/Test/Test Material.FCMat" +) + SET(MaterialModel_Files Resources/Models/Architectural/Architectural.yml Resources/Models/Costs/Costs.yml @@ -202,6 +206,7 @@ SET(MaterialModel_Files Resources/Models/Rendering/BasicRendering.yml Resources/Models/Rendering/TextureRendering.yml Resources/Models/Rendering/VectorRendering.yml + "Resources/Models/Test/Test Model.yml" Resources/Models/Thermal/Thermal.yml ) @@ -261,6 +266,9 @@ ADD_CUSTOM_TARGET(FluidMaterialLib ALL ADD_CUSTOM_TARGET(AppearanceLib ALL SOURCES ${AppearanceLib_Files} ) +ADD_CUSTOM_TARGET(MaterialTestLib ALL + SOURCES ${MaterialTestLib_Files} +) ADD_CUSTOM_TARGET(MaterialModelLib ALL SOURCES ${MaterialModel_Files} ) @@ -279,6 +287,10 @@ fc_target_copy_resource(AppearanceLib ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_DATADIR}/Mod/Material/ ${AppearanceLib_Files}) +fc_target_copy_resource(MaterialTestLib + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_DATADIR}/Mod/Material/ + ${MaterialTestLib_Files}) fc_target_copy_resource(MaterialModelLib ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_DATADIR}/Mod/Material/ @@ -294,7 +306,7 @@ INSTALL( DESTINATION Mod/Material/materialtests ) -foreach(file ${MaterialLib_Files} ${FluidMaterial_Files} ${AppearanceLib_Files} ${MaterialModel_Files}) +foreach(file ${MaterialLib_Files} ${FluidMaterial_Files} ${AppearanceLib_Files} ${MaterialTestLib_Files} ${MaterialModel_Files}) get_filename_component(filepath ${file} DIRECTORY) INSTALL( FILES ${file} diff --git a/src/Mod/Material/Gui/AppMatGui.cpp b/src/Mod/Material/Gui/AppMatGui.cpp index b424067ca3..ee972b41f9 100644 --- a/src/Mod/Material/Gui/AppMatGui.cpp +++ b/src/Mod/Material/Gui/AppMatGui.cpp @@ -56,8 +56,7 @@ public: initialize("This module is the MatGui module."); // register with Python } - ~Module() override - {} + ~Module() = default; private: }; diff --git a/src/Mod/Material/Gui/Array2D.cpp b/src/Mod/Material/Gui/Array2D.cpp index 799dec92f2..194b5dfd36 100644 --- a/src/Mod/Material/Gui/Array2D.cpp +++ b/src/Mod/Material/Gui/Array2D.cpp @@ -99,7 +99,7 @@ void Array2D::setupDefault() try { const Materials::MaterialProperty& column1 = _property->getColumn(0); - QString label = tr("Default ") + column1.getName(); + QString label(tr("Default ") + column1.getName()); ui->labelDefault->setText(label); if (column1.getPropertyType() == QString::fromStdString("Quantity")) { ui->editDefault->setMinimum(std::numeric_limits::min()); diff --git a/src/Mod/Material/Gui/Array3D.h b/src/Mod/Material/Gui/Array3D.h index 3ea9ccf216..28903b31b9 100644 --- a/src/Mod/Material/Gui/Array3D.h +++ b/src/Mod/Material/Gui/Array3D.h @@ -26,6 +26,7 @@ #include #include #include + #include namespace MatGui diff --git a/src/Mod/Material/Gui/ArrayModel.cpp b/src/Mod/Material/Gui/ArrayModel.cpp index 8c1156faeb..7c420a3495 100644 --- a/src/Mod/Material/Gui/ArrayModel.cpp +++ b/src/Mod/Material/Gui/ArrayModel.cpp @@ -21,7 +21,6 @@ #include "PreCompiled.h" #ifndef _PreComp_ -#include #endif #include diff --git a/src/Mod/Material/Gui/CMakeLists.txt b/src/Mod/Material/Gui/CMakeLists.txt index 78b6fa0638..f464cfdcf3 100644 --- a/src/Mod/Material/Gui/CMakeLists.txt +++ b/src/Mod/Material/Gui/CMakeLists.txt @@ -40,9 +40,11 @@ set(MatGui_UIC_SRCS Array2D.ui Array3D.ui DlgSettingsMaterial.ui + ListEdit.ui MaterialSave.ui MaterialsEditor.ui ModelSelect.ui + TextEdit.ui ) SET(MatGui_SRCS @@ -63,6 +65,11 @@ SET(MatGui_SRCS DlgSettingsMaterial.cpp DlgSettingsMaterial.h DlgSettingsMaterial.ui + ListModel.cpp + ListModel.h + ListEdit.cpp + ListEdit.h + ListEdit.ui MaterialDelegate.cpp MaterialDelegate.h MaterialSave.cpp @@ -76,6 +83,9 @@ SET(MatGui_SRCS ModelSelect.ui PreCompiled.cpp PreCompiled.h + TextEdit.cpp + TextEdit.h + TextEdit.ui Workbench.cpp Workbench.h ) @@ -87,8 +97,10 @@ if(FREECAD_USE_PCH) endif(FREECAD_USE_PCH) SET(MatGuiIcon_SVG + Resources/icons/list.svg Resources/icons/Materials_Edit.svg Resources/icons/MaterialWorkbench.svg + Resources/icons/multiline.svg Resources/icons/preferences-material.svg Resources/icons/preview-rendered.svg Resources/icons/preview-vector.svg diff --git a/src/Mod/Material/Gui/ListEdit.cpp b/src/Mod/Material/Gui/ListEdit.cpp new file mode 100644 index 0000000000..415b8886f8 --- /dev/null +++ b/src/Mod/Material/Gui/ListEdit.cpp @@ -0,0 +1,196 @@ +/*************************************************************************** + * Copyright (c) 2023 David Carter * + * * + * This file is part of FreeCAD. * + * * + * FreeCAD is free software: you can redistribute it and/or modify it * + * under the terms of the GNU Lesser General Public License as * + * published by the Free Software Foundation, either version 2.1 of the * + * License, or (at your option) any later version. * + * * + * FreeCAD is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with FreeCAD. If not, see * + * . * + * * + **************************************************************************/ + +#include "PreCompiled.h" +#ifndef _PreComp_ +#include +#endif + +#include + +#include + +#include +#include + +#include "ArrayDelegate.h" +#include "ArrayModel.h" +#include "ListEdit.h" +#include "ListModel.h" +#include "ui_ListEdit.h" + + +using namespace MatGui; + +/* TRANSLATOR MatGui::ListEdit */ + +ListEdit::ListEdit(const QString& propertyName, + std::shared_ptr material, + QWidget* parent) + : QDialog(parent) + , ui(new Ui_ListEdit) + , _material(material) +{ + ui->setupUi(this); + + if (material->hasPhysicalProperty(propertyName)) { + _property = material->getPhysicalProperty(propertyName); + } + else if (material->hasAppearanceProperty(propertyName)) { + _property = material->getAppearanceProperty(propertyName); + } + else { + Base::Console().Log("Property '%s' not found\n", propertyName.toStdString().c_str()); + _property = nullptr; + } + if (_property) { + Base::Console().Log("Value type %d\n", + static_cast(_property->getMaterialValue()->getType())); + _value = _property->getList(); + } + else { + Base::Console().Log("No value loaded\n"); + } + // if (_value) { + // Base::Console().Log("Value type %d\n", static_cast(_value->getType())); + // } + + setupListView(); + + // ui->listView->setContextMenuPolicy(Qt::CustomContextMenu); + // connect(ui->listView, &QWidget::customContextMenuRequested, this, &ListEdit::onContextMenu); + + // _deleteAction.setText(tr("Delete row")); + // _deleteAction.setShortcut(Qt::Key_Delete); + // connect(&_deleteAction, &QAction::triggered, this, &ListEdit::onDelete); + // ui->listView->addAction(&_deleteAction); + + connect(ui->standardButtons, &QDialogButtonBox::accepted, this, &ListEdit::accept); + connect(ui->standardButtons, &QDialogButtonBox::rejected, this, &ListEdit::reject); +} + +void ListEdit::setColumnDelegates(QListView* list) +{ + int length = _property->columns(); + for (int i = 0; i < length; i++) { + const Materials::MaterialProperty& column = _property->getColumn(i); + list->setItemDelegateForColumn( + i, + new ArrayDelegate(column.getType(), column.getUnits(), this)); + } +} + +void ListEdit::setupListView() +{ + if (_property == nullptr) { + return; + } + + auto list = ui->listView; + auto model = new ListModel(_property, _value, this); + list->setModel(model); + // table->setEditTriggers(QAbstractItemView::AllEditTriggers); + list->setSelectionMode(QAbstractItemView::SingleSelection); + + // setColumnWidths(list); + // setColumnDelegates(list); + connect(model, &QAbstractItemModel::dataChanged, this, &ListEdit::onDataChanged); +} + +void ListEdit::onDataChanged(const QModelIndex& topLeft, + const QModelIndex& bottomRight, + const QVector& roles) +{ + Q_UNUSED(topLeft) + Q_UNUSED(bottomRight) + Q_UNUSED(roles) + + _material->setEditStateAlter(); +} + +bool ListEdit::newRow(const QModelIndex& index) +{ + ListModel* model = static_cast(ui->listView->model()); + return model->newRow(index); +} + +void ListEdit::onDelete(bool checked) +{ + Q_UNUSED(checked) + + Base::Console().Log("ListEdit::onDelete()\n"); + QItemSelectionModel* selectionModel = ui->listView->selectionModel(); + if (!selectionModel->hasSelection() || newRow(selectionModel->currentIndex())) { + Base::Console().Log("\tNothing selected\n"); + return; + } + + int res = confirmDelete(); + if (res == QMessageBox::Cancel) { + return; + } +} + +int ListEdit::confirmDelete() +{ + QMessageBox box(this); + box.setIcon(QMessageBox::Question); + box.setWindowTitle(QObject::tr("Confirm Delete")); + + QString prompt = QObject::tr("Are you sure you want to delete the row?"); + box.setText(prompt); + + box.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel); + box.setDefaultButton(QMessageBox::Cancel); + box.setEscapeButton(QMessageBox::Cancel); + + int res = QMessageBox::Cancel; + box.adjustSize(); // Silence warnings from Qt on Windows + switch (box.exec()) { + case QMessageBox::Ok: + deleteSelected(); + res = QMessageBox::Ok; + break; + } + + return res; +} + +void ListEdit::deleteSelected() +{ + ListModel* model = static_cast(ui->listView->model()); + QItemSelectionModel* selectionModel = ui->listView->selectionModel(); + auto index = selectionModel->currentIndex(); + model->deleteRow(index); +} + +void ListEdit::accept() +{ + _property->setList(_value); + QDialog::accept(); +} + +void ListEdit::reject() +{ + QDialog::reject(); +} + +#include "moc_ListEdit.cpp" diff --git a/src/Mod/Material/Gui/ListEdit.h b/src/Mod/Material/Gui/ListEdit.h new file mode 100644 index 0000000000..af1d6ad8d8 --- /dev/null +++ b/src/Mod/Material/Gui/ListEdit.h @@ -0,0 +1,82 @@ +/*************************************************************************** + * Copyright (c) 2023 David Carter * + * * + * This file is part of FreeCAD. * + * * + * FreeCAD is free software: you can redistribute it and/or modify it * + * under the terms of the GNU Lesser General Public License as * + * published by the Free Software Foundation, either version 2.1 of the * + * License, or (at your option) any later version. * + * * + * FreeCAD is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with FreeCAD. If not, see * + * . * + * * + **************************************************************************/ + +#ifndef MATGUI_LISTEDIT_H +#define MATGUI_LISTEDIT_H + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "ListModel.h" + +namespace MatGui +{ + +class Ui_ListEdit; + +class ListEdit: public QDialog +{ + Q_OBJECT + +public: + ListEdit(const QString& propertyName, + std::shared_ptr material, + QWidget* parent = nullptr); + ~ListEdit() override = default; + + void onDataChanged(const QModelIndex& topLeft, + const QModelIndex& bottomRight, + const QVector& roles = QVector()); + void defaultValueChanged(const Base::Quantity& value); + void onDelete(bool checked); + void onContextMenu(const QPoint& pos); + + void accept() override; + void reject() override; + +private: + std::unique_ptr ui; + std::shared_ptr _material; + std::shared_ptr _property; + QList _value; + + QAction _deleteAction; + + void setColumnDelegates(QListView* list); + void setupListView(); + + bool newRow(const QModelIndex& index); + int confirmDelete(); + void deleteSelected(); +}; + +} // namespace MatGui + +#endif // MATGUI_LISTEDIT_H diff --git a/src/Mod/Material/Gui/ListEdit.ui b/src/Mod/Material/Gui/ListEdit.ui new file mode 100644 index 0000000000..55b634faed --- /dev/null +++ b/src/Mod/Material/Gui/ListEdit.ui @@ -0,0 +1,67 @@ + + + MatGui::ListEdit + + + + 0 + 0 + 400 + 300 + + + + List Edit + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + standardButtons + accepted() + MatGui::ListEdit + accept() + + + 248 + 254 + + + 157 + 274 + + + + + standardButtons + rejected() + MatGui::ListEdit + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/Mod/Material/Gui/ListModel.cpp b/src/Mod/Material/Gui/ListModel.cpp new file mode 100644 index 0000000000..1f977fe13d --- /dev/null +++ b/src/Mod/Material/Gui/ListModel.cpp @@ -0,0 +1,142 @@ +/*************************************************************************** + * Copyright (c) 2023 David Carter * + * * + * This file is part of FreeCAD. * + * * + * FreeCAD is free software: you can redistribute it and/or modify it * + * under the terms of the GNU Lesser General Public License as * + * published by the Free Software Foundation, either version 2.1 of the * + * License, or (at your option) any later version. * + * * + * FreeCAD is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with FreeCAD. If not, see * + * . * + * * + **************************************************************************/ + +#include "PreCompiled.h" +#ifndef _PreComp_ +#endif + +#include + +#include +#include +#include + +#include +#include + +#include "ListModel.h" + + +using namespace MatGui; + +/* TRANSLATOR MatGui::ArrayModel */ + +ListModel::ListModel() +{} + +ListModel::ListModel(std::shared_ptr property, + QList& value, + QObject* parent) + : QAbstractListModel(parent) + , _property(property) + , _valuePtr(&value) +{} + +int ListModel::rowCount(const QModelIndex& parent) const +{ + if (parent.isValid()) { + return 0; // No children + } + + return _valuePtr->size() + 1; // Will always have 1 empty row +} + +bool ListModel::newRow(const QModelIndex& index) const +{ + return (index.row() == _valuePtr->size()); +} + +void ListModel::deleteRow(const QModelIndex& index) +{ + removeRows(index.row(), 1); + Q_EMIT dataChanged(index, index); +} + +QVariant ListModel::data(const QModelIndex& index, int role) const +{ + if (role == Qt::DisplayRole) { + if (index.row() < _valuePtr->size()) { + return _valuePtr->at(index.row()); + } + } + + return QVariant(); +} + +QVariant ListModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + // if (role == Qt::DisplayRole) { + // if (orientation == Qt::Horizontal) { + // const Materials::MaterialProperty& column = _property->getColumn(section); + // return QVariant(column.getName()); + // } + // else if (orientation == Qt::Vertical) { + // // Vertical header + // if (section == (rowCount() - 1)) { + // return QVariant(QString::fromStdString("*")); + // } + // return QVariant(section + 1); + // } + // } + + return QAbstractListModel::headerData(section, orientation, role); +} + +bool ListModel::setData(const QModelIndex& index, const QVariant& value, int role) +{ + Q_UNUSED(role); + + if (index.row() == _valuePtr->size()) { + insertRows(index.row(), 1); + } + (*_valuePtr)[index.row()] = value; + + Q_EMIT dataChanged(index, index); + return true; +} + +Qt::ItemFlags ListModel::flags(const QModelIndex& index) const +{ + return (QAbstractListModel::flags(index) | Qt::ItemIsEditable); +} + + +// Resizing functions +bool ListModel::insertRows(int row, int count, const QModelIndex& parent) +{ + beginInsertRows(parent, row, row + count - 1); + + QVariant newRow = QString(); + _valuePtr->insert(row, newRow); + + endInsertRows(); + + return false; +} + +bool ListModel::removeRows(int row, int count, const QModelIndex& parent) +{ + beginRemoveRows(parent, row, row + count - 1); + + _valuePtr->removeAt(row); + + return false; +} diff --git a/src/Mod/Material/Gui/ListModel.h b/src/Mod/Material/Gui/ListModel.h new file mode 100644 index 0000000000..99f7a79b7e --- /dev/null +++ b/src/Mod/Material/Gui/ListModel.h @@ -0,0 +1,69 @@ +/*************************************************************************** + * Copyright (c) 2023 David Carter * + * * + * This file is part of FreeCAD. * + * * + * FreeCAD is free software: you can redistribute it and/or modify it * + * under the terms of the GNU Lesser General Public License as * + * published by the Free Software Foundation, either version 2.1 of the * + * License, or (at your option) any later version. * + * * + * FreeCAD is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with FreeCAD. If not, see * + * . * + * * + **************************************************************************/ + +#ifndef MATGUI_LISTMODEL_H +#define MATGUI_LISTMODEL_H + +#include + +#include +#include +#include +#include +#include + +#include +#include + +namespace MatGui +{ + +class ListModel: public QAbstractListModel +{ +public: + ListModel(); + ListModel(std::shared_ptr property, + QList& value, + QObject* parent = nullptr); + ~ListModel() override = default; + + // Overridden virtual functions + int rowCount(const QModelIndex& parent = QModelIndex()) const override; + bool newRow(const QModelIndex& index) const; + void deleteRow(const QModelIndex& index); + QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override; + QVariant + headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; + bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override; + Qt::ItemFlags flags(const QModelIndex& index) const override; + + // Resizing functions + bool insertRows(int row, int count, const QModelIndex& parent = QModelIndex()) override; + bool removeRows(int row, int count, const QModelIndex& parent = QModelIndex()) override; + +private: + std::shared_ptr _property; + QList* _valuePtr; +}; + +} // namespace MatGui + +#endif // MATGUI_LISTMODEL_H diff --git a/src/Mod/Material/Gui/MaterialDelegate.cpp b/src/Mod/Material/Gui/MaterialDelegate.cpp index ee9d4b7144..f451ac58d3 100644 --- a/src/Mod/Material/Gui/MaterialDelegate.cpp +++ b/src/Mod/Material/Gui/MaterialDelegate.cpp @@ -49,8 +49,10 @@ #include "Array2D.h" #include "Array3D.h" +#include "ListEdit.h" #include "MaterialDelegate.h" #include "MaterialSave.h" +#include "TextEdit.h" using namespace MatGui; @@ -92,6 +94,18 @@ bool MaterialDelegate::editorEvent(QEvent* event, // Mark as handled return true; } + else if (type == "MultiLineString") { + Base::Console().Log("Edit List\n"); + showMultiLineString(propertyName, item); + // Mark as handled + return true; + } + else if (type == "List") { + Base::Console().Log("Edit List\n"); + showListModal(propertyName, item); + // Mark as handled + return true; + } else if (type == "2DArray") { Base::Console().Log("Edit 2DArray\n"); showArray2DModal(propertyName, item); @@ -145,6 +159,43 @@ void MaterialDelegate::showColorModal(QStandardItem* item, QString propertyName) dlg->exec(); } +void MaterialDelegate::showListModal(const QString& propertyName, QStandardItem* item) +{ + auto material = item->data().value>(); + auto dlg = new ListEdit(propertyName, material); + + dlg->setAttribute(Qt::WA_DeleteOnClose); + + dlg->adjustSize(); + + connect(dlg, &QDialog::finished, this, [&](int result) { + if (result == QDialog::Accepted) { + Base::Console().Log("Accepted\n"); + } + }); + + dlg->exec(); +} + +void MaterialDelegate::showMultiLineString(const QString& propertyName, QStandardItem* item) +{ + auto material = item->data().value>(); + TextEdit* dlg = new TextEdit(propertyName, material); + + dlg->setAttribute(Qt::WA_DeleteOnClose); + + dlg->adjustSize(); + + connect(dlg, &QDialog::finished, this, [&](int result) { + if (result == QDialog::Accepted) { + Base::Console().Log("Accepted\n"); + } + }); + + dlg->exec(); +} + + void MaterialDelegate::showArray2DModal(const QString& propertyName, QStandardItem* item) { auto material = item->data().value>(); @@ -234,6 +285,38 @@ void MaterialDelegate::paint(QPainter* painter, painter->restore(); return; } + else if (type == "MultiLineString") { + painter->save(); + + QImage table(QString::fromStdString(":/icons/multiline.svg")); + QRect target(option.rect); + if (target.width() > target.height()) { + target.setWidth(target.height()); + } + else { + target.setHeight(target.width()); + } + painter->drawImage(target, table, table.rect()); + + painter->restore(); + return; + } + else if (type == "List") { + painter->save(); + + QImage table(QString::fromStdString(":/icons/list.svg")); + QRect target(option.rect); + if (target.width() > target.height()) { + target.setWidth(target.height()); + } + else { + target.setHeight(target.width()); + } + painter->drawImage(target, table, table.rect()); + + painter->restore(); + return; + } else if (type == "2DArray" || type == "3DArray") { // painter->save(); @@ -280,7 +363,8 @@ QSize MaterialDelegate::sizeHint(const QStyleOptionViewItem& option, const QMode if (type == "Color") { return QSize(75, 23); // Standard QPushButton size } - else if (type == "2DArray" || type == "3DArray") { + else if (type == "2DArray" || type == "3DArray" || type == "MultiLineString" + || type == "List") { return QSize(23, 23); } @@ -387,14 +471,14 @@ QWidget* MaterialDelegate::createWidget(QWidget* parent, QWidget* widget = nullptr; std::string type = propertyType.toStdString(); - if (type == "String" || type == "URL" || type == "Vector") { + if (type == "String" || type == "URL" || type == "List") { widget = new Gui::PrefLineEdit(parent); } else if ((type == "Integer") || (type == "Int")) { - Gui::UIntSpinBox* spinner = new Gui::UIntSpinBox(parent); + Gui::IntSpinBox* spinner = new Gui::IntSpinBox(parent); spinner->setMinimum(0); - spinner->setMaximum(UINT_MAX); - spinner->setValue(propertyValue.toUInt()); + spinner->setMaximum(INT_MAX); + spinner->setValue(propertyValue.toInt()); widget = spinner; } else if (type == "Float") { diff --git a/src/Mod/Material/Gui/MaterialDelegate.h b/src/Mod/Material/Gui/MaterialDelegate.h index 294c520fd3..0d389c7113 100644 --- a/src/Mod/Material/Gui/MaterialDelegate.h +++ b/src/Mod/Material/Gui/MaterialDelegate.h @@ -73,6 +73,8 @@ private: const QString& propertyUnits) const; QRgb parseColor(const QString& color) const; void showColorModal(QStandardItem* item, QString propertyName); + void showListModal(const QString& propertyName, QStandardItem* item); + void showMultiLineString(const QString& propertyName, QStandardItem* item); void showArray2DModal(const QString& propertyName, QStandardItem* item); void showArray3DModal(const QString& propertyName, QStandardItem* item); }; diff --git a/src/Mod/Material/Gui/MaterialSave.cpp b/src/Mod/Material/Gui/MaterialSave.cpp index 853c973ea2..df344b7ea8 100644 --- a/src/Mod/Material/Gui/MaterialSave.cpp +++ b/src/Mod/Material/Gui/MaterialSave.cpp @@ -287,7 +287,7 @@ void MaterialSave::reject() void MaterialSave::setLibraries() { auto libraries = _manager.getMaterialLibraries(); - for (auto library : *libraries) { + for (auto& library : *libraries) { if (!library->isReadOnly()) { QVariant libraryVariant; libraryVariant.setValue(library); @@ -345,7 +345,6 @@ void MaterialSave::addMaterials( node->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled | Qt::ItemIsEditable); addExpanded(tree, &parent, node); - auto treeMap = nodePtr->getFolder(); addMaterials(*node, treeMap, folderIcon, icon); } diff --git a/src/Mod/Material/Gui/MaterialTreeView.h b/src/Mod/Material/Gui/MaterialTreeView.h deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/Mod/Material/Gui/MaterialsEditor.cpp b/src/Mod/Material/Gui/MaterialsEditor.cpp index c3c15c6b2a..91b059da9e 100644 --- a/src/Mod/Material/Gui/MaterialsEditor.cpp +++ b/src/Mod/Material/Gui/MaterialsEditor.cpp @@ -77,6 +77,14 @@ MaterialsEditor::MaterialsEditor(QWidget* parent) createPreviews(); setMaterialDefaults(); + // Reset to previous size + auto param = App::GetApplication().GetParameterGroupByPath( + "User parameter:BaseApp/Preferences/Mod/Material/Editor"); + auto width = param->GetInt("EditorWidth", 835); + auto height = param->GetInt("EditorHeight", 542); + + resize(width, height); + ui->buttonURL->setIcon(QIcon(QString::fromStdString(":/icons/internet-web-browser.svg"))); connect(ui->standardButtons->button(QDialogButtonBox::Ok), @@ -166,7 +174,7 @@ void MaterialsEditor::saveFavorites() // Add the current values param->SetInt("Favorites", _favorites.size()); int j = 0; - for (auto favorite : _favorites) { + for (auto& favorite : _favorites) { QString key = QString::fromLatin1("FAV%1").arg(j); param->SetASCII(key.toStdString().c_str(), favorite.toStdString()); @@ -203,7 +211,7 @@ void MaterialsEditor::removeFavorite(const QString& uuid) bool MaterialsEditor::isFavorite(const QString& uuid) const { - for (auto it : _favorites) { + for (auto& it : _favorites) { if (it == uuid) { return true; } @@ -246,7 +254,7 @@ void MaterialsEditor::saveRecents() } param->SetInt("Recent", size); int j = 0; - for (auto recent : _recents) { + for (auto& recent : _recents) { QString key = QString::fromLatin1("MRU%1").arg(j); param->SetASCII(key.toStdString().c_str(), recent.toStdString()); @@ -283,7 +291,7 @@ void MaterialsEditor::addRecent(const QString& uuid) bool MaterialsEditor::isRecent(const QString& uuid) const { - for (auto it : _recents) { + for (auto& it : _recents) { if (it == uuid) { return true; } @@ -546,14 +554,42 @@ void MaterialsEditor::saveMaterial() void MaterialsEditor::accept() { addRecent(_material->getUUID()); + saveWindow(); QDialog::accept(); } void MaterialsEditor::reject() { + saveWindow(); QDialog::reject(); } +void MaterialsEditor::saveWindow() +{ + auto param = App::GetApplication().GetParameterGroupByPath( + "User parameter:BaseApp/Preferences/Mod/Material/Editor"); + param->SetInt("EditorWidth", width()); + param->SetInt("EditorHeight", height()); + + // int count = param->GetInt("Favorites", 0); + // for (int i = 0; i < count; i++) { + // QString key = QString::fromLatin1("FAV%1").arg(i); + // QString uuid = QString::fromStdString(param->GetASCII(key.toStdString().c_str(), "")); + // _favorites.push_back(uuid); + // } +} + +// def storeSize(self): +// "stores the widget size" +// #store widths +// p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Material") +// p.SetInt("MaterialEditorWidth", self.widget.width()) +// p.SetInt("MaterialEditorHeight", self.widget.height()) +// root = self.widget.treeView.model().invisibleRootItem() +// for gg in range(root.rowCount()): +// group = root.child(gg) +// p.SetBool("TreeExpand"+group.text(), self.widget.treeView.isExpanded(group.index())) + // QIcon MaterialsEditor::errorIcon(const QIcon &icon) const { // auto pixmap = icon.pixmap(); // } @@ -631,7 +667,6 @@ void MaterialsEditor::createPhysicalTree() // connect(selectionModel, // &QItemSelectionModel::selectionChanged, // this, - // &MaterialsEditor::onSelectPhysicalProperty); } void MaterialsEditor::createPreviews() diff --git a/src/Mod/Material/Gui/MaterialsEditor.h b/src/Mod/Material/Gui/MaterialsEditor.h index 1addd48314..94bc86d48a 100644 --- a/src/Mod/Material/Gui/MaterialsEditor.h +++ b/src/Mod/Material/Gui/MaterialsEditor.h @@ -106,6 +106,8 @@ private: std::list _recents; int _recentMax; + void saveWindow(); + void getFavorites(); void saveFavorites(); void addFavorite(const QString& uuid); diff --git a/src/Mod/Material/Gui/ModelSelect.cpp b/src/Mod/Material/Gui/ModelSelect.cpp index ffd0e60502..61b9543d2e 100644 --- a/src/Mod/Material/Gui/ModelSelect.cpp +++ b/src/Mod/Material/Gui/ModelSelect.cpp @@ -104,7 +104,7 @@ void ModelSelect::saveFavorites() // Add the current values param->SetInt("Favorites", _favorites.size()); int j = 0; - for (auto favorite : _favorites) { + for (auto& favorite : _favorites) { QString key = QString::fromLatin1("FAV%1").arg(j); param->SetASCII(key.toStdString().c_str(), favorite.toStdString()); @@ -132,7 +132,7 @@ void ModelSelect::removeFavorite(const QString& uuid) bool ModelSelect::isFavorite(const QString& uuid) const { - for (auto it : _favorites) { + for (auto& it : _favorites) { if (it == uuid) { return true; } @@ -175,7 +175,7 @@ void ModelSelect::saveRecents() } param->SetInt("Recent", size); int j = 0; - for (auto recent : _recents) { + for (auto& recent : _recents) { QString key = QString::fromLatin1("MRU%1").arg(j); param->SetASCII(key.toStdString().c_str(), recent.toStdString()); @@ -203,7 +203,7 @@ void ModelSelect::addRecent(const QString& uuid) bool ModelSelect::isRecent(const QString& uuid) const { - for (auto it : _recents) { + for (auto& it : _recents) { if (it == uuid) { return true; } @@ -340,7 +340,7 @@ void ModelSelect::fillTree() addRecents(lib); auto libraries = getModelManager().getModelLibraries(); - for (auto library : *libraries) { + for (auto& library : *libraries) { lib = new QStandardItem(library->getName()); lib->setFlags(Qt::ItemIsEnabled | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled); addExpanded(tree, model, lib); diff --git a/src/Mod/Material/Gui/Resources/Material.qrc b/src/Mod/Material/Gui/Resources/Material.qrc index 467818d552..787acf876c 100644 --- a/src/Mod/Material/Gui/Resources/Material.qrc +++ b/src/Mod/Material/Gui/Resources/Material.qrc @@ -1,7 +1,9 @@ + icons/list.svg icons/MaterialWorkbench.svg icons/Materials_Edit.svg + icons/multiline.svg icons/preferences-material.svg icons/preview-rendered.svg icons/preview-vector.svg diff --git a/src/Mod/Material/Gui/Resources/icons/list.svg b/src/Mod/Material/Gui/Resources/icons/list.svg new file mode 100644 index 0000000000..73e381cb6a --- /dev/null +++ b/src/Mod/Material/Gui/Resources/icons/list.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/Material/Gui/Resources/icons/multiline.svg b/src/Mod/Material/Gui/Resources/icons/multiline.svg new file mode 100644 index 0000000000..f79e5cb56e --- /dev/null +++ b/src/Mod/Material/Gui/Resources/icons/multiline.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + diff --git a/src/Mod/Material/Gui/TextEdit.cpp b/src/Mod/Material/Gui/TextEdit.cpp new file mode 100644 index 0000000000..fab8df8f10 --- /dev/null +++ b/src/Mod/Material/Gui/TextEdit.cpp @@ -0,0 +1,94 @@ +/*************************************************************************** + * Copyright (c) 2023 David Carter * + * * + * This file is part of FreeCAD. * + * * + * FreeCAD is free software: you can redistribute it and/or modify it * + * under the terms of the GNU Lesser General Public License as * + * published by the Free Software Foundation, either version 2.1 of the * + * License, or (at your option) any later version. * + * * + * FreeCAD is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with FreeCAD. If not, see * + * . * + * * + **************************************************************************/ + +#include "PreCompiled.h" +#ifndef _PreComp_ +#include +#endif + +#include + +#include + +#include +#include + +#include "TextEdit.h" +#include "ui_TextEdit.h" + + +using namespace MatGui; + +/* TRANSLATOR MatGui::TextEdit */ + +TextEdit::TextEdit(const QString& propertyName, + std::shared_ptr material, + QWidget* parent) + : QDialog(parent) + , ui(new Ui_TextEdit) + , _material(material) +{ + ui->setupUi(this); + + if (material->hasPhysicalProperty(propertyName)) { + _property = material->getPhysicalProperty(propertyName); + } + else if (material->hasAppearanceProperty(propertyName)) { + _property = material->getAppearanceProperty(propertyName); + } + else { + Base::Console().Log("Property '%s' not found\n", propertyName.toStdString().c_str()); + _property = nullptr; + } + if (_property) { + Base::Console().Log("Value type %d\n", + static_cast(_property->getMaterialValue()->getType())); + _value = _property->getString(); + } + else { + Base::Console().Log("No value loaded\n"); + _value = QString(); + } + + ui->textEdit->setText(_value); + ui->textEdit->setAcceptRichText(false); + ui->textEdit->setWordWrapMode(QTextOption::NoWrap); + + connect(ui->standardButtons, &QDialogButtonBox::accepted, this, &TextEdit::accept); + connect(ui->standardButtons, &QDialogButtonBox::rejected, this, &TextEdit::reject); +} + +void TextEdit::accept() +{ + QString newText = ui->textEdit->toPlainText(); + if (newText != _value) { + _property->setValue(ui->textEdit->toPlainText()); + _material->setEditStateAlter(); + } + QDialog::accept(); +} + +void TextEdit::reject() +{ + QDialog::reject(); +} + +#include "moc_TextEdit.cpp" diff --git a/src/Mod/Material/Gui/TextEdit.h b/src/Mod/Material/Gui/TextEdit.h new file mode 100644 index 0000000000..f505d645d5 --- /dev/null +++ b/src/Mod/Material/Gui/TextEdit.h @@ -0,0 +1,66 @@ +/*************************************************************************** + * Copyright (c) 2023 David Carter * + * * + * This file is part of FreeCAD. * + * * + * FreeCAD is free software: you can redistribute it and/or modify it * + * under the terms of the GNU Lesser General Public License as * + * published by the Free Software Foundation, either version 2.1 of the * + * License, or (at your option) any later version. * + * * + * FreeCAD is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with FreeCAD. If not, see * + * . * + * * + **************************************************************************/ + +#ifndef MATGUI_TEXTEDIT_H +#define MATGUI_TEXTEDIT_H + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "ArrayModel.h" + +namespace MatGui +{ + +class Ui_TextEdit; + +class TextEdit: public QDialog +{ + Q_OBJECT + +public: + TextEdit(const QString& propertyName, + std::shared_ptr material, + QWidget* parent = nullptr); + ~TextEdit() override = default; + + void accept() override; + void reject() override; + +private: + std::unique_ptr ui; + std::shared_ptr _material; + std::shared_ptr _property; + QString _value; +}; + +} // namespace MatGui + +#endif // MATGUI_TEXTEDIT_H diff --git a/src/Mod/Material/Gui/TextEdit.ui b/src/Mod/Material/Gui/TextEdit.ui new file mode 100644 index 0000000000..c369fc5e17 --- /dev/null +++ b/src/Mod/Material/Gui/TextEdit.ui @@ -0,0 +1,67 @@ + + + MatGui::TextEdit + + + + 0 + 0 + 400 + 300 + + + + Text Edit + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + standardButtons + accepted() + MatGui::TextEdit + accept() + + + 248 + 254 + + + 157 + 274 + + + + + standardButtons + rejected() + MatGui::TextEdit + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/Mod/Material/Resources/Materials/Appearance/Aluminum.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Aluminum.FCMat index df4bfa6d55..b5890f0c7d 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Aluminum.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Aluminum.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "d1f317f0-5ffa-4798-8ab3-af2ff0b5182c" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Brass.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Brass.FCMat index 7c84d933f4..9e9a4f71f3 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Brass.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Brass.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "4151e19c-fd6a-4ca4-83d4-d5e17d76cb9c" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Bronze.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Bronze.FCMat index 18f0b94a57..cf899fce5d 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Bronze.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Bronze.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "ae194589-02d4-4e9b-98a7-f523f660d510" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Chrome.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Chrome.FCMat index 646c2d8891..092797a77f 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Chrome.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Chrome.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "a9544b88-dde7-4d05-9bdb-c008a4e88dc1" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Copper.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Copper.FCMat index 2e04a10667..d9032713a2 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Copper.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Copper.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "524cad9b-b841-4037-9851-badeca7dcee2" diff --git a/src/Mod/Material/Resources/Materials/Appearance/DefaultAppearance.FCMat b/src/Mod/Material/Resources/Materials/Appearance/DefaultAppearance.FCMat index 9c6eb2f497..44ce8d6970 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/DefaultAppearance.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/DefaultAppearance.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "5dbb7be6-8b63-479b-ab4c-87be02ead973" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Emerald.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Emerald.FCMat index 519b79bdd6..a48d5dea8b 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Emerald.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Emerald.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "54def35f-a6bf-472e-8410-dc9fb4b143cf" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Gold.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Gold.FCMat index 4805837cf3..f1dec2bc15 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Gold.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Gold.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "85257e2c-be3f-40a1-b03f-0bd4ba58ca08" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Jade.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Jade.FCMat index af9b12ceeb..cfb5fc91e8 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Jade.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Jade.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "cddfa21f-0715-49dd-b35b-951c076fa52c" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Metalized.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Metalized.FCMat index 9c9d2feb2d..156f9243ee 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Metalized.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Metalized.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "d149a177-07f1-4e53-9bad-0b5bf0663600" diff --git a/src/Mod/Material/Resources/Materials/Appearance/NeonGNC.FCMat b/src/Mod/Material/Resources/Materials/Appearance/NeonGNC.FCMat index 00a226c0ca..fd3a0e6d54 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/NeonGNC.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/NeonGNC.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "c0341eef-0897-4fcf-a7f7-eddf1a2600a5" diff --git a/src/Mod/Material/Resources/Materials/Appearance/NeonPHC.FCMat b/src/Mod/Material/Resources/Materials/Appearance/NeonPHC.FCMat index ea1473d575..fd68737f48 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/NeonPHC.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/NeonPHC.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "add2d6b2-c8fb-4777-a80a-52bae97300ae" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Obsidian.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Obsidian.FCMat index 3496efb8ea..7fcfacb3d9 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Obsidian.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Obsidian.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "a004c270-7d2c-4898-bec6-b1120edacea9" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Pewter.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Pewter.FCMat index b263611987..cba68a4d1f 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Pewter.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Pewter.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "a61853b9-ec9f-403e-9726-0a938731aecd" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Plaster.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Plaster.FCMat index d969f84f02..364174637f 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Plaster.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Plaster.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "569dccb6-c64b-4dd0-9d3c-1b78f40ad1a5" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Plastic.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Plastic.FCMat index efcc9df554..350229f4b7 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Plastic.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Plastic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "a74622cd-0e2d-4a96-b8c4-fefcc82ac694" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Ruby.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Ruby.FCMat index eac38bb236..84957fbcb3 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Ruby.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Ruby.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "953261a0-cc48-41f8-a3f9-7b20ae3f9b56" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Satin.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Satin.FCMat index 211f1441df..0a3e217070 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Satin.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Satin.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "951b54ae-86b6-46d2-b452-60bd6a3ba1bb" diff --git a/src/Mod/Material/Resources/Materials/Appearance/ShinyPlastic.FCMat b/src/Mod/Material/Resources/Materials/Appearance/ShinyPlastic.FCMat index 221be76449..9ed8046d50 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/ShinyPlastic.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/ShinyPlastic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "591c4c4a-22ba-4a9a-869d-e5610107d69a" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Silver.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Silver.FCMat index dbdedc9a27..b81a27c0cf 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Silver.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Silver.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "62839fb0-d854-4b44-92df-b7249213de49" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Steel.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Steel.FCMat index bc9e1acc99..4f9d87e579 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Steel.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Steel.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "4b849c55-6b3a-4f75-a055-40c0d0324596" diff --git a/src/Mod/Material/Resources/Materials/Appearance/Stone.FCMat b/src/Mod/Material/Resources/Materials/Appearance/Stone.FCMat index 74436298ba..42e3361f93 100644 --- a/src/Mod/Material/Resources/Materials/Appearance/Stone.FCMat +++ b/src/Mod/Material/Resources/Materials/Appearance/Stone.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "a9f54d61-cc98-46df-8734-b0543ceb4e45" diff --git a/src/Mod/Material/Resources/Materials/FluidMaterial/Air.FCMat b/src/Mod/Material/Resources/Materials/Fluid/Air.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/FluidMaterial/Air.FCMat rename to src/Mod/Material/Resources/Materials/Fluid/Air.FCMat index 025c280566..810584ac49 100644 --- a/src/Mod/Material/Resources/Materials/FluidMaterial/Air.FCMat +++ b/src/Mod/Material/Resources/Materials/Fluid/Air.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "94370b96-c97e-4a3f-83b2-11d7461f7da7" diff --git a/src/Mod/Material/Resources/Materials/FluidMaterial/Argon.FCMat b/src/Mod/Material/Resources/Materials/Fluid/Argon.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/FluidMaterial/Argon.FCMat rename to src/Mod/Material/Resources/Materials/Fluid/Argon.FCMat index 235f07091c..a4cfd2c195 100644 --- a/src/Mod/Material/Resources/Materials/FluidMaterial/Argon.FCMat +++ b/src/Mod/Material/Resources/Materials/Fluid/Argon.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "e359c5b5-eae2-42b1-9ef6-edde21d706ee" diff --git a/src/Mod/Material/Resources/Materials/FluidMaterial/Carbon_dioxide.FCMat b/src/Mod/Material/Resources/Materials/Fluid/Carbon_dioxide.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/FluidMaterial/Carbon_dioxide.FCMat rename to src/Mod/Material/Resources/Materials/Fluid/Carbon_dioxide.FCMat index fdfc5a94c9..c9535fe16b 100644 --- a/src/Mod/Material/Resources/Materials/FluidMaterial/Carbon_dioxide.FCMat +++ b/src/Mod/Material/Resources/Materials/Fluid/Carbon_dioxide.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "ef0e4040-a498-48c3-a87b-e996bfd89195" diff --git a/src/Mod/Material/Resources/Materials/FluidMaterial/Nitrogen.FCMat b/src/Mod/Material/Resources/Materials/Fluid/Nitrogen.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/FluidMaterial/Nitrogen.FCMat rename to src/Mod/Material/Resources/Materials/Fluid/Nitrogen.FCMat index d7c81bea31..e54734c87f 100644 --- a/src/Mod/Material/Resources/Materials/FluidMaterial/Nitrogen.FCMat +++ b/src/Mod/Material/Resources/Materials/Fluid/Nitrogen.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "8d02a797-5e0a-4e40-803a-75fc66de8de6" diff --git a/src/Mod/Material/Resources/Materials/FluidMaterial/None.FCMat b/src/Mod/Material/Resources/Materials/Fluid/None.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/FluidMaterial/None.FCMat rename to src/Mod/Material/Resources/Materials/Fluid/None.FCMat index 8497cd58bb..7cb03480f4 100644 --- a/src/Mod/Material/Resources/Materials/FluidMaterial/None.FCMat +++ b/src/Mod/Material/Resources/Materials/Fluid/None.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "944a8018-09bf-48f6-a7b3-aa8f6a00a310" diff --git a/src/Mod/Material/Resources/Materials/FluidMaterial/Water.FCMat b/src/Mod/Material/Resources/Materials/Fluid/Water.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/FluidMaterial/Water.FCMat rename to src/Mod/Material/Resources/Materials/Fluid/Water.FCMat index 6f0fe7c6dc..3c72c32c5f 100644 --- a/src/Mod/Material/Resources/Materials/FluidMaterial/Water.FCMat +++ b/src/Mod/Material/Resources/Materials/Fluid/Water.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "7e5559d5-be15-4571-a72f-20c39edd41cf" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Aggregate/Concrete-EN-C35_45.FCMat b/src/Mod/Material/Resources/Materials/Standard/Aggregate/Concrete-EN-C35_45.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Aggregate/Concrete-EN-C35_45.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Aggregate/Concrete-EN-C35_45.FCMat index 281b959ca6..320142958a 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Aggregate/Concrete-EN-C35_45.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Aggregate/Concrete-EN-C35_45.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "dba76940-a910-4a3b-ab73-a9f412ac69d9" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Aggregate/Concrete-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Aggregate/Concrete-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Aggregate/Concrete-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Aggregate/Concrete-Generic.FCMat index 72e4c9af4a..e1e7659cbe 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Aggregate/Concrete-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Aggregate/Concrete-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "26042aa5-56e6-4d99-8b63-dd8b9ea5a37a" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Aggregate/Reinforcement-FIB-B500.FCMat b/src/Mod/Material/Resources/Materials/Standard/Aggregate/Reinforcement-FIB-B500.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Aggregate/Reinforcement-FIB-B500.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Aggregate/Reinforcement-FIB-B500.FCMat index 70e70e1916..c3ce9e15ee 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Aggregate/Reinforcement-FIB-B500.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Aggregate/Reinforcement-FIB-B500.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "57507cd4-d22f-4d86-9794-fdb1ec8cd098" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Carbon/Graphite.FCMat b/src/Mod/Material/Resources/Materials/Standard/Carbon/Graphite.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Carbon/Graphite.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Carbon/Graphite.FCMat index 5983299e4a..5ec38d2800 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Carbon/Graphite.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Carbon/Graphite.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "5c67b675-69a2-4782-902a-bb90c3952f07" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Glass/Glass-E-GlassFibre.FCMat b/src/Mod/Material/Resources/Materials/Standard/Glass/Glass-E-GlassFibre.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Glass/Glass-E-GlassFibre.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Glass/Glass-E-GlassFibre.FCMat index 862f02108f..408a331117 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Glass/Glass-E-GlassFibre.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Glass/Glass-E-GlassFibre.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "a02bf9d7-6e3e-4e36-881b-10779ee9f706" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Glass/Glass-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Glass/Glass-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Glass/Glass-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Glass/Glass-Generic.FCMat index 9074cfe621..3cc2c24c4a 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Glass/Glass-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Glass/Glass-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "3e3a3e13-04a4-410e-8e36-bbd83ca66847" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Glass/Glass-S2-GlassFibre.FCMat b/src/Mod/Material/Resources/Materials/Standard/Glass/Glass-S2-GlassFibre.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Glass/Glass-S2-GlassFibre.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Glass/Glass-S2-GlassFibre.FCMat index 70daa6df5b..b29283fd78 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Glass/Glass-S2-GlassFibre.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Glass/Glass-S2-GlassFibre.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "0c4943e0-248b-4df9-88d9-3b4dd84dfc68" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Alloys/Invar-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Alloys/Invar-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Alloys/Invar-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Alloys/Invar-Generic.FCMat index 80fce39425..d9030ae0d5 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Alloys/Invar-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Alloys/Invar-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "27745e16-2a10-4c8e-bd22-59971806909c" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Aluminum/AlMg3F24.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/AlMg3F24.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Aluminum/AlMg3F24.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/AlMg3F24.FCMat index b7a7da8f77..1c1cc5f067 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Aluminum/AlMg3F24.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/AlMg3F24.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "0051bddf-6f62-4406-b8c9-569322880564" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Aluminum/AlMgSi1F31.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/AlMgSi1F31.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Aluminum/AlMgSi1F31.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/AlMgSi1F31.FCMat index 7d27af3936..bfb6b4ba72 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Aluminum/AlMgSi1F31.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/AlMgSi1F31.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "460e02a3-b6cd-4662-b2f6-8c9d44146c66" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Aluminum/AlZn4-5Mg1F35.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/AlZn4-5Mg1F35.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Aluminum/AlZn4-5Mg1F35.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/AlZn4-5Mg1F35.FCMat index cae2453d1e..d5e5d503a3 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Aluminum/AlZn4-5Mg1F35.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/AlZn4-5Mg1F35.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "05f8f1b2-b92b-4e41-8de9-1e064e78a165" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Aluminum/Aluminum-6061-T6.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/Aluminum-6061-T6.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Aluminum/Aluminum-6061-T6.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/Aluminum-6061-T6.FCMat index 3fe4777c23..a885d411c6 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Aluminum/Aluminum-6061-T6.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/Aluminum-6061-T6.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "68b152b2-fd5e-4f10-8db0-1a2df3fe0fda" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Aluminum/Aluminum-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/Aluminum-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Aluminum/Aluminum-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/Aluminum-Generic.FCMat index d96cd80218..54004c7efa 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Aluminum/Aluminum-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/Aluminum-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "9bf060e9-1663-44a2-88e2-2ff6ee858efe" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Copper/Copper-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Copper/Copper-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Copper/Copper-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Copper/Copper-Generic.FCMat index 8379ecba69..12713eec7e 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Copper/Copper-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Copper/Copper-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "6c03899d-496e-4c60-a41b-3d66f2337fb9" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Iron/Iron-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Iron/Iron-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Iron/Iron-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Iron/Iron-Generic.FCMat index f33cdf155f..155803d224 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Iron/Iron-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Iron/Iron-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "1826c364-d26a-43fb-8f61-288281236836" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/CalculiX-Steel.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/CalculiX-Steel.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/CalculiX-Steel.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/CalculiX-Steel.FCMat index 5105e234d2..8f9c1e5034 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/CalculiX-Steel.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/CalculiX-Steel.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "92589471-a6cb-4bbc-b748-d425a17dea7d" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-15CrNi6.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-15CrNi6.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-15CrNi6.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-15CrNi6.FCMat index e719b9b5e6..e4f21f0a9d 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-15CrNi6.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-15CrNi6.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "6822df30-db32-4a68-a8d7-aaddcb9649d1" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-17CrNiMo6.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-17CrNiMo6.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-17CrNiMo6.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-17CrNiMo6.FCMat index 247c10e733..41921a836c 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-17CrNiMo6.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-17CrNiMo6.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "e4c76f15-00af-4498-ac57-beaf49c150e9" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C22.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-1C22.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C22.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-1C22.FCMat index 4f0271aff2..bda72fc9f2 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C22.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-1C22.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "c424fe3d-5f49-4c39-9467-8a2a800076aa" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C35.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-1C35.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C35.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-1C35.FCMat index 0c5702696b..7b6c129da8 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C35.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-1C35.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "cd932bad-4085-459f-aea6-1da737ae38ae" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C45.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-1C45.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C45.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-1C45.FCMat index 4fabe2bb90..728f946ad5 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C45.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-1C45.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "958b7a5c-4764-4a2f-a450-2153a41fb5ec" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C60.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-1C60.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C60.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-1C60.FCMat index 45ae6f0566..77a6c94dc8 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-1C60.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-1C60.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "9717f953-1cfc-41a6-8974-3ad45188ad48" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-20NiCrMo2.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-20NiCrMo2.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-20NiCrMo2.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-20NiCrMo2.FCMat index af5e731492..867782077a 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-20NiCrMo2.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-20NiCrMo2.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "1c759697-7aef-4a14-92c5-5bf84b99a4f0" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-28Mn6.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-28Mn6.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-28Mn6.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-28Mn6.FCMat index c310e12ec6..cfb11eb89c 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-28Mn6.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-28Mn6.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "6894c597-5771-4b56-825f-ce7d5e4689f4" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-2C10.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-2C10.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-2C10.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-2C10.FCMat index 55e4894152..f964d00bae 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-2C10.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-2C10.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "a7be39a1-1686-4fee-a1d5-81ef73b82d16" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-30CrNiMo8.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-30CrNiMo8.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-30CrNiMo8.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-30CrNiMo8.FCMat index 276e40f244..c3c925a6e9 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-30CrNiMo8.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-30CrNiMo8.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "a6d96264-affc-4406-9816-75099c1fa0d9" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-34CrNiMo6.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-34CrNiMo6.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-34CrNiMo6.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-34CrNiMo6.FCMat index 67ce48abdb..1b71c09966 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-34CrNiMo6.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-34CrNiMo6.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "e69448d5-2517-4c00-9e70-ebeb11ca017f" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-36CrNiMo4.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-36CrNiMo4.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-36CrNiMo4.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-36CrNiMo4.FCMat index e41bf67f6b..271e0e7cba 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-36CrNiMo4.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-36CrNiMo4.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "3e78b767-5530-4d69-a541-cf33a5a2ad19" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-36NiCrMo16.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-36NiCrMo16.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-36NiCrMo16.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-36NiCrMo16.FCMat index be7b82a8fe..f326f57725 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-36NiCrMo16.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-36NiCrMo16.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "3fdf729c-bec4-4bfa-ba94-b0c9e51a2040" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-3C15.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-3C15.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-3C15.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-3C15.FCMat index 5384f6afb0..5c4a846048 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-3C15.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-3C15.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "605fd7b6-caa3-400d-b6d7-ed52c0f5da21" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-3C22.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-3C22.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-3C22.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-3C22.FCMat index bb8f193f81..d6c6c48d46 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-3C22.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-3C22.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "7313f076-faf4-41dd-8dae-1b9a586990dc" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-3C35.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-3C35.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-3C35.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-3C35.FCMat index 91c2f6478f..f04119f8f0 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-3C35.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-3C35.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "251cc54e-4a5a-4cd3-9c9e-006c416d7ce9" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-3V45.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-3V45.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-3V45.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-3V45.FCMat index 189f0f3b04..19928848c9 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-3V45.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-3V45.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "d2e12a80-fd17-42db-99d8-62971f65ee84" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C10.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C10.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C10.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C10.FCMat index 016b585afa..ac87673e55 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C10.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C10.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "9086ae2f-3b2e-4654-9665-0fe31effb8a2" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C15.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C15.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C15.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C15.FCMat index 47d53206b6..588e5b31c5 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C15.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C15.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "06ae5c92-de7b-46c9-984d-4dd87964bc5c" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C22E.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C22E.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C22E.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C22E.FCMat index 09bbdc3424..898af56a96 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C22E.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C22E.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "befa2489-dba0-41c5-aa83-7cca2ac8947b" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C25E.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C25E.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C25E.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C25E.FCMat index fecc163322..7217b02854 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C25E.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C25E.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "b95d3de5-36af-41cd-a6dd-3f647b1d4eee" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C30E.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C30E.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C30E.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C30E.FCMat index 8dc09c6ca6..26b651cb9c 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C30E.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C30E.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "e88e1e86-fad2-4c70-b185-4b2975e7fba5" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C40E.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C40E.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C40E.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C40E.FCMat index 1ccb48ea77..0714d54628 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C40E.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C40E.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "5b33f177-b0da-4ffa-acb5-a3b23ab6e630" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C50E.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C50E.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C50E.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C50E.FCMat index 10122e36fa..b0665787be 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C50E.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C50E.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "6821be5f-5471-4939-bb1d-866f83018090" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C55E.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C55E.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C55E.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C55E.FCMat index 27da081e4e..063530f2e4 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C55E.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C55E.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "d60a21c9-9c4b-4463-b133-bb0e84ce46b2" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C60E.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C60E.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C60E.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C60E.FCMat index 7ae48bda84..9217d63d17 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-C60E.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-C60E.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "56027b3e-876e-4c0e-9f39-242feaa67e13" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E295-GC.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E295-GC.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E295-GC.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E295-GC.FCMat index 1cae3d8294..fbd73b9358 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E295-GC.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E295-GC.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "fc010ef8-91de-4099-9a73-605c01dd117c" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E295.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E295.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E295.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E295.FCMat index d919a2b3f1..5b2f7a1d81 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E295.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E295.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "f1567a1c-995f-4feb-8baf-09ade3e830c5" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E335-GC.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E335-GC.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E335-GC.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E335-GC.FCMat index b4a6f21b2b..7024e001e5 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E335-GC.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E335-GC.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "ab901ecc-d880-4cb4-b400-dbe4fd9b0f0a" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E335.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E335.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E335.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E335.FCMat index 44e9e013db..4c668edd3f 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E335.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E335.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "da418876-f80e-4793-8fc8-a6040a694389" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E360-GC.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E360-GC.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E360-GC.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E360-GC.FCMat index 69ee63fa8d..f428863ead 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E360-GC.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E360-GC.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "4c311592-659b-4ef0-bac9-5cffe9e70612" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E360.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E360.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E360.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E360.FCMat index 086b7b9ddb..6a90c4cd49 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-E360.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-E360.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "dfba065e-2bfb-4fe3-8eec-dfb1cb6274fe" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-100.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-100.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-100.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-100.FCMat index 8bac4460a4..413732dbb6 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-100.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-100.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "5a1d56e3-8180-4f81-a0d7-887fb08e3752" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-150.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-150.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-150.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-150.FCMat index e68bdbd697..56a59fc078 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-150.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-150.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "7a2aa3c4-10fa-44b0-9420-37ae74207fa3" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-200.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-200.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-200.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-200.FCMat index ed3218a3ff..1e6d512d93 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-200.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-200.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "8ae26e72-65b6-4f93-9fbe-9e3f17a2e1b5" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-250.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-250.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-250.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-250.FCMat index 5272f9b931..d95e4462d6 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-250.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-250.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "71f32e31-656e-4f94-a5f0-5b656b9367c6" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-300.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-300.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-300.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-300.FCMat index 2dd95eb99d..f0f8ff1911 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-300.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-300.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "6db01463-7772-4d0e-ab81-fae6d45ce669" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-350.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-350.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-350.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-350.FCMat index f463241b6d..7ac5596ca0 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJL-350.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJL-350.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "c4ff4bef-4885-41d5-904f-9c71a8018c98" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMB-350-10.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMB-350-10.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMB-350-10.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMB-350-10.FCMat index e3068a9035..e8083da061 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMB-350-10.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMB-350-10.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "eec1833a-424a-4c4f-bdf2-6f8377845d54" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMB-550-4.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMB-550-4.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMB-550-4.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMB-550-4.FCMat index d4e4f44237..8dbe731801 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMB-550-4.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMB-550-4.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "095140bb-df01-4bb9-8ff3-062aa91ec48c" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMB-650-2.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMB-650-2.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMB-650-2.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMB-650-2.FCMat index d11ba1c726..900a3d5c3e 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMB-650-2.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMB-650-2.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "490a348c-f508-4599-a5e0-2f6b211126d5" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-350-4.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-350-4.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-350-4.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-350-4.FCMat index ebb8694572..0391108658 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-350-4.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-350-4.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "a97c3eab-a1e8-472b-ba40-519a0d660019" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-360-12.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-360-12.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-360-12.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-360-12.FCMat index e1c40edde3..f750372400 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-360-12.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-360-12.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "81a865af-79b6-4e0b-98ad-5cde134ad99e" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-400-5.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-400-5.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-400-5.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-400-5.FCMat index 9220b27f79..f1da5a90de 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-400-5.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-400-5.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "9d71fc9c-960a-47e8-afa8-a86a24b3ff89" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-450-7.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-450-7.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-450-7.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-450-7.FCMat index 1e9d4e28d1..583970f176 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJMW-450-7.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJMW-450-7.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "c0eedc49-d63b-429d-be63-ef0ea442f45c" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-400-15.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-400-15.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-400-15.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-400-15.FCMat index 051c98f0ec..f9b8fec381 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-400-15.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-400-15.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "f6300691-ecf0-4846-acb1-8c2bad3359a8" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-500-7.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-500-7.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-500-7.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-500-7.FCMat index 1c28126097..8c4db33f9c 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-500-7.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-500-7.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "51aabe6f-642b-4f47-9006-1c8c3613a422" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-600-3.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-600-3.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-600-3.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-600-3.FCMat index 1de6ec6cf9..8daa85645e 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-600-3.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-600-3.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "eb573f18-5a7b-493b-bfda-d711f03f7f71" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-700-2.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-700-2.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-700-2.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-700-2.FCMat index 3e1f7625de..0b515546c4 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-700-2.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-700-2.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "9a194e62-d2e4-466d-92ba-2707107c4e3c" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-800-1.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-800-1.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-800-1.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-800-1.FCMat index 9ad715e980..fee5567f43 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-EN-GJS-800-1.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-EN-GJS-800-1.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "97c444f9-83ae-48d8-98e5-603349d06f7e" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G16Mn5.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G16Mn5.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G16Mn5.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G16Mn5.FCMat index bdede7e22a..8dc245e265 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G16Mn5.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G16Mn5.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "fc5c14ba-4885-4c75-aaf6-0ec4f2365f40" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G200.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G200.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G200.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G200.FCMat index 2c61fce091..2bf1d2c2a5 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G200.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G200.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "8d799def-e941-4cb6-b48d-72b9a292fafe" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G20Mn5.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G20Mn5.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G20Mn5.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G20Mn5.FCMat index b7bbf43d10..ddd5a7f474 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G20Mn5.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G20Mn5.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "d384d1e5-e2fe-4e09-9a0f-78e5670425ee" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G230.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G230.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G230.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G230.FCMat index 114fd54038..dfd8396624 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G230.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G230.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "53931707-6fe7-4ac0-ac7a-e9ddfec70fa5" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G260.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G260.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G260.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G260.FCMat index 71e5f54ef6..9c5eded0d0 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G260.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G260.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "22971112-d137-4db1-9349-edf5e281e333" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G300.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G300.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G300.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G300.FCMat index 488a762db6..6c93c71a5a 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G300.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G300.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "33f1c891-7488-4324-9af9-cbdde6726b49" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G30Mn5.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G30Mn5.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G30Mn5.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G30Mn5.FCMat index 91675dc395..412ef3d5a3 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-G30Mn5.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-G30Mn5.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "e03df70c-ceb8-4317-825d-1195c8c178d0" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-Generic.FCMat index e291486c4a..51f0b7e306 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "90bbd8ef-8623-4d78-b3bf-e0bdb9b74dd3" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S185.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S185.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S185.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S185.FCMat index c8f0ada537..5211d3fdb8 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S185.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S185.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "6f32981a-7bbf-49a1-842c-7567a195fa7e" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S235JO.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S235JO.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S235JO.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S235JO.FCMat index c484567ffd..ee578ea495 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S235JO.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S235JO.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "5b13e02a-b173-4e2d-95fd-a30d9e0f7cf5" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S235JR.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S235JR.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S235JR.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S235JR.FCMat index 657975b9c7..727e6101ef 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S235JR.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S235JR.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "4a96627d-6518-458c-8ccf-846f69fd8a50" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S235JRG1.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S235JRG1.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S235JRG1.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S235JRG1.FCMat index fe1182e815..003275567b 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S235JRG1.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S235JRG1.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "d8cc450d-7d6d-4377-8a8d-ffe3cf30fcb2" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S260NC.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S260NC.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S260NC.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S260NC.FCMat index b9e5794e79..186a9facd6 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S260NC.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S260NC.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "4994efd8-fc7b-41b3-ad61-9d98d1bdbe6e" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S275JO.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S275JO.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S275JO.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S275JO.FCMat index 56fb705e76..361baa907a 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S275JO.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S275JO.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "f9deac5f-91a4-41aa-b49c-ef09ec4613e2" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S275JR.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S275JR.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S275JR.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S275JR.FCMat index c3da4512c9..0ab5fc1cf7 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S275JR.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S275JR.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "30e4da7d-1fe3-41de-911a-a42e3405bb7b" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S275N.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S275N.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S275N.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S275N.FCMat index 59a1888016..207d722f16 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S275N.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S275N.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "07592e35-3e1a-470f-8eda-f4bee7d9cb4a" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S335JO.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S335JO.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S335JO.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S335JO.FCMat index c7fbcc90db..3098ab9917 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S335JO.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S335JO.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "c50ad549-b4f4-47ab-9bc6-4eb5191da111" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S335JR.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S335JR.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S335JR.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S335JR.FCMat index 83ac7fe653..a1803bb689 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S335JR.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S335JR.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "dbd04cee-3b92-4b79-a208-58547ebe3807" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S335N.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S335N.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S335N.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S335N.FCMat index e7d8fc174b..4ed0695624 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S335N.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S335N.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "16d7f1d5-449f-4b9e-b57a-7ea114fda115" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S340MC.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S340MC.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S340MC.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S340MC.FCMat index baccd4ca36..35cc31c551 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S340MC.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S340MC.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "5785ea5e-3376-47dd-8dc2-f1267c47e9bc" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S355J2G3.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S355J2G3.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S355J2G3.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S355J2G3.FCMat index 72e7ca9845..3c35d71168 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S355J2G3.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S355J2G3.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "b9e861ee-93fb-4eca-a2de-03579bc503c1" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S380MC.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S380MC.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S380MC.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S380MC.FCMat index b28262ff49..ebe09dca05 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S380MC.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S380MC.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "da2a429b-8763-4586-be3d-620e7dd30271" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S420MC.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S420MC.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S420MC.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S420MC.FCMat index 407d553894..e927e63be9 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S420MC.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S420MC.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "c3452eff-f68e-4cfd-a24e-27e2abcd01ac" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S420N.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S420N.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S420N.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S420N.FCMat index 74f00df70f..ef28891d71 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S420N.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S420N.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "902f2d4a-5bd0-44bf-9c14-54462ba6778b" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S460MC.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S460MC.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S460MC.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S460MC.FCMat index 7834dca011..ab35eb607f 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S460MC.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S460MC.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "c254dac5-3ee3-49b9-b8d4-16d20d21c94f" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S460N.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S460N.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S460N.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S460N.FCMat index 536b5df413..d0597148e2 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S460N.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S460N.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "f0ae245a-1041-4674-ac4f-bf212dda6009" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S500MC.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S500MC.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S500MC.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S500MC.FCMat index 679dfaf447..ef513d69f6 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S500MC.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S500MC.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "ad8e2007-ee73-4b71-8830-6d40a8407284" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S550MC.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S550MC.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S550MC.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S550MC.FCMat index b7c5bc08b2..ec8eec9a37 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S550MC.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S550MC.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "b7308026-9278-4346-b157-2b3da280b61b" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S690MC.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S690MC.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S690MC.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S690MC.FCMat index 223f410073..a6bc85ecff 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-S690MC.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-S690MC.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "41360af5-98ed-4125-a89c-ff711e4dd2bf" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-37-2K.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-37-2K.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-37-2K.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-37-2K.FCMat index 9f6476151e..977ee85836 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-37-2K.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-37-2K.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "e97be20f-246a-48b5-9718-3d39486e7af2" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-255.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-E-255.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-255.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-E-255.FCMat index 2b5057f72a..7eba9f8b7b 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-255.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-E-255.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "1078eb9f-ac3e-4b24-b40e-b9ead77828e0" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-315.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-E-315.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-315.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-E-315.FCMat index 3d15c2d2df..5ae8bf256d 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-315.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-E-315.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "74ca3b08-d561-4440-a4c2-d9b839b66670" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-380.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-E-380.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-380.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-E-380.FCMat index 33b2d3c85a..96b5250db2 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-380.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-E-380.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "a1b62461-7abc-45da-9a3c-3068367d2990" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-460.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-E-460.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-460.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-E-460.FCMat index 5bc873d0d9..4cd2c0752e 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-460.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-E-460.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "b312ad7b-95d4-4ca5-9736-360dbed918ee" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-500.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-E-500.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-500.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-E-500.FCMat index c5bc2706f3..3cd33e5492 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-St-E-500.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-St-E-500.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "90fb6bd4-05db-4d44-ba89-280b5a060921" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X2CrNiMoN17-13-3.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X2CrNiMoN17-13-3.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X2CrNiMoN17-13-3.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X2CrNiMoN17-13-3.FCMat index 083668673d..02284ff966 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X2CrNiMoN17-13-3.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X2CrNiMoN17-13-3.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "a05b5f9b-27b9-4554-8feb-553f9d6027ef" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X2CrNiN24-4.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X2CrNiN24-4.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X2CrNiN24-4.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X2CrNiN24-4.FCMat index d048a4677c..f12fc76a0e 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X2CrNiN24-4.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X2CrNiN24-4.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "be74ada5-2775-41fc-a44b-36df6fb5e0b8" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X39CrMo17-1.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X39CrMo17-1.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X39CrMo17-1.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X39CrMo17-1.FCMat index 485f5099a7..42edf4767a 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X39CrMo17-1.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X39CrMo17-1.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "9e7069ef-296d-401d-9331-d3e11267c2e0" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X3CrNiMo13-14.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X3CrNiMo13-14.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X3CrNiMo13-14.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X3CrNiMo13-14.FCMat index 87ec296574..387ad17168 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X3CrNiMo13-14.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X3CrNiMo13-14.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "88632101-8868-407a-a95f-01773b5f2245" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X5CrNi18-10.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X5CrNi18-10.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X5CrNi18-10.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X5CrNi18-10.FCMat index 0e0a81db1e..e190838afa 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X5CrNi18-10.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X5CrNi18-10.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "e5329208-0c38-47ec-8c59-e7bf6a35801d" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X5CrNiMo17-12-2.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X5CrNiMo17-12-2.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X5CrNiMo17-12-2.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X5CrNiMo17-12-2.FCMat index f115a63bff..821f1f015e 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X5CrNiMo17-12-2.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X5CrNiMo17-12-2.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "7625a484-96de-438d-b251-2b71044cfa88" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X6CrNiTi18-10.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X6CrNiTi18-10.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X6CrNiTi18-10.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X6CrNiTi18-10.FCMat index 76366b8f64..c192983929 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Steel/Steel-X6CrNiTi18-10.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Steel/Steel-X6CrNiTi18-10.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "2c577c45-ebae-46b2-9e36-e41fbcce9286" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Titanium/Ti-6Al-4V.FCMat b/src/Mod/Material/Resources/Materials/Standard/Metal/Titanium/Ti-6Al-4V.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Titanium/Ti-6Al-4V.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Metal/Titanium/Ti-6Al-4V.FCMat index ee1b06c1b0..3aea34e579 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Metal/Titanium/Ti-6Al-4V.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Metal/Titanium/Ti-6Al-4V.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "f8013463-8008-4063-818c-ab6884cfa015" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/ABS-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/ABS-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/ABS-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Thermoplast/ABS-Generic.FCMat index b5fba41f91..83955ff1ed 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/ABS-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/ABS-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "73371529-2983-47dd-b988-6739a2e20029" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/Acrylic-Glass-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/Acrylic-Glass-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/Acrylic-Glass-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Thermoplast/Acrylic-Glass-Generic.FCMat index 8daa44d95b..98c2690b8d 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/Acrylic-Glass-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/Acrylic-Glass-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "f255cd82-91d5-4e97-9032-1843128a2eaa" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PA6-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/PA6-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PA6-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Thermoplast/PA6-Generic.FCMat index 2460f65648..90ffaa768f 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PA6-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/PA6-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "9d59dc3b-ce66-4bec-82c9-b962082e7c9e" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PET-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/PET-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PET-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Thermoplast/PET-Generic.FCMat index c80562e2b1..5942047902 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PET-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/PET-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "f73004e3-6fb4-4591-8be7-89d1370be312" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PLA-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/PLA-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PLA-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Thermoplast/PLA-Generic.FCMat index 1eab389a6d..736ae1bc7d 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PLA-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/PLA-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "93861244-fbbe-41a9-a7e0-aeed53abd782" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PP-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/PP-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PP-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Thermoplast/PP-Generic.FCMat index 39c439f422..2b7e4b58f4 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PP-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/PP-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "0e669f57-de27-4915-9a02-124f36047972" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PTFE-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/PTFE-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PTFE-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Thermoplast/PTFE-Generic.FCMat index 8cdd2fcb2b..64f1b141d6 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PTFE-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/PTFE-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "8ce226db-43ef-4471-93f1-07e7276aa276" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PVC-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/PVC-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PVC-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Thermoplast/PVC-Generic.FCMat index f94f4e5b11..481cad01c3 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Thermoplast/PVC-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Thermoplast/PVC-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "758cfc44-f4ad-4605-8645-75e9e6b053ab" diff --git a/src/Mod/Material/Resources/Materials/StandardMaterial/Wood/Wood-Generic.FCMat b/src/Mod/Material/Resources/Materials/Standard/Wood/Wood-Generic.FCMat similarity index 99% rename from src/Mod/Material/Resources/Materials/StandardMaterial/Wood/Wood-Generic.FCMat rename to src/Mod/Material/Resources/Materials/Standard/Wood/Wood-Generic.FCMat index 4f87fd1b6d..4fb84bd2c3 100644 --- a/src/Mod/Material/Resources/Materials/StandardMaterial/Wood/Wood-Generic.FCMat +++ b/src/Mod/Material/Resources/Materials/Standard/Wood/Wood-Generic.FCMat @@ -1,3 +1,4 @@ +--- # File created by ConvertFCMat.py General: UUID: "b588224e-e8d6-47ad-ba1f-a058333fd1c6" diff --git a/src/Mod/Material/Resources/Materials/Test/Test Material.FCMat b/src/Mod/Material/Resources/Materials/Test/Test Material.FCMat new file mode 100644 index 0000000000..c4762bd97a --- /dev/null +++ b/src/Mod/Material/Resources/Materials/Test/Test Material.FCMat @@ -0,0 +1,55 @@ +--- +# File created by FreeCAD 0.22.0 Revision: 34863 (Git) +General: + UUID: "c6c64159-19c1-40b5-859c-10561f20f979" + Name: "Test Material" + Author: "David Carter" + License: "GPL-2.0-or-later" + Description: "This material is for testing purposes only. It does not describe any real material." +Inherits: + DefaultAppearance: + UUID: "5dbb7be6-8b63-479b-ab4c-87be02ead973" +Models: + TestModel: + UUID: "34d0583d-f999-49ba-99e6-aa40bd5c3a6b" + TestArray2D: + - "20.00 C" + - [["10.00 C", "10.00 kg/m^3"], + ["20.00 C", "20.00 kg/m^3"], + ["30.00 C", "30.00 kg/m^3"]] + TestArray2D3Column: + - "20.00 C" + - [["10.00 C", "11.00 kg/m^3", "12.00 Pa"], + ["20.00 C", "21.00 kg/m^3", "22.00 Pa"], + ["30.00 C", "31.00 kg/m^3", "32.00 Pa"]] + TestArray3D: + - "20.00 C" + - ["10.00 C": [["11.00 Pa", "12.00 Pa"], + ["21.00 Pa", "22.00 Pa"]], + "20.00 C": [], + "30.00 C": [["10.00 Pa", "11.00 Pa"], + ["20.00 Pa", "21.00 Pa"], + ["30.00 Pa", "31.00 Pa"]]] + TestBoolean: "true" + TestColor: "(1,0,0,1)" + TestFile: "/home/dcarter/Meshroom demo.txt" + TestFloat: "32.17" + TestInteger: "42" + TestList: + - "Now is the time for all good men to come to the aid of the party" + - "The quick brown fox jumps over the lazy dogs back" + - "Lore Ipsum" + - "Single quote '" + - "Double quote \"" + - "Backslash \\" + TestMultiLineString: >2 + Now is the time for 'all' \ "men" come to the aid of the party + Indentation is significant + Similar to Python + TestQuantity: "19.76 kg/m^3" + TestString: "Now is the time for 'all' \\ \"men\" come to the aid of the party" + TestMultiLineString: >2 + Now is the time for 'all' \ "men" come to the aid of the party + Indentation is significant + Similar to Python + TestURL: "https://www.freecad.org/" diff --git a/src/Mod/Material/Resources/Models/Mechanical/HypotheticalExample.yml b/src/Mod/Material/Resources/Models/Mechanical/HypotheticalExample.yml deleted file mode 100644 index 396f53c3b2..0000000000 --- a/src/Mod/Material/Resources/Models/Mechanical/HypotheticalExample.yml +++ /dev/null @@ -1,41 +0,0 @@ ---- -# *************************************************************************** -# * * -# * Copyright (c) 2023 David Carter * -# * * -# * This program is free software; you can redistribute it and/or modify * -# * it under the terms of the GNU Lesser General Public License (LGPL) * -# * as published by the Free Software Foundation; either version 2 of * -# * the License, or (at your option) any later version. * -# * for detail see the LICENCE text file. * -# * * -# * This program is distributed in the hope that it will be useful, * -# * but WITHOUT ANY WARRANTY; without even the implied warranty of * -# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -# * GNU Library General Public License for more details. * -# * * -# * You should have received a copy of the GNU Library General Public * -# * License along with this program; if not, write to the Free Software * -# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -# * USA * -# * * -# *************************************************************************** - -Model: - Name: 'Hypothetical Example' - UUID: 'a401af74-e4a2-4bad-8dd5-0f3d1748c462' - URL: 'https://en.wikipedia.org/wiki/Linear_elasticity' - Description: > - This is not a real physical model. It is intended as an example of a new - physical model - DOI: "" - GigaWatts: - Type: 'Quantity' - Units: '' - URL: '' - Description: "" - TimeFluxDensity: - Type: 'Quantity' - Units: '' - URL: '' - Description: "" diff --git a/src/Mod/Material/Resources/Models/Test/Test Model.yml b/src/Mod/Material/Resources/Models/Test/Test Model.yml new file mode 100644 index 0000000000..ec4243add2 --- /dev/null +++ b/src/Mod/Material/Resources/Models/Test/Test Model.yml @@ -0,0 +1,139 @@ +--- +# *************************************************************************** +# * * +# * Copyright (c) 2023 David Carter * +# * * +# * This program is free software; you can redistribute it and/or modify * +# * it under the terms of the GNU Lesser General Public License (LGPL) * +# * as published by the Free Software Foundation; either version 2 of * +# * the License, or (at your option) any later version. * +# * for detail see the LICENCE text file. * +# * * +# * This program is distributed in the hope that it will be useful, * +# * but WITHOUT ANY WARRANTY; without even the implied warranty of * +# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# * GNU Library General Public License for more details. * +# * * +# * You should have received a copy of the GNU Library General Public * +# * License along with this program; if not, write to the Free Software * +# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +# * USA * +# * * +# *************************************************************************** + +Model: + Name: 'TestModel' + UUID: '34d0583d-f999-49ba-99e6-aa40bd5c3a6b' + URL: '' + Description: 'Demonstrate the different model types' + DOI: '' + TestString: + Type: 'String' + Units: '' + URL: '' + Description: "A String" + TestURL: + Type: 'URL' + Units: '' + URL: '' + Description: "A URL" + TestList: + Type: 'List' + Units: '' + URL: '' + Description: "A List" + TestInteger: + Type: 'Integer' + Units: '' + URL: '' + Description: "A Integer" + TestFloat: + Type: 'Float' + Units: '' + URL: '' + Description: "A Float" + TestBoolean: + Type: 'Boolean' + Units: '' + URL: '' + Description: "A Boolean" + TestColor: + Type: 'Color' + Units: '' + URL: '' + Description: "A Color" + TestFile: + Type: 'File' + Units: '' + URL: '' + Description: "A File" + TestQuantity: + Type: 'Quantity' + Units: 'kg/m^3' + URL: '' + Description: "A Quantity" + TestMultiLineString: + Type: 'MultiLineString' + Units: '' + URL: '' + Description: "A string that spans multiple lines" + TestArray2D: + Type: '2DArray' + Columns: + Temperature: + Type: 'Quantity' + Units: 'C' + URL: '' + Description: "Temperature" + Density: + Type: 'Quantity' + Units: 'kg/m^3' + URL: 'https://en.wikipedia.org/wiki/Density' + Description: "Density in [FreeCAD Density unit]" + URL: '' + Description: > + 2 Dimensional array showing density with temperature + TestArray2D3Column: + Type: '2DArray' + Columns: + Temperature: + Type: 'Quantity' + Units: 'C' + URL: '' + Description: "Temperature" + Density: + Type: 'Quantity' + Units: 'kg/m^3' + URL: 'https://en.wikipedia.org/wiki/Density' + Description: "Density in [FreeCAD Density unit]" + InitialYieldStress: + Type: 'Quantity' + Units: 'kPa' + URL: '' + Description: > + Saturation stress for Voce isotropic hardening [FreeCAD Pressure unit] + URL: '' + Description: > + 2 Dimensional array showing density and initial yield stress with temperature + TestArray3D: + Type: '3DArray' + Columns: + Temperature: + Type: 'Quantity' + Units: 'C' + URL: '' + Description: "Temperature" + Stress: + Type: 'Quantity' + Units: 'MPa' + URL: '' + Description: "Stress" + Strain: + Type: 'Quantity' + Units: 'MPa' + URL: '' + Description: "Strain" + URL: '' + Description: > + 3 Dimensional array showing stress and strain as + a function of temperature diff --git a/src/Mod/Material/materialtests/TestMaterials.py b/src/Mod/Material/materialtests/TestMaterials.py index 7e8cb030df..7c398fc194 100644 --- a/src/Mod/Material/materialtests/TestMaterials.py +++ b/src/Mod/Material/materialtests/TestMaterials.py @@ -48,13 +48,15 @@ class MaterialTestCases(unittest.TestCase): self.assertTrue(steel.hasPhysicalModel(self.uuids.IsotropicLinearElastic)) self.assertTrue(steel.hasPhysicalModel(self.uuids.Thermal)) self.assertFalse(steel.hasPhysicalModel(self.uuids.LinearElastic)) # Not in the model - self.assertTrue(steel.hasAppearanceModel(self.uuids.BasicRendering)) # inherited from Steel.FCMat + # inherited from Steel.FCMat + self.assertTrue(steel.hasAppearanceModel(self.uuids.BasicRendering)) self.assertTrue(steel.isPhysicalModelComplete(self.uuids.Density)) self.assertFalse(steel.isPhysicalModelComplete(self.uuids.IsotropicLinearElastic)) self.assertTrue(steel.isPhysicalModelComplete(self.uuids.Thermal)) self.assertFalse(steel.isPhysicalModelComplete(self.uuids.LinearElastic)) # Not in the model - self.assertTrue(steel.isAppearanceModelComplete(self.uuids.BasicRendering)) # inherited from Steel.FCMat + # inherited from Steel.FCMat + self.assertTrue(steel.isAppearanceModelComplete(self.uuids.BasicRendering)) self.assertTrue(steel.hasPhysicalProperty("Density")) self.assertTrue(steel.hasPhysicalProperty("BulkModulus")) @@ -157,16 +159,19 @@ class MaterialTestCases(unittest.TestCase): self.assertEqual(properties["Density"], parseQuantity("7900.00 kg/m^3").UserString) # self.assertEqual(properties["BulkModulus"], "") - self.assertAlmostEqual(parseQuantity(properties["PoissonRatio"]).Value, parseQuantity("0.3").Value) + self.assertAlmostEqual(parseQuantity(properties["PoissonRatio"]).Value, + parseQuantity("0.3").Value) self.assertEqual(properties["YoungsModulus"], parseQuantity("210.00 GPa").UserString) # self.assertEqual(properties["ShearModulus"], "") self.assertEqual(properties["SpecificHeat"], parseQuantity("590.00 J/kg/K").UserString) self.assertEqual(properties["ThermalConductivity"], parseQuantity("43.00 W/m/K").UserString) - self.assertEqual(properties["ThermalExpansionCoefficient"], parseQuantity("12.00 µm/m/K").UserString) + self.assertEqual(properties["ThermalExpansionCoefficient"], + parseQuantity("12.00 µm/m/K").UserString) self.assertEqual(properties["AmbientColor"], "(0.0020, 0.0020, 0.0020, 1.0)") self.assertEqual(properties["DiffuseColor"], "(0.0000, 0.0000, 0.0000, 1.0)") self.assertEqual(properties["EmissiveColor"], "(0.0000, 0.0000, 0.0000, 1.0)") - self.assertAlmostEqual(parseQuantity(properties["Shininess"]).Value, parseQuantity("0.06").Value) + self.assertAlmostEqual(parseQuantity(properties["Shininess"]).Value, + parseQuantity("0.06").Value) self.assertEqual(properties["SpecularColor"], "(0.9800, 0.9800, 0.9800, 1.0)") self.assertAlmostEqual(parseQuantity(properties["Transparency"]).Value, parseQuantity("0").Value) @@ -199,12 +204,15 @@ class MaterialTestCases(unittest.TestCase): self.assertAlmostEqual(steel.getAppearanceValue("Transparency"), 0.0) def testMaterialsWithModel(self): - materials = self.MaterialManager.materialsWithModel('f6f9e48c-b116-4e82-ad7f-3659a9219c50') # IsotropicLinearElastic - materialsComplete = self.MaterialManager.materialsWithModelComplete('f6f9e48c-b116-4e82-ad7f-3659a9219c50') # IsotropicLinearElastic + # IsotropicLinearElastic + materials = self.MaterialManager.materialsWithModel('f6f9e48c-b116-4e82-ad7f-3659a9219c50') + materialsComplete = self.MaterialManager.materialsWithModelComplete( + 'f6f9e48c-b116-4e82-ad7f-3659a9219c50') self.assertTrue(len(materialsComplete) <= len(materials)) # Not all will be complete - - materialsLinearElastic = self.MaterialManager.materialsWithModel('7b561d1d-fb9b-44f6-9da9-56a4f74d7536') # LinearElastic + # LinearElastic + materialsLinearElastic = self.MaterialManager.materialsWithModel( + '7b561d1d-fb9b-44f6-9da9-56a4f74d7536') # All LinearElastic models should be in IsotropicLinearElastic since it is inherited self.assertTrue(len(materialsLinearElastic) <= len(materials)) @@ -212,17 +220,22 @@ class MaterialTestCases(unittest.TestCase): self.assertIn(mat, materials) def testMaterialByPath(self): - steel = self.MaterialManager.getMaterialByPath('StandardMaterial/Metal/Steel/CalculiX-Steel.FCMat', 'System') + steel = self.MaterialManager.getMaterialByPath( + 'Standard/Metal/Steel/CalculiX-Steel.FCMat', 'System') self.assertIsNotNone(steel) self.assertEqual(steel.Name, "CalculiX-Steel") self.assertEqual(steel.UUID, "92589471-a6cb-4bbc-b748-d425a17dea7d") - steel2 = self.MaterialManager.getMaterialByPath('/StandardMaterial/Metal/Steel/CalculiX-Steel.FCMat', 'System') + # Same with leading '/' + steel2 = self.MaterialManager.getMaterialByPath( + '/Standard/Metal/Steel/CalculiX-Steel.FCMat', 'System') self.assertIsNotNone(steel2) self.assertEqual(steel2.Name, "CalculiX-Steel") self.assertEqual(steel2.UUID, "92589471-a6cb-4bbc-b748-d425a17dea7d") - steel3 = self.MaterialManager.getMaterialByPath('/System/StandardMaterial/Metal/Steel/CalculiX-Steel.FCMat', 'System') + # Same with leading '/System' + steel3 = self.MaterialManager.getMaterialByPath( + '/System/Standard/Metal/Steel/CalculiX-Steel.FCMat', 'System') self.assertIsNotNone(steel3) self.assertEqual(steel3.Name, "CalculiX-Steel") self.assertEqual(steel3.UUID, "92589471-a6cb-4bbc-b748-d425a17dea7d") diff --git a/tests/src/Mod/Material/App/CMakeLists.txt b/tests/src/Mod/Material/App/CMakeLists.txt index 1e1fe038b7..633cc8d9ba 100644 --- a/tests/src/Mod/Material/App/CMakeLists.txt +++ b/tests/src/Mod/Material/App/CMakeLists.txt @@ -2,6 +2,7 @@ target_sources( Material_tests_run PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/TestMaterialCards.cpp ${CMAKE_CURRENT_SOURCE_DIR}/TestMaterialProperties.cpp ${CMAKE_CURRENT_SOURCE_DIR}/TestMaterials.cpp ${CMAKE_CURRENT_SOURCE_DIR}/TestMaterialValue.cpp diff --git a/tests/src/Mod/Material/App/Model.cpp b/tests/src/Mod/Material/App/Model.cpp deleted file mode 100644 index 6a0f84b354..0000000000 --- a/tests/src/Mod/Material/App/Model.cpp +++ /dev/null @@ -1,140 +0,0 @@ -// SPDX-License-Identifier: LGPL-2.1-or-later -/*************************************************************************** - * Copyright (c) 2023 David Carter * - * * - * This file is part of FreeCAD. * - * * - * FreeCAD is free software: you can redistribute it and/or modify it * - * under the terms of the GNU Lesser General Public License as * - * published by the Free Software Foundation, either version 2.1 of the * - * License, or (at your option) any later version. * - * * - * FreeCAD is distributed in the hope that it will be useful, but * - * WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser General Public * - * License along with FreeCAD. If not, see * - * . * - * * - **************************************************************************/ - -#include "gtest/gtest.h" - -#include -#ifndef _PreComp_ -#endif - -#include - -#include - -#include -#include -#include -#include - -// clang-format off - -class MaterialTest : public ::testing::Test { - protected: - static void SetUpTestSuite() { - tests::initApplication(); - } - - void SetUp() override { - _modelManager = new Materials::ModelManager(); - _materialManager = new Materials::MaterialManager(); - } - - // void TearDown() override {} - Materials::ModelManager* _modelManager; - Materials::MaterialManager* _materialManager; -}; - -TEST_F(MaterialTest, TestApplication) -{ - try { - App::GetApplication(); - } - catch (...) { - ADD_FAILURE() << "Application failure\n"; - } - - SUCCEED(); -} - -TEST_F(MaterialTest, TestResources) -{ - try { - auto param = App::GetApplication().GetParameterGroupByPath( - "User parameter:BaseApp/Preferences/Mod/Material/Resources"); - EXPECT_NE(param, nullptr); - } - catch (const std::exception &e) - { - FAIL() << "Exception: " << e.what() << "\n"; - } -} - -TEST_F(MaterialTest, TestModelLoad) -{ - EXPECT_NE(_modelManager, nullptr); - - auto density = _modelManager->getModel(QString::fromStdString("454661e5-265b-4320-8e6f-fcf6223ac3af")); - EXPECT_EQ(density.getName(), QString::fromStdString("Density")); - EXPECT_EQ(density.getUUID(), QString::fromStdString("454661e5-265b-4320-8e6f-fcf6223ac3af")); - - auto& prop = density[QString::fromStdString("Density")]; - EXPECT_EQ(prop.getName(), QString::fromStdString("Density")); -} - -TEST_F(MaterialTest, TestMaterialsWithModel) -{ - auto materials = _materialManager->materialsWithModel( - QString::fromStdString("f6f9e48c-b116-4e82-ad7f-3659a9219c50")); // IsotropicLinearElastic - EXPECT_GT(materials->size(), 0); - - auto materialsComplete = _materialManager->materialsWithModelComplete( - QString::fromStdString("f6f9e48c-b116-4e82-ad7f-3659a9219c50")); // IsotropicLinearElastic - EXPECT_LE(materialsComplete->size(), materials->size()); - - auto materialsLinearElastic = _materialManager->materialsWithModel( - QString::fromStdString("7b561d1d-fb9b-44f6-9da9-56a4f74d7536")); // LinearElastic - - // All LinearElastic models should be in IsotropicLinearElastic since it is inherited - EXPECT_LE(materialsLinearElastic->size(), materials->size()); - for (auto itp = materialsLinearElastic->begin(); itp != materialsLinearElastic->end(); itp++) { - auto mat = itp->first; - EXPECT_NO_THROW(materials->at(mat)); - } -} - -TEST_F(MaterialTest, testMaterialByPath) -{ - auto& steel = _materialManager->getMaterialByPath( - QString::fromStdString("StandardMaterial/Metal/Steel/CalculiX-Steel.FCMat"), - QString::fromStdString("System")); - EXPECT_NE(&steel, nullptr); - EXPECT_EQ(steel.getName(), QString::fromStdString("CalculiX-Steel")); - EXPECT_EQ(steel.getUUID(), QString::fromStdString("92589471-a6cb-4bbc-b748-d425a17dea7d")); - - // The same but with a leading '/' - auto& steel2 = _materialManager->getMaterialByPath( - QString::fromStdString("/System/StandardMaterial/Metal/Steel/CalculiX-Steel.FCMat"), - QString::fromStdString("System")); - EXPECT_NE(&steel2, nullptr); - EXPECT_EQ(steel2.getName(), QString::fromStdString("CalculiX-Steel")); - EXPECT_EQ(steel2.getUUID(), QString::fromStdString("92589471-a6cb-4bbc-b748-d425a17dea7d")); - - // Same with the library name as a prefix - auto& steel3 = _materialManager->getMaterialByPath( - QString::fromStdString("StandardMaterial/Metal/Steel/CalculiX-Steel.FCMat"), - QString::fromStdString("System")); - EXPECT_NE(&steel3, nullptr); - EXPECT_EQ(steel3.getName(), QString::fromStdString("CalculiX-Steel")); - EXPECT_EQ(steel3.getUUID(), QString::fromStdString("92589471-a6cb-4bbc-b748-d425a17dea7d")); -} - -// clang-format on diff --git a/tests/src/Mod/Material/App/TestMaterialCards.cpp b/tests/src/Mod/Material/App/TestMaterialCards.cpp new file mode 100644 index 0000000000..9597aca1f7 --- /dev/null +++ b/tests/src/Mod/Material/App/TestMaterialCards.cpp @@ -0,0 +1,178 @@ +// SPDX-License-Identifier: LGPL-2.1-or-later +/*************************************************************************** + * Copyright (c) 2023 David Carter * + * * + * This file is part of FreeCAD. * + * * + * FreeCAD is free software: you can redistribute it and/or modify it * + * under the terms of the GNU Lesser General Public License as * + * published by the Free Software Foundation, either version 2.1 of the * + * License, or (at your option) any later version. * + * * + * FreeCAD is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with FreeCAD. If not, see * + * . * + * * + **************************************************************************/ + +#include "gtest/gtest.h" + +#include +#ifndef _PreComp_ +#endif + +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +// clang-format off + +class TestMaterialCards : public ::testing::Test { + protected: + static void SetUpTestSuite() { + if (App::Application::GetARGC() == 0) { + constexpr int argc = 1; + std::array argv {"FreeCAD"}; + App::Application::Config()["ExeName"] = "FreeCAD"; + App::Application::init(argc, argv.data()); + } + } + + void SetUp() override { + // Create a temporary library + QString libPath = QDir::tempPath() + QString::fromStdString("/TestMaterialCards"); + QDir libDir(libPath); + libDir.removeRecursively(); // Clear old run data + libDir.mkdir(libPath); + _library = std::make_shared(QString::fromStdString("Testing"), + libPath, + QString::fromStdString(":/icons/preferences-general.svg"), + false); + _modelManager = new Materials::ModelManager(); + _materialManager = new Materials::MaterialManager(); + } + + // void TearDown() override {} + Materials::ModelManager* _modelManager; + Materials::MaterialManager* _materialManager; + std::shared_ptr _library; +}; + +TEST_F(TestMaterialCards, TestCopy) +{ + EXPECT_NE(_modelManager, nullptr); + EXPECT_TRUE(_library); + // FAIL() << "Test library " << _library->getDirectoryPath().toStdString() << "\n"; + + auto testMaterial = _materialManager->getMaterial(Materials::ModelUUIDs::ModelUUID_Test_Material); + auto newMaterial = std::make_shared(*testMaterial); + + EXPECT_EQ(testMaterial->getUUID(), Materials::ModelUUIDs::ModelUUID_Test_Material); + EXPECT_EQ(newMaterial->getUUID(), Materials::ModelUUIDs::ModelUUID_Test_Material); + + // Save the material + _materialManager->saveMaterial(_library, + newMaterial, + QString::fromStdString("/Test Material2.FCMat"), + false, // overwrite + true, // saveAsCopy + false); // saveInherited + EXPECT_EQ(newMaterial->getUUID(), Materials::ModelUUIDs::ModelUUID_Test_Material); + EXPECT_EQ(newMaterial->getName(), QString::fromStdString("Test Material2")); + + // Save it when it already exists throwing an error + EXPECT_THROW(_materialManager->saveMaterial(_library, + newMaterial, + QString::fromStdString("/Test Material2.FCMat"), + false, // overwrite + true, // saveAsCopy + false) // saveInherited + , Materials::MaterialExists); + EXPECT_EQ(newMaterial->getUUID(), Materials::ModelUUIDs::ModelUUID_Test_Material); + EXPECT_EQ(newMaterial->getName(), QString::fromStdString("Test Material2")); + + // Overwrite the existing file + _materialManager->saveMaterial(_library, + newMaterial, + QString::fromStdString("/Test Material2.FCMat"), + true, // overwrite + true, // saveAsCopy + false);// saveInherited + EXPECT_EQ(newMaterial->getUUID(), Materials::ModelUUIDs::ModelUUID_Test_Material); + EXPECT_EQ(newMaterial->getName(), QString::fromStdString("Test Material2")); + + // Save to a new file, inheritance mode + _materialManager->saveMaterial(_library, + newMaterial, + QString::fromStdString("/Test Material3.FCMat"), + false, // overwrite + true, // saveAsCopy + true);// saveInherited + EXPECT_EQ(newMaterial->getUUID(), Materials::ModelUUIDs::ModelUUID_Test_Material); + EXPECT_EQ(newMaterial->getName(), QString::fromStdString("Test Material3")); + + // Save to a new file, inheritance mode. no copy + _materialManager->saveMaterial(_library, + newMaterial, + QString::fromStdString("/Test Material4.FCMat"), + false, // overwrite + false, // saveAsCopy + true);// saveInherited + EXPECT_NE(newMaterial->getUUID(), Materials::ModelUUIDs::ModelUUID_Test_Material); + EXPECT_EQ(newMaterial->getName(), QString::fromStdString("Test Material4")); + QString uuid1 = newMaterial->getUUID(); + + // Save to a new file, inheritance mode, testing overwrite, new copy + _materialManager->saveMaterial(_library, + newMaterial, + QString::fromStdString("/Test Material5.FCMat"), + false, // overwrite + true, // saveAsCopy + true);// saveInherited + EXPECT_EQ(newMaterial->getUUID(), uuid1); + EXPECT_EQ(newMaterial->getName(), QString::fromStdString("Test Material5")); + + _materialManager->saveMaterial(_library, + newMaterial, + QString::fromStdString("/Test Material5.FCMat"), + true, // overwrite + true, // saveAsCopy + true);// saveInherited + EXPECT_EQ(newMaterial->getUUID(), uuid1); + EXPECT_EQ(newMaterial->getName(), QString::fromStdString("Test Material5")); + + // Save to a new file, inheritance mode, testing overwrite as no copy, new copy + _materialManager->saveMaterial(_library, + newMaterial, + QString::fromStdString("/Test Material6.FCMat"), + false, // overwrite + true, // saveAsCopy + true);// saveInherited + EXPECT_EQ(newMaterial->getUUID(), uuid1); + EXPECT_EQ(newMaterial->getName(), QString::fromStdString("Test Material6")); + + _materialManager->saveMaterial(_library, + newMaterial, + QString::fromStdString("/Test Material6.FCMat"), + true, // overwrite + false, // saveAsCopy + true);// saveInherited + EXPECT_EQ(newMaterial->getUUID(), uuid1); + EXPECT_EQ(newMaterial->getName(), QString::fromStdString("Test Material6")); +} + +// clang-format on diff --git a/tests/src/Mod/Material/App/TestMaterialValue.cpp b/tests/src/Mod/Material/App/TestMaterialValue.cpp index d39023f939..34155822a2 100644 --- a/tests/src/Mod/Material/App/TestMaterialValue.cpp +++ b/tests/src/Mod/Material/App/TestMaterialValue.cpp @@ -143,7 +143,6 @@ TEST_F(TestMaterialValue, TestQuantityType) EXPECT_TRUE(variant.toString().isNull()); EXPECT_TRUE(variant.toString().isEmpty()); EXPECT_EQ(variant.toString().size(), 0); - auto quantity = variant.value(); EXPECT_FALSE(quantity.isValid()); EXPECT_EQ(quantity.getUserString(), QString::fromStdString("nan ")); @@ -160,7 +159,6 @@ TEST_F(TestMaterialValue, TestQuantityType) EXPECT_TRUE(variant.toString().isNull()); EXPECT_TRUE(variant.toString().isEmpty()); EXPECT_EQ(variant.toString().size(), 0); - quantity = variant.value(); EXPECT_FALSE(quantity.isValid()); EXPECT_EQ(quantity.getUserString(), QString::fromStdString("nan ")); @@ -173,11 +171,16 @@ TEST_F(TestMaterialValue, TestListType) EXPECT_EQ(mat1.getType(), Materials::MaterialValue::List); EXPECT_TRUE(mat1.isNull()); auto variant = mat1.getValue(); - EXPECT_TRUE(variant.isNull()); - EXPECT_TRUE(variant.canConvert()); + EXPECT_TRUE(variant.value>().isEmpty()); + EXPECT_EQ(variant.value>().size(), 0); + EXPECT_FALSE(variant.isNull()); + EXPECT_FALSE(variant.canConvert()); EXPECT_TRUE(variant.toString().isNull()); EXPECT_TRUE(variant.toString().isEmpty()); EXPECT_EQ(variant.toString().size(), 0); + auto list = mat1.getList(); + EXPECT_TRUE(list.isEmpty()); + EXPECT_EQ(list.size(), 0); } TEST_F(TestMaterialValue, TestArray2DType) diff --git a/tests/src/Mod/Material/App/TestMaterials.cpp b/tests/src/Mod/Material/App/TestMaterials.cpp index e06212c3d4..808f09fc7e 100644 --- a/tests/src/Mod/Material/App/TestMaterials.cpp +++ b/tests/src/Mod/Material/App/TestMaterials.cpp @@ -98,7 +98,7 @@ TEST_F(TestMaterial, TestMaterialsWithModel) TEST_F(TestMaterial, TestMaterialByPath) { auto steel = _materialManager->getMaterialByPath( - QString::fromStdString("StandardMaterial/Metal/Steel/CalculiX-Steel.FCMat"), + QString::fromStdString("Standard/Metal/Steel/CalculiX-Steel.FCMat"), QString::fromStdString("System")); EXPECT_NE(&steel, nullptr); EXPECT_EQ(steel->getName(), QString::fromStdString("CalculiX-Steel")); @@ -106,7 +106,7 @@ TEST_F(TestMaterial, TestMaterialByPath) // The same but with a leading '/' auto steel2 = _materialManager->getMaterialByPath( - QString::fromStdString("/StandardMaterial/Metal/Steel/CalculiX-Steel.FCMat"), + QString::fromStdString("/Standard/Metal/Steel/CalculiX-Steel.FCMat"), QString::fromStdString("System")); EXPECT_NE(&steel2, nullptr); EXPECT_EQ(steel2->getName(), QString::fromStdString("CalculiX-Steel")); @@ -114,7 +114,7 @@ TEST_F(TestMaterial, TestMaterialByPath) // Same with the library name as a prefix auto steel3 = _materialManager->getMaterialByPath( - QString::fromStdString("/System/StandardMaterial/Metal/Steel/CalculiX-Steel.FCMat"), + QString::fromStdString("/System/Standard/Metal/Steel/CalculiX-Steel.FCMat"), QString::fromStdString("System")); EXPECT_NE(&steel3, nullptr); EXPECT_EQ(steel3->getName(), QString::fromStdString("CalculiX-Steel"));