Volmdlr

Latest version: v0.15.2

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

Scan your dependencies

Page 1 of 6

0.15.2

build
- fix build test before upload to pypi

0.15.1

build

- Use pip install instead of setuptools install in order to avoid .egg being generating and preventing PyPI upload

0.15.0

New Features

core_compiled.py
- Point2D/Point3D: allow users to use a point or a list of points direct inside a numpy array. ex.: np.array(volmdlr.O3D)
- Point2D/Point3D: in_list. ** ATTENTION:** -> use in_list instead of volmdlr.core.point_in_list.
- cad_simplification: VoxelizationSimplify, TripleExtrusionSimplify, TriangleDecimationSimplify.

surfaces.py
- ToroidalSurface3D: line_intersections, linesegment_intersections, plane_intersections
- ToroidalSurface3D: cylindricalSurface_intersections, circle_intersections, fullarc_intersections, dict_to_object, conicalsurface_intersections, sphericalsurface_intersections
- ToroidalSurface3D: Handles degenerated surfaces (major_radius < minor_radius).
- CylindricalSurface3D: circle_intersections, sphericalsurface_intersections, cylindricalsurface_intersections
- ToroidalFace3D: PlaneFace3D intersectios.
- SphericalSurface3D: circle_intersections, arc_intersections, ellipse_intersections, arcellipse_intersections, sphericalsurface_intersections
- ConicalSurface3D: sphericalsurface_intersections
- General improvements on sufaces\` parametric operations.
- Surface2D: triangulation. Set tri_opt equal to "p".

edges.py
- BsplineCurve3D: circle_intersections.
- ArcEllipse3D/FullArcEllipse3D: line_intersections.

curves.py
- Circle3D: point_distance.
shell.py
- OpenTriangleShell3D: triangle decimation
- ClosedTriangleShell3D: turn_normals_outwards, are_normals_pointing_outwards, turn_normals_inwards, are_normals_pointing_inwards
- DiplayTriangleShell3D: concatenate

core.py
- BoundingBox: is_close, scale
- BoundingBox: triangle_intersects_voxel, is_intersecting_triangle
discrete_representation.py
- Voxelization: from_mesh_data
- OctreeBasedVoxelization


step.py
- Support to Datakit CrossCadWare STEP file format.

Fixed
- Drone : run generate sdist and generate bdist_wheel only on master
- drone.yml: add distribution types to be uploaded into pypi.

core.py
- VolumeModel: get_mesh_lines (change tolerance to 1e-5)

edges.py
- Arc2D: direction conservation in rotation / translation / frame_mapping.
- FullArcEllipse: angle_start, angle_end.

surfaces.py
- ToroidalSurface3D: line_intersections, linesegment_intersections, plane_intersections.
- ConicalSurface3D: circle_generatrixes direction.
- PeriodicalSurface: handles exceptions in connect_contours method.
- ExtrusionSurface3D: fullarcellipse3d_to_2d
- ExtrusionSurface3D: generalization of the _repair_points_order method to repair the order of parametric points of edges after transformation.
- ToroidalSurface3D: increases precision of point3d_to_2d.
- Plane3D: plane intersections.

faces.py
- ToroidalFace3D: PlaneFace3D intersections.
- PlaneFace3D: circle_intersections. planeface_intersections
- BsplineFace3D: adjacent_direction_uu
- PlaneFace3D: project_faces (check first if surfaces are coincident)

wires.py
- delete remaining inplace methods in wires.py

shells.py
- Fixes to boolean operations. Added some tolerance parameters to some methods.
- Shell3D: get_geo_lines (consider edge.inverse in get_edge_index_in_list check), is_shell_open
- DisplayTriangleShell3D: eq, data_eq, hash, data_hash, concatenate

surfaces.py
- SphericalSurface3D: use circle 3d instead of polygon3D for plotting.
- add bigger precision to plane-plane intersections.

utils
- common_operations separate_points_by_closeness: consider more than two cluster groups.

curves.py
- Circle3D: circle_intersectios when the circle are coplanar.
- Circle2D: Now, it needs a Frame2D and a radius instead of a Center and a Radius. This allows to easily control the circle's direction (clockwise/counterclockwise)

surfaces.py
- ExtrusionSurface3D: enhance parametric operations.

edges.py
- bsplineCurve: line_intersections.

discrete_representation.py
- MatrixBasedVoxelization: _logical_operation
- Remove inheritance from ABC for platform usage

cad_simplification.py
- Remove inheritance from ABC for platform usage

Refactor
- Face3D: create a generic method for calculating intersections between two faces: _generic_face_intersections.
- Voxelization: refactor class methods

core.py
- babylon_data: avoid using bounding_box for performance
- BoundingBox: uses numpy to improve performance.

core_compiled
- Frame2D: fix rotation, now it has an optional parameter rotate_basis, set to False by default option, so the user can specify if he wants to rotate also the basis of the frame.

edges.py
- Circle2D: Now, it needs a Frame2D and a radius instead of a Center and a Radius. This allows to easily control the circle's direction (clockwise/counterclockwise)
- Arc2D: Arc 2D now must follow the same rotation direction of its circle.
- LineSegment2D/3D: The line attribute from which the line segment was defined was converted to a property, for performance and memory efficiency reasons.
- BSplineCurve: improve line_intersections performance.

faces.py
- Face3D: create a generic method for calculating intersections between two faces: _generic_face_intersections.

primitives3d.py
- Sweep: accepts an optional parameter starting_frame that can control the orientation of the profile.
- Block: get_bounding_box

shells.py
- boolean operations - now works also for triangle meshed objects, containing coincident faces.
surfaces.py
- ExtrusionSurface3D: Uses edge abscissa as u parameter.
- ExtrusionSurface3D: general improvements in parametric operations.


Changed
- ToroidalSurface3D: init param tore_radius and small_radius changed to major_radius and minor_radius respectevely.
- ToroidalSurface3D: plots now use Circles 3D instead of ClosedPolygon3D. Performance improved.
- CylindricalSurface3D: More comprehesive plot
- BoundingBox: from_bounding_boxes
- BSplineCurve: improve line_intersections performance.
- core_compiled.pyx: update typing because Point2D, Point3D, Vector2D and Vector3D are now extension types (C structures.)
- BSplineCurve: improve line_intersections performance.
- SphericalSurface3D: enhance bsplinecurve3d_to_2d.


Unittests
curves
- Circle3D: new case to test_circle_intersections, new test: test_point_distance.
surfaces
- ToroidalSurface3D: test_line_intersections, test_plane_intersections, test_cylindrical_surface_intersections, test_circle_intersections
- CylindricalSurface3D: test_circle_intersections.
faces
- ToroidalFace3D: PlaneFace3D intersectios.
- SphericalSurface3D: circle_intersections, arc_intersections, arcellipse_intersections
- PlaneFace3D: point_belongs
core
- BoundingBox: is_close, scale
primitives3d
- Block: from_bounding_box, get_bounding_box

0.14.0

New Features
- DisplayTriangleShell3D: a TriangleShell3D optimized for performance of display / saving / loading.
- BSplineSurface3D: from_points_interpolation, from_points_approximation.
- nurbs module.
- New curves classes: Hyperbola2D and Hyperbola3D.
- Line: closest_point_on_line, from_point_and_vector
- Line2D: get_slope, get_y_intersection.
- New curves classes: Parabola2D/3D.
- ConicalSurface3D: line/line_segment intersections, perpendicular_plane_intersection
- ConicalSurface3D: line/line_segment intersections, perpendicular_plane_intersection, parallel_plane_intersections, concurent_plane_intersections, plane_intersections.
- Hyperbola2D/3D and Parabola2D/3D: split
- PlaneFace3D: conicalface_intersections
- CylindricalSurface3D: conicalsurface_intersections
- CylindricalFace3D: conicalface_intersections
- Curve: general_method curve_intersections
- Parabola2d/3D / Hyperbola2D/3D: point_belongs, tangent
- BSplineCurve: point_to_parameter, abscissa_to_parameter.
- Basis3D: is_normilized, is_orthogonal, is_orthonormal.
- BSplineSurface3D: fullarcellipse3d_to_2d
- ClosedPolygon2D: points_in_polygon

Fixed
- add missing name attributes to classmethods.
- fixed circular imports
- BSplineSurface3D: from_points_interpolation, from_points_approximation.
- ConicalFace3D: point_belongs
- nurbs.core: find_multiplicity, evaluate_curve.
- LineSegment3d: line_intersections.
- Circle2D: line_intersections
- Step.read_lines: handles name with character in name.
- ExtrusionSurface3D: enhance 3D to parametric operations.
- BSplineCurve: direction_vector, point_at_abscissa, abscissa, trim
- ConicalSurface3D and RevolutionSurface3D: bsplinecurve3d_to_2d when start or and points are at surface singularity
- ClosedCurves: discretization_points
- ArcEllipse3D: is_close
- LineSegment3D: revolution
- FullArcEllipse3D, FullArcEllipse2D: discretization_points
- ConicalSurface3D: linesegment2d_to_3d
- BSplineSurface3D: bsplinecurve3d_to_2d, prevents code execution from stopping when point3d_to_2d does not converge
- BSplineSurface3D: derivatives
- BSplineCurve: split
- Matrix based discrete representation: boolean operations
- read the docs settings
- fix: move code complexity at end
- ClosedPolygon2D: points_in_polygon, fix include_edge_points
- ClosedShell3D: is_face_between_shells

Refactor
- TriangleShell3D: various improvement such as get_bounding_box, to_mesh_data, from_mesh_data, to_dict, dict_to_object

Changed
- Cache BSplineCurve points into a numpy array to reduce memory usage.
- Vector2D, Vector3D: __repr__
- core_compiled: cdef functions' names.
- Vector2D, Vector3D, Point2D, Point3D: transformed into extension types for memory performance
- limit warning on step reading
- BSplineSurface3D: point3d_to_2d

Unittests
- Hyperbola2D/3D: line_intersections
- Parabola2D/3D: line_intersections
- ConicalSurface3D: test_line_intersections, test_plane_intersections.

0.13.0

New Features
- Line: reverse.
- BSplineCurve: Remove dependencies from the geomdl library.
- perf: to_dict/dict_to_obj of OpenTriangleShell3D
- Cylinder / Cone / HollowCylinder: from_center_point_and_axis
- Cone: remove inheritance from RevolvedProfile
- Ellipse2D: point_distance, bounding rectangle, ellipse_intersections
- Curve: local_discretization
- Ellipse3D: line_intersections, linesegment_intersections, ellipse_intersections
- ArcEllipse3D : Linesegment_intersections, arcellipse_intersections
- Circle3D: circle_intersections, ellipse_intersections
- Circle2D: ellipse_intersections.
- Arc3D: arc_intersections, arcellipse_intersections
- Wire3D/Contour3D: edge_intersections, wire_intersections
- BSpline3D: arc_intersections
- New module: discrete_representation for voxelization of 3D geometries and pixelization of 2D geometries
- BSplineSurface3D: partial removal of dependencies on geomdl objects

Fixed
- Sweep with non smoth path
- plot of vector3D.
- BSplineSurface3D: point3d_to_2d, improve inital condition.
- EdgeCollection3D: babylon_meshes.
- BSplineCurve3D: trim
- FullArc3D: hash
- SphericalSurface3D: enhance repair_periodicity_method
- CylindricalSurface3D: concurrent_plane_intersection
- BSplineFace3D: fix neutral_fiber
- Step: assembly import
- BSplineFace3D: fix bounding_box.
- Ellipse3D: from_step
- edges.py: general improvements.
- ExtrusionSurface3D: point3d_to_2d.
- ExtrusionSurface3D: enhance parametric operations when the surface is periodic.
- BSplineFace3D: fix neutral_fiber
- BSplineSurface3D: improve bsplinecurve3d_to_2d.
- BSplineSurface3D: improve bsplinecurve3d_to_3d.
- Circle2D: plot
- Line3D: fix Line3D plot()
- Vector2D: plot()
- fix RevolutionFace3D init parameter wire to edge.
- Update documentation
- fix Sweep: bug when first primitive is an arc.
- fix closedshell3d volume
- Step.py: enhance step import/export
- VolumeModel: get_shells
- step.py uses deque in stack based algorithms
- VolumeModel: get_shells
- add error protection stl
- Sweep - add raise ValueError if section too big in comparision to arc radiuses
- Update cython version requirement in setup.py
- Step import: handles when there is an empty assembly in the file.
- Ellipse2D: point_at_abscissa
- ultis.common_operations: get_edge_distance_to_point and get_get_abscissa_discretization from edges so it can be used in curves too.
- edges.Edge._generic_minimum_distance
- LineSegment3D: distance_linesegment
- BSpline3D: linesegment_intersections

Refactor
- refator some classes' init in primitives3D.
- Shells: refactor.
- Composite_primitives
- Surface3D: enhance repair_primitives_periodicity method.
- volmdlr.utils.intersections:
- BSplineCurve: replace periodic bool parameter with verification inside from_points_intepolation method.
- Wire3D: removes heritage from volmdlr.core.CompositePrimitive3D
- BSplineCurve3D: bounding_box
- edges: minimum_distance.
- BSplineSurface3D: bsplinecurve3d_to_2d
- BSplineCurve: transform some attributs into lazy evaluation and Caching
- BSplineSurface3D: transform some attributs into lazy evaluation and Caching
- BSplineSurface3D: store control_points as numpy array for memory efficiency
- PlaneFace3D: distance_to_point -> point_distance
- remove normalize() methods for Vectors. Replaced by unit_vector(), it returns a new normalized vector.
- Cylinder / Cone / HollowCylinder: docstrings, typings, style, coherence
- BSplineSurface3D: point3d_to_2d performance improvements.


Changed
- Moves functions from step.py to volmdlr.utils.step_reader
- Cylinder / HollowCylinder: `from_extremal_points` is now depracted. Use `from_end_points` instead (for lexical reason)

Unittests
- Cylinder / Cone / HollowCylinder
- Ellipse2D: point_distance
- Ellipse3D: test_ellipse_intersections, test_linesegment_intersections
- ArcEllipse3D : Linesegment_intersections, arcellipse_intersections
- Circle3D: circle_intersections.
- Arc3D: arc_intersections, arcellipse_intersections, test_minimum_distance_bspline
- BSplineCurve3D: test_bspline_linesegment_minimum_distance, test_bspline_linesegment_intersections
- Contour3D: test_edge_intersections

0.12.0

New Features
- New module: cad_simplification - OctreeBlockSimplify, TrippleExtrusionSimplify
- shells.py : function to performe union operations for a given list of shells.
- ClosedShell3D: is_face_intersecting, is_intersecting_with
- BoundingBox: get_points_inside_bbox, size
- Vector3D: unit_vector
- Face3D: split_inner_contour_intersecting_cutting_contours
- Shell3D: get_ray_casting_line_segment
- WireMixin: get_connected_wire, is_sharing_primitives_with
- OpenShell3D: faces_graph
- Plane3D: arc_intersections, bsplinecurve_intersections
- common_operations: split_wire_by_plane
- SphericalSurface3D: line_intersections, linesegment_intersections.
- Sweep with muitiform profile contour.
- minimum_distance: face-to-face, shell-to-shell
- OpenShell3D: from_faces (using faces graph)
- SphericalFace3D: from_contours3d_and_rectangular_cut
- RevolutionSurface3D: Translation
- wires.WireMixin: from_circle
- curves.CircleMixin: trim
- Face3D: point_distance
- BSplineCurve3D: revolution method.

Fixed
- ClosedShell3D: is_face_inside, get_subtraction_valid_faces, valid_intersection_faces, point_belongs
- ContourMixin: delete_shared_contour_section, reorder_contour_at_point, are_extremity_points_touching
- RevolutionSurface3D: fix some special cases whiling transforming from 3D space to parametric domain.
- fix drone python version
- BSplineFace3D: neutral_fiber
- BSplineSurface3D: arc3d_to_2d, removes repeated parametric points if any.
- surfaces.Plane3D: linesegment_intersections
- Step export
- Face3D: is_linesegment_crossing.
- Edge: fix orientation of edges commig from step.
- BSplineCurve3D: from_step.
- Export to step file
- Step import
- Edge: fix orientation of edges commig from step.
- Sphere: point_belongs, inherits from ClosedShell3D instead of RevolvedProfile
- Step import.
- PeriodicalSurface: linesegment3d_to_2d, takes into account small 3D line segments that should be actually 3D arcs
- babylondata: removes empty objects.
- ClosedPolygon2D: point_belongs.
- Fullarc: get_reverse.
- Arc2D: point_belongs
- ArcEllipse2D: point_at_abscissa
- Frame3D: import/export step.
- BSplineFace3D: neutral_fiber.
- Step: read_lines, take into account the space character in step entity names
- Circle3D: fix trim.
- Edge: from_step trim of periodic curves with different orientation of original edge
- Arc3D: fix abscissa, fix get_arc_point_angle
- add missing toleraces to some methods.
- Arc3D: line_intersections
- Line3D: minimum_distance_points
- remove arcellipse handleling for bspline2d_3d.
- plot of vector3D
- Ellipse3D: discretization_points.

Refactor
- ClosedShell3D: point_belongs, get_non_intersecting_faces
- BoundingBox: bbox_intersection
- Face3D: get_face_cutting_contours
- parametric.py: fix numerical instability in some functions used in Arc3D to parametric surface domain transformation.
- intersections: get_bsplinecurve_intersections generalization, so it can also be used
to calculate intersections between a plane 3d and bsplinecurve3d.
- Big refactor: New module curves.py containing classes as Line, Circle and Ellipse.
Most edges will now be formed by a curve and a start and end points. Unittests for all these classes have been created.
All adequations have been done for all tests and existing scripts.

- bspline_compiled: refactor binomial_coefficient for performance.
- Improve step translator.
- Delete inplace methods: rotation, translation and frame_mapping. replace by juste the rotation, translation and frame_mapping. objects are no longer changed inplace, a new transformed object is returned each time.
- OpenShell3D: faces_graph.
- RevolutionSurface3D: Improve init and methods

Changed
- OpenShell3D: faces_graph is now vertices_graph. faces_graph method now represents the faces' topology of the shell.

Unittests
- FullArc2D: split_between_two_points
- Face3D: set_operations_new_faces
- ClosedShell3D: point_belongs
- Plane3D: arc_intersections, bsplinecurve_intersections
- common_operations: split_wire_by_plane
- SphericalSurface3D: line_intersections, linesegment_intersections.

Page 1 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.