3mf I/O - Added import and export of modifiers

This commit is contained in:
Enrico Turri 2018-02-28 12:11:41 +01:00
parent 8cd42966d6
commit 0e896e48e4

View file

@ -62,6 +62,9 @@ const char* LAST_TRIANGLE_ID_ATTR = "lastid";
const char* OBJECT_TYPE = "object";
const char* VOLUME_TYPE = "volume";
const char* NAME_KEY = "name";
const char* MODIFIER_KEY = "modifier";
const unsigned int VALID_OBJECT_TYPES_COUNT = 1;
const char* VALID_OBJECT_TYPES[] =
{
@ -1350,8 +1353,10 @@ namespace Slic3r {
// apply volume's name and config data
for (const Metadata& metadata : volume_data.metadata)
{
if (metadata.key == "name")
if (metadata.key == NAME_KEY)
volume->name = metadata.value;
else if ((metadata.key == MODIFIER_KEY) && (metadata.value == "1"))
volume->modifier = true;
else
volume->config.set_deserialize(metadata.key, metadata.value);
}
@ -1807,7 +1812,11 @@ namespace Slic3r {
// stores volume's name
if (!volume->name.empty())
stream << " <" << METADATA_TAG << " " << TYPE_ATTR << "=\"" << VOLUME_TYPE << "\" " << KEY_ATTR << "=\"name\" " << VALUE_ATTR << "=\"" << volume->name << "\"/>\n";
stream << " <" << METADATA_TAG << " " << TYPE_ATTR << "=\"" << VOLUME_TYPE << "\" " << KEY_ATTR << "=\"" << NAME_KEY << "\" " << VALUE_ATTR << "=\"" << volume->name << "\"/>\n";
// stores volume's modifier field
if (volume->modifier)
stream << " <" << METADATA_TAG << " " << TYPE_ATTR << "=\"" << VOLUME_TYPE << "\" " << KEY_ATTR << "=\"" << MODIFIER_KEY << "\" " << VALUE_ATTR << "=\"1\"/>\n";
// stores volume's config data
for (const std::string& key : volume->config.keys())