DESC_REFUSE & DESC_ACCEPT?

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

On 18/10/2004 at 19:07, xxxxxxxx wrote:

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

---------
Howdy,

When description link elements are created in GetDDescription, how do I use DESC_REFUSE and DESC_ACCEPT? The SDK doc says this about them:

DESC_ACCEPT - BaseContainer - Contains the accepted IDs as strings. (E.g. GetString(5155) == "Obase".)

DESC_REFUSE - BaseContainer - Contains the refused IDs as strings. (E.g. GetString(5155) == "Obase".)

Should I be using SetContainer(LONG id, const BaseContainer& s)
If so, how does it work? The second parameter is a BaseContainer but DESC_ACCEPT and DESC_REFUSE need to contain strings (E.g. GetString(5155) == "Obase".).

Thanks in advance for any help.

Adios,
Cactus Dan

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

On 21/10/2004 at 18:47, xxxxxxxx wrote:

Howdy,

Anyone? A clue to point me in the right direction?

Adios,

Cactus Dan

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

On 22/10/2004 at 00:37, xxxxxxxx wrote:

Yes, your guess was correct:

    
    
    descbc->GetContainerInstance(DESC_ACCEPT)->SetString(5155, "Obase"); // 5155 == Obase

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

On 22/10/2004 at 06:53, xxxxxxxx wrote:

Howdy,

Thanks for the reply, Mikael. I'll give it a try.

Adios,
Cactus Dan

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

On 22/10/2004 at 12:34, xxxxxxxx wrote:

Howdy,

Well, I'm doing something wrong, because now it's crashing Cinema.

Here's what I tried:

for (i=5; i<=linkCount; i++)
{
     BaseContainer bc2 = GetCustomDataTypeDefault(DTYPE_BASELISTLINK);
               
     bc2.SetLong(DESC_CUSTOMGUI,CUSTOMGUI_LINKBOX);
     bc2.SetString(DESC_NAME,"Target " + LongToString(i));
     bc2.SetLong(DESC_ANIMATE,DESC_ANIMATE_ON);
     
     if (!description->SetParameter(DescLevel(linkID,DTYPE_BASELISTLINK,0),bc2,DescLevel(ADD_CONTROLER))) return FALSE;
     
     const BaseContainer *descBC = description->GetParameter(DescLevel(linkID),bc2,NULL);
     
     descBC->GetContainerInstance(DESC_ACCEPT)->SetString(5102,"Obase");
     descBC->GetContainerInstance(DESC_REFUSE)->SetString(5102,"Ospline");
     
     linkID++;
}

I don't think I understood the correct usage.

Adios,
Cactus Dan

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

On 22/10/2004 at 15:51, xxxxxxxx wrote:

Where is 'linkCount' coming from and being set? Using a member variable like that has caused me problems and headaches. I store counts in a LINK and extract to a regular member variable as needed to avoid them.

Is it true that you want the same ID for both DESC_ACCEPT and DESC_REFUSE?

Robert

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

On 22/10/2004 at 16:04, xxxxxxxx wrote:

Howdy,

The variable "linkCount" is stored in the tags BaseContainer and retrieved just before the loop with:

LONG linkCount = tag->GetData().GetLong(LINK_COUNT);

The value stored in the BaseContainer is updated when the Add and Subtract buttons are clicked.

Adios,
Cactus Dan