When to refresh a deformer object?

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 01/03/2011 at 02:37, xxxxxxxx wrote:

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

---------
In the descriptions of my deformer object, I have a link field. Now I want the deformer to be recalculated when the linked object is moved or changed. Currently, nothing happens. ModifyObject() is not called when I do something outside the deformer's hierarchy.

I would try to add the linked object to a dependence list, but that doesn't work outside GetVirtualObjects().

Thanks for help!

Greetings,
Jack

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 01/03/2011 at 03:09, xxxxxxxx wrote:

Could you look for MSG_DESCRIPTION_CHECKUPDATE in the Message() and then refresh from there?

Or maybe continuously check to see if the BaseObject in your link field is not set to NULL, thus looking for a change in the linkfield..

~Shawn

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 01/03/2011 at 03:37, xxxxxxxx wrote:

You can check this in ObjectData::CheckDirty. It's called if the link changes.

Here an example:

  
void MyDeformer::CheckDirty(BaseObject *op, BaseDocument *doc)  
{  
  if (!op || !doc) return;  
  
  BaseContainer *bc = op->GetDataInstance();  
  if (!bc) return;  
  ULONG dirtyness = 0;  
  
  // Get linked object  
  BaseObject    *lop = (BaseObject* )bc->GetLink(MYDEFORMER_LINK, doc, Obase);  
  if (!lop) return;  
  
  dirtyness += lop->GetDirty(DIRTYFLAGS_MATRIX|DIRTYFLAGS_DATA);  
  
  // lastlopdirty is member variable of type ULONG  
  if (dirtyness != lastlopdirty)  
  {  
      lastlopdirty = dirtyness;  
      op->SetDirty(DIRTYFLAGS_DATA);  
  }  
}  

Compare the dirty count and update accordingly (lastopdirty).

cheers,
Matthias

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 01/03/2011 at 03:46, xxxxxxxx wrote:

That works, thanks Matthias!
I'll propably add some walking-up-the-hierarchy to check if parent have been moved.

Cheers,
Jack