Skip to content

Commit 997df78

Browse files
committed
handle point size per object
1 parent 4414142 commit 997df78

File tree

4 files changed

+7
-6
lines changed

4 files changed

+7
-6
lines changed

docs/examples/object/points.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
viewer = Viewer()
88
for i in range(10):
99
point = Point(random() * 10, random() * 10, random() * 10)
10-
viewer.scene.add(point, pointcolor=Color(random(), random(), random()), pointsize=30)
10+
viewer.scene.add(point, pointcolor=Color(random(), random(), random()), pointsize=random() * 50)
1111

1212

1313
viewer.show()

src/compas_viewer/renderer/renderer.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,6 @@ def init(self):
410410
self.shader_model.uniform3f("selection_color", self.viewer.config.renderer.selectioncolor.rgb)
411411
self.shader_model.uniformBuffer("transformBuffer", self.buffer_manager.transform_texture, unit=0)
412412
self.shader_model.uniformBuffer("settingsBuffer", self.buffer_manager.settings_texture, unit=1)
413-
self.shader_model.uniform1f("pointSize", 10.0)
414413
self.shader_model.release()
415414

416415
self.shader_tag = Shader(name="tag")
@@ -554,7 +553,6 @@ def paint(self, is_instance: bool = False):
554553
self.shader_model.uniform3f("selection_color", self.viewer.config.renderer.selectioncolor.rgb)
555554
self.shader_model.uniformBuffer("transformBuffer", self.buffer_manager.transform_texture, unit=0)
556555
self.shader_model.uniformBuffer("settingsBuffer", self.buffer_manager.settings_texture, unit=1)
557-
self.shader_model.uniform1f("pointSize", 10.0)
558556

559557
self.shader_model.uniform4x4("viewworld", viewworld)
560558
self.shader_model.uniform1i("is_instance", is_instance)

src/compas_viewer/renderer/shaders/model.vert

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ uniform mat4 viewworld;
1111
uniform samplerBuffer transformBuffer;
1212
uniform samplerBuffer settingsBuffer;
1313
uniform bool is_grid;
14-
uniform float pointSize;
1514

1615
// Outputs
1716
out vec4 vertex_color;
@@ -55,6 +54,8 @@ void main() {
5554
texelFetch(transformBuffer, int(object_index * 4) + 3)
5655
));
5756

57+
float pointSize = 1.0;
58+
5859
// Set visibility and display settings
5960
if (is_grid) {
6061
show = show_points = show_lines = show_faces = 1.0;
@@ -71,6 +72,8 @@ void main() {
7172
instance_color = vec4(settings_row2.rgb, 1.0);
7273
is_selected = getEffectiveSelection(object_index);
7374
object_opacity = settings_row3.g;
75+
pointSize = settings_row3.b;
76+
7477
}
7578

7679
// Calculate final position

src/compas_viewer/scene/buffermanager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def add_object(self, obj: Any) -> None:
8484
obj_settings = [
8585
[obj.show, obj.show_points, obj.show_lines, obj.show_faces], # Row 1
8686
[*instance_color, obj.is_selected], # Row 2
87-
[parent_index, obj.opacity, 0.0, 0.0], # Row 3: parent index and padding
87+
[parent_index, obj.opacity, obj.pointsize, 0.0], # Row 3: parent index and padding
8888
]
8989
self.settings.append(obj_settings)
9090

@@ -310,7 +310,7 @@ def update_object_settings(self, obj: Any) -> None:
310310
obj_settings = [
311311
[obj.show, obj.show_points, obj.show_lines, obj.show_faces], # Row 1
312312
[*instance_color, obj.is_selected], # Row 2
313-
[parent_index, obj.opacity, 0.0, 0.0], # Row 3: parent index and padding
313+
[parent_index, obj.opacity, obj.pointsize, 0.0], # Row 3: parent index and padding
314314
]
315315
index = self.objects[obj]
316316
self.settings[index] = obj_settings

0 commit comments

Comments
 (0)