diff --git a/Application/Layer.py b/Application/Layer.py index 79b3540..a0d949e 100644 --- a/Application/Layer.py +++ b/Application/Layer.py @@ -27,6 +27,7 @@ class Layer: self.bounds = [] self.masks = [] self.stats = dict() + self.exportOffset = 0 self.bounds.append([data]) self.masks.append([mask]) diff --git a/Application/LayerManager.py b/Application/LayerManager.py index a8c51c0..bd8488b 100644 --- a/Application/LayerManager.py +++ b/Application/LayerManager.py @@ -34,6 +34,7 @@ class LayerManager: print("Before deleting sparse layers ", len(self.layers)) self.deleteSparse() print("after deleting sparse layers ", len(self.layers)) + self.calcTimeOffset() def deleteSparse(self): toDelete = [] @@ -101,3 +102,22 @@ class LayerManager: def sortLayers(self): 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