58 lines
1.9 KiB
Python
58 lines
1.9 KiB
Python
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()
|