added time offset per layer
This commit is contained in:
parent
fb043a61d7
commit
19500fa3f5
|
|
@ -27,6 +27,7 @@ class Layer:
|
||||||
self.bounds = []
|
self.bounds = []
|
||||||
self.masks = []
|
self.masks = []
|
||||||
self.stats = dict()
|
self.stats = dict()
|
||||||
|
self.exportOffset = 0
|
||||||
|
|
||||||
self.bounds.append([data])
|
self.bounds.append([data])
|
||||||
self.masks.append([mask])
|
self.masks.append([mask])
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ class LayerManager:
|
||||||
print("Before deleting sparse layers ", len(self.layers))
|
print("Before deleting sparse layers ", len(self.layers))
|
||||||
self.deleteSparse()
|
self.deleteSparse()
|
||||||
print("after deleting sparse layers ", len(self.layers))
|
print("after deleting sparse layers ", len(self.layers))
|
||||||
|
self.calcTimeOffset()
|
||||||
|
|
||||||
def deleteSparse(self):
|
def deleteSparse(self):
|
||||||
toDelete = []
|
toDelete = []
|
||||||
|
|
@ -101,3 +102,22 @@ class LayerManager:
|
||||||
|
|
||||||
def sortLayers(self):
|
def sortLayers(self):
|
||||||
self.layers.sort(key = lambda c:c.startFrame)
|
self.layers.sort(key = lambda c:c.startFrame)
|
||||||
|
|
||||||
|
def calcTimeOffset(self):
|
||||||
|
for i, layer in enumerate(self.layers):
|
||||||
|
overlap = True
|
||||||
|
while overlap:
|
||||||
|
overlap = False
|
||||||
|
for l in self.layers[i:]:
|
||||||
|
if layer.timeOverlaps(l):
|
||||||
|
if layer.spaceOverlaps(l):
|
||||||
|
overlap = True
|
||||||
|
if overlap:
|
||||||
|
self.addDelay(i, 10)
|
||||||
|
|
||||||
|
if self.layers[i].exportOffset >= 180:
|
||||||
|
break
|
||||||
|
|
||||||
|
def addDelay(self, index, frames):
|
||||||
|
for layer in self.layers[index:]:
|
||||||
|
layer.exportOffset += frames
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue