Vedo

Latest version: v2024.5.1

Safety actively analyzes 613734 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 10

2024.5.1

Changes and Fixes

- fixes to `extrude()` method thanks to JeffreyWardman
- add `utils.madcad2vedo` conversion as per 976 by JeffreyWardman
- add `utils.camera_to_dict()`
- add `Axes(title_backface_color=...)` keyword
- fix `labels()` and `labels2d()`
- add `shapes.plot_scalar()` plot a scalar along a line.
- add support for `tetgenpy`
- add `transformations.compute_main_axes()`
- add `transformations.__call__()` to apply a transformation
- fix small bug in `pointcloud.distance_to()`
- add `applications.MorphPlotter()` to morph a polygonal mesh to a target mesh
- add `smooth_data()` to smooth/diffuse data attributes
- add `shapes.Tubes()`
- add `utils.Minimizer()` class
- add `CellCenters(Points)` class
- add `core.apply_transform_from_actor()`
- add `add volume.slab()`
- add `mesh.generate_random_points()` to generate random points onto a surface
- add `tetmesh.generate_random_points()` to generate random points in a tet mesh
- rename `integrate_arrays_over_domain()` to `integrate_data`
- extend `volume.operation()` to support logic operations as per 1002
- add `pointcloud.relax_point_positions()` method
- add `pointcloud.auto_distance()` method calculates the distance to the closest point in the same cloud of points.
- fixed `mesh.collapse_edges()` after 992
- add `mesh.cut_closed_surface()`
- fix `image.clone()` in 1011
- add `transformations.TransformInterpolator` class
- add `Line.find_index_at_position()` finds the index of the line vertex that is closest to a point
- add `visual.LightKit` class which provides "natural" lighting from 4 sources.
- add `fast-simplification` example by Louis-Pujol in 992
- add metadata "shape" to `volume.slice_plane()` in 1018
- fix `core.mark_boundaries()` method
- add callbacks for cutters in 1020 and `examples/volumetric/slice_plane3.py`
- add `utils.andrews_curves()` function.
- add `transformations.LinearTransform.transpose()` method.
- add `pointcloud.generate_segments()` to generate a continous line from un-ordered points in 3d
- fix `assembly.__add__()` by j042 in 1036
- small fix to `Ruler3D` class.
- add `plotter.render_hidden_lines()` method
- add slot for triangle strips in constructor `Mesh([verts, faces, lines, strips])` in 1019
- internally use "import vedo.vtkclasses as vtki" instead of "vtk" to avoid confusion
- add `join_with_strips()` in 1043
- improvements to `shapes.Ellipsoid()` and bug fixes in 978 by daniel-a-diaz
- improvements to `pointcloud.pca_ellipsoid()` and bug fixes
- improvements to `pointcloud.pca_ellipse()` and bug fixes
- fix Plotter `a` toggle keypress
- fix viz on jupyter notebook as per 994
- fix `mesh.imprint()`
- small fix to `applications.Slicer2DPlotter`
- automatically apply the actor transform to an object actor that was moved manually (via eg "InteractorStyleTrackballActor") in 1045 and 1046 by sergei9838
- add support to `RectilinearGrid` and `StructuredGrid` data (experimental).
- improvements to `RayCastPlotter`
- add `visual.scalar_range()` to control mesh coloring.
- fix `shapes.Text3D.text()` by gioda
- add `volume.isosurface_discrete()` method


Soft Breaking Changes
Changes that can break existing code whose fixing is trivial:

- change `clone2d(scale=...)` to `clone2d(size=...)`
- remove `shapes.StreamLines(object)` becomes `object.compute_streamlines()`
- split `mesh.decimate()` into `mesh.decimate()`, `mesh.decimate_pro()` and `mesh.decimate_binned()` as per 992
- modified `core.clean()` after 992
- remove `import_window()` for obj files and create `load_obj()` by zhouzq-thu in 891
- add `smooth_mls_12d(..., n=0)` to fix the number of neighbors in the smoothing
- modified API for `mesh.binarize()`
- `plotter.add_hover_legend()` now returns the id of the callback.
- removed `settings.render_lines_as_tubes` and `settings.hidden_line_removal`, add `plotter.render_hidden_lines()` method
- fix `close()`, `close_window()` is now obsolete and removed.


Hard Breaking Changes
Changes that will break existing code and need active thinking and work to adapt

- None


New/Revised Examples

examples/basic/sliders_hsv.py
examples/basic/buttons1.py
examples/basic/buttons2.py
examples/basic/input_box.py

examples/advanced/warp4b.py
examples/advanced/diffuse_data.py
examples/advanced/moving_least_squares1D.py

examples/volumetric/slab_vol.py
examples/volumetric/streamlines1.py
examples/volumetric/streamlines2.py
examples/volumetric/streamlines3.py
examples/volumetric/streamlines4.py
examples/volumetric/office.py
examples/volumetric/slice_plane1.py
examples/volumetric/slice_plane3.py
examples/volumetric/mesh2volume.py
examples/volumetric/read_volume3.py
examples/volumetric/rectl_grid1.py
examples/volumetric/struc_grid1.py
examples/volumetric/app_raycaster.py
examples/volumetric/isosurfaces1.py
examples/volumetric/isosurfaces2.py

examples/simulations/mag_field1.py
examples/pyplot/andrews_cluster.py

examples/other/madcad1.py
examples/other/tetgen1.py
examples/other/nelder-mead.py
examples/other/fast_simpl.py

tests/issues/issue_968.py
tests/issues/issue_1025.py
tests/issues/test_force_anim.py
tests/snippets/test_discourse_1956.py
tests/snippets/test_ellipsoid_main_axes.py
tests/snippets/test_compare_fit1.py


New Contributors
* daizhirui made their first contribution in https://github.com/marcomusy/vedo/pull/983
* JeffreyWardman made their first contribution in https://github.com/marcomusy/vedo/pull/988
* PeterMitrano made their first contribution in https://github.com/marcomusy/vedo/pull/1000
* Louis-Pujol made their first contribution in https://github.com/marcomusy/vedo/pull/1016

**Full Changelog**: https://github.com/marcomusy/vedo/compare/v2023.5.0...v2024.5.1

2023.5.0

Main changes
Major internal refactoring.

Breaking changes

- rename internal list `plt.actors` which now become `plt.objects`
- rename `.points()` to property `.vertices`. Hence:
`mesh.points() -> mesh.vertices`
`mesh.points(newpoints) -> mesh.vertices = newpoints`
- rename `.cell_centers()` to property `.cell_centers`
- rename `.faces()` to property `.cells`
- rename `.lines()` to property `.lines`
- rename `.edges()` to property `.edges`
- rename `.normals()` and split it into property `.vertex_normals` and property `.cell_normals`
- rename `picture.Picture2D(...)` which becomes `Image(...).clone2d()` (see `examples/pyplot/embed_matplotlib.py`).
- rename `Volume.probe_points()` which becomes `points.probe(volume)`
- rename `Volume.probe_line()` which becomes `line.probe(volume)`
- rename `Volume.probe_plane()` which becomes `plane.probe(volume)`
- rename `file_io.load_transform()`. `LinearTransform("file.mat")` substitutes it.
- rename `transform_with_landmarks()` to `align_with_landmarks()`
- rename `find_cells_in()` to `find_cells_in_bounds()`
- rename `mesh.is_inside(pt)` moved to `mesh.contains(pt)`
- rename `Slicer2DPlotter` moved to `application module.Slicer2DPlotter`
- rename and moved method `voronoi()` to `points.generate_voronoi()`
- rename class `Ruler` to `Ruler3D`

