def initialiseShapeLearners(self):
        self.shapeLearners_currentCollection = []
        self.settings_shapeLearners_currentCollection = []
        self.shapeLearnersSeenBefore_currentCollection = []
        for i in range(len(self.currentCollection)):
            shapeType = self.currentCollection[i]

            #check if shape has been learnt before
            try:
                shapeType_index = self.shapesLearnt.index(shapeType)
                newShape = False
            except __HOLE__:
                newShape = True
            self.shapeLearnersSeenBefore_currentCollection.append(not newShape)
            if (newShape):
                settings = self.generateSettings(shapeType)

                shapeLearner = ShapeLearner(settings)
                self.shapesLearnt.append(shapeType)
                self.shapeLearners_all.append(shapeLearner)
                self.settings_shapeLearners_all.append(settings)
                self.shapeLearners_currentCollection.append(self.shapeLearners_all[-1])
                self.settings_shapeLearners_currentCollection.append(self.settings_shapeLearners_all[-1])

            else:
                #use the bounds determined last time
                previousBounds = self.shapeLearners_all[shapeType_index].getParameterBounds()
                newInitialBounds = previousBounds
                newInitialBounds[0, 0] -= boundExpandingAmount;  #USE ONLY FIRST PARAM FOR SELF-LEARNING ALGORITHM ATM
                newInitialBounds[0, 1] += boundExpandingAmount;  #USE ONLY FIRST PARAM FOR SELF-LEARNING ALGORITHM ATM
                self.shapeLearners_all[shapeType_index].setParameterBounds(newInitialBounds)
                self.shapeLearners_currentCollection.append(self.shapeLearners_all[shapeType_index])
                self.settings_shapeLearners_currentCollection.append(self.settings_shapeLearners_all[shapeType_index])
dataset/ETHPy150Open chili-epfl/shape_learning/src/shape_learning/shape_learner_manager.py/ShapeLearnerManager.initialiseShapeLearners