Last CVS commit: update of file

This commit is contained in:
Paolo Cignoni cignoni 2008-05-04 20:05:01 +00:00
parent b9c929a3c0
commit 08ea66621a
3 changed files with 25 additions and 12 deletions

View File

@ -50,7 +50,7 @@ const PluginInfo &EditTexturePlugin::Info()
{
static PluginInfo ai;
ai.Date=tr(__DATE__);
ai.Version = tr("0.9");
ai.Version = tr("1.0.1");
ai.Author = ("Riccardo Dini");
return ai;
}

View File

@ -943,11 +943,7 @@ void RenderArea::ChangeMode(int modenumber)
model->cm.face.EnableVFAdjacency();
model->cm.vert.EnableVFAdjacency();
model->cm.face.EnableFFAdjacency();
vcg::tri::UpdateTopology<CMeshO>::FaceFaceFromTexCoord(model->cm);
vcg::tri::UpdateTopology<CMeshO>::VertexFace(model->cm);
model->clearDataMask(MeshModel::MM_BORDERFLAG);
vcg::tri::UpdateFlags<CMeshO>::FaceBorderFromFF(model->cm);
vcg::tri::UpdateFlags<CMeshO>::VertexBorderFromFace(model->cm);
UpdateUnifyTopology();
}
break;
}
@ -1176,8 +1172,11 @@ void RenderArea::SelectVertexes()
uvertB = ToScreenSpace((*fi).WT(j).u(), (*fi).WT(j).v());
tub = (*fi).WT(j).u(); tvb = (*fi).WT(j).v();
path.clear();
path = FindPath(unifyA, unifyB, firstface, 0);
drawP = true;
if (unifyA->IsB() && unifyB->IsB())
{
path = FindPath(unifyA, unifyB, firstface, 0);
drawP = true;
}
this->update();
}
else if (unifyRA1 == QRect())
@ -1197,8 +1196,11 @@ void RenderArea::SelectVertexes()
uvertB1 = ToScreenSpace((*fi).WT(j).u(), (*fi).WT(j).v());
tub1 = (*fi).WT(j).u(); tvb1 = (*fi).WT(j).v();
path1.clear();
path1 = FindPath(unifyA1, unifyB1, firstface1, 1);
drawP1 = true;
if (unifyA1->IsB() && unifyB1->IsB())
{
path1 = FindPath(unifyA1, unifyB1, firstface1, 1);
drawP1 = true;
}
this->update();
}
return;
@ -1363,7 +1365,7 @@ void RenderArea::UnifyCouple()
void RenderArea::UnifySet()
{
// Unify a set of vertexes
if (path.size() == path1.size())
if (path.size() == path1.size() && drawP && drawP1)
{
for (unsigned i = 0; i < path.size(); i++)
{
@ -1398,7 +1400,7 @@ void RenderArea::UnifySet()
if (next1 == 0) break;
}
}
vcg::tri::UpdateTopology<CMeshO>::FaceFaceFromTexCoord(model->cm);
UpdateUnifyTopology();
}
selectedV = false;
for (unsigned i = 0; i < model->cm.vert.size(); i++) model->cm.vert[i].ClearUserBit(selVertBit);
@ -1820,6 +1822,16 @@ void RenderArea::CountVertexes()
}
}
void RenderArea::UpdateUnifyTopology()
{
// Update the topology needed for unify of edge
vcg::tri::UpdateTopology<CMeshO>::FaceFaceFromTexCoord(model->cm);
vcg::tri::UpdateTopology<CMeshO>::VertexFace(model->cm);
model->clearDataMask(MeshModel::MM_BORDERFLAG);
vcg::tri::UpdateFlags<CMeshO>::FaceBorderFromFF(model->cm);
vcg::tri::UpdateFlags<CMeshO>::VertexBorderFromFace(model->cm);
}
bool RenderArea::isInside(vector<TexCoord2<float> > tmpCoord, TexCoord2<float> act)
{
// Support function for search in a vector

View File

@ -155,6 +155,7 @@ private:
void ShowFaces();
void UpdateUnify();
vector<CVertexO*> FindPath(CVertexO* begin, CVertexO* end, CFaceO* first, int pathN);
void UpdateUnifyTopology();
signals:
void UpdateModel();