def build(self, buildRequest):
t = time.time()
placePos = Vector(buildRequest.pos)
diffRow = Vector((self.settings["ArrayRowMargin"], 0, 0))
diffCol = Vector((0, self.settings["ArrayColumnMargin"], 0))
diffRow.rotate(mathutils.Euler(buildRequest.rot))
diffCol.rotate(mathutils.Euler(buildRequest.rot))
diffRow *= buildRequest.scale
diffCol *= buildRequest.scale
number = self.settings["noToPlace"]
rows = self.settings["ArrayRows"]
cm_timings.placement["TemplateFORMATION"] += time.time() - t
cm_timings.placementNum["TemplateFORMATION"] += 1
for fullcols in range(number // rows):
for row in range(rows):
newBuildRequest = buildRequest.copy()
newBuildRequest.pos = placePos + fullcols * diffCol + row * diffRow
self.inputs["Template"].build(newBuildRequest)
for leftOver in range(number % rows):
newBuild = buildRequest.copy()
newBuild.pos = placePos + \
(number // rows) * diffCol + leftOver * diffRow
self.inputs["Template"].build(newBuild)
评论列表
文章目录