- UI workflow improvements
- Remove specific item -
This commit is contained in:
@@ -9,10 +9,14 @@ class SnapLineWidget(QWidget):
|
||||
self.points = []
|
||||
self.selected_line = None
|
||||
self.snapping_range = 20 # Range in pixels for snapping
|
||||
self.line_mode = False
|
||||
|
||||
def set_points(self, points: list):
|
||||
self.points = points
|
||||
#self.update()
|
||||
|
||||
def mousePressEvent(self, event):
|
||||
if event.button() == Qt.LeftButton :
|
||||
if event.button() == Qt.LeftButton and self.line_mode:
|
||||
self.points.append(event.pos())
|
||||
self.update()
|
||||
|
||||
|
||||
@@ -15,12 +15,12 @@ class OpenGLWidget(QOpenGLWidget):
|
||||
self.lastPos = QPoint()
|
||||
self.startPos = None
|
||||
self.endPos = None
|
||||
self.xRot = 0
|
||||
self.xRot = 180
|
||||
self.yRot = 0
|
||||
self.zoom = -2
|
||||
self.sketch = []
|
||||
self.gl_width = self.width() / 1000
|
||||
self.gl_height = self.height() / 1000
|
||||
self.gl_width = self.width() / 100
|
||||
self.gl_height = self.height() / 100
|
||||
|
||||
def map_value_to_range(self, value, value_min=0, value_max=1920, range_min=-1, range_max=1):
|
||||
value = max(value_min, min(value_max, value))
|
||||
@@ -55,7 +55,8 @@ class OpenGLWidget(QOpenGLWidget):
|
||||
|
||||
return None, (0, 0, 0)
|
||||
|
||||
def load_mesh_direct(self, mesh) -> object:
|
||||
|
||||
def load_mesh_direct(self, mesh):
|
||||
try:
|
||||
stl_mesh = mesh
|
||||
|
||||
@@ -68,9 +69,11 @@ class OpenGLWidget(QOpenGLWidget):
|
||||
self.mesh_loaded = vertices
|
||||
self.centroid = tuple(centroid)
|
||||
print(f"Centroid: {self.centroid}")
|
||||
self.update()
|
||||
except Exception as e:
|
||||
print(e)
|
||||
|
||||
|
||||
def initializeGL(self):
|
||||
glClearColor(0, 0, 0, 1)
|
||||
glEnable(GL_DEPTH_TEST)
|
||||
@@ -85,7 +88,7 @@ class OpenGLWidget(QOpenGLWidget):
|
||||
self.gl_width = self.width() / 1000
|
||||
self.gl_height = self.height() / 1000
|
||||
|
||||
gluPerspective(45.0, aspect, 1.0, 10000.0)
|
||||
gluPerspective(45.0, aspect, 0.01, 10.0)
|
||||
glMatrixMode(GL_MODELVIEW)
|
||||
|
||||
|
||||
@@ -94,10 +97,10 @@ class OpenGLWidget(QOpenGLWidget):
|
||||
glLoadIdentity()
|
||||
|
||||
glTranslatef(0, 0, self.zoom)
|
||||
glRotatef(self.xRot, 0.0, 0.0, 0.0)
|
||||
glRotatef(self.yRot, 0.0, 0.0, 0.0)
|
||||
glRotatef(self.xRot, 1.0, 0.0, 0.0)
|
||||
glRotatef(self.yRot, 0.0, 1.0, 0.0)
|
||||
|
||||
glColor3f(1.0, 1.0, 1.0)
|
||||
glColor3f(0.9, 0.8, 0.8)
|
||||
|
||||
self.draw_area()
|
||||
|
||||
@@ -136,14 +139,32 @@ class OpenGLWidget(QOpenGLWidget):
|
||||
glEnable(GL_COLOR_MATERIAL)
|
||||
glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE)
|
||||
|
||||
glLightfv(GL_LIGHT0, GL_POSITION, (0, 1, 1, 0))
|
||||
glLightfv(GL_LIGHT0, GL_DIFFUSE, (0.6, 0.6, 0.6, 1.0))
|
||||
glLightfv(GL_LIGHT0, GL_POSITION, (0, 0.6, 0.6, 0))
|
||||
glLightfv(GL_LIGHT0, GL_DIFFUSE, (0.4, 0.4, 0.4, 0.6))
|
||||
|
||||
glDisable(GL_LIGHTING)
|
||||
glBegin(GL_TRIANGLES)
|
||||
for vertex in points:
|
||||
glVertex3fv(vertex)
|
||||
glEnd()
|
||||
self.update()
|
||||
|
||||
# Draw the lines (edges of the triangles)
|
||||
#glDisable(GL_LIGHTING) # Disable lighting to avoid affecting the line color
|
||||
glColor3f(0.0, 0.0, 0.0) # Set line color to black (or any color you prefer)
|
||||
|
||||
glBegin(GL_LINES)
|
||||
for i in range(0, len(points), 3):
|
||||
glVertex3fv(points[i])
|
||||
glVertex3fv(points[i + 1])
|
||||
|
||||
glVertex3fv(points[i + 1])
|
||||
glVertex3fv(points[i + 2])
|
||||
|
||||
glVertex3fv(points[i + 2])
|
||||
glVertex3fv(points[i])
|
||||
glEnd()
|
||||
|
||||
glEnable(GL_LIGHTING) # Re-enable lighting if further drawing requires it
|
||||
|
||||
|
||||
def draw_area(self):
|
||||
@@ -174,7 +195,7 @@ class OpenGLWidget(QOpenGLWidget):
|
||||
|
||||
def wheelEvent(self, event):
|
||||
delta = event.angleDelta().y()
|
||||
self.zoom += delta / 120
|
||||
self.zoom += delta / 200
|
||||
self.update()
|
||||
|
||||
def aspect_ratio(self):
|
||||
|
||||
Reference in New Issue
Block a user