fluencyCAD/fluency.py
2024-05-09 19:27:42 +02:00

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()