q3dviewer 1.1.9__tar.gz → 1.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/PKG-INFO +1 -1
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/base_glwidget.py +0 -3
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/custom_items/cloud_item.py +4 -14
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/utils/range_slider.py +7 -5
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer.egg-info/PKG-INFO +1 -1
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/setup.py +1 -1
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/README.md +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/Qt/__init__.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/__init__.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/base_item.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/custom_items/__init__.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/custom_items/axis_item.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/custom_items/cloud_io_item.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/custom_items/frame_item.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/custom_items/gaussian_item.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/custom_items/grid_item.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/custom_items/image_item.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/custom_items/line_item.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/custom_items/text3d_item.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/custom_items/text_item.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/glwidget.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/tools/__init__.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/tools/cloud_viewer.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/tools/example_viewer.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/tools/film_maker.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/tools/gaussian_viewer.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/tools/lidar_calib.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/tools/lidar_cam_calib.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/tools/ros_viewer.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/utils/__init__.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/utils/cloud_io.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/utils/convert_ros_msg.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/utils/gl_helper.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/utils/helpers.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/utils/maths.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer/viewer.py +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer.egg-info/SOURCES.txt +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer.egg-info/dependency_links.txt +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer.egg-info/entry_points.txt +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer.egg-info/requires.txt +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/q3dviewer.egg-info/top_level.txt +0 -0
- {q3dviewer-1.1.9 → q3dviewer-1.2.0}/setup.cfg +0 -0
|
@@ -399,8 +399,6 @@ class BaseGLWidget(QOpenGLWidget):
|
|
|
399
399
|
points.append((x0 + dx, y0 + dy))
|
|
400
400
|
points = sorted(points, key=lambda p: (p[0]-x0)**2 + (p[1]-y0)**2)
|
|
401
401
|
|
|
402
|
-
print("points to check:", len(points))
|
|
403
|
-
|
|
404
402
|
gl_y0 = height - y0 - 1
|
|
405
403
|
z = 1.0
|
|
406
404
|
for x, y in points:
|
|
@@ -411,7 +409,6 @@ class BaseGLWidget(QOpenGLWidget):
|
|
|
411
409
|
z = glReadPixels(x, gl_y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT)
|
|
412
410
|
z = np.frombuffer(z, dtype=np.float32)[0]
|
|
413
411
|
if z != 1.0 and z != 0.0:
|
|
414
|
-
print("dist to p:", np.sqrt((x - x0)**2 + (y - y0)**2))
|
|
415
412
|
break
|
|
416
413
|
|
|
417
414
|
if z == 1.0 or z == 0.0:
|
|
@@ -70,7 +70,6 @@ class CloudItem(BaseItem):
|
|
|
70
70
|
self.need_update_setting = True
|
|
71
71
|
self.max_cloud_size = 300000000
|
|
72
72
|
# Enable depth test when full opaque
|
|
73
|
-
self.depth_test = depth_test
|
|
74
73
|
self.path = os.path.dirname(__file__)
|
|
75
74
|
|
|
76
75
|
def add_setting(self, layout):
|
|
@@ -126,13 +125,6 @@ class CloudItem(BaseItem):
|
|
|
126
125
|
self.slider_v.rangeChanged.connect(self._on_range)
|
|
127
126
|
layout.addWidget(self.slider_v)
|
|
128
127
|
|
|
129
|
-
self.checkbox_depth_test = QCheckBox(
|
|
130
|
-
"Show front points first (Depth Test)")
|
|
131
|
-
self.checkbox_depth_test.setChecked(self.depth_test)
|
|
132
|
-
self.checkbox_depth_test.stateChanged.connect(self.set_depthtest)
|
|
133
|
-
self._on_color_mode(self.color_mode)
|
|
134
|
-
layout.addWidget(self.checkbox_depth_test)
|
|
135
|
-
|
|
136
128
|
def _on_range(self, lower, upper):
|
|
137
129
|
self.vmin = lower
|
|
138
130
|
self.vmax = upper
|
|
@@ -192,9 +184,6 @@ class CloudItem(BaseItem):
|
|
|
192
184
|
self.size = size
|
|
193
185
|
self.need_update_setting = True
|
|
194
186
|
|
|
195
|
-
def set_depthtest(self, state):
|
|
196
|
-
self.depth_test = state
|
|
197
|
-
|
|
198
187
|
def clear(self):
|
|
199
188
|
data = np.empty((0), self.data_type)
|
|
200
189
|
self.set_data(data)
|
|
@@ -304,15 +293,16 @@ class CloudItem(BaseItem):
|
|
|
304
293
|
def paint(self):
|
|
305
294
|
self.update_render_buffer()
|
|
306
295
|
self.update_setting()
|
|
296
|
+
|
|
307
297
|
glEnable(GL_BLEND)
|
|
308
298
|
glEnable(GL_PROGRAM_POINT_SIZE)
|
|
309
299
|
glEnable(GL_POINT_SPRITE)
|
|
310
300
|
glEnable(GL_DEPTH_TEST)
|
|
311
301
|
|
|
312
|
-
if
|
|
313
|
-
glDepthFunc(GL_ALWAYS)
|
|
302
|
+
if self.alpha < 0.9:
|
|
303
|
+
glDepthFunc(GL_ALWAYS)
|
|
314
304
|
else:
|
|
315
|
-
glDepthFunc(GL_LESS)
|
|
305
|
+
glDepthFunc(GL_LESS)
|
|
316
306
|
|
|
317
307
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
|
|
318
308
|
glUseProgram(self.program)
|
|
@@ -37,19 +37,21 @@ class RangeSlider(QSlider):
|
|
|
37
37
|
self.active_handle = "upper"
|
|
38
38
|
|
|
39
39
|
def mouseMoveEvent(self, event):
|
|
40
|
-
"""Override to update handle positions."""
|
|
40
|
+
"""Override to update handle positions, always clamp and int for cross-platform safety."""
|
|
41
41
|
if event.buttons() != Qt.LeftButton:
|
|
42
42
|
return
|
|
43
43
|
|
|
44
44
|
pos = self.pixelPosToValue(event.pos())
|
|
45
|
+
minv, maxv = self.minimum(), self.maximum()
|
|
45
46
|
if self.active_handle == "lower":
|
|
46
|
-
self.lower_value = max(
|
|
47
|
-
|
|
47
|
+
self.lower_value = max(minv, min(pos, self.upper_value - 1))
|
|
48
|
+
self.lower_value = int(round(self.lower_value))
|
|
48
49
|
QToolTip.showText(event.globalPos(), f"Lower: {self.lower_value:.1f}")
|
|
49
50
|
elif self.active_handle == "upper":
|
|
50
|
-
self.upper_value = min(
|
|
51
|
-
|
|
51
|
+
self.upper_value = min(maxv, max(pos, self.lower_value + 1))
|
|
52
|
+
self.upper_value = int(round(self.upper_value))
|
|
52
53
|
QToolTip.showText(event.globalPos(), f"Upper: {self.upper_value:.1f}")
|
|
54
|
+
# Always emit clamped, int values
|
|
53
55
|
self.rangeChanged.emit(self.lower_value, self.upper_value)
|
|
54
56
|
self.update()
|
|
55
57
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|