PDA

Voir la version complète : Insérer un objet en tant que parent ?



César Vonc
20/04/2011, 16h47
Bonjour.

C'est sûrement très simple, mais je bloque dessus : en COFFEE, comment insérer un objet en tant que parent ?

La fonction :


doc->InsertObject(objet à insérer, objet parent, objet précédent);

m'insère toujours mon objet en tant qu'enfant, j'aimerais faire l'inverse, ajouter un parent à un objet.


Quelqu'un a une idée ?

valkaari
20/04/2011, 17h48
Ajouter un enfant ou un parent c'est la même chose : mettre un objet en dessous d'un autre. Que ça soit dans un sens ou dans l'autre.

Sinon tu as les fonction InsertUnder, InsertBefore, InsertAfter qui sont à mon sens plus "facile" d'emploi

enfant->InsertUnder(parent)


n'oublie pas de faire un enfant->remove() avant.

César Vonc
20/04/2011, 18h00
D'accord, donc c'est toujours l'enfant qu'on déplace, pour le mettre sous un parent, avec InsertUnder().

Remove() c'est pour quoi ? C'est un genre de copier coller, ce que fait InsertUnder() ?

C4d plante lorsque je ne mets pas le Remove(), c'est plutôt curieux de laisser ce choix.

valkaari
20/04/2011, 19h35
c'est bien pour cela qu'il faut faire le remove ^^

En fait tu peux insérer un objet alors qu'il est déjà présent dans l'object manager. Donc, conflit, donc plantage.
A la création de l'objet, pas besoin de faire le remove (bien que le remove ne fait pas planter c4d quand l'objet n'est pas présent, donc autant le faire quand même).

Donc soit l'objet est dans la mémoire, soit il est dans l'object manager. Dans le deuxième cas, le remove est obligatoire avant de faire l'insert.