Skip to content

Inside view: error messages when doing Dehn filling if a geodesic window is open #144

@NathanDunfield

Description

@NathanDunfield
  1. Open an inside view window for m004.
  2. Go to tab Cusps/Geodesics, hit the geodesics button.
  3. Compute geodesics to the default length and do not close the the geodesics window.
  4. Go to tab Fillings and change the Dehn fillings. The Command Shell will fill with error messages as below.

During handling of the above exception, another exception occurred:

IndexError                                Traceback (most recent call last)
File /Applications/SnapPy.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.14/site-packages/snappy/raytracing/zoom_slider/__init__.py:53, in Slider._command(self, slider_value)
     50 v = (float(slider_value) - self._slider_left_end) / slider_length
     51 value = v * length + self.left_end
---> 53 self.callback(value)

File /Applications/SnapPy.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.14/site-packages/snappy/raytracing/zoom_slider/__init__.py:192, in ZoomSlider._slider_callback(self, value)
    190 self._update_labels()
    191 if self.callback:
--> 192     self.callback(value)
    193 if self.on_change:
    194     self.on_change()

File /Applications/SnapPy.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.14/site-packages/snappy/raytracing/gui_utilities.py:182, in UniformDictController.scale_command(self, value)
    180 self.update_label()
    181 if self.update_function:
--> 182     self.update_function()

File /Applications/SnapPy.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.14/site-packages/snappy/raytracing/inside_viewer.py:788, in InsideViewer.push_fillings_to_manifold(self)
    786 self.widget.recompute_raytracing_data_update_shader_and_redraw()
    787 self.update_volume_label()
--> 788 self.reset_geodesics()
    790 if self.fillings_changed_callback:
    791     self.fillings_changed_callback()

File /Applications/SnapPy.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.14/site-packages/snappy/raytracing/inside_viewer.py:812, in InsideViewer.reset_geodesics(self)
    810 self.widget.reset_geodesics()
    811 if self.geodesics_window:
--> 812     self.geodesics_window.populate_geodesics_frame()

File /Applications/SnapPy.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.14/site-packages/snappy/raytracing/geodesics_window.py:99, in GeodesicsWindow.populate_geodesics_frame(self)
     97 for geodesic in self._geodesics().geodesics_sorted_by_length():
     98     if not geodesic.geodesic_start_point_info.core_curve_cusp:
---> 99         UniformDictController.create_checkbox(
    100             self.geodesics_frame,
    101             self.raytracing_view.ui_parameter_dict,
    102             key='geodesicTubeEnables',
    103             index=geodesic.index,
    104             row=row,
    105             column=self.checkbox_column,
    106             update_function=self.geodesic_checkbox_clicked)
    108     text = ', '.join(geodesic.words)
    109     if not geodesic.is_primitive():

File /Applications/SnapPy.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.14/site-packages/snappy/raytracing/gui_utilities.py:57, in UniformDictController.create_checkbox(container, uniform_dict, key, row, update_function, column, text, index, component_index, gridargs)
     54 checkbox.grid(row=row, column=column, **gridargs)
     55 checkbox.configure(text=text)
---> 57 return UniformDictController(
     58     uniform_dict, key, checkbox=checkbox,
     59     update_function=update_function,
     60     index=index, component_index=component_index)

File /Applications/SnapPy.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.14/site-packages/snappy/raytracing/gui_utilities.py:124, in UniformDictController.__init__(self, uniform_dict, key, scale, label, checkbox, radio_buttons, update_function, format_string, index, component_index)
    121         radio_button.configure(variable=self.radio_var)
    122         radio_button.configure(command=self.radio_command)
--> 124 self.update()

File /Applications/SnapPy.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.14/site-packages/snappy/raytracing/gui_utilities.py:175, in UniformDictController.update(self)
    173 self.update_scale()
    174 self.update_label()
--> 175 self.update_checkbox()
    176 self.update_radiobuttons()

File /Applications/SnapPy.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.14/site-packages/snappy/raytracing/gui_utilities.py:166, in UniformDictController.update_checkbox(self)
    164 def update_checkbox(self):
    165     if self.checkbox:
--> 166         self.checkbox_var.set(self.get_value())

File /Applications/SnapPy.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.14/site-packages/snappy/raytracing/gui_utilities.py:139, in UniformDictController.get_value(self)
    137     return bool(self.uniform_dict[self.key][1])
    138 if self.uniform_type == 'bool[]':
--> 139     return bool(self.uniform_dict[self.key][1][self.index])

IndexError: list index out of range

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions