PendingImport now has rotate/scale and transformedDim attributes
transformedDim is recreated whenever the rotate/scale are changed. Its chunks are lazily evaluated.
This commit is contained in:
parent
fc0080015d
commit
2c531925fb
@ -22,6 +22,7 @@ from mcedit2.util.directories import getUserSchematicsDirectory
|
||||
from mcedit2.util.mimeformats import MimeFormats
|
||||
from mcedit2.widgets.mcedockwidget import MCEDockWidget
|
||||
from mcedit2.widgets.spinslider import SpinSlider
|
||||
from mceditlib.transform import DimensionTransform, SelectionTransform
|
||||
from mceditlib.util import exhaust
|
||||
from mceditlib.util.lazyprop import weakrefprop
|
||||
from mcedit2.util.raycast import rayCastInBounds
|
||||
@ -67,6 +68,37 @@ class PendingImport(object):
|
||||
self.pos = pos
|
||||
self.sourceDim = sourceDim
|
||||
self.isMove = isMove
|
||||
self._rotation = (0, 0, 0)
|
||||
self._scale = (0, 0, 0)
|
||||
self.transformedDim = None
|
||||
|
||||
bounds = self.selection
|
||||
self.rotateAnchor = bounds.origin + bounds.size * 0.5
|
||||
|
||||
@property
|
||||
def rotation(self):
|
||||
return self._rotation
|
||||
|
||||
@rotation.setter
|
||||
def rotation(self, value):
|
||||
self._rotation = value
|
||||
self.updateTransform()
|
||||
|
||||
@property
|
||||
def scale(self):
|
||||
return self._rotation
|
||||
|
||||
@scale.setter
|
||||
def scale(self, value):
|
||||
self._rotation = value
|
||||
self.updateTransform()
|
||||
|
||||
def updateTransform(self):
|
||||
if self.rotation == (0, 0, 0) and self.scale == (0, 0, 0):
|
||||
self.transformedDim = None
|
||||
else:
|
||||
selectionDim = SelectionTransform(self.sourceDim, self.selection)
|
||||
self.transformedDim = DimensionTransform(selectionDim, self.rotateAnchor, *self.rotation)
|
||||
|
||||
def __repr__(self):
|
||||
return "%s(%r, %r, %r)" % (self.__class__.__name__, self.sourceDim, self.selection, self.pos)
|
||||
|
Reference in New Issue
Block a user