def OnScaleMax(self, button):
if self._selectedObj is None:
return
- self._selectedObj.scaleUpTo(self._machineSize)
+ self._selectedObj.scaleUpTo(self._machineSize - numpy.array(profile.calculateObjectSizeOffsets() + [0.0], numpy.float32) * 2)
def OnMirror(self, axis):
if self._selectedObj is None:
glEnable(GL_CULL_FACE)
glColor4f(0,0,0,0.12)
glBegin(GL_QUADS)
- glVertex3f(-size[0], size[1], 0)
- glVertex3f(-size[0], -size[1], 0)
- glVertex3f( size[0], -size[1], 0)
- glVertex3f( size[0], size[1], 0)
+ glVertex3f(-size[0], size[1], 0.1)
+ glVertex3f(-size[0], -size[1], 0.1)
+ glVertex3f( size[0], -size[1], 0.1)
+ glVertex3f( size[0], size[1], 0.1)
glEnd()
glDisable(GL_CULL_FACE)
glPopMatrix()
pass
def scaleUpTo(self, size):
- pass
+ vMin = self._transformedMin
+ vMax = self._transformedMax
+
+ scaleX1 = (size[0] / 2 - self._position[0]) / ((vMax[0] - vMin[0]) / 2)
+ scaleY1 = (size[1] / 2 - self._position[1]) / ((vMax[1] - vMin[1]) / 2)
+ scaleX2 = (self._position[0] + size[0] / 2) / ((vMax[0] - vMin[0]) / 2)
+ scaleY2 = (self._position[1] + size[1] / 2) / ((vMax[1] - vMin[1]) / 2)
+ scaleZ = size[2] / (vMax[2] - vMin[2])
+ print scaleX1, scaleY1, scaleX2, scaleY2, scaleZ
+ scale = min(scaleX1, scaleY1, scaleX2, scaleY2, scaleZ)
+ if scale > 0:
+ self.applyMatrix(numpy.matrix([[scale,0,0],[0,scale,0],[0,0,scale]], numpy.float64))
class mesh(object):
def __init__(self):