SetID

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

On 11/07/2011 at 02:54, xxxxxxxx wrote:

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

---------
Hi,

I have 2 questions.

I have a subcontainer bcsub (with the ID idbcsub) in a container bc.
Calling bc->RemoveData(idbcsub) never returns true, although the entry has disappeared from the index.
This is also the case when using FindIndex, RemoveIndex.
Is the memory really freed?

How do I change the ID of a subcontainer, without copying etc. The following does not change the ID.

BaseContainer* bcsub = bc->GetContainerInstance(idbcsub);
bcsub->SetID(NewID)

What i expected to see was the sub container with the new id in the index list.

Best,

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

On 22/07/2011 at 02:23, xxxxxxxx wrote:

Sorry, I can't confirm these errors.

Following test code works fine for me:

  
BaseContainer *bc = NULL;  
bc = gNew BaseContainer;  
BaseContainer subbc(1020660);  
  
bc->SetContainer(1000, subbc);  
  
if (bc->RemoveData(1000)) GePrint("removed");  
else GePrint("not removed");  
  
gDelete(bc);  
  
//old ID  
GePrint(LongToString(subbc.GetId()));  
  
subbc.SetId(1020661);  
  
//new ID  
GePrint(LongToString(subbc.GetId()));  

cheers,
Matthias