def saveTimeStatistics(self): if self.options['time_parameters']['time_profiling']: if self.iterations <= self.options['time_parameters'][ 'iteration_amount']: result = Sofa.timerEnd( self.options['time_parameters']['timer_name'], self.rootNode) if result != None: with open( self.fullFolderName + '/' + self.options['time_parameters'] ['time_statistics_file'], "a") as outputFile: outputFile.write(result + ",") outputFile.close() # replace last symbol if self.iterations == self.options['time_parameters'][ 'iteration_amount']: with open( self.fullFolderName + '/' + self.options['time_parameters'] ['time_statistics_file'], "a") as outputFile: outputFile.seek(-1, os.SEEK_END) outputFile.truncate() outputFile.write("\n}") outputFile.close() return 0
def measureAnimationTime(node, timerName, timerInterval, timerOutputType, resultFileName, simulationDeltaTime, iterations): # timer Sofa.timerSetInterval( timerName, timerInterval) # Set the number of steps neded to compute the timer Sofa.timerSetEnabled(timerName, True) resultFileName = resultFileName + ".log" rootNode = node.getRoot() with open(resultFileName, "w+") as outputFile: outputFile.write("{") i = 0 Sofa.timerSetOutPutType(timerName, timerOutputType) while i < iterations: Sofa.timerBegin(timerName) rootNode.simulationStep(simulationDeltaTime) result = Sofa.timerEnd(timerName, rootNode) if result != None: outputFile.write(result + ",") oldResult = result i = i + 1 last_pose = outputFile.tell() outputFile.seek(last_pose - 1) outputFile.write("\n}") outputFile.seek(7) firstStep = outputFile.read(1) outputFile.close() Sofa.timerSetEnabled(timerName, 0) print "[Scene info]: end of simulation." return 0
def animate(self, iterations): #setup the environment #Animation loop with open("poutre_grid_sofa_timerLog.log", "w+") as outputFile : outputFile.write("{") i = 0 Sofa.timerSetOutPutType("timer_poutre_grid_sofa", "ljson") while i < iterations: Sofa.timerBegin("timer_poutre_grid_sofa") self.rootNode.simulationStep(0.1) result = Sofa.timerEnd("timer_poutre_grid_sofa", self.rootNode) if result != None : outputFile.write(result + ",") oldResult = result i = i+1 last_pose = outputFile.tell() outputFile.seek(last_pose - 1) outputFile.write("\n}") outputFile.seek(7) firstStep = outputFile.read(1) outputFile.close() Sofa.timerSetEnabled("timer_poutre_grid_sofa", 0) data = [firstStep] self.rootNode.sendScriptEvent('end', data) return 0
def animate(self, iterations): #setup the environment #Animation loop with open("poutre_grid_CGOGN_timerLog.log", "w+") as outputFile: outputFile.write("{") i = 0 Sofa.timerSetOutPutType("timer_poutre_grid_CGOGN", "ljson") while i < iterations: Sofa.timerBegin("timer_poutre_grid_CGOGN") self.rootNode.simulationStep(0.1) result = Sofa.timerEnd("timer_poutre_grid_CGOGN", self.rootNode) if result != None: outputFile.write(result + ",") oldResult = result i = i + 1 last_pose = outputFile.tell() outputFile.seek(last_pose - 1) outputFile.write("\n}") outputFile.seek(7) firstStep = outputFile.read(1) outputFile.close() Sofa.timerSetEnabled("timer_poutre_grid_CGOGN", 0) data = [firstStep] self.rootNode.sendScriptEvent('end', data) return 0