#1
|
|||
|
|||
<node3d>.remove() ... help how does this work?
Hi I'm having trouble of deleting object, here is my code;
Quote:
If I do 'del w.c', it will delete w.c, then I can no longer delete the duck. Does that mean that in my World class, I need to create method to delete the object first and the reference/instance later? e.g when the child (duck) collide with ball and delete child within the World class, I need to do.... self.c.remove() and del self.c later? I thought that <node3d>.remove would delete object from the scene including associated instances ? Is there a way to delete instance along with the object as well? Thank you for your time. (all the tabs in my code seem to be missing when I copy-paste here) Kind Regards, Iwan |
#2
|
|||
|
|||
Hi,
Please use the [code][/code] tags when posting code. It will preserve your tabs. The <node>.remove() command will delete the object from the Vizard engine, however the Python object will still exist. If you want to remove the node from Vizard and remove the reference to it, then you can create a wrapper function that does it for you. However, if some other code is referencing the object, then that reference will continue to exist. Example: Code:
class Parent: def __init__(self): print "init from parent" def duit(self,duit): self.salary = self.salary + duit return self.salary def remove(self): self.obj.remove() class Child(Parent): def __init__(self): Parent.__init__(self) print "init from child" self.obj = viz.add('duck.cfg') self.salary = 100 class World: def __init__(self): self.c = Child() self.final = self.c.duit(50000) print self.final def remove(self): self.c.remove() del self.c w=World() viz.go() #Print value of w.c print w.c #Save referenc to w.c c_ref = w.c #Remove child w.remove() #Try printing value of w.c try: print w.c except AttributeError: print 'w.c does not exist' #Reference to child still exists print c_ref |
#3
|
|||
|
|||
Hi farshizzo,
Thank you for your explanation about deleting object in vizard, I really appreciate that I will use the appropriate tags next time posting codes. Kind Regards, Iwan |
|
|