session-py 0.166.0__tar.gz → 0.167.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {session_py-0.166.0 → session_py-0.167.0}/PKG-INFO +1 -1
- {session_py-0.166.0 → session_py-0.167.0}/pyproject.toml +1 -1
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/session.py +44 -12
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/session_test.py +36 -0
- {session_py-0.166.0 → session_py-0.167.0}/.github/workflows/publish.yml +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/.github/workflows/test.yml +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/.gitignore +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/.gitmodules +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/AGENTS.md +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/README.md +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/conftest.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/examples/bvh_demo.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/examples/loft_holes.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/examples/nurbsurface.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/serialization/.gitkeep +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/__init__.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/aabb.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/aabb_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/boolean_polyline.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/boolean_polyline_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/brep.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/brep_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/closest.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/closest_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/color.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/color_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/convex_hull.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/convex_hull_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/element.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/element_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/file_encoders.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/file_encoders_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/file_obj.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/file_obj_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/graph.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/graph_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/instance_ref.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/instance_ref_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/intersection.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/intersection_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/io.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/io_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/line.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/line_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/matrix.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/matrix_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/mesh.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/mesh_offset.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/mesh_offset_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/mesh_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/mini_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/nurbscurve.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/nurbscurve_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/nurbsknot.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/nurbsknot_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/nurbssurface.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/nurbssurface_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/nurbssurface_trimmed.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/nurbssurface_trimmed_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/obb.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/obb_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/objects.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/objects_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/plane.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/plane_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/point.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/point_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/pointcloud.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/pointcloud_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/polyline.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/polyline_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/primitives.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/primitives_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/.gitattributes +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/__init__.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/boundingbox_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/brep_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/color_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/edge_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/element_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/file_encoders_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/graph_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/instance_ref_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/line_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/matrix_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/mesh_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/nurbscurve_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/nurbssurface_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/nurbssurface_trimmed_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/objects_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/plane_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/point_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/pointcloud_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/polyline_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/quaternion_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/session_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/tolerance_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/tree_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/treenode_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/vector_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/vertex_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/proto/xform_pb2.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/py.typed +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/quaternion.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/quaternion_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/reload.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/remesh_cdt.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/remesh_cdt_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/remesh_nurbssurface_adaptive.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/remesh_nurbssurface_adaptive_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/remesh_nurbssurface_grid.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/remesh_nurbssurface_grid_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/session_config.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/session_config_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/spatial_aabbtree.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/spatial_aabbtree_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/spatial_bvh.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/spatial_bvh_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/spatial_kdtree.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/spatial_kdtree_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/spatial_octree.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/spatial_octree_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/spatial_rtree.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/spatial_rtree_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/tolerance.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/tolerance_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/tree.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/tree_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/vector.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/vector_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/xform.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/src/session_py/xform_test.py +0 -0
- {session_py-0.166.0 → session_py-0.167.0}/uv.lock +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "session_py"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.167.0"
|
|
8
8
|
description = "A minimal Python geometry library"
|
|
9
9
|
authors = [{name = "Petras Vestartas", email = "petrasvestartas@gmail.com"}]
|
|
10
10
|
license = {text = "MIT"}
|
|
@@ -343,6 +343,11 @@ class Session:
|
|
|
343
343
|
|
|
344
344
|
# ═══════════════════════════════════════════════════════════════════════════
|
|
345
345
|
# Details - Add objects
|
|
346
|
+
#
|
|
347
|
+
# Every add_* below SKIPS an object that is None or carries nothing to draw, and returns
|
|
348
|
+
# None instead of a node: an empty point cloud, a polyline of fewer than two points, a
|
|
349
|
+
# mesh without faces. The check lives here so no caller has to write it, and so a scene
|
|
350
|
+
# never holds an object a viewer cannot render.
|
|
346
351
|
# ═══════════════════════════════════════════════════════════════════════════
|
|
347
352
|
|
|
348
353
|
def _add_object(self, collection, obj, type_prefix, parent=None):
|
|
@@ -372,37 +377,61 @@ class Session:
|
|
|
372
377
|
+ [e.guid for e in self.objects.elements]
|
|
373
378
|
)
|
|
374
379
|
|
|
375
|
-
def add_point(self, point: Point, parent: TreeNode | None = None) -> TreeNode:
|
|
380
|
+
def add_point(self, point: Point, parent: TreeNode | None = None) -> TreeNode | None:
|
|
381
|
+
if point is None:
|
|
382
|
+
return None
|
|
376
383
|
return self._add_object(self.objects.points, point, "point", parent)
|
|
377
384
|
|
|
378
|
-
def add_line(self, line: "Line", parent: TreeNode | None = None) -> TreeNode:
|
|
385
|
+
def add_line(self, line: "Line", parent: TreeNode | None = None) -> TreeNode | None:
|
|
386
|
+
if line is None:
|
|
387
|
+
return None
|
|
379
388
|
return self._add_object(self.objects.lines, line, "line", parent)
|
|
380
389
|
|
|
381
|
-
def add_plane(self, plane: "Plane", parent: TreeNode | None = None) -> TreeNode:
|
|
390
|
+
def add_plane(self, plane: "Plane", parent: TreeNode | None = None) -> TreeNode | None:
|
|
391
|
+
if plane is None:
|
|
392
|
+
return None
|
|
382
393
|
return self._add_object(self.objects.planes, plane, "plane", parent)
|
|
383
394
|
|
|
384
|
-
def add_obb(self, bbox: "OBB", parent: TreeNode | None = None) -> TreeNode:
|
|
395
|
+
def add_obb(self, bbox: "OBB", parent: TreeNode | None = None) -> TreeNode | None:
|
|
396
|
+
if bbox is None:
|
|
397
|
+
return None
|
|
385
398
|
return self._add_object(self.objects.bboxes, bbox, "bbox", parent)
|
|
386
399
|
|
|
387
|
-
def add_polyline(self, polyline: "Polyline", parent: TreeNode | None = None) -> TreeNode:
|
|
400
|
+
def add_polyline(self, polyline: "Polyline", parent: TreeNode | None = None) -> TreeNode | None:
|
|
401
|
+
if polyline is None or polyline.point_count() < 2:
|
|
402
|
+
return None
|
|
388
403
|
return self._add_object(self.objects.polylines, polyline, "polyline", parent)
|
|
389
404
|
|
|
390
|
-
def add_pointcloud(self, pointcloud: "PointCloud", parent: TreeNode | None = None) -> TreeNode:
|
|
405
|
+
def add_pointcloud(self, pointcloud: "PointCloud", parent: TreeNode | None = None) -> TreeNode | None:
|
|
406
|
+
if pointcloud is None or pointcloud.is_empty():
|
|
407
|
+
return None
|
|
391
408
|
return self._add_object(self.objects.pointclouds, pointcloud, "pointcloud", parent)
|
|
392
409
|
|
|
393
|
-
def add_mesh(self, mesh: "Mesh", parent: TreeNode | None = None) -> TreeNode:
|
|
410
|
+
def add_mesh(self, mesh: "Mesh", parent: TreeNode | None = None) -> TreeNode | None:
|
|
411
|
+
if mesh is None or mesh.is_empty() or mesh.number_of_faces() == 0:
|
|
412
|
+
return None
|
|
394
413
|
return self._add_object(self.objects.meshes, mesh, "mesh", parent)
|
|
395
414
|
|
|
396
|
-
def add_nurbscurve(self, nurbscurve: "NurbsCurve", parent: TreeNode | None = None) -> TreeNode:
|
|
415
|
+
def add_nurbscurve(self, nurbscurve: "NurbsCurve", parent: TreeNode | None = None) -> TreeNode | None:
|
|
416
|
+
if nurbscurve is None or nurbscurve.cv_count() < 2:
|
|
417
|
+
return None
|
|
397
418
|
return self._add_object(self.objects.nurbscurves, nurbscurve, "nurbscurve", parent)
|
|
398
419
|
|
|
399
|
-
def add_nurbssurface(self, nurbssurface: "NurbsSurface", parent: TreeNode | None = None) -> TreeNode:
|
|
420
|
+
def add_nurbssurface(self, nurbssurface: "NurbsSurface", parent: TreeNode | None = None) -> TreeNode | None:
|
|
421
|
+
if nurbssurface is None or nurbssurface.cv_count() == 0:
|
|
422
|
+
return None
|
|
400
423
|
return self._add_object(self.objects.nurbssurfaces, nurbssurface, "nurbssurface", parent)
|
|
401
424
|
|
|
402
|
-
def add_brep(self, brep: "BRep", parent: TreeNode | None = None) -> TreeNode:
|
|
425
|
+
def add_brep(self, brep: "BRep", parent: TreeNode | None = None) -> TreeNode | None:
|
|
426
|
+
if brep is None or (brep.face_count() == 0 and brep.vertex_count() == 0):
|
|
427
|
+
return None
|
|
403
428
|
return self._add_object(self.objects.breps, brep, "brep", parent)
|
|
404
429
|
|
|
405
|
-
def add_element(self, element: "Element", parent: TreeNode | None = None) -> TreeNode:
|
|
430
|
+
def add_element(self, element: "Element", parent: TreeNode | None = None) -> TreeNode | None:
|
|
431
|
+
# Kept even with no geometry: an Element is a data record - features, insertion vectors,
|
|
432
|
+
# element_data a consumer reads back - and dropping one would lose that on a round trip.
|
|
433
|
+
if element is None:
|
|
434
|
+
return None
|
|
406
435
|
return self._add_object(self.objects.elements, element, "element", parent)
|
|
407
436
|
|
|
408
437
|
def add_component(self, component: Any, parent: TreeNode | None = None) -> TreeNode:
|
|
@@ -432,10 +461,13 @@ class Session:
|
|
|
432
461
|
Parameters
|
|
433
462
|
----------
|
|
434
463
|
node : TreeNode
|
|
435
|
-
The TreeNode to add.
|
|
464
|
+
The TreeNode to add. None is ignored, so passing an add_* result straight
|
|
465
|
+
through works even when that add_* skipped its geometry.
|
|
436
466
|
parent : TreeNode, optional
|
|
437
467
|
Parent TreeNode (defaults to root if not provided).
|
|
438
468
|
"""
|
|
469
|
+
if node is None:
|
|
470
|
+
return
|
|
439
471
|
if parent is None:
|
|
440
472
|
self.tree.add(node, self.tree.root)
|
|
441
473
|
else:
|
|
@@ -215,6 +215,42 @@ def test_session_add_element():
|
|
|
215
215
|
MINI_CHECK(session.graph.has_node(plate.guid))
|
|
216
216
|
|
|
217
217
|
|
|
218
|
+
@MINI_TEST("Session", "Add Empty Geometry")
|
|
219
|
+
def test_session_add_empty_geometry():
|
|
220
|
+
from session_py import Session
|
|
221
|
+
from session_py import Point
|
|
222
|
+
from session_py import Polyline
|
|
223
|
+
from session_py import PointCloud
|
|
224
|
+
from session_py import Mesh
|
|
225
|
+
from session_py import NurbsCurve
|
|
226
|
+
from session_py import NurbsSurface
|
|
227
|
+
from session_py import BRep
|
|
228
|
+
|
|
229
|
+
# Nothing to draw is never added: the caller does not test its geometry first.
|
|
230
|
+
session = Session()
|
|
231
|
+
group = session.add_group("empty")
|
|
232
|
+
|
|
233
|
+
MINI_CHECK(session.add_point(None, group) is None)
|
|
234
|
+
MINI_CHECK(session.add_polyline(Polyline([Point(0, 0, 0)]), group) is None)
|
|
235
|
+
MINI_CHECK(session.add_pointcloud(PointCloud([], [], []), group) is None)
|
|
236
|
+
MINI_CHECK(session.add_mesh(Mesh(), group) is None)
|
|
237
|
+
MINI_CHECK(session.add_nurbscurve(NurbsCurve(), group) is None)
|
|
238
|
+
MINI_CHECK(session.add_nurbssurface(NurbsSurface(), group) is None)
|
|
239
|
+
MINI_CHECK(session.add_brep(BRep(), group) is None)
|
|
240
|
+
|
|
241
|
+
# A mesh with vertices but no faces draws nothing either.
|
|
242
|
+
vertices_only = Mesh()
|
|
243
|
+
vertices_only.add_vertex(Point(0, 0, 0), 0)
|
|
244
|
+
MINI_CHECK(session.add_mesh(vertices_only, group) is None)
|
|
245
|
+
|
|
246
|
+
# add(add_XXX(...), group) stays a valid one-liner when the geometry was skipped.
|
|
247
|
+
session.add(session.add_mesh(Mesh(), group), group)
|
|
248
|
+
|
|
249
|
+
MINI_CHECK(len(session.lookup) == 0)
|
|
250
|
+
MINI_CHECK(len(session.order()) == 0)
|
|
251
|
+
MINI_CHECK(len(group.children) == 0)
|
|
252
|
+
|
|
253
|
+
|
|
218
254
|
@MINI_TEST("Session", "Add Group")
|
|
219
255
|
def test_session_add_group():
|
|
220
256
|
from session_py import Session
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{session_py-0.166.0 → session_py-0.167.0}/src/session_py/remesh_nurbssurface_adaptive_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|