Files
UnrealEngineUWP/Engine/Plugins/Experimental/GeometryProcessing/Source/DynamicMesh/Private/MeshConstraintsUtil.cpp
Chris Gagnon 930e33cb48 Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) for 4.23 From CL 6837861
#rb none

[CL 6838042 by Chris Gagnon in Main branch]
2019-06-04 15:42:48 -04:00

27 lines
955 B
C++

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
#include "MeshConstraintsUtil.h"
void FMeshConstraintsUtil::ConstrainAllSeams(FMeshConstraints& Constraints, const FDynamicMesh3& Mesh, bool bAllowSplits, bool bAllowSmoothing)
{
if (Mesh.HasAttributes() == false)
{
return;
}
const FDynamicMeshAttributeSet* Attributes = Mesh.Attributes();
FEdgeConstraint EdgeConstraint = (bAllowSplits) ? FEdgeConstraint::SplitsOnly() : FEdgeConstraint::FullyConstrained();
FVertexConstraint VtxConstraint = (bAllowSmoothing) ? FVertexConstraint::PinnedMovable() : FVertexConstraint::Pinned();
for (int EdgeID : Mesh.EdgeIndicesItr())
{
if (Attributes->IsSeamEdge(EdgeID))
{
Constraints.SetOrUpdateEdgeConstraint(EdgeID, EdgeConstraint);
FIndex2i EdgeVerts = Mesh.GetEdgeV(EdgeID);
Constraints.SetOrUpdateVertexConstraint(EdgeVerts.A, VtxConstraint);
Constraints.SetOrUpdateVertexConstraint(EdgeVerts.B, VtxConstraint);
}
}
}