# Attribute Transfer Options
## Domain Combinations
| Source Domain | Result Domain | Topology | Raycast | Nearest | Nearest Interpolated | Matching Attribute (normals) |
| ------------- | ------------- | -------- | ------- | ------- | -------------------- | ---------------------------- |
| Point | Point | x | | x | | x |
| Point | Edge | x | | x | x | x |
| Point | Face | x | | x | x | x |
| Point | Corner | ? | ? | ? | ? | ? |
| Edge | Point | x | | x | x | x |
| Edge | Edge | x | | x | x | x |
| Edge | Face | x | | x | x | x |
| Edge | Corner | ? | ? | ? | ? | ? |
| Face | Point | x | x | x | x | x |
| Face | Edge | x | x | x | x | x |
| Face | Face | x | x | x | x | x |
| Face | Corner | ? | ? | ? | ? | ? |
| Corner | Point | x | x | x | x | x |
| Corner | Edge | x | x | x | x | x |
| Corner | Face | x | x | x | x | x |
The source domain is just chosen automatically based on the source attribute which could be implicitly interpolated in many cases.
## Modes
- **Topology**
- Does a straight copy of arrays, error if different size
- Doesn't have any other settings
- **Raycast**
- Always "Surface Interpolated"
- Uses another direction vector attribute on the result geometry to fire a ray at the other geometry to figure out the point to use.
- Could possibly be interpolated or just use the closest element of the source attribute
- **Nearest**
- Can possibly do sampling with bary coords, or just pick the value at the closest element
- No interpolation
- **Attribute**
- No interpolation possible
- This can emulate the data transfer modifier's "closest normal" behavior, but much more generally.
- This is a bit harder to visualize since it's not even really "3D" in some cases.
- The non-interpolated "Nearest" mode with the position attribute is exactly the same thing in some cases
- Interpolate source attribute to face domain and use that value?
### Option 1
- Topology
- Raycast
- Nearest
- Nearest Interpolated
- Comparison attribute (normals)
### Option 2
- Mode
- Topology
- Raycast
- Attribute
- Nearest
- Interpolated
- Only shows when "Raycast" or "Nearest" are selected
- Direction Attribute
- Used for raycast mode
- Comparison Attribute
- Used for attribute mode
### Option 3
- Mode
- Topology
- Attribute
- Raycast (always interpolated)
- Nearest
- Nearest interpolated
- Direction attribute
- Comparison attribute
### Option 4
- Mode
- Topology
- Attribute (also "position")
- Nearest interpolated
- Direction attribute
- Comparison attribute
### Option 5
- Mode
- Topology
- Attribute
- Nearest face interpolated
- Nearest edge interpolated
- Direction attribute
- Comparison attribute
### Option 6
- Mode
- Topology
- Attribute
- Nearest
- Nearest point interpolated
- Nearest face interpolated
- Nearest edge interpolated
- Direction attribute
- Comparison attribute
## Final Questions
- Does it make sense to expand "Nearest Interpolated" into a separate option for each attribute?
- I don't think so, since you can just use the attribute convert node on the source mesh if you really need to
- Does combining "Nearest point" and "Attribute" mode make sense?
- Technically it seems fine but might be more confusing