Skip to content

Commit

Permalink
Merge pull request #28 from A-Chaudhary/angle-calc
Browse files Browse the repository at this point in the history
Added Angle Calculations & Checking for Particle Descent
  • Loading branch information
A-Chaudhary committed Apr 29, 2023
2 parents d48b95f + cdd9059 commit 121d222
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 8 deletions.
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 0.1.2
current_version = 0.2.0
commit = True
tag = True

Expand Down
2 changes: 1 addition & 1 deletion age3d/_version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "0.1.2"
__version__ = "0.2.0"
45 changes: 40 additions & 5 deletions age3d/age3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -336,6 +336,7 @@ def erode(mesh, iterations=2, erosion_lifetime=10):
set_vertices_idx.add(idx)
# print('set', set_vertices_idx)

# Create New Mesh
new_mesh = o3d.geometry.TriangleMesh()
new_vertices = np.asarray(mesh.vertices)
new_triangles = np.asarray(mesh.triangles)
Expand All @@ -348,28 +349,62 @@ def erode(mesh, iterations=2, erosion_lifetime=10):
rng = np.random.default_rng(10)

for iter_no in range(iterations):
v_idx_curr = vertices_idx[int(rng.random() * vertices.shape[0])]
v_idx_curr = int(vertices_idx[int(rng.random() * vertices.shape[0])])
print('Iter: ', iter_no, ', V_idx: ', v_idx_curr)

lifetime = erosion_lifetime
lifetime = 0
strength = 0.5
while lifetime > 0:
new_mesh.vertices = o3d.utility.Vector3dVector(new_vertices)
v_idx_prev = None

while lifetime < erosion_lifetime:
neighbors_idx, _ = find_neighbors(new_mesh, v_idx_curr)
v_idx_next = int(find_minimum(new_mesh, 1, neighbors_idx)[0])

if v_idx_next not in vertices_idx:
break

# if #TODO Angle Calculations
if v_idx_prev:
print(
v_idx_prev,
v_idx_curr,
v_idx_next,
type(new_vertices[v_idx_prev]),
new_vertices[v_idx_prev],
new_vertices[v_idx_curr],
new_vertices[v_idx_next],
)
vector_1 = new_vertices[v_idx_curr] - new_vertices[v_idx_prev]
vector_2 = new_vertices[v_idx_next] - new_vertices[v_idx_curr]
direction_1 = np.sign(vector_1)
direction_2 = np.sign(vector_2)
# print(vector_1, vector_2, direction_1, direction_2, np.dot(direction_1 , direction_2))

if vector_2[2] > 0:
break

vector_1[2] = 0
vector_2[2] = 0
norm_vector_1 = np.linalg.norm(vector_1)
norm_vector_2 = np.linalg.norm(vector_2)
angle = np.arccos(np.clip(np.dot(vector_1, vector_2) / (norm_vector_1 * norm_vector_2), -1.0, 1.0))
print(vector_1, vector_2, direction_1, direction_2, np.dot(direction_1, direction_2), angle)
# if angle < 0:
# print('negative angle', angle)
if angle > np.pi / 2:
# print('pi angle', angle)
break
# if angle > np.pi / 2

new_vertices[v_idx_curr, 2] -= (
strength * abs(new_vertices[v_idx_next, 2] - new_vertices[v_idx_curr, 2]) / mesh_max_height
)
new_mesh.vertices = o3d.utility.Vector3dVector(new_vertices)
updated_vertices.append(v_idx_curr)

lifetime -= 1
lifetime += 1
strength *= 0.69
v_idx_prev = v_idx_curr
v_idx_curr = v_idx_next

new_mesh.vertices = o3d.utility.Vector3dVector(new_vertices)
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ name = "age3d"
authors = [{name = "Abhishek Chaudhary", email = "[email protected]"}]
description="Aging 3D models"
readme = "README.md"
version = "0.1.2"
version = "0.2.0"
requires-python = ">=3.7"

dependencies = [
Expand Down

0 comments on commit 121d222

Please sign in to comment.