mirror of
https://github.com/lucaspalomodevelop/meshlab.git
synced 2026-03-17 01:54:42 +00:00
- updated/fixed color attributes priority
This commit is contained in:
parent
c21f6b5b21
commit
d87ae851c6
@ -518,7 +518,7 @@ void MLPoliciesStandAloneFunctions::computeRequestedRenderingDataCompatibleWithM
|
||||
|
||||
|
||||
}
|
||||
MLPoliciesStandAloneFunctions::setPerViewGLOptionsPriorities(meshmodel,outputdt);
|
||||
MLPoliciesStandAloneFunctions::setPerViewGLOptionsPriorities(outputdt);
|
||||
}
|
||||
|
||||
void MLPoliciesStandAloneFunctions::fromMeshModelMaskToMLRenderingAtts( int meshmodelmask,MLRenderingData::RendAtts& atts)
|
||||
@ -628,7 +628,7 @@ void MLPoliciesStandAloneFunctions::suggestedDefaultPerViewRenderingData(MeshMod
|
||||
}
|
||||
|
||||
|
||||
void MLPoliciesStandAloneFunctions::disableRedundatRenderingDataAccordingToPriorities(MeshModel* meshmodel, MLRenderingData& dt)
|
||||
void MLPoliciesStandAloneFunctions::disableRedundatRenderingDataAccordingToPriorities(MLRenderingData& dt)
|
||||
{
|
||||
for (MLRenderingData::PRIMITIVE_MODALITY pr = MLRenderingData::PRIMITIVE_MODALITY(0); pr < MLRenderingData::PR_ARITY; pr = MLRenderingData::next(pr))
|
||||
{
|
||||
@ -638,7 +638,7 @@ void MLPoliciesStandAloneFunctions::disableRedundatRenderingDataAccordingToPrior
|
||||
dt.set(pr, atts);
|
||||
}
|
||||
|
||||
setPerViewGLOptionsPriorities(meshmodel, dt);
|
||||
setPerViewGLOptionsPriorities(dt);
|
||||
}
|
||||
|
||||
|
||||
@ -699,16 +699,16 @@ void MLPoliciesStandAloneFunctions::setAttributePriorities(MLRenderingData::Rend
|
||||
//
|
||||
//}
|
||||
|
||||
void MLPoliciesStandAloneFunctions::setPerViewGLOptionsPriorities(MeshModel* mm,MLRenderingData& dt )
|
||||
void MLPoliciesStandAloneFunctions::setPerViewGLOptionsPriorities(MLRenderingData& dt )
|
||||
{
|
||||
if (mm == NULL)
|
||||
return;
|
||||
bool permeshcolor = mm->hasDataMask(MeshModel::MM_COLOR);
|
||||
//if (mm == NULL)
|
||||
// return;
|
||||
//bool permeshcolor = mm->hasDataMask(MeshModel::MM_COLOR);
|
||||
MLPerViewGLOptions glopts;
|
||||
if (!dt.get(glopts))
|
||||
return;
|
||||
if (permeshcolor)
|
||||
glopts._perpoint_mesh_color_enabled = true;
|
||||
/*if (permeshcolor)
|
||||
glopts._perpoint_mesh_color_enabled = true;*/
|
||||
|
||||
for(MLRenderingData::PRIMITIVE_MODALITY pm = MLRenderingData::PRIMITIVE_MODALITY(0);pm < MLRenderingData::PR_ARITY;pm = MLRenderingData::next(pm))
|
||||
{
|
||||
@ -720,23 +720,23 @@ void MLPoliciesStandAloneFunctions::setPerViewGLOptionsPriorities(MeshModel* mm,
|
||||
case (MLRenderingData::PR_POINTS):
|
||||
{
|
||||
glopts._perpoint_noshading = !atts[MLRenderingData::ATT_NAMES::ATT_VERTNORMAL];
|
||||
glopts._perpoint_mesh_color_enabled = !atts[MLRenderingData::ATT_NAMES::ATT_VERTCOLOR] && permeshcolor;
|
||||
glopts._perpoint_fixed_color_enabled = !atts[MLRenderingData::ATT_NAMES::ATT_VERTCOLOR] && !permeshcolor;
|
||||
glopts._perpoint_mesh_color_enabled &= !atts[MLRenderingData::ATT_NAMES::ATT_VERTCOLOR];
|
||||
glopts._perpoint_fixed_color_enabled = !atts[MLRenderingData::ATT_NAMES::ATT_VERTCOLOR] && !glopts._perpoint_mesh_color_enabled;
|
||||
break;
|
||||
}
|
||||
case (MLRenderingData::PR_WIREFRAME_EDGES):
|
||||
case (MLRenderingData::PR_WIREFRAME_TRIANGLES):
|
||||
{
|
||||
glopts._perwire_noshading = !atts[MLRenderingData::ATT_NAMES::ATT_VERTNORMAL];
|
||||
glopts._perwire_mesh_color_enabled = !atts[MLRenderingData::ATT_NAMES::ATT_VERTCOLOR] && permeshcolor;
|
||||
glopts._perwire_fixed_color_enabled = !atts[MLRenderingData::ATT_NAMES::ATT_VERTCOLOR] && !atts[MLRenderingData::ATT_NAMES::ATT_FACECOLOR] && !permeshcolor;
|
||||
glopts._perwire_mesh_color_enabled &= !atts[MLRenderingData::ATT_NAMES::ATT_VERTCOLOR];
|
||||
glopts._perwire_fixed_color_enabled = !atts[MLRenderingData::ATT_NAMES::ATT_VERTCOLOR] && !atts[MLRenderingData::ATT_NAMES::ATT_FACECOLOR] && !glopts._perwire_mesh_color_enabled;
|
||||
break;
|
||||
}
|
||||
case (MLRenderingData::PR_SOLID):
|
||||
{
|
||||
glopts._persolid_noshading = (!atts[MLRenderingData::ATT_NAMES::ATT_VERTNORMAL]) && (!atts[MLRenderingData::ATT_NAMES::ATT_FACENORMAL]);
|
||||
glopts._persolid_mesh_color_enabled = !atts[MLRenderingData::ATT_NAMES::ATT_VERTCOLOR] && !atts[MLRenderingData::ATT_NAMES::ATT_FACECOLOR] && permeshcolor;
|
||||
glopts._persolid_fixed_color_enabled = !atts[MLRenderingData::ATT_NAMES::ATT_VERTCOLOR] && !atts[MLRenderingData::ATT_NAMES::ATT_FACECOLOR] && !permeshcolor;
|
||||
glopts._persolid_mesh_color_enabled &= !atts[MLRenderingData::ATT_NAMES::ATT_VERTCOLOR] && !atts[MLRenderingData::ATT_NAMES::ATT_FACECOLOR];
|
||||
glopts._persolid_fixed_color_enabled = !atts[MLRenderingData::ATT_NAMES::ATT_VERTCOLOR] && !atts[MLRenderingData::ATT_NAMES::ATT_FACECOLOR] && !glopts._persolid_mesh_color_enabled;
|
||||
break;
|
||||
}
|
||||
case (MLRenderingData::PR_ARITY):
|
||||
|
||||
@ -190,7 +190,7 @@ struct MLPoliciesStandAloneFunctions
|
||||
|
||||
static void setAttributePriorities(MLRenderingData::RendAtts& atts);
|
||||
|
||||
static void setPerViewGLOptionsPriorities(MeshModel* mm,MLRenderingData& dt );
|
||||
static void setPerViewGLOptionsPriorities(MLRenderingData& dt );
|
||||
|
||||
//static void setPerViewRenderingDataPriorities(MeshModel* mm,MLRenderingData& dt);
|
||||
|
||||
@ -198,7 +198,7 @@ struct MLPoliciesStandAloneFunctions
|
||||
|
||||
static void suggestedDefaultPerViewRenderingData(MeshModel* meshmodel,MLRenderingData& dt);
|
||||
|
||||
static void disableRedundatRenderingDataAccordingToPriorities(MeshModel* meshmodel,MLRenderingData& dt);
|
||||
static void disableRedundatRenderingDataAccordingToPriorities(MLRenderingData& dt);
|
||||
|
||||
static bool isPrimitiveModalityCompatibleWithMesh(MeshModel* m,const MLRenderingData::PRIMITIVE_MODALITY pm);
|
||||
|
||||
|
||||
@ -1046,7 +1046,7 @@ void GLArea::setCurrentEditAction(QAction *editAction)
|
||||
{
|
||||
parentmultiview->sharedDataContext()->getRenderInfoPerMeshView(md()->mm()->id(), context(), dt);
|
||||
iEdit->suggestedRenderingData(*(md()->mm()), dt);
|
||||
MLPoliciesStandAloneFunctions::disableRedundatRenderingDataAccordingToPriorities(md()->mm(), dt);
|
||||
MLPoliciesStandAloneFunctions::disableRedundatRenderingDataAccordingToPriorities(dt);
|
||||
parentmultiview->sharedDataContext()->setRenderingDataPerMeshView(md()->mm()->id(), context(), dt);
|
||||
parentmultiview->sharedDataContext()->manageBuffers(md()->mm()->id());
|
||||
}
|
||||
@ -1059,7 +1059,7 @@ void GLArea::setCurrentEditAction(QAction *editAction)
|
||||
{
|
||||
parentmultiview->sharedDataContext()->getRenderInfoPerMeshView(mm->id(), context(), dt);
|
||||
iEdit->suggestedRenderingData(*(mm), dt);
|
||||
MLPoliciesStandAloneFunctions::disableRedundatRenderingDataAccordingToPriorities(mm, dt);
|
||||
MLPoliciesStandAloneFunctions::disableRedundatRenderingDataAccordingToPriorities(dt);
|
||||
parentmultiview->sharedDataContext()->setRenderingDataPerMeshView(mm->id(), context(), dt);
|
||||
parentmultiview->sharedDataContext()->manageBuffers(mm->id());
|
||||
}
|
||||
|
||||
@ -638,7 +638,6 @@ void MainWindow::setHandleMenu(QPoint point, Qt::Orientation orientation, QSplit
|
||||
unSplitMenu->addAction(unsplitRightAct);
|
||||
unSplitMenu->addAction(unsplitLeftAct);
|
||||
}
|
||||
|
||||
handleMenu->popup(point);
|
||||
}
|
||||
|
||||
@ -1067,7 +1066,8 @@ void MainWindow::startFilter()
|
||||
|
||||
// In order to avoid that a filter changes something assumed by the current editing tool,
|
||||
// before actually starting the filter we close the current editing tool (if any).
|
||||
endEdit();
|
||||
if (GLA()->getCurrentEditAction() != NULL)
|
||||
endEdit();
|
||||
updateMenus();
|
||||
|
||||
QStringList missingPreconditions;
|
||||
@ -1306,7 +1306,28 @@ void MainWindow::updateSharedContextDataAfterFilterExecution(int postcondmask,in
|
||||
}
|
||||
curr.set(pm,rd);
|
||||
}
|
||||
MLPoliciesStandAloneFunctions::setPerViewGLOptionsPriorities(mm,curr);
|
||||
MLPerViewGLOptions opts;
|
||||
curr.get(opts);
|
||||
if (fclasses & MeshFilterInterface::MeshColoring)
|
||||
{
|
||||
bool hasmeshcolor = mm->hasDataMask(MeshModel::MM_COLOR);
|
||||
opts._perpoint_mesh_color_enabled = hasmeshcolor;
|
||||
opts._perwire_mesh_color_enabled = hasmeshcolor;
|
||||
opts._persolid_mesh_color_enabled = hasmeshcolor;
|
||||
|
||||
for (MLRenderingData::PRIMITIVE_MODALITY pm = MLRenderingData::PRIMITIVE_MODALITY(0); pm < MLRenderingData::PR_ARITY; pm = MLRenderingData::next(pm))
|
||||
{
|
||||
MLRenderingData::RendAtts atts;
|
||||
curr.get(pm, atts);
|
||||
atts[MLRenderingData::ATT_NAMES::ATT_VERTCOLOR] = false;
|
||||
atts[MLRenderingData::ATT_NAMES::ATT_FACECOLOR] = false;
|
||||
curr.set(pm, atts);
|
||||
}
|
||||
}
|
||||
curr.set(opts);
|
||||
|
||||
|
||||
MLPoliciesStandAloneFunctions::setPerViewGLOptionsPriorities(curr);
|
||||
shared->setRenderingDataPerMeshView(mm->id(),GLA()->context(),curr);
|
||||
currentmeshnewlycreated = false;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user