Voronoi cache is not changed

  • On 11/01/2018 at 06:17, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   R18 
    Platform:   Windows  ;   
    Language(s) :     C++  ;


    I have a Voronoi Fracture and as child it has a sphere with a material. Once I replace the material by dragging and dropping a different one on the same tag, an EVMSG_DOCUMENTRECALCULATED event is generated.

    At that moment, I parse the hierarchy to see what has changed. The problem is that even though I get a DIRTYFLAGS_CACHE due to the change on the sphere, I cannot use it since it is a control object (BIT_CONTROLOBJECT). Is it possible to receive the notification on the voronoi that one of its CACHE children has changed ?

    The problem here is that If I do the same on an Array, it gives me a dirty cache mask while Voronoi doesn't.
    Thank you for your time.

  • On 12/01/2018 at 09:10, xxxxxxxx wrote:

    Hi Peterakos, thanks for writing us.

    With regard to the your request, although I see your intent to optimize the search for any dirty status change, I suggest to try to use C4DAtom::GetHDirty() rather than C4DAtom::GetDirty().
    In any case I warmly recommend no to make any assumption on the children's cache dirtiness based on the generator's cache dirtiness.

    Best, Riccardo

  • On 14/01/2018 at 14:00, xxxxxxxx wrote:

    Hello and thank you for your answer.

    Is GetHDirty referring to the actual hierarchy children or cache children ?

    Thank you.

  • On 26/01/2018 at 07:01, xxxxxxxx wrote:


    Please allow me to bring this up again since I have tested everything and at this point I really don't know which path is better for my case.

    I have a scene with a Cloner and an object as child. The object has a material. If I replace the material with a different one I receive a DIRTYFLAGS_CACHE update on cloner. Everything is fine here.

    If I use the same scenario with a Voronoi instead of a cloner, once I replace the material of the child, Voronoi doesn't update its cache dirty bit. Somehow, I need to know that the Voronoi has changed. How can I do that ?

    Should I manually set voronoi's Dirty flag once its child is updated ? That will cause the whole scene to be checked twice though. Can I avoid it ?

    Thank you.

Log in to reply