Other changes
- improvements in how vtk classes are imported (allow lazy import)
- improvements to method `mesh.clone2d()`
- improvements in `Slicer3DPlotter` thanks to daniel-a-diaz in 925
- improvements in `applications.Browser`
- add new `vedo.transformations.py` module.
- add `plotter.pick_area()` thanks to ZiguoAtGitHub and RubendeBruin feedback.
- add texture to npz files thanks to zhouzq-thu in 918
- add background radial gradients
- add `utils.line_line_distance()` function
- add `utils.segment_segment_distance()` function
- add `plotter.initialize_interactor()` method
- add object hinting by hovering mouse (see `flag_labels1.py`)
- add `colors.lut_color_at(value)` the color of the lookup table at value.
- add `.show(..., screenshot="myfile.png")` keyword
- add `object.coordinates` same as `object.vertices`
- add `move()` to move single points or objects
- add `copy()` as alias to `clone()`
- add "Roll" to camera dictionary (thanks baba-yaga )
- add `applications.Slicer3DTwinPlotter` thanks to daniel-a-diaz
- add radii feature to `smooth_mls_2d()` by jo-mueller (now store results in arrays `mesh.pointdata['MLSVariance']` and `mesh.pointdata['MLSValidPoint']`)
- passing a `vtkCamera` to `show(camera=...)` triggers a copy of the input which is therefore not muted by any subsequent interaction (thanks baba-yaga )

Bug Fixes
- bug fix in `closest_point()` thanks to goncalo-pt
- bug fix in tformat thanks to JohnsWor in 913
- bug fix in windows OS in timers callbacks thanks to jonaslindemann
- bug fix to non linear tranforms mode. Now it can be instantiated with a dictionary
- bug fix in meshlab interface thanks to JeffreyWardman in 924
- bug fix changed `mp = matplotlib.colormaps[name]` in colors.py


New/Revised Examples

examples/basic/buttons.py
examples/basic/input_box.py
examples/basic/sliders2.py
examples/basic/spline_tool.py
examples/basic/interaction_modes2.py
examples/advanced/timer_callback1.py
examples/advanced/timer_callback2.py
examples/advanced/warp4a.py
examples/advanced/warp4b.py
examples/pyplot/embed_matplotlib.py
examples/pyplot/plot_fxy2.py
examples/simulations/springs_fem.py
examples/simulations/lorenz.py
examples/volumetric/numpy2volume0.py
examples/volumetric/slicer1.py
examples/volumetric/tet_astyle.py
examples/volumetric/tet_cut1.py
examples/volumetric/tet_cut2.py
examples/other/flag_labels1.py

2023.4.6

This release only fixes a bunch of small but annoying bugs in the previous.

2023.4.5

Main changes

- Rename module `io.py` to `file_io.py` to avoid overriding stlib `io`.
- Complete revision of cutter widgets functionality
- Integration in napari thanks to jo-mueller


Breaking changes
- method `plotter.add()` no more accepts keyword `render=True/False`. Please use `plotter.add().render()` explicitly. Same thing for `plotter.remove()`.

Other fixes and improvements
- added gpu acceleration for CLI volumetric visualization in 832 by zhang-qiang-github
- fixes for `k3d` jupyter backend
- added `plotter.fov(value)` (field of view, the so called "fish-eye" effect)
- fix `ploter.get_meshes()`
- fix for `plotter.remove(unpack_assemblies=False)` method
- fix for `io.import_window()` method
- added `cut_with_cookiecutter()` to cut 2D contours.
- fix `shapes.NormalLines()` class
- added `vedo.interactor_modes` module
- added `vedo.interactor_modes.BlenderStyle` class
- added `base.pointdata.clear()` to remove all associated data
- added `volume.hide_voxels()` for visualization
- added `Event.timerid` attribute
- fix to `Volume.operation` by DanKrsi
- fix links in `pyplot` examples by androbaza
- fix `screenshot_scale` and remove it from settings.
- allow initializing `ScalarBar` with a tuple range `(min, max)`
- Update API Documentation for Changing Backend by bhacha
- Add `application.Browser().play()` to autoplay a slider
- Add `pad()` to padding a Volume with zeros voxels (useful to `dilate()`)
- Add `ProgressBarWidget()` to show a progress bar in the rendering window
- Fix Scalarbar3D logscale and change separator symbol by XushanLu
- Fix `vedo/interactor_modes.mouse_left_move()` by MiticoDan
- Added `applications.AnimationPlayer` class by mikaeltulldahl
- fix convex hull in 2D by ManuGraiph


-------------------------
New/Revised Examples

