LICENSE
MANIFEST.in
README.md
pyproject.toml
requirements.txt
data/org.rayforge.rayforge.desktop
data/org.rayforge.rayforge.metainfo.xml
rayforge/__init__.py
rayforge/actions.py
rayforge/app.py
rayforge/config.py
rayforge/context.py
rayforge/debug.py
rayforge/icons.py
rayforge/logging_setup.py
rayforge/main_menu.py
rayforge/mainwindow.py
rayforge/splitbutton.py
rayforge/toolbar.py
rayforge/version.py
rayforge/worker_init.py
rayforge.egg-info/PKG-INFO
rayforge.egg-info/SOURCES.txt
rayforge.egg-info/dependency_links.txt
rayforge.egg-info/entry_points.txt
rayforge.egg-info/requires.txt
rayforge.egg-info/top_level.txt
rayforge/camera/__init__.py
rayforge/camera/controller.py
rayforge/camera/manager.py
rayforge/camera/models/__init__.py
rayforge/camera/models/camera.py
rayforge/camera/ui/__init__.py
rayforge/camera/ui/alignment_dialog.py
rayforge/camera/ui/camera_preferences_page.py
rayforge/camera/ui/display_widget.py
rayforge/camera/ui/image_settings_dialog.py
rayforge/camera/ui/point_bubble_widget.py
rayforge/camera/ui/properties_widget.py
rayforge/camera/ui/selection_dialog.py
rayforge/core/__init__.py
rayforge/core/capability.py
rayforge/core/config.py
rayforge/core/doc.py
rayforge/core/group.py
rayforge/core/import_source.py
rayforge/core/item.py
rayforge/core/layer.py
rayforge/core/library_manager.py
rayforge/core/material.py
rayforge/core/material_library.py
rayforge/core/matrix.py
rayforge/core/recipe.py
rayforge/core/recipe_manager.py
rayforge/core/step.py
rayforge/core/stock.py
rayforge/core/tab.py
rayforge/core/vectorization_config.py
rayforge/core/workflow.py
rayforge/core/workpiece.py
rayforge/core/geo/__init__.py
rayforge/core/geo/analysis.py
rayforge/core/geo/clipping.py
rayforge/core/geo/contours.py
rayforge/core/geo/fitting.py
rayforge/core/geo/geometry.py
rayforge/core/geo/intersect.py
rayforge/core/geo/linearize.py
rayforge/core/geo/primitives.py
rayforge/core/geo/query.py
rayforge/core/geo/transform.py
rayforge/core/ops/__init__.py
rayforge/core/ops/commands.py
rayforge/core/ops/container.py
rayforge/core/ops/flip.py
rayforge/core/ops/group.py
rayforge/core/ops/timing.py
rayforge/doceditor/__init__.py
rayforge/doceditor/edit_cmd.py
rayforge/doceditor/editor.py
rayforge/doceditor/file_cmd.py
rayforge/doceditor/group_cmd.py
rayforge/doceditor/layer_cmd.py
rayforge/doceditor/layout_cmd.py
rayforge/doceditor/material_test_cmd.py
rayforge/doceditor/step_cmd.py
rayforge/doceditor/stock_cmd.py
rayforge/doceditor/tab_cmd.py
rayforge/doceditor/transform_cmd.py
rayforge/doceditor/layout/__init__.py
rayforge/doceditor/layout/align.py
rayforge/doceditor/layout/auto.py
rayforge/doceditor/layout/base.py
rayforge/doceditor/layout/spread.py
rayforge/doceditor/ui/__init__.py
rayforge/doceditor/ui/add_material_dialog.py
rayforge/doceditor/ui/add_tabs_popover.py
rayforge/doceditor/ui/edit_recipe_dialog.py
rayforge/doceditor/ui/file_dialogs.py
rayforge/doceditor/ui/image_metadata_dialog.py
rayforge/doceditor/ui/import_handler.py
rayforge/doceditor/ui/item_properties.py
rayforge/doceditor/ui/layer_list.py
rayforge/doceditor/ui/layer_view.py
rayforge/doceditor/ui/material_library_list.py
rayforge/doceditor/ui/material_list.py
rayforge/doceditor/ui/material_manager.py
rayforge/doceditor/ui/material_selector.py
rayforge/doceditor/ui/recipe_control_widget.py
rayforge/doceditor/ui/recipe_list.py
rayforge/doceditor/ui/recipe_manager.py
rayforge/doceditor/ui/recipe_selector_dialog.py
rayforge/doceditor/ui/step_box.py
rayforge/doceditor/ui/step_selector.py
rayforge/doceditor/ui/step_settings_dialog.py
rayforge/doceditor/ui/stock_list.py
rayforge/doceditor/ui/stock_properties_dialog.py
rayforge/doceditor/ui/stock_view.py
rayforge/doceditor/ui/workflow_view.py
rayforge/doceditor/ui/step_settings/__init__.py
rayforge/doceditor/ui/step_settings/base.py
rayforge/doceditor/ui/step_settings/depth_engraver.py
rayforge/doceditor/ui/step_settings/edge.py
rayforge/doceditor/ui/step_settings/frame.py
rayforge/doceditor/ui/step_settings/material_test_grid.py
rayforge/doceditor/ui/step_settings/multipass.py
rayforge/doceditor/ui/step_settings/optimize.py
rayforge/doceditor/ui/step_settings/overscan.py
rayforge/doceditor/ui/step_settings/rasterizer.py
rayforge/doceditor/ui/step_settings/shrinkwrap.py
rayforge/doceditor/ui/step_settings/smooth.py
rayforge/image/__init__.py
rayforge/image/base_importer.py
rayforge/image/base_renderer.py
rayforge/image/denoise.py
rayforge/image/hull.py
rayforge/image/image_util.py
rayforge/image/material_test_grid_renderer.py
rayforge/image/ops_renderer.py
rayforge/image/tracing.py
rayforge/image/util.py
rayforge/image/bmp/__init__.py
rayforge/image/bmp/importer.py
rayforge/image/bmp/parser.py
rayforge/image/bmp/renderer.py
rayforge/image/dxf/__init__.py
rayforge/image/dxf/importer.py
rayforge/image/dxf/renderer.py
rayforge/image/jpg/__init__.py
rayforge/image/jpg/importer.py
rayforge/image/jpg/renderer.py
rayforge/image/pdf/__init__.py
rayforge/image/pdf/importer.py
rayforge/image/pdf/renderer.py
rayforge/image/png/__init__.py
rayforge/image/png/importer.py
rayforge/image/png/renderer.py
rayforge/image/procedural/__init__.py
rayforge/image/procedural/importer.py
rayforge/image/procedural/renderer.py
rayforge/image/ruida/__init__.py
rayforge/image/ruida/importer.py
rayforge/image/ruida/job.py
rayforge/image/ruida/parser.py
rayforge/image/ruida/renderer.py
rayforge/image/svg/__init__.py
rayforge/image/svg/importer.py
rayforge/image/svg/renderer.py
rayforge/image/svg/svgutil.py
rayforge/locale/de/LC_MESSAGES/rayforge.mo
rayforge/locale/en/LC_MESSAGES/rayforge.mo
rayforge/locale/es/LC_MESSAGES/rayforge.mo
rayforge/locale/fr/LC_MESSAGES/rayforge.mo
rayforge/locale/pt/LC_MESSAGES/rayforge.mo
rayforge/machine/__init__.py
rayforge/machine/cmd.py
rayforge/machine/job_monitor.py
rayforge/machine/driver/__init__.py
rayforge/machine/driver/driver.py
rayforge/machine/driver/dummy.py
rayforge/machine/driver/grbl.py
rayforge/machine/driver/grbl_serial.py
rayforge/machine/driver/grbl_util.py
rayforge/machine/driver/smoothie.py
rayforge/machine/models/__init__.py
rayforge/machine/models/dialect.py
rayforge/machine/models/laser.py
rayforge/machine/models/machine.py
rayforge/machine/models/macro.py
rayforge/machine/models/profile.py
rayforge/machine/transport/__init__.py
rayforge/machine/transport/http.py
rayforge/machine/transport/serial.py
rayforge/machine/transport/telnet.py
rayforge/machine/transport/transport.py
rayforge/machine/transport/validators.py
rayforge/machine/transport/websocket.py
rayforge/machine/ui/__init__.py
rayforge/machine/ui/advanced_preferences_page.py
rayforge/machine/ui/connection_status_widget.py
rayforge/machine/ui/device_settings_page.py
rayforge/machine/ui/gcode_editor.py
rayforge/machine/ui/general_preferences_page.py
rayforge/machine/ui/hook_list.py
rayforge/machine/ui/jog_dialog.py
rayforge/machine/ui/jog_widget.py
rayforge/machine/ui/laser_preferences_page.py
rayforge/machine/ui/log_dialog.py
rayforge/machine/ui/machine_selector.py
rayforge/machine/ui/macro_list.py
rayforge/machine/ui/preferences_page.py
rayforge/machine/ui/profile_selector.py
rayforge/machine/ui/settings_dialog.py
rayforge/machine/ui/status_widget.py
rayforge/pipeline/__init__.py
rayforge/pipeline/coord.py
rayforge/pipeline/pipeline.py
rayforge/pipeline/steps.py
rayforge/pipeline/artifact/__init__.py
rayforge/pipeline/artifact/base.py
rayforge/pipeline/artifact/cache.py
rayforge/pipeline/artifact/handle.py
rayforge/pipeline/artifact/job.py
rayforge/pipeline/artifact/step_ops.py
rayforge/pipeline/artifact/step_render.py
rayforge/pipeline/artifact/store.py
rayforge/pipeline/artifact/workpiece.py
rayforge/pipeline/artifact/workpiece_view.py
rayforge/pipeline/encoder/__init__.py
rayforge/pipeline/encoder/base.py
rayforge/pipeline/encoder/cairoencoder.py
rayforge/pipeline/encoder/context.py
rayforge/pipeline/encoder/gcode.py
rayforge/pipeline/encoder/vertexencoder.py
rayforge/pipeline/modifier/__init__.py
rayforge/pipeline/modifier/colorfilter.py
rayforge/pipeline/modifier/grayscale.py
rayforge/pipeline/modifier/modifier.py
rayforge/pipeline/modifier/transparency.py
rayforge/pipeline/producer/__init__.py
rayforge/pipeline/producer/base.py
rayforge/pipeline/producer/depth.py
rayforge/pipeline/producer/edge.py
rayforge/pipeline/producer/frame.py
rayforge/pipeline/producer/material_test_grid.py
rayforge/pipeline/producer/rasterize.py
rayforge/pipeline/producer/shrinkwrap.py
rayforge/pipeline/stage/__init__.py
rayforge/pipeline/stage/base.py
rayforge/pipeline/stage/job.py
rayforge/pipeline/stage/job_runner.py
rayforge/pipeline/stage/step.py
rayforge/pipeline/stage/step_runner.py
rayforge/pipeline/stage/workpiece.py
rayforge/pipeline/stage/workpiece_runner.py
rayforge/pipeline/stage/workpiece_view.py
rayforge/pipeline/stage/workpiece_view_runner.py
rayforge/pipeline/transformer/__init__.py
rayforge/pipeline/transformer/arcwelder.py
rayforge/pipeline/transformer/base.py
rayforge/pipeline/transformer/multipass.py
rayforge/pipeline/transformer/optimize.py
rayforge/pipeline/transformer/overscan.py
rayforge/pipeline/transformer/smooth.py
rayforge/pipeline/transformer/tabs.py
rayforge/resources/core_materials/__library__.yaml
rayforge/resources/core_materials/acrylic.yaml
rayforge/resources/core_materials/aluminum.yaml
rayforge/resources/core_materials/mdf.yaml
rayforge/resources/core_materials/plywood.yaml
rayforge/resources/icons/3d-rotation-symbolic.svg
rayforge/resources/icons/3d-symbolic.svg
rayforge/resources/icons/add-stock-symbolic.svg
rayforge/resources/icons/add-symbolic.svg
rayforge/resources/icons/alarm-symbolic.svg
rayforge/resources/icons/align-bottom-symbolic.svg
rayforge/resources/icons/align-horizontal-center-symbolic.svg
rayforge/resources/icons/align-left-symbolic.svg
rayforge/resources/icons/align-right-symbolic.svg
rayforge/resources/icons/align-top-symbolic.svg
rayforge/resources/icons/align-vertical-center-symbolic.svg
rayforge/resources/icons/arrow-east.svg
rayforge/resources/icons/arrow-north-east.svg
rayforge/resources/icons/arrow-north-west.svg
rayforge/resources/icons/arrow-north.svg
rayforge/resources/icons/arrow-south-east.svg
rayforge/resources/icons/arrow-south-west.svg
rayforge/resources/icons/arrow-south.svg
rayforge/resources/icons/arrow-west.svg
rayforge/resources/icons/auto-layout-symbolic.svg
rayforge/resources/icons/camera-off-symbolic.svg
rayforge/resources/icons/camera-on-symbolic.svg
rayforge/resources/icons/check-circle-symbolic.svg
rayforge/resources/icons/check-symbolic.svg
rayforge/resources/icons/chevron-right-symbolic.svg
rayforge/resources/icons/clear-alarm-symbolic.svg
rayforge/resources/icons/clear-layers-symbolic.svg
rayforge/resources/icons/close-document-symbolic.svg
rayforge/resources/icons/close-symbolic.svg
rayforge/resources/icons/code-symbolic.svg
rayforge/resources/icons/compass-symbolic.svg
rayforge/resources/icons/copy-symbolic.svg
rayforge/resources/icons/cut-symbolic.svg
rayforge/resources/icons/cycle-symbolic.svg
rayforge/resources/icons/delete-symbolic.svg
rayforge/resources/icons/distribute-horizontal-symbolic.svg
rayforge/resources/icons/distribute-vertical-symbolic.svg
rayforge/resources/icons/door-symbolic.svg
rayforge/resources/icons/drag-handle-symbolic.svg
rayforge/resources/icons/engrave-symbolic.svg
rayforge/resources/icons/eraser-symbolic.svg
rayforge/resources/icons/fast-forward-symbolic.svg
rayforge/resources/icons/flip-horizontal-symbolic.svg
rayforge/resources/icons/flip-vertical-symbolic.svg
rayforge/resources/icons/frame-symbolic.svg
rayforge/resources/icons/home-symbolic.svg
rayforge/resources/icons/homing-symbolic.svg
rayforge/resources/icons/hourglass-symbolic.svg
rayforge/resources/icons/info-symbolic.svg
rayforge/resources/icons/jog-symbolic.svg
rayforge/resources/icons/laps-symbolic.svg
rayforge/resources/icons/laser-off-symbolic.svg
rayforge/resources/icons/laser-on-symbolic.svg
rayforge/resources/icons/laser-path-symbolic.svg
rayforge/resources/icons/layer-symbolic.svg
rayforge/resources/icons/locked-symbolic.svg
rayforge/resources/icons/next-symbolic.svg
rayforge/resources/icons/open-in-new-symbolic.svg
rayforge/resources/icons/open-symbolic.svg
rayforge/resources/icons/org.rayforge.rayforge.svg
rayforge/resources/icons/pause-symbolic.svg
rayforge/resources/icons/play-arrow-symbolic.svg
rayforge/resources/icons/post-processor-symbolic.svg
rayforge/resources/icons/preliminary-check-symbolic.svg
rayforge/resources/icons/preview-off-symbolic.svg
rayforge/resources/icons/preview_off-symbolic.svg
rayforge/resources/icons/previous-symbolic.svg
rayforge/resources/icons/publish-symbolic.svg
rayforge/resources/icons/question-box-symbolic.svg
rayforge/resources/icons/question-mark-symbolic.svg
rayforge/resources/icons/queued-symbolic.svg
rayforge/resources/icons/recipe-symbolic.svg
rayforge/resources/icons/refresh-symbolic.svg
rayforge/resources/icons/reset-stock-symbolic.svg
rayforge/resources/icons/resume-symbolic.svg
rayforge/resources/icons/save-as-symbolic.svg
rayforge/resources/icons/save-symbolic.svg
rayforge/resources/icons/save_as-symbolic.svg
rayforge/resources/icons/score-symbolic.svg
rayforge/resources/icons/send-symbolic.svg
rayforge/resources/icons/settings-symbolic.svg
rayforge/resources/icons/siren-symbolic.svg
rayforge/resources/icons/sleep-symbolic.svg
rayforge/resources/icons/stock-symbolic.svg
rayforge/resources/icons/stop-symbolic.svg
rayforge/resources/icons/tabs-equidistant-symbolic.svg
rayforge/resources/icons/tabs-visible-symbolic.svg
rayforge/resources/icons/test-symbolic.svg
rayforge/resources/icons/timeline-symbolic.svg
rayforge/resources/icons/tool-change-symbolic.svg
rayforge/resources/icons/undo-symbolic.svg
rayforge/resources/icons/unlocking-symbolic.svg
rayforge/resources/icons/variable-symbolic.svg
rayforge/resources/icons/visibility-off-symbolic.svg
rayforge/resources/icons/visibility-on-symbolic.svg
rayforge/resources/icons/warning-symbolic.svg
rayforge/shared/__init__.py
rayforge/shared/gcodeedit/__init__.py
rayforge/shared/gcodeedit/editor.py
rayforge/shared/gcodeedit/highlighter.py
rayforge/shared/gcodeedit/viewer.py
rayforge/shared/tasker/__init__.py
rayforge/shared/tasker/context.py
rayforge/shared/tasker/manager.py
rayforge/shared/tasker/pool.py
rayforge/shared/tasker/proxy.py
rayforge/shared/tasker/task.py
rayforge/shared/ui/__init__.py
rayforge/shared/ui/about.py
rayforge/shared/ui/draglist.py
rayforge/shared/ui/expander.py
rayforge/shared/ui/formatter.py
rayforge/shared/ui/general_preferences_page.py
rayforge/shared/ui/preferences_dialog.py
rayforge/shared/ui/progress_bar.py
rayforge/shared/ui/round_button.py
rayforge/shared/ui/task_bar.py
rayforge/shared/ui/unit_spin_row.py
rayforge/shared/units/__init__.py
rayforge/shared/units/definitions.py
rayforge/shared/units/engine.py
rayforge/shared/util/__init__.py
rayforge/shared/util/adw.py
rayforge/shared/util/adwfix.py
rayforge/shared/util/cache.py
rayforge/shared/util/cairoutil.py
rayforge/shared/util/colors.py
rayforge/shared/util/glib.py
rayforge/shared/util/gtk.py
rayforge/shared/util/gtk_color.py
rayforge/shared/util/other.py
rayforge/shared/util/template.py
rayforge/shared/varset/__init__.py
rayforge/shared/varset/baudratevar.py
rayforge/shared/varset/boolvar.py
rayforge/shared/varset/choicevar.py
rayforge/shared/varset/floatvar.py
rayforge/shared/varset/hostnamevar.py
rayforge/shared/varset/intvar.py
rayforge/shared/varset/portvar.py
rayforge/shared/varset/serialportvar.py
rayforge/shared/varset/var.py
rayforge/shared/varset/varset.py
rayforge/shared/varset/varsetwidget.py
rayforge/undo/__init__.py
rayforge/undo/models/__init__.py
rayforge/undo/models/command.py
rayforge/undo/models/composite_cmd.py
rayforge/undo/models/dict_cmd.py
rayforge/undo/models/history.py
rayforge/undo/models/list_cmd.py
rayforge/undo/models/property_cmd.py
rayforge/undo/models/setter_cmd.py
rayforge/undo/ui/__init__.py
rayforge/undo/ui/undo_button.py
rayforge/workbench/__init__.py
rayforge/workbench/axis.py
rayforge/workbench/context_menu.py
rayforge/workbench/drag_drop_cmd.py
rayforge/workbench/simulation_controls.py
rayforge/workbench/simulator_cmd.py
rayforge/workbench/surface.py
rayforge/workbench/view_mode_cmd.py
rayforge/workbench/canvas/__init__.py
rayforge/workbench/canvas/canvas.py
rayforge/workbench/canvas/cursor.py
rayforge/workbench/canvas/element.py
rayforge/workbench/canvas/hittest.py
rayforge/workbench/canvas/intersect.py
rayforge/workbench/canvas/multiselect.py
rayforge/workbench/canvas/overlays.py
rayforge/workbench/canvas/region.py
rayforge/workbench/canvas/shrinkwrap.py
rayforge/workbench/canvas/transform.py
rayforge/workbench/canvas3d/__init__.py
rayforge/workbench/canvas3d/axis_renderer_3d.py
rayforge/workbench/canvas3d/camera.py
rayforge/workbench/canvas3d/canvas3d.py
rayforge/workbench/canvas3d/gl_utils.py
rayforge/workbench/canvas3d/ops_renderer.py
rayforge/workbench/canvas3d/plane_renderer.py
rayforge/workbench/canvas3d/scene_assembler.py
rayforge/workbench/canvas3d/shaders.py
rayforge/workbench/canvas3d/sphere_renderer.py
rayforge/workbench/canvas3d/text_renderer_3d.py
rayforge/workbench/canvas3d/texture_renderer.py
rayforge/workbench/elements/__init__.py
rayforge/workbench/elements/camera_image.py
rayforge/workbench/elements/dot.py
rayforge/workbench/elements/group.py
rayforge/workbench/elements/layer.py
rayforge/workbench/elements/simulation_overlay.py
rayforge/workbench/elements/step.py
rayforge/workbench/elements/stock.py
rayforge/workbench/elements/tab_handle.py
rayforge/workbench/elements/workpiece.py
tests/test_mainwindow.py