diff --git a/src/meshlab/dialogs/save_mesh_attributes_dialog.cpp b/src/meshlab/dialogs/save_mesh_attributes_dialog.cpp index 54c5cc9d1d..c473ebe335 100644 --- a/src/meshlab/dialogs/save_mesh_attributes_dialog.cpp +++ b/src/meshlab/dialogs/save_mesh_attributes_dialog.cpp @@ -280,7 +280,10 @@ bool SaveMeshAttributesDialog::shouldBeChecked(int bit, int /*capabilityBits*/, void SaveMeshAttributesDialog::updateMask() { - int newmask = 0; + // Edge connectivity is topology, not an optional per-element attribute, and + // therefore has no checkbox in this dialog. Preserve it when the exporter + // includes it in its default mask. + int newmask = defaultBits & vcg::tri::io::Mask::IOM_EDGEINDEX; if( ui->check_iom_vertflags->isChecked() ) { newmask |= vcg::tri::io::Mask::IOM_VERTFLAGS;} if( ui->check_iom_vertcolor->isChecked() ) { newmask |= vcg::tri::io::Mask::IOM_VERTCOLOR;} @@ -319,4 +322,3 @@ void SaveMeshAttributesDialog::on_textureQualitySpinBox_valueChanged(int arg1) ui->textureQualitySpinBox->setSuffix(""); } } - diff --git a/src/meshlabplugins/io_base/baseio.cpp b/src/meshlabplugins/io_base/baseio.cpp index 6d0b962c0f..ecd0b17678 100644 --- a/src/meshlabplugins/io_base/baseio.cpp +++ b/src/meshlabplugins/io_base/baseio.cpp @@ -668,7 +668,7 @@ void BaseMeshIOPlugin::saveProject( void BaseMeshIOPlugin::exportMaskCapability(const QString &format, int &capability, int &defaultBits) const { if (format.toUpper() == tr("PLY")) { - capability = tri::io::ExporterPLY::GetExportMaskCapability(); + capability = tri::io::ExporterPLY::GetExportMaskCapability() | tri::io::Mask::IOM_EDGEINDEX; // For the default bits of the ply format disable flags and normals that usually are not useful. defaultBits = capability; defaultBits &= (~tri::io::Mask::IOM_FLAGS);