session-py 0.1.3__py3-none-any.whl
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/__init__.py +70 -0
- session_py/aabb_test.py +106 -0
- session_py/boundingbox.py +553 -0
- session_py/boundingbox_test.py +154 -0
- session_py/brep.py +1069 -0
- session_py/brep_test.py +353 -0
- session_py/bvh.py +880 -0
- session_py/bvh_test.py +306 -0
- session_py/closest.py +514 -0
- session_py/closest_test.py +159 -0
- session_py/color.py +516 -0
- session_py/color_test.py +164 -0
- session_py/edge.py +64 -0
- session_py/edge_test.py +26 -0
- session_py/encoders.py +245 -0
- session_py/encoders_test.py +256 -0
- session_py/graph.py +658 -0
- session_py/graph_test.py +29 -0
- session_py/intersection.py +1512 -0
- session_py/intersection_test.py +588 -0
- session_py/knot.py +1126 -0
- session_py/knot_test.py +258 -0
- session_py/line.py +801 -0
- session_py/line_test.py +322 -0
- session_py/mesh.py +2016 -0
- session_py/mesh_test.py +746 -0
- session_py/mini_test.py +432 -0
- session_py/nurbscurve.py +3816 -0
- session_py/nurbscurve_test.py +744 -0
- session_py/nurbssurface.py +2889 -0
- session_py/nurbssurface_test.py +911 -0
- session_py/obj.py +60 -0
- session_py/obj_test.py +49 -0
- session_py/objects.py +214 -0
- session_py/objects_test.py +27 -0
- session_py/plane.py +895 -0
- session_py/plane_test.py +294 -0
- session_py/point.py +659 -0
- session_py/point_test.py +243 -0
- session_py/pointcloud.py +447 -0
- session_py/pointcloud_test.py +226 -0
- session_py/polyline.py +983 -0
- session_py/polyline_test.py +435 -0
- session_py/primitives.py +2556 -0
- session_py/primitives_test.py +1390 -0
- session_py/proto/__init__.py +4 -0
- session_py/proto/boundingbox_pb2.py +39 -0
- session_py/proto/brep_pb2.py +55 -0
- session_py/proto/bvh_pb2.py +41 -0
- session_py/proto/color_pb2.py +36 -0
- session_py/proto/edge_pb2.py +36 -0
- session_py/proto/encoders_pb2.py +38 -0
- session_py/proto/graph_pb2.py +42 -0
- session_py/proto/line_pb2.py +38 -0
- session_py/proto/mesh_pb2.py +94 -0
- session_py/proto/nurbscurve_pb2.py +38 -0
- session_py/proto/nurbssurface_pb2.py +39 -0
- session_py/proto/objects_pb2.py +46 -0
- session_py/proto/plane_pb2.py +37 -0
- session_py/proto/point_pb2.py +38 -0
- session_py/proto/pointcloud_pb2.py +37 -0
- session_py/proto/polyline_pb2.py +38 -0
- session_py/proto/quaternion_pb2.py +36 -0
- session_py/proto/session_pb2.py +40 -0
- session_py/proto/tolerance_pb2.py +36 -0
- session_py/proto/tree_pb2.py +37 -0
- session_py/proto/treenode_pb2.py +37 -0
- session_py/proto/trimmedsurface_pb2.py +40 -0
- session_py/proto/vector_pb2.py +36 -0
- session_py/proto/vertex_pb2.py +36 -0
- session_py/proto/xform_pb2.py +36 -0
- session_py/quaternion.py +119 -0
- session_py/quaternion_test.py +26 -0
- session_py/ray_box_intersection.py +76 -0
- session_py/reload.py +137 -0
- session_py/session.py +772 -0
- session_py/session_test.py +264 -0
- session_py/tolerance.py +377 -0
- session_py/tolerance_test.py +78 -0
- session_py/tree.py +352 -0
- session_py/tree_test.py +30 -0
- session_py/treenode.py +186 -0
- session_py/treenode_test.py +26 -0
- session_py/triangulation_2d.py +321 -0
- session_py/triangulation_2d_test.py +114 -0
- session_py/trimesh_adaptive.py +429 -0
- session_py/trimesh_cdt.py +738 -0
- session_py/trimmedsurface.py +461 -0
- session_py/trimmedsurface_test.py +392 -0
- session_py/vector.py +1139 -0
- session_py/vector_test.py +430 -0
- session_py/vertex.py +59 -0
- session_py/vertex_test.py +25 -0
- session_py/xform.py +719 -0
- session_py/xform_test.py +365 -0
- session_py-0.1.3.dist-info/METADATA +59 -0
- session_py-0.1.3.dist-info/RECORD +98 -0
- session_py-0.1.3.dist-info/WHEEL +4 -0
session_py/__init__.py
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"""
|
|
2
|
+
This module contains all the classes and functions that are exposed to the user.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from .color import Color
|
|
6
|
+
from .point import Point
|
|
7
|
+
from .vector import Vector
|
|
8
|
+
from .plane import Plane
|
|
9
|
+
from .line import Line
|
|
10
|
+
from .polyline import Polyline
|
|
11
|
+
from .xform import Xform
|
|
12
|
+
from .quaternion import Quaternion
|
|
13
|
+
from .tree import Tree
|
|
14
|
+
from .treenode import TreeNode
|
|
15
|
+
from .graph import Graph
|
|
16
|
+
from .vertex import Vertex
|
|
17
|
+
from .edge import Edge
|
|
18
|
+
from .objects import Objects
|
|
19
|
+
from .session import Session
|
|
20
|
+
from .mesh import Mesh, NormalWeighting
|
|
21
|
+
from .boundingbox import BoundingBox
|
|
22
|
+
from .pointcloud import PointCloud
|
|
23
|
+
from .bvh import BVH, BVHNode
|
|
24
|
+
from .tolerance import Tolerance
|
|
25
|
+
from . import encoders
|
|
26
|
+
from .obj import load_obj, save_obj
|
|
27
|
+
from . import intersection
|
|
28
|
+
from .nurbscurve import NurbsCurve
|
|
29
|
+
from .nurbssurface import NurbsSurface
|
|
30
|
+
from .primitives import Primitives
|
|
31
|
+
from .trimmedsurface import TrimmedSurface
|
|
32
|
+
from .brep import BRep
|
|
33
|
+
from .ray_box_intersection import ray_box
|
|
34
|
+
from .closest import Closest
|
|
35
|
+
|
|
36
|
+
__all__ = [
|
|
37
|
+
"Color",
|
|
38
|
+
"Point",
|
|
39
|
+
"Vector",
|
|
40
|
+
"Plane",
|
|
41
|
+
"Line",
|
|
42
|
+
"Polyline",
|
|
43
|
+
"Xform",
|
|
44
|
+
"Quaternion",
|
|
45
|
+
"Tree",
|
|
46
|
+
"TreeNode",
|
|
47
|
+
"Graph",
|
|
48
|
+
"Vertex",
|
|
49
|
+
"Edge",
|
|
50
|
+
"Objects",
|
|
51
|
+
"Session",
|
|
52
|
+
"Mesh",
|
|
53
|
+
"NormalWeighting",
|
|
54
|
+
"BoundingBox",
|
|
55
|
+
"PointCloud",
|
|
56
|
+
"BVH",
|
|
57
|
+
"BVHNode",
|
|
58
|
+
"Tolerance",
|
|
59
|
+
"encoders",
|
|
60
|
+
"load_obj",
|
|
61
|
+
"save_obj",
|
|
62
|
+
"intersection",
|
|
63
|
+
"NurbsCurve",
|
|
64
|
+
"NurbsSurface",
|
|
65
|
+
"Primitives",
|
|
66
|
+
"TrimmedSurface",
|
|
67
|
+
"BRep",
|
|
68
|
+
"ray_box",
|
|
69
|
+
"Closest",
|
|
70
|
+
]
|
session_py/aabb_test.py
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
from .mini_test import MINI_TEST
|
|
2
|
+
from .mini_test import MINI_CHECK
|
|
3
|
+
from .mini_test import run_all
|
|
4
|
+
from .tolerance import TOLERANCE
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@MINI_TEST("AABBTree", "Build Empty")
|
|
8
|
+
def test_aabbtree_build_empty():
|
|
9
|
+
from session_py import Closest
|
|
10
|
+
from session_py import Mesh
|
|
11
|
+
from session_py import Point
|
|
12
|
+
|
|
13
|
+
m = Mesh()
|
|
14
|
+
cp, fk, d = Closest.mesh_point_aabb(m, Point(0.0, 0.0, 0.0))
|
|
15
|
+
MINI_CHECK(d == float('inf'))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@MINI_TEST("AABBTree", "Build Single")
|
|
19
|
+
def test_aabbtree_build_single():
|
|
20
|
+
from session_py import Closest
|
|
21
|
+
from session_py import Mesh
|
|
22
|
+
from session_py import Point
|
|
23
|
+
|
|
24
|
+
m = Mesh()
|
|
25
|
+
vk0 = m.add_vertex(Point(0.0, 0.0, 0.0))
|
|
26
|
+
vk1 = m.add_vertex(Point(1.0, 0.0, 0.0))
|
|
27
|
+
vk2 = m.add_vertex(Point(0.0, 1.0, 0.0))
|
|
28
|
+
m.add_face([vk0, vk1, vk2])
|
|
29
|
+
cp, fk, d = Closest.mesh_point_aabb(m, Point(0.0, 0.0, 1.0))
|
|
30
|
+
MINI_CHECK(d > 0.0)
|
|
31
|
+
MINI_CHECK(TOLERANCE.is_close(d, 1.0))
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@MINI_TEST("AABBTree", "Build Multiple")
|
|
35
|
+
def test_aabbtree_build_multiple():
|
|
36
|
+
from session_py import Closest
|
|
37
|
+
from session_py import Mesh
|
|
38
|
+
from session_py import Point
|
|
39
|
+
|
|
40
|
+
m = Mesh()
|
|
41
|
+
vk0 = m.add_vertex(Point(0.0, 0.0, 0.0))
|
|
42
|
+
vk1 = m.add_vertex(Point(1.0, 0.0, 0.0))
|
|
43
|
+
vk2 = m.add_vertex(Point(0.0, 1.0, 0.0))
|
|
44
|
+
vk3 = m.add_vertex(Point(5.0, 0.0, 0.0))
|
|
45
|
+
vk4 = m.add_vertex(Point(6.0, 0.0, 0.0))
|
|
46
|
+
vk5 = m.add_vertex(Point(5.0, 1.0, 0.0))
|
|
47
|
+
vk6 = m.add_vertex(Point(10.0, 0.0, 0.0))
|
|
48
|
+
vk7 = m.add_vertex(Point(11.0, 0.0, 0.0))
|
|
49
|
+
vk8 = m.add_vertex(Point(10.0, 1.0, 0.0))
|
|
50
|
+
m.add_face([vk0, vk1, vk2])
|
|
51
|
+
m.add_face([vk3, vk4, vk5])
|
|
52
|
+
m.add_face([vk6, vk7, vk8])
|
|
53
|
+
cp, fk, d = Closest.mesh_point_aabb(m, Point(0.5, 0.0, 0.0))
|
|
54
|
+
MINI_CHECK(d < 0.5)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
@MINI_TEST("AABBTree", "Node Count")
|
|
58
|
+
def test_aabbtree_node_count():
|
|
59
|
+
from session_py import Closest
|
|
60
|
+
from session_py import Mesh
|
|
61
|
+
from session_py import Point
|
|
62
|
+
|
|
63
|
+
m = Mesh()
|
|
64
|
+
vkeys = []
|
|
65
|
+
for i in range(100):
|
|
66
|
+
vkeys.append(m.add_vertex(Point(float(i), 0.0, 0.0)))
|
|
67
|
+
vkeys.append(m.add_vertex(Point(float(i) + 0.5, 0.5, 0.0)))
|
|
68
|
+
vkeys.append(m.add_vertex(Point(float(i), 0.5, 0.0)))
|
|
69
|
+
for i in range(100):
|
|
70
|
+
m.add_face([vkeys[i*3], vkeys[i*3+1], vkeys[i*3+2]])
|
|
71
|
+
cp, fk, d = Closest.mesh_point_aabb(m, Point(50.0, 0.0, 0.0))
|
|
72
|
+
MINI_CHECK(d < 0.5)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
@MINI_TEST("AABBTree", "Mesh Point Aabb")
|
|
76
|
+
def test_aabbtree_mesh_point_aabb():
|
|
77
|
+
from session_py import Closest
|
|
78
|
+
from session_py import Primitives
|
|
79
|
+
from session_py import Point
|
|
80
|
+
|
|
81
|
+
m = Primitives.cube(2.0)
|
|
82
|
+
cp1, fk1, d1 = Closest.mesh_point_aabb(m, Point(0.0, 0.0, 2.0))
|
|
83
|
+
MINI_CHECK(TOLERANCE.is_close(cp1[2], 1.0))
|
|
84
|
+
MINI_CHECK(TOLERANCE.is_close(d1, 1.0))
|
|
85
|
+
cp2, fk2, d2 = Closest.mesh_point_aabb(m, Point(1.0, 1.0, 1.0))
|
|
86
|
+
MINI_CHECK(TOLERANCE.is_close(d2, 0.0))
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
@MINI_TEST("AABBTree", "Mesh Point Aabb Matches Bvh")
|
|
90
|
+
def test_aabbtree_mesh_point_aabb_matches_bvh():
|
|
91
|
+
from session_py import Closest
|
|
92
|
+
from session_py import Primitives
|
|
93
|
+
from session_py import Point
|
|
94
|
+
|
|
95
|
+
m = Primitives.cube(2.0)
|
|
96
|
+
tp = Point(0.3, 0.7, 1.5)
|
|
97
|
+
cp_bvh, fk_bvh, d_bvh = Closest.mesh_point(m, tp)
|
|
98
|
+
cp_aabb, fk_aabb, d_aabb = Closest.mesh_point_aabb(m, tp)
|
|
99
|
+
MINI_CHECK(TOLERANCE.is_close(d_bvh, d_aabb))
|
|
100
|
+
MINI_CHECK(TOLERANCE.is_close(cp_bvh[0], cp_aabb[0]))
|
|
101
|
+
MINI_CHECK(TOLERANCE.is_close(cp_bvh[1], cp_aabb[1]))
|
|
102
|
+
MINI_CHECK(TOLERANCE.is_close(cp_bvh[2], cp_aabb[2]))
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
if __name__ == "__main__":
|
|
106
|
+
run_all(language="python")
|