Support passing operator to invoke on activating or dragging an item
An annoyance is that the operator names have to be passed to the template which makes the already long argument list even longer. Thought about a couple of ways to do this, unfortunately this is the only decent way to do this that I see. There's also no way to pass operator options currently.
Getting the handling to work correctly took some effort, and the code is not exactly nice.
Note that even though we activate the item when calling the custom drag operator (helps indicating the pose being blended for example), we only call the drag operator then, not the activate one. They are never executed both.
Also note that this won't compile right now, I'll have to commit some changes to master first.
Uses the new `BLO_library_temp_xxx` functions, but deals with all the asset specific file path building. This is a reasonable utility for the asset system to have, it will probably be needed by more asset types than IDs.
Allow getting asset library and active asset handle via context
`CTX_wm_asset_library()` returns the active asset library from the workspace, or the the Asset Browser one while inside that. The active asset handle is set by the Asset Browser and the asset view UI template so that operators executed via the template can access it.
Geometry Nodes: Move cone primtive to rest on its base by default
This is generally what people expect when generating a cone. Note that this translation currently happens after the rotation, but since the rotation will likely be removed in the future, that won't be a problem for long.
Geometry Nodes: Implicit interpolations to and from the edge domain
This patch adds the remaining 6 interpolations for mesh domains. The new interpolations are: - Corner / point / polygon to edge - Edge to corner / point / polygon
After this it is possible to adapt an attribute to and from every mesh domain. This is simple to test with the "Attribute Convert" node.
Though, as a note for the future, there are still some improvements possible to the interpolations, like lazily calculating values for the interpolations where it's possible, and slightly improving the algorithms used for some interpolations, like using corner angles for polygon to point.