C'est une sorte de collecteur d'ordures de comptage de référence.
Si vous regardez vtkObjectBase, il y a trois fonctions - Register, UnRegister et Delete. Ce sont ceux qui effectuent le comptage de référence.
Lorsque vous enregistrez une instance, cela augmente le nombre de références. Lorsque vous le désinscrivez, il diminue. Quand la ref. le nombre atteint 0, il est supprimé. Lorsque vous créez un objet à l'aide de New(), il commence par un nombre de références égal à 0. Chaque fois que vous en voulez une instance indépendante, vous appelez Register sur celui-ci et incrémente la référence. compter. Delete() est juste un autre nom pour UnRegister().
Si vous définissez un objet sur un autre objet (en affectant une instance de vtkPolyData à un algorithme, par exemple), il appelle Enregistrer avec l'instance que vous définissez (l'algorithme) comme parent. Maintenant, lorsque le parent (algorithme) est supprimé, ses enfants sont trouvés et supprimés avec lui.
Il y a aussi une méthode pour s'assurer qu'ils ne vont pas dans un festival cyclique des UnRegisters mutuels quand deux objets se réfèrent l'un à l'autre (vtkRenderer et vtkRenderWindow, par exemple), mais c'est fondamentalement ça.