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