Revision f8c1c6834e3c7da57d0cae114735f1cf643b0498 authored by Nico Schertler on 09 July 2018, 14:15:39 UTC, committed by Nico Schertler on 09 July 2018, 14:15:39 UTC
1 parent 722a9f4
ParametrizationData.cpp
#include "ParametrizationData.h"
FaceConstraintInfo::FaceConstraintInfo(ParametrizationData* optData, int face, ConstraintDirection direction)
: optData(optData)
{
int patchSides[2] = { direction == LeftRight ? 0 : 1, direction == LeftRight ? 2 : 3 };
auto& f = optData->patches[face];
if (f.PatchSides().size() != 4)
return;
if (f.PatchSides()[patchSides[0]].size() == 0 || f.PatchSides()[patchSides[1]].size() == 0)
return;
for (int k = 0; k < 2; ++k)
{
auto currentSide = patchSides[k];
canGrow[k] = f.CanSideGrow(currentSide);
for (int i = 0; i < f.PatchSides()[currentSide].size(); ++i)
{
auto arcIdx = f.PatchSides()[currentSide][i];
auto& arc = optData->graph->Halfarcs()[arcIdx];
auto arcEdge = optData->graph->MotorcycleHalfedge(*arc.begin());
bool isBoundary = optData->mesh->is_boundary(arcEdge) || optData->mesh->is_boundary(optData->mesh->opposite_halfedge_handle(arcEdge));
if(!isBoundary)
arcs[k].push_back(arcIdx);
}
}
}
Computing file changes ...