from math import pi, sin, cos from direct.showbase.ShowBase import ShowBase from direct.task import Task from direct.gui.DirectGui import DirectEntry, DirectButton from sdf import * class MyApp(ShowBase): def __init__(self): ShowBase.__init__(self) """# Load the environment model. self.scene = self.loader.loadModel("station_alpha_ripped.glb") # Reparent the model to render. self.scene.reparentTo(self.render) # Apply scale and position transforms on the model. self.scene.setScale(1, 1, 1) self.scene.setPos(0, 0, 0)""" # Add the spinCameraTask procedure to the task manager. self.taskMgr.add(self.spinCameraTask, "SpinCameraTask") # Create a DirectEntry widget for text input self.textEntry = DirectEntry( text="", scale=0.05, command=self.setText, initialText="Type here" ) self.textEntry.reparentTo(self.aspect2d) self.textEntry.setPos(-1.1, 0, -0.95) self.apply = DirectButton(text="Make Cube",scale=0.05, command=self.buttonClicked) self.apply.reparentTo(self.aspect2d) self.apply.setPos(-1, -1, 0.8) def setText(self, textEntered): print("Text entered:", textEntered) def buttonClicked(self): print("Clciked") obj = box(0.9) model = obj.save("model.stl" , step=0.01) self.scene = self.loader.loadModel("model.stl") self.scene.reparentTo(self.render) self.scene.setScale(1, 1, 1) self.scene.setPos(0, 0, 0) # Define a procedure to move the camera. def spinCameraTask(self, task): angleDegrees = task.time * 6.0 angleRadians = angleDegrees * (pi / 180.0) self.camera.setPos(20 * sin(angleRadians), -20 * cos(angleRadians), 3) self.camera.setHpr(angleDegrees, 0, 0) return Task.cont app = MyApp() app.run()