Is there any way to detect what exactly has changed between calls to a C++ 
custom operator? (eg; which inputs were dirtied?)

I have a custom operator (deformer) which has several inputs.  Each time an 
input is dirtied, the custom operator must iterate through all the point 
positions, samples (UV), and weight maps from the polygon mesh during each 
update, and modify that data using information obtained from the other inputs.  
While my operator computes the correct result, it comes with significant 
overhead.   95% of the time, less than 5% of polygon mesh's points are 
modified.  It seems like a waste to iterate through all those points when only 
a tiny bit actually changes requiring processing.

I would like to only process points where the positions, samples, and/or weight 
maps have changed between updates and skip the rest.  Is that information 
available to a custom operator?  If so, how do I access it?

To pre-emptively answer the obvious question that will be asked - No, I cannot 
do this in ICE because my custom operator must work with NURBS in a particular 
fashion that is not supported by ICE.


Matt




Reply via email to