MeshModelingTools: Add DynamicMesh provider/committer interfaces and update existing targets to support them. Move interface target files.

#rb Lonnie.Li
#rnx
#jira none

[CL 16315070 by semion piskarev in ue5-main branch]
This commit is contained in:
semion piskarev
2021-05-13 13:22:55 -04:00
parent 0e21626721
commit b999806285
15 changed files with 442 additions and 113 deletions
@@ -179,29 +179,14 @@ void USimpleDynamicMeshComponent::ApplyTransform(const UE::Geometry::FTransform3
void USimpleDynamicMeshComponent::Bake(FMeshDescription* MeshDescription, bool bHaveModifiedTopology, const FConversionToMeshDescriptionOptions& ConversionOptions)
{
FDynamicMeshToMeshDescription Converter(ConversionOptions);
if (bHaveModifiedTopology == false && Converter.HaveMatchingElementCounts(Mesh.Get(), MeshDescription))
if (!bHaveModifiedTopology)
{
if (ConversionOptions.bUpdatePositions)
{
Converter.Update(Mesh.Get(), *MeshDescription, ConversionOptions.bUpdateNormals, ConversionOptions.bUpdateTangents, ConversionOptions.bUpdateUVs);
}
else if (ConversionOptions.bUpdateNormals || ConversionOptions.bUpdateTangents || ConversionOptions.bUpdateUVs)
{
Converter.UpdateAttributes(Mesh.Get(), *MeshDescription, ConversionOptions.bUpdateNormals, ConversionOptions.bUpdateTangents, ConversionOptions.bUpdateUVs);
}
if (ConversionOptions.bUpdateVtxColors)
{
Converter.UpdateVertexColors(Mesh.Get(), *MeshDescription);
}
Converter.UpdateUsingConversionOptions(Mesh.Get(), *MeshDescription);
}
else
{
Converter.Convert(Mesh.Get(), *MeshDescription);
//UE_LOG(LogTemp, Warning, TEXT("MeshDescription has %d instances"), MeshDescription->VertexInstances().Num());
}
}