Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 03/11/2008 at 12:14, xxxxxxxx wrote:
User Information: Cinema 4D Version: 10.1 Platform: Windows ; Mac ; Language(s) : C++ ;
--------- I want to set the DESC_MAX of a LONG description in my plugin object. It must be done from the ::GetVirtualObjects() function, and not from the ::GetDDescription() function, because the new MAX value depends on things that happend in the scene.
Tried it like this:
> Bool SetDescriptionMax(BaseObject \*op, LONG MyDescID, LONG Value) \> { \> AutoAlloc<AtomArray> ar; if(!ar) return FALSE; \> AutoAlloc<Description> desc; if (!desc) return FALSE; \> ar->Append(static_cast<C4DAtom\*>(op)); \> \> op->GetDescription(desc, 0); \> BaseContainer \*bc = desc->GetParameterI(DescLevel(MyDescID), ar); \> if (bc) bc->SetLong(DESC_MAX, Value); \> else return FALSE; \> \> return TRUE; \> }
Bool SetDescriptionMax(BaseObject \*op, LONG MyDescID, LONG Value) \> { \> AutoAlloc<AtomArray> ar; if(!ar) return FALSE; \> AutoAlloc<Description> desc; if (!desc) return FALSE; \> ar->Append(static_cast<C4DAtom\*>(op)); \> \> op->GetDescription(desc, 0); \> BaseContainer \*bc = desc->GetParameterI(DescLevel(MyDescID), ar); \> if (bc) bc->SetLong(DESC_MAX, Value); \> else return FALSE; \> \> return TRUE; \> }
But it doesn't work. Nothing happens. Debugging the function showed me that it runs fine and returns TRUE, but the MAX value of my description is not changed, I can still input values greater than the desired value in the Attribute Manager.
How does this work?
Thanks in advance for any help!
Greetings, Jack
On 04/11/2008 at 02:21, xxxxxxxx wrote:
You have to use GetDDescription(). If you have to detect changes in GetVirtualObjects() than store this for instance in sub-container in your object's own container. Read this out in GetDDescription() and make your changes to the description.
cheers, Matthias
On 04/11/2008 at 12:26, xxxxxxxx wrote:
OK, will do. Thanks once again, Matthias!