Think it could be a bit simpler with no point
-> none
, no edge
-> none
, etc.
I do think the retrieval of the self object and the mesh are unnecessary now. The mesh
variable is unused now too
For creating Blender attributes in this `is_same
blender::
unnecessary here I think? Also I'd go with just faces
instead of face_indices
which makes me think of an array of actual indices into the mesh faces arrays
Like this I think:
if (const std::optional<BlenderT> value = buffer.get_if_single()) {
usd_data.assign(buffer.size(), detail::convert_value<BlenderT, USDT>(*value));
}
else {
…
This seems reasonable. Thanks for all your work here. Just noticed two tiny comment style things.
Comment style: /* Return an empty GeometrySet for None type. */
Thanks! I think the design is reasonable. This is clearer than outputting a selection because only one element can ever be active. It is a bit lower level too though, but I guess that's okay.
Switch the condition and return early (with params.set_default_remaining_outputs();
)
I'd use "Point" so this can be used for curves and point clouds in the future
The descriptions should mention that -1 is the output if there is no active element on that domain