I have created an object and am trying to create instances of it. However, whenever I do this, there is a copy at (0, 0, 0) despite me never putting one there. It seems that it can’t be moved, hidden, rotated, etc.
# The Object Class I'm Using
class Model():
def __init__(self, path, pos, hpr, scale, parent):
self.m = loader.loadModel(path)
self.m.setPos(pos)
self.m.setHpr(hpr)
self.m.setScale(scale)
self.m.reparentTo(parent)
def setPos(self, pos):
self.m.setPos(pos)
def setHpr(self, hpr):
self.m.setHpr(hpr)
def reparentTo(self, parent):
self.m.reparentTo(parent)
def instanceTo(self, object):
self.m.instanceTo(object)
def setLight(self, light):
self.m.setLight(light)
def setTransparency(self, type):
self.m.setTransparency(type)
# The Instancing Code
grassnodes = self.render.attachNewNode("grassnodes")
grass = Model('Models/Grass.dae', (0, 0, 0), (0, 90, 180), 1, render)
grass.setTransparency(TransparencyAttrib.MBinary)
for i in range(100):
placeholder = self.render.attachNewNode("Grass-Placeholder")
placeholder.setHpr(-90, 0, 0)
grass.instanceTo(placeholder)
placeholder.setPos(random.randrange(0, 32) - 49, random.randrange(0, 50) - 25, 0.1 * random.randrange(-1, 1))
placeholder.setHpr(random.randrange(0, 360), 0, random.randrange(-10, 10))
placeholder.setScale(random.randrange(1, 3), random.randrange(1, 3), 1)