-Changed multi layer render

- added ignore
- prepraed sketchwidget
This commit is contained in:
bklronin 2024-10-26 14:40:58 +02:00
parent d86e108552
commit 79c1aa106f
3 changed files with 45 additions and 4 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
*.xml
*.iml

View File

@ -383,6 +383,8 @@ class SketchWidget(QWidget):
# Track Relationship
# Points
# CONSTRAINTS
if event.button() == Qt.LeftButton and self.mouse_mode == "pt_pt":
if self.hovered_point and not self.main_buffer[0]:
self.main_buffer[0] = self.get_handle_from_ui_point(self.hovered_point)
@ -771,7 +773,7 @@ class SketchWidget(QWidget):
return self.width() / self.height() * (1.0 / abs(self.zoom))
class Point2D:
class Point2D_ALT:
"""Improved oop aaproach?"""
def __init__(self):
self.ui_point = None
@ -899,8 +901,33 @@ class Point2D:
return QPoint(self.to_quadrant_coords(qt_pos))
class Point2D:
ui_x: int = None
ui_y: int = None
handle = None
class Line2D:
pass
crd1: Point2D = None
crd2: Point2D = None
handle = None
class Sketch2d(SolverSystem):
def __init__(self):
self.wp = self.create_2d_base()
self.points = []
self.lines = []
def add_point(self, point: Point2D):
point.handle = self.add_point_2d(point.ui_x, point.ui_y, self.wo)
self.points.append(point)
def add_line(self, line: Line2D):
line.handle = self.add_line_2d(line.crd1, line.crd2, self.wp)
self.lines.append(line)

View File

@ -52,6 +52,12 @@ class VTKWidget(QtWidgets.QWidget):
self.renderer_projections.SetLayer(1)
self.renderer_indicators.SetLayer(2) # This will be on top
# Preserve color and depth buffers for non-zero layers
self.renderer_projections.SetPreserveColorBuffer(True)
self.renderer_projections.SetPreserveDepthBuffer(True)
self.renderer_indicators.SetPreserveColorBuffer(True)
self.renderer_indicators.SetPreserveDepthBuffer(True)
# Add renderers to the render window
render_window = self.vtk_widget.GetRenderWindow()
render_window.SetNumberOfLayers(3)
@ -59,11 +65,11 @@ class VTKWidget(QtWidgets.QWidget):
render_window.AddRenderer(self.renderer_projections)
render_window.AddRenderer(self.renderer_indicators)
# Set up shared camera
self.camera = vtk.vtkCamera()
self.camera.SetPosition(5, 5, 1000)
self.camera.SetFocalPoint(0, 0, 0)
self.camera.SetClippingRange(0.1, 100000)
self.camera.SetClippingRange(1, 10000) # Adjusted clipping range
self.renderer.SetActiveCamera(self.camera)
self.renderer_projections.SetActiveCamera(self.camera)
self.renderer_indicators.SetActiveCamera(self.camera)
@ -140,10 +146,16 @@ class VTKWidget(QtWidgets.QWidget):
self.renderer.AddActor(actor)
def reset_camera(self):
self.renderer.ResetCamera()
self.camera.SetClippingRange(1, 100000) # Set your desired range
self.vtk_widget.GetRenderWindow().Render()
def update_render(self):
self.renderer.ResetCameraClippingRange()
self.renderer_projections.ResetCameraClippingRange()
self.renderer_indicators.ResetCameraClippingRange()
self.camera.SetClippingRange(1, 100000)
self.vtk_widget.GetRenderWindow().Render()
def create_grid(self, size=100, spacing=10):