Navigation
API > API/Plugins > API/Plugins/DataflowNodes
Transfers vertex and/or triangle attributes from one mesh (source) to another (target).
This class generalizes FTransferBoneWeights to support arbitrary attribute types including skin weights, morph targets, polygroups, and triangle labels. Attributes to transfer are registered as proxy objects (FVertexProxy / FTriangleProxy) before calling TransferAttributesToMesh.
The current implementation uses the ClosestPointOnSurface algorithm. An Inpaint fallback is planned but not yet exposed. Most configuration members are private and will be progressively exposed as the API matures.
@experimental Available since UE 5.8; the API may change without notice.
| Name | FTransferAttributes |
| Type | class |
| Header File | /Engine/Plugins/Dataflow/Source/DataflowNodes/Public/Dataflow/Transfer/TransferAttributes.h |
| Include Path | #include "Dataflow/Transfer/TransferAttributes.h" |
Syntax
class FTransferAttributes
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FTransferAttributes
(
const FDynamicMesh3* InSourceMesh, |
Constructs the operator with a mandatory source mesh and an optional pre-built BVH. | Dataflow/Transfer/TransferAttributes.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FTransferAttributes() |
Dataflow/Transfer/TransferAttributes.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bUseIntrinsicLaplacian | bool | If true, will use the intrinsic Delaunay mesh to construct sparse Cotangent Laplacian matrix. | Dataflow/Transfer/TransferAttributes.h | |
| bUseParallel | bool | Enable/disable multi-threading. | Dataflow/Transfer/TransferAttributes.h | |
| ForceInpaint | TArray< float > | Optional mask where if ForceInpaint[VertexID] != 0 we want to force the colors for the vertex to be computed | Dataflow/Transfer/TransferAttributes.h | |
| InternalSourceBVH | TUniquePtr< FDynamicMeshAABBTree3 > | If the caller doesn't pass BVH for the source mesh then we compute one. | Dataflow/Transfer/TransferAttributes.h | |
| InternalSourceMeshNormals | TUniquePtr< FMeshNormals > | If the source mesh doesn't have per-vertex normals then compute them | Dataflow/Transfer/TransferAttributes.h | |
| LayeredMeshSupport | bool | If true, when the closest point doesn't pass the normal threshold test, will try again with a flipped normal. | Dataflow/Transfer/TransferAttributes.h | |
| MatchedTriangles | TBitArray | Output bitmask: MatchedTriangles[TriangleID] is true for every target triangle whose closest source triangle was found. | Dataflow/Transfer/TransferAttributes.h | |
| MatchedVertices | TBitArray | Output bitmask: MatchedVertices[VertexID] is true for every target VERTICES whose closest source triangle was found. | Dataflow/Transfer/TransferAttributes.h | |
| NormalThreshold | double | Maximum angle (in radians) difference between target and source point normals to be considered a match. | Dataflow/Transfer/TransferAttributes.h | |
| NumSmoothingIterations | int32 | The number of optional post-processing smoothing iterations applied to the vertices without the match. | Dataflow/Transfer/TransferAttributes.h | |
| Progress | FProgressCancel * | Set this to be able to cancel the running operation. | Dataflow/Transfer/TransferAttributes.h | |
| SearchRadius | double | Radius for searching the closest point. If negative, all points are considered. | Dataflow/Transfer/TransferAttributes.h | |
| SmoothingStrength | float | The strength of each post-processing smoothing iteration. | Dataflow/Transfer/TransferAttributes.h | |
| SourceBVH | const FDynamicMeshAABBTree3 * | The caller can optionally specify the source mesh BVH in case this operator is run on multiple target meshes while the source mesh remains the same. | Dataflow/Transfer/TransferAttributes.h | |
| SourceMesh | const FDynamicMesh3 * | Source mesh we are transferring colors from. | Dataflow/Transfer/TransferAttributes.h | |
| TargetToWorld | FTransformSRT3d | Transform applied to the input target mesh or target point before transfer. | Dataflow/Transfer/TransferAttributes.h | |
| TargetTrianglesSubset | TArray< int32 > | Optional subset of target mesh triangles to consider during triangle-level attribute transfer. | Dataflow/Transfer/TransferAttributes.h | |
| TargetVerticesSubset | TArray< int32 > | Optional subset of target mesh vertices to transfer weights to. | Dataflow/Transfer/TransferAttributes.h | |
| TransferMethod | ETransferMethod | The transfer method to transfer data. | Dataflow/Transfer/TransferAttributes.h | |
| TriangleProxies | TArray< FTriangleProxy > | Ordered list of triangle-level attribute proxies (polygroups, triangle labels) to be applied during transfer. | Dataflow/Transfer/TransferAttributes.h | |
| VertexProxies | TArray< FVertexProxy > | Ordered list of vertex-level attribute proxies (skin weights, morph targets) to be applied during transfer. | Dataflow/Transfer/TransferAttributes.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddTriangleProxy
(
ArgTypes&&... Args |
Constructs a triangle proxy of type T in-place at the end of TriangleProxies. | Dataflow/Transfer/TransferAttributes.h | |
void AddVertexProxy
(
ArgTypes&&... Args |
Constructs a vertex proxy of type T in-place at the end of VertexProxies. | Dataflow/Transfer/TransferAttributes.h |
Public Virtual
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool TransferAttributesToMesh
(
FDynamicMesh3& InOutTargetMesh |
Executes the configured attribute transfer, writing results into InOutTargetMesh. | Dataflow/Transfer/TransferAttributes.h | |
virtual EOperationValidationResult Validate() |
Validates that all required inputs are set before running the transfer. | Dataflow/Transfer/TransferAttributes.h |