Source code for svcco.branch_addition.sample_triad

import numpy as np
import numba as nb

#@nb.jit(nopython=True,cache=True,nogil=True)
[docs]def sample_triad(p1,p2,p3): c = (p1+p2+p3)/3 p12 = (p1+p2)/2 p23 = (p2+p3)/2 p31 = (p3+p1)/2 return np.array([[p1,p12,c],[p12,p2,c],[p2,p23,c],[p23,p3,c],[p3,p31,c],[p31,p1,c]])
#@nb.jit(nopython=True,cache=True,nogil=True)
[docs]def triangle_subdivide(triangles,i=1): for u in range(i): subdivisions = [] for triangle in triangles: divisions = sample_triad(triangle[0],triangle[1],triangle[2]) for tri in divisions: subdivisions.append(tri) triangles = np.array(subdivisions) return triangles
#@nb.jit(nopython=True,cache=True,nogil=True)
[docs]def unique_triangle_points(triangles): a,b,c = triangles.shape pts = triangles.reshape(a*b,c) return np.unique(pts,axis=0)