Object from Hierarchy has changed



  • On 20/03/2016 at 09:31, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   R17 
    Platform:   Windows  ;   
    Language(s) :

    ---------
    Hello.

    I have to great a messenger that catches the changes done by the user in any object in the hierarchy.
    So, in case of an EVMSG_DOCUMENTRECALCULATED event, I scan the hierarchy and for each object, I use the GetDirty method to check if that object has changed. Since GetDirty returns a checksum number, it appears that I need to compare it with a previous checksum number. So, It seems that I have to create a map with objects as keys and dirty numbers as values and with a change in any object, I have to scan all the hierarchy and ask each object for their dirty bits. Is there any alternative approach to check if an object has changes ? (matrix, cache, etc)

    Can I get directly the dirty objects without having to scan the hierarchy ?

    Thank you for your time.



  • On 21/03/2016 at 03:19, xxxxxxxx wrote:

    Hello,

    there is no function that would return a list of changed objects. You have to create such a function yourself – by scanning the hierarchy. But you can use GetHDirty on the given BaseDocument to check if anything relevant changed and if a hierarchy scan is needed or not.

    Best wishes,
    Sebastian


Log in to reply