コード例 #1
0
ファイル: Ops.py プロジェクト: JUST0M/procedural-buildings
 def evalArg(self, arg):
     if type(arg) == list:
         return [self.evalArg(a) for a in arg]
     elif type(arg) == Size:
         return Size(self.evalArg(arg.size), arg.isRelative)
     else:
         try:
             return float(arg.subs([('rand', random())]))
         except:
             return arg
コード例 #2
0
 def repeatN(self, axis, n):
     # just split with n split sections each of relative size 1
     return self.split(axis, [Size(1, True)] * n)
コード例 #3
0
 def repeat(self, axis, size):
     numRepeats = ceil(self.sizeDict[axis] / size)
     size = Size(1, True)
     # just split with numRepeats split sections each of relative size 1
     return self.split(axis, [size] * numRepeats)
コード例 #4
0
 def size(self, p):
     return Size(p.expr, True)
コード例 #5
0
 def size(self, p):
     try:
         return Size(self.vars[p.IDENT], True)
     except LookupError:
         raise RuntimeError(f'Undefined variable {p.IDENT!r}')
コード例 #6
0
 def size(self, p):
     return Size(p.number, True)
コード例 #7
0
 def size(self, p):
     return Size(p.expr, False)