THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 23/01/2004 at 10:38, xxxxxxxx wrote:
Cinema 4D Version: 8.207
Platform: Windows ;
Language(s) : C++ ;
With a little help from Mikael I got the basic attribute manager layout working, including dynamic cycles. However, when adding some more functions to the object, some more questions arose, too. I'm still in the process of learning C, and how to find the right information in the SDK is sometimes beyond me, so again, any help is greatly appreciated.
Basically, my object looks for other objects of the same type, and displays them for the user in a selection field. Now, when another object is selected, you have certain options where and how to align the current object to the selected object. So, say Object A is selected from Object B's attribute manager, causing it to be aligned with a certain point from A (this all works). Now, if I now change object A (size, position, attribute values etc.), B stays at the position it had before the change of A. Only after I reselect B the position is updated. How can I get my other objects to automatically update, even if not active? I tried using Message() and CoreMessage() to listen, but those two don´t show any reaction...
Also, on the matter of attribute manager formatting: is there a way to increase the size of the cycle-boxes? I had it working by some coincdence once, but no luck since then - is this possible with the 8.5 sdk (found it mentioned in a post here in the forum, but the sdk-help file description of the attribute manager is identical to 8.2, as far as i can see)?
Thanks in advance,
On 24/01/2004 at 04:41, xxxxxxxx wrote:
You have to put your code somewhere where it's executed every redraw. The Execute() function of an expression tag or the GetVirtualObject() of a plugin object should work. Where is the code currently?
On 25/01/2004 at 23:41, xxxxxxxx wrote:
Ok, I see the problem, currently it was called from GetDDescription() - hat explains why its only working if I'm in the current objects attribute manager - duh!
Now I have it inside GetVirtualObject() and it works - nearly - it only updates other objects if I hit "Redraw all" in the editor - so I guess I have to send a message to Cinema to force a screen redraw. I figured EventAdd(EVENT_FORCEREDRAW) should take care of that, but it doesn't work (called from the end of GetVirtualObject())?
Anyway, thanks for your help so far.
On 27/01/2004 at 03:36, xxxxxxxx wrote:
Are you sure that GetVirtualObject() isn't called at all? Perhaps you have an early return-statement that is executed when the cache is valid. You could try adding the code in Execute() instead (see AddToExecution()).