View Single Post
  #1  
Old 09-05-2012, 09:58 AM
shivanangel shivanangel is offline
Member
 
Join Date: Feb 2006
Location: New Jersey
Posts: 182
Question Properly handling Inheritance of VizNode and using copy

Hello Vizard support.

I had a question on how to properly implement the <viz.VizNode>.copy method when using inheritance.

I have created several class that inherit from VizNode, however they have their own __init__ functions that take in additional parameters beyond what VizNode might utilize.

When I create a copy of these objects using the original copy method provided by Vizard, I get an error that indicates I am not getting the correct number of parameters into the class __init__ method I created.

When I looked at how copy was implemented, it looks like you return an instance of self.__class__(Vizard Stuff In Here) when I call copy.

Below is my __init__ method, as you can see I take in an additional template parameter.

Code:
class GreenObject(Model3D, Properties):
	def __init__(self, modelString, GOTemplate):
		Model3D.__init__(self, modelString)
		
		self.publicVariables = []
	
		self.variableValues = [0.0] * len(GreenObject.properties2Indices)
		
		self.greenObjectTemplate = GOTemplate
If possible, I would like to call the original copy functionality along with doing some copying of my own when <*>.copy is called.

Normally, I would just call the base classes version then add my own code. But I don't know much about what VizNode is doing behind the scenes and I figured you'd have a better idea on how to handle this.

Thanks,
George
Reply With Quote