Fix missing segment bug.
This commit is contained in:
parent
f5f8a6640a
commit
9035f01f2d
1 changed files with 6 additions and 21 deletions
|
@ -38,7 +38,6 @@ def generate_pendant_shade(shape_parameters):
|
||||||
summed_offset = 0.0
|
summed_offset = 0.0
|
||||||
for jdx in range(len(shape_parameters["division_offsets"])):
|
for jdx in range(len(shape_parameters["division_offsets"])):
|
||||||
summed_offset += shape_parameters["division_offsets"][jdx]
|
summed_offset += shape_parameters["division_offsets"][jdx]
|
||||||
print(summed_offset)
|
|
||||||
|
|
||||||
for idx in range(num_verts):
|
for idx in range(num_verts):
|
||||||
bm.verts.ensure_lookup_table()
|
bm.verts.ensure_lookup_table()
|
||||||
|
@ -58,14 +57,10 @@ def generate_pendant_shade(shape_parameters):
|
||||||
summed_offset += shape_parameters["division_offsets"][jdx]
|
summed_offset += shape_parameters["division_offsets"][jdx]
|
||||||
if frac >=prev_offset and frac <= summed_offset:
|
if frac >=prev_offset and frac <= summed_offset:
|
||||||
division_index = jdx
|
division_index = jdx
|
||||||
if division_index==0:
|
|
||||||
print(vert.co.z, frac)
|
|
||||||
current_offset = shape_parameters["division_offsets"][division_index]
|
current_offset = shape_parameters["division_offsets"][division_index]
|
||||||
division_type = shape_parameters["division_patterns"][division_index]
|
division_type = shape_parameters["division_patterns"][division_index]
|
||||||
|
|
||||||
|
|
||||||
if division_index==0:
|
if division_index==0:
|
||||||
print(vert.co.z, frac, division_index)
|
|
||||||
division_radius = shape_parameters["fixture_radius"]
|
division_radius = shape_parameters["fixture_radius"]
|
||||||
previous_offset = 0.0
|
previous_offset = 0.0
|
||||||
previous_radius = division_radius
|
previous_radius = division_radius
|
||||||
|
@ -76,30 +71,17 @@ def generate_pendant_shade(shape_parameters):
|
||||||
if previous_radius< shape_parameters["fixture_radius"]:
|
if previous_radius< shape_parameters["fixture_radius"]:
|
||||||
previous_radius = shape_parameters["fixture_radius"]
|
previous_radius = shape_parameters["fixture_radius"]
|
||||||
|
|
||||||
|
|
||||||
if division_radius<previous_radius:
|
if division_radius<previous_radius:
|
||||||
division_radius = previous_radius
|
division_radius = previous_radius
|
||||||
|
|
||||||
#print(division_radius, vert.co.z)
|
if division_type == "square":
|
||||||
if division_type == "straight":
|
|
||||||
vert.co.x = division_radius*math.sin(theta)
|
|
||||||
vert.co.y = division_radius*math.cos(theta)
|
|
||||||
elif division_type == "square":
|
|
||||||
mapped_rad = division_radius + (frac)**2
|
mapped_rad = division_radius + (frac)**2
|
||||||
vert.co.x = mapped_rad*math.sin(theta)
|
vert.co.x = mapped_rad*math.sin(theta)
|
||||||
vert.co.y = mapped_rad*math.cos(theta)
|
vert.co.y = mapped_rad*math.cos(theta)
|
||||||
# elif division_type == "inv_square":
|
|
||||||
# mapped_rad = division_radius + 1.0/(0.01+frac**2)
|
|
||||||
# vert.co.x = mapped_rad*math.sin(theta)
|
|
||||||
# vert.co.y = mapped_rad*math.cos(theta)
|
|
||||||
elif division_type == "sine":
|
elif division_type == "sine":
|
||||||
mapped_rad = division_radius + math.sin(math.pi/2.0*frac)
|
mapped_rad = division_radius + math.sin(math.pi/2.0*frac)
|
||||||
vert.co.x = mapped_rad*math.sin(theta)
|
vert.co.x = mapped_rad*math.sin(theta)
|
||||||
vert.co.y = mapped_rad*math.cos(theta)
|
vert.co.y = mapped_rad*math.cos(theta)
|
||||||
# elif division_type == "inv_sine":
|
|
||||||
# mapped_rad = division_radius + 1.0/math.sin(math.pi/2.0*frac)
|
|
||||||
# vert.co.x = mapped_rad*math.sin(theta)
|
|
||||||
# vert.co.y = mapped_rad*math.cos(theta)
|
|
||||||
elif division_type == "ramp":
|
elif division_type == "ramp":
|
||||||
mapped_rad = division_radius + frac
|
mapped_rad = division_radius + frac
|
||||||
vert.co.x = mapped_rad*math.sin(theta)
|
vert.co.x = mapped_rad*math.sin(theta)
|
||||||
|
@ -108,6 +90,9 @@ def generate_pendant_shade(shape_parameters):
|
||||||
mapped_rad = division_radius + frac
|
mapped_rad = division_radius + frac
|
||||||
vert.co.x = mapped_rad*math.sin(theta)
|
vert.co.x = mapped_rad*math.sin(theta)
|
||||||
vert.co.y = mapped_rad*math.cos(theta)
|
vert.co.y = mapped_rad*math.cos(theta)
|
||||||
|
else: #straight
|
||||||
|
vert.co.x = division_radius*math.sin(theta)
|
||||||
|
vert.co.y = division_radius*math.cos(theta)
|
||||||
|
|
||||||
for face in bm.faces:
|
for face in bm.faces:
|
||||||
if UpOrDown(face.normal):
|
if UpOrDown(face.normal):
|
||||||
|
|
Loading…
Reference in a new issue