examples/basic/sliders_range.py
examples/basic/interaction_modes.py
examples/advanced/timer_callback3.py
examples/advanced/warp6.py
examples/pyplot/histo_1d_e.py
examples/other/tensor_grid2.py
examples/simulations/airplane1.py
examples/simulations/lorenz.py
examples/simulations/gas.py
examples/simulations/aspring2_player.py

2023.4.4

Main changes

- New API docs
- added cli functionality with `vedo --search-code` to inspect the code for keywords
- method `tomesh()` changed to `generate_mesh()`
- fix for `mark_boundaries()`
- use `vtkStaticCellLocator` instead of `vtkCellLocator`
- improved `pointcloud.density()` function
- add `utils.progressbar()`
- add `trame` examples
- add `utils.is_ragged()` to check if an array is homogeneuos (not ragged)
- fix `shapes.Lines()` class
- add `shapes.ThickTube()` as per 800
- add `settings.backend_autoclose` (default is True) to automatically close `Plotter` after show() in jupyter notebooks, 802
- fix k3d backend - remove pinning to 2.7.4 808
- in `Text2D` and `Text3D` shortcut to symbols are now formatted as `:gamma` and no more as `\gamma`
- fix `mesh.stretch()` thanks to mikaeltulldahl in 807
- fixes to `cmap()`
- added `mesh.is_manifold()` method 813
- added `utils.open3d2vedo()` and `utils.vedo2open3d` converters as per 663
- added `mesh.non_manifold_faces()` to detect and (try to) remove non-manifold faces of a triangular mesh 813 663 and https://github.com/SlicerIGT/SlicerBoneReconstructionPlanner/issues/35
- added `pointcloud.compute_acoplanarity()` method
- add pipeline visualization with syntax `any_vedo_obj.pipeline.show()` or interactively by clicking an object and pressing `y`.
- fixes to `Button` class
- in `map_points_to_cells()` added keyword `move` in 819 19kdc3
- fix `flagpost()` by creating a new class `addons.Flagpost()` in 821 ZiguoAtGitHub
- add `vedo.io.Video(backend='imageio')` support for video generation
- add `vedo.io.Video.split_frames()` of an already existing video file.
- add `Picture2D` class
- add `mesh.slice()`
- added `__repr_html__` for all types (thanks to haesleinhuepf input)
- added `treelib` for pipeline representation
- fixes to dolfin support `MeshActor`


-------------------------
New/Revised Examples

examples/basic/mousehover0.py
examples/advanced/timer_callback0.py
examples/simulations/lorenz.py
examples/pyplot/embed_matplotlib.py
examples/other/trame_ex1.py
examples/other/trame_ex2.py
examples/other/trame_ex3.py
examples/other/make_video.py
examples/other/dolfin/ex06_elasticity4.py
examples/notebooks/test_types.ipynb
examples/notebooks/slider2d.ipynb

2023.4.3

Main changes

- Important fixes for `numpy 1.24` jo-mueller (also relevant to https://github.com/brainglobe/brainrender/issues/226#issue-1536800285 by FedeClaudi johnmbarrett )
- fixed interface to `pymeshlab==2022.2.post2`
- fixed 774 `intersect_with_line()`
- fixed exporting to x3d for assemblies
- added support to calarbars into assemblies, thanks to j042 in 779
- fix typos 780
- `settings.allow_interaction` is now (temporarily) disabled.
- added example `basic/shadow3.py` (thanks to paul0noah in 767)
- fix on OSX window focusing
- various fixes for windows OS

* add VTK_HEXAHEDRON to vedo.vtkclasses by j042 in https://github.com/marcomusy/vedo/pull/762
* minor typo fix by j042 in https://github.com/marcomusy/vedo/pull/780
* Keep scalarbar(s) in Assembly by j042 in https://github.com/marcomusy/vedo/pull/779

New Contributors
* j042 made their first contribution in https://github.com/marcomusy/vedo/pull/762

New/Revised examples

examples/basic/shadow3.py
examples/other/pymeshlab1.py
examples/other/pymeshlab2.py


**Full Changelog**: https://github.com/marcomusy/vedo/compare/v2022.4.2...v2023.4.3

Page 1 of 10

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.