Instead of listing the convert types that support PET within the
ELEM(...) macro, create a callback in TransConvertTypeInfo
which, if it exists, initializes proportional editing.
To avoid long lists of convert types in resource initialization checks, it is good to identify which types support the resource in the TransConvertTypeInfo itself.
For PET we have two main solutions:
- create a flag identifying if the type supports PET
- initialize the PET through a callback
In this patch the callback solution was chosen because:
- allows compartmentalization of custom PET initializations
- facilitates optimization
- simplifies the application of this feature to new types
The disadvantages compared to the flag, as far as I could identify, are:
- need to expose generic functions
- increases code size