def explode(self): """Read each contour into its own DATPen; returns a DATPens""" dp = RecordingPen() ep = ExplodingPen(dp) self.replay(ep) dps = self.multi_pen_class() for p in ep._pens: dp = type(self)() dp.value = p dp.attrs = deepcopy(self.attrs) dps.append(dp) return dps
def explode(self, into_set=False): """Read each contour into its own DATPen (or DATPenSet if `into_set` is True); returns a DATPenSet""" dp = RecordingPen() ep = ExplodingPen(dp) self.replay(ep) dps = DATPenSet() for p in ep.pens: dp = DATPen() dp.value = p dp.attrs = deepcopy(self.attrs) if into_set: dps.append(DATPenSet([dp])) else: dps.append(dp) return dps