def setup(self): num_sectors = 6 sector_length = 100 angle_incr = 360.0/num_sectors angle_offset = -180 radius = 0.5*sector_length/sin(deg2Rad(0.5*angle_incr)) y_offset = radius*cos(deg2Rad(0.5*angle_incr)) z_incr = 8 logging.info("radius = " + str(radius) + ' sector length = ' + str(2*radius*sin(deg2Rad(angle_incr))) ) dummy_node = NodePath('dummy-node') dummy_node.reparentTo(self) for i in range(0,num_sectors): # updating z value z = i*z_incr # placing dummy node dummy_node.clearTransform(self) dummy_node.setZ(self,z) dummy_node.setHpr(self,i*angle_incr,0,0) dummy_node.setY(dummy_node,-y_offset) dummy_node.setX(dummy_node,-0.5*sector_length) # creating sector tf = dummy_node.getTransform(self) sector = self.createSector(tf,'sector' + str(i)) self.__createPlatforms__(sector,i == 0) self.__createBoxes__(sector) # adding sector transitions sector = None dest_sector = None for i in range(0,num_sectors-1): sector = self.getSectors()[i] dest_sector = self.getSectors()[i+1] sector.connect(dest_sector,Vec3(100,0,28),True) continue # TODO: Unreachable code below left here for reference only, will get removed # after the whole sector transition functionality becomes more stable. if i == 0: # following sector dest_sector = self.getSectors()[i+1] sector.addTransition(dest_sector,Vec3(100,0,28),True) elif i > 0 and i < num_sectors - 1: # following sector dest_sector = self.getSectors()[i+1] sector.addTransition(dest_sector,Vec3(100,0,28),True) # preceeding sector dest_sector = self.getSectors()[i-1] sector.addTransition(dest_sector,Vec3(0,0,20),False) else: # preceeding sector dest_sector = self.getSectors()[i-1] sector.addTransition(dest_sector,Vec3(0,0,20),False) dummy_node.removeNode()