Skip to content

Commit

Permalink
Merge 3a5873f into 30983d3
Browse files Browse the repository at this point in the history
  • Loading branch information
wkentaro committed Nov 20, 2018
2 parents 30983d3 + 3a5873f commit 5edaa61
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
9 changes: 9 additions & 0 deletions tests/test_creation.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,15 @@ def test_uv(self):
self.assertTrue(sphere.is_watertight)
self.assertTrue(sphere.is_winding_consistent)

def test_axis(self):
origin_size = 0.04
axis_length = 0.4
axis = g.trimesh.creation.axis(
origin_size=origin_size, axis_length=axis_length
)
assert all(e == (origin_size + axis_length)
for e in axis.bounding_box.primitive.extents)

def test_path_sweep(self):

if len(self.engines) == 0:
Expand Down
41 changes: 41 additions & 0 deletions trimesh/creation.py
Original file line number Diff line number Diff line change
Expand Up @@ -777,3 +777,44 @@ def random_soup(face_count=100):
faces = np.arange(face_count * 3).reshape((-1, 3))
soup = Trimesh(vertices=vertices, faces=faces)
return soup


def axis(transform=None,
origin_size=0.04,
origin_color=(255, 255, 255),
axis_radius=0.01,
axis_length=0.4):
if transform is None:
transform = np.eye(4)

axis_origin = icosphere(radius=origin_size)
axis_origin.apply_transform(transform)
axis_origin.visual.face_colors = origin_color

# z-axis
translation = transformations.translation_matrix([0, 0, axis_length / 2])
transform_z_axis = transform.dot(translation)
z_axis = cylinder(
radius=axis_radius, height=axis_length, transform=transform_z_axis
)
z_axis.visual.face_colors = [0, 0, 255] # blue

# y-axis
translation = transformations.translation_matrix([0, 0, axis_length / 2])
rotation = transformations.rotation_matrix(np.deg2rad(-90), [1, 0, 0])
transform_y_axis = transform.dot(rotation).dot(translation)
y_axis = cylinder(
radius=axis_radius, height=axis_length, transform=transform_y_axis
)
y_axis.visual.face_colors = [0, 255, 0] # green

# x-axis
translation = transformations.translation_matrix([0, 0, axis_length / 2])
rotation = transformations.rotation_matrix(np.deg2rad(90), [0, 1, 0])
transform_x_axis = transform.dot(rotation).dot(translation)
x_axis = cylinder(
radius=axis_radius, height=axis_length, transform=transform_x_axis
)
x_axis.visual.face_colors = [255, 0, 0] # red

return axis_origin + x_axis + y_axis + z_axis

0 comments on commit 5edaa61

Please sign in to comment.