12def sdf(t, x, y, z, tx, ty, tz):
14 return CylinderZ.sDF(r, 0, -0.5-r, x, y)
19 return CylinderZ.gradSdf(0, -0.5-r, x, y)
24 return CylinderZ.hessSdf(0, -0.5-r, x, y)
29 def sDF(shift, xc, yc, x, y):
38 return [0, 0, 0, 0, 0]
43 def sDF(r, xc, yc, x, y):
44 a = pow(x-xc, 2)+pow(y-yc, 2)
45 c_val = math.sqrt(a)-r
49 a = pow(x-xc, 2)+pow(y-yc, 2)
52 c_val_dx = c_val_A * (x-xc)
53 c_val_dy = c_val_A * (y-yc)
55 return [c_val_dx, c_val_dy, 0]
58 a = pow(x-xc, 2)+pow(y-yc, 2)
61 c_val_B = 1./pow(a, 3./2.)
62 c_val_dx_dx = c_val_A - c_val_B * pow(x-xc, 2)
63 c_val_dx_dy = -c_val_B * (x-xc)*(y-yc)
64 c_val_dy_dy = c_val_A - c_val_B * pow(y-yc, 2)
66 return [c_val_dx_dx, c_val_dx_dy, 0, c_val_dy_dy, 0, 0]
70 def sDF(r, xc, yc, zc, x, y, z):
71 a = pow(x-xc, 2)+pow(y-yc, 2)+pow(z-zc, 2)
72 c_val = math.sqrt(a)-r
76 a = pow(x-xc, 2)+pow(y-yc, 2)+pow(z-zc, 2)
79 c_val_dx = c_val_A * (x-xc)
80 c_val_dy = c_val_A * (y-yc)
81 c_val_dz = c_val_A * (z-zc)
83 return [c_val_dx, c_val_dy, c_val_dz]
86 a = pow(x-xc, 2)+pow(y-yc, 2)+pow(z-zc, 2)
89 c_val_B = 1./pow(a, 3./2.)
90 c_val_dx_dx = c_val_A - c_val_B * pow(x-xc, 2)
91 c_val_dx_dy = -c_val_B * (x-xc)*(y-yc)
92 c_val_dy_dy = c_val_A - c_val_B * pow(y-yc, 2)
94 return [c_val_dx_dx, c_val_dx_dy, 0, c_val_dy_dy, 0, 0]
def hessSdf(xc, yc, x, y)
def gradSdf(xc, yc, x, y)
def hessSdf(xc, yc, zc, x, y, z)
def gradSdf(xc, yc, zc, x, y, z)
def sDF(r, xc, yc, zc, x, y, z)
def sDF(shift, xc, yc, x, y)
def hessSdf(xc, yc, x, y)
def gradSdf(xc, yc, x, y)
def grad_sdf(t, x, y, z, tx, ty, tz)
def hess_sdf(t, x, y, z, tx, ty, tz)