Skip to content

Reverse Flip Breaks on Circle #825

@lewi0622

Description

@lewi0622

Vpype Version: 1.15.0
Python Version: 3.13.10

Svg attached here: Image
On a circle, the command 'reverse -f' fails. It succeeds when the flip option isn't used. Use the following command to see the error:

vpype read simple_circle.svg reverse  -f show

The following error is thrown:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "c:\users\ericl\.local\bin\vpype.exe\__main__.py", line 6, in <module>
    sys.exit(cli())
             ~~~^^
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\click\core.py", line 1485, in __call__
    return self.main(*args, **kwargs)
           ~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\vpype_cli\cli.py", line 87, in main
    return super().main(args=preprocess_argument_list(args), **extra)
           ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\click\core.py", line 1406, in main
    rv = self.invoke(ctx)
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\click\core.py", line 1905, in invoke
    return _process_result(rv)
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\click\core.py", line 1842, in _process_result
    value = ctx.invoke(self._result_callback, value, **ctx.params)
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\click\core.py", line 824, in invoke
    return callback(*args, **kwargs)
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\vpype_cli\cli.py", line 258, in process_pipeline
    execute_processors(processors, State())
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\vpype_cli\cli.py", line 342, in execute_processors
    cast(Callable, proc)(state)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\vpype_cli\decorators.py", line 160, in global_processor
    state.document = f(state.document, *new_args, **new_kwargs)
                     ~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\vpype_cli\show.py", line 121, in show
    vpype_viewer.show(
    ~~~~~~~~~~~~~~~~~^
        document, view_mode=view_mode, show_pen_up=show_pen_up, show_points=show_points
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\vpype_viewer\qtviewer\viewer.py", line 547, in show
    widget.show()
    ~~~~~~~~~~~^^
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\vpype_viewer\qtviewer\viewer.py", line 238, in event
    return super().event(event)
           ~~~~~~~~~~~~~^^^^^^^
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\vpype_viewer\qtviewer\viewer.py", line 238, in event
    return super().event(event)
           ~~~~~~~~~~~~~^^^^^^^
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\vpype_viewer\qtviewer\viewer.py", line 238, in event
    return super().event(event)
           ~~~~~~~~~~~~~^^^^^^^
  [Previous line repeated 1 more time]
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\vpype_viewer\qtviewer\viewer.py", line 162, in paintGL
    self.engine.render()
    ~~~~~~~~~~~~~~~~~~^^
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\vpype_viewer\engine.py", line 413, in render
    self._rebuild()
    ~~~~~~~~~~~~~^^
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\vpype_viewer\engine.py", line 501, in _rebuild
    LineCollectionPreviewPainter(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self._ctx, lc=lc, pen_width=pen_width, color=layer_color
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\vpype_viewer\_painters.py", line 296, in __init__
    vertices, indices = self._build_buffers(lc)
                        ~~~~~~~~~~~~~~~~~~~^^^^
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\vpype_viewer\_painters.py", line 346, in _build_buffers
    np.vstack([vp.as_vector(line).astype("f4") for line in lc]),
               ~~~~~~~~~~~~^^^^^^
  File "C:\Users\ericl\pipx\venvs\vpype\Lib\site-packages\vpype\model.py", line 44, in as_vector
    return a.view(dtype=float).reshape(len(a), 2)
           ~~~~~~^^^^^^^^^^^^^
ValueError: Error calling Python override of QOpenGLWidget::event(): Error calling Python override of QOpenGLWidget::event(): Error calling Python override of QOpenGLWidget::event(): Error calling Python override of QOpenGLWidget::event(): Error calling Python override of QOpenGLWidget::paintGL(): To change to a dtype of a different size, the last axis must be contiguous

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions