MCPcopy Create free account
hub / github.com/ActiveState/code / AlterBorder

Function AlterBorder

recipes/Python/577405_Penrose_Tiler/recipe-577405.py:246–276  ·  view source on GitHub ↗
(aBorder, temp, nNook, nAligned, nDel, nIns)

Source from the content-addressed store, hash-verified

244 return subs
245
246def AlterBorder(aBorder, temp, nNook, nAligned, nDel, nIns):
247 cnr1 = nNook
248 cnr2 = nAligned
249 if nDel < 3:
250 # replacement
251 ang1 = aBorder[cnr1].angle
252 aBorder[cnr1]= NodeObject(temp, cnr2)
253 aBorder[cnr1].angle = ang1
254 aBorder[cnr1].prioritise()
255 if cnr1 == len(aBorder) - 1:
256 lClocked = True
257 else:
258 lClocked = False
259 # deletion
260 cnr3 =(cnr1 + 1) % len(aBorder)
261 nAdjust = 1
262 for z in range(nDel):
263 if cnr3 < len(aBorder) - 1:
264 aBorder = aBorder[:cnr3] + aBorder[cnr3 + 1:]
265 elif cnr3 == len(aBorder): # delete first element
266 aBorder = aBorder[1:]
267 else: # around the clock
268 aBorder = aBorder[:cnr3]
269 # insertion
270 for nD in range(nIns):
271 cnr4 = (cnr1 + nD + nAdjust) % len(aBorder)
272 if lClocked:
273 cnr4 = nD
274 node = NodeObject(temp, (cnr2 + nD + 1) % 4)
275 aBorder.insert(cnr4, node)
276 return aBorder
277
278def FitsBorder(aBorder, nNook, aV, temp):
279 nAligned = aV[1]

Callers 1

addToBorderFunction · 0.85

Calls 4

NodeObjectClass · 0.85
rangeFunction · 0.85
prioritiseMethod · 0.80
insertMethod · 0.45

Tested by

no test coverage detected