Merge pull request #4050 from sgiraudot/Surface_mesh-Fix_PLY_warning-GF

[Surface Mesh / PLY] Fix uninitialized warning and error on unhandled properties
This commit is contained in:
Sebastien Loriot 2019-07-18 16:31:17 +02:00 committed by GitHub
commit fbf6fb375d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 8 deletions

View File

@ -375,6 +375,7 @@ public:
t = property->buffer();
return;
}
t = {};
}
template <typename Type>
@ -389,6 +390,7 @@ public:
t = property->buffer();
return;
}
t = {};
}
void assign (double& t, const char* tag)
@ -410,6 +412,7 @@ public:
return;
}
t = {};
}
};

View File

@ -2212,22 +2212,35 @@ private: //------------------------------------------------------- private data
std::vector<internal::PLY::Abstract_property_printer<FIndex>*> fprinters;
internal::PLY::fill_header (os, sm, fprinters);
std::vector<internal::PLY::Abstract_property_printer<EIndex>*> eprinters;
if (sm.template properties<EIndex>().size() > 1)
{
os << "element edge " << sm.number_of_edges() << std::endl;
os << "property int v0" << std::endl;
os << "property int v1" << std::endl;
internal::PLY::fill_header (os, sm, eprinters);
std::ostringstream oss;
internal::PLY::fill_header (oss, sm, eprinters);
if (!eprinters.empty())
{
os << "element edge " << sm.number_of_edges() << std::endl;
os << "property int v0" << std::endl;
os << "property int v1" << std::endl;
os << oss.str();
}
}
std::vector<internal::PLY::Abstract_property_printer<HIndex>*> hprinters;
if (sm.template properties<HIndex>().size() > 1)
{
os << "element halfedge " << sm.number_of_halfedges() << std::endl;
os << "property int source" << std::endl;
os << "property int target" << std::endl;
internal::PLY::fill_header (os, sm, hprinters);
std::ostringstream oss;
internal::PLY::fill_header (oss, sm, hprinters);
if (!hprinters.empty())
{
os << "element halfedge " << sm.number_of_halfedges() << std::endl;
os << "property int source" << std::endl;
os << "property int target" << std::endl;
os << oss.str();
}
}
os << "end_header" << std::endl;