THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 13/06/2003 at 05:36, xxxxxxxx wrote:
Cinema 4D Version: 8.100
Platform: Windows ;
Language(s) : C++ ;
I want to copy an object to another document.
So I set up an aliastranslator, clone the object and insert it into the new document.
The object has a materialtag on it, so I am getting a clone of the material too and copy it to the other document (also here I am using the aliastranslator). But the link to the material is broken in the new document although the material is in that new document!
How can I copy an object without breaking the link to the material? :
On 13/06/2003 at 10:17, xxxxxxxx wrote:
Did you tell the AliasTransl object to translate the aliases with the Translate() function? (This function should be called after all copying is finished.)
On 13/06/2003 at 10:18, xxxxxxxx wrote:
I should also say that whenever you are passed an AliasTrans from C4D you normally don't have to call Translate() yourself, since C4D will eventually do it for you. But when you're cloning something manually you have to do it.
On 13/06/2003 at 12:33, xxxxxxxx wrote:
Cool! I did Translate them but I have translated the materials after cloning them and then again the objects and that was the mistake. Now I am doing it after the whole clone stuff and it´s working just fine
Thanks for the quick reply!
On 13/06/2003 at 12:51, xxxxxxxx wrote:
Öhm another question. When using AtomArra::CopyTo, ísn´t there an AliasTrans necessary?
On 14/06/2003 at 00:49, xxxxxxxx wrote:
AtomArray is just a stupid list of pointers. The actual atoms aren't copied. So no translator is necessary.
On 02/11/2004 at 03:18, xxxxxxxx wrote:
I have the same problem. What is wrong with my code?
BaseMaterial *material = merge->GetFirstMaterial();
doc->InsertMaterial((BaseMaterial* ) material->GetClone(0,trans), NULL);
material = material->GetNext();
BaseObject *copy = (BaseObject* ) obj->GetClone(0,trans);
On 02/11/2004 at 04:05, xxxxxxxx wrote:
I have found my mistake. AliasTrans.Init must be called with the old Document (trans->Init(merge))