chiark / gitweb /
Added multiply settings
authordaid <daid303@gmail.com>
Fri, 16 Mar 2012 11:07:43 +0000 (12:07 +0100)
committerdaid <daid303@gmail.com>
Fri, 16 Mar 2012 11:07:43 +0000 (12:07 +0100)
SkeinPyPy_NewUI/fabmetheus_utilities/settings.py
SkeinPyPy_NewUI/newui/mainWindow.py
SkeinPyPy_NewUI/newui/preview3d.py

index 951f8b62c27b557c0fecd74fa9098ed3013987f9..f9729162e9ee29063b0818045e6706d7b2b08d17 100644 (file)
@@ -154,8 +154,8 @@ def getSkeinPyPyProfileInformation():
                        'Activate_Multiply': "True",
                        'Center_X_mm': storedSetting("machine_center_x"),
                        'Center_Y_mm': storedSetting("machine_center_y"),
-                       'Number_of_Columns_integer': "1",
-                       'Number_of_Rows_integer': "1",
+                       'Number_of_Columns_integer': storedSetting('model_multiply_x', '1'),
+                       'Number_of_Rows_integer': storedSetting('model_multiply_y', '1'),
                        'Reverse_Sequence_every_Odd_Layer': DEFSET,
                        'Separation_over_Perimeter_Width_ratio': DEFSET,
                },'speed': {
index b2561808f5a4c71bf2d3f42ab37c0ff7cd30c97c..ab42129b397d949264d622b764a451cd95b46fba 100644 (file)
@@ -171,6 +171,13 @@ class mainWindow(configBase.configWindowBase):
                c = configBase.SettingRow(right, "Rotate (deg)", 'model_rotate_base', '0', '')
                validators.validFloat(c)
                configBase.settingNotify(c, self.preview3d.updateModelTransform)
+               configBase.TitleRow(right, "Multiply")
+               c = configBase.SettingRow(right, "Multiple X", 'model_multiply_x', '1', '')
+               validators.validInt(c)
+               configBase.settingNotify(c, self.preview3d.updateModelTransform)
+               c = configBase.SettingRow(right, "Multiple Y", 'model_multiply_y', '1', '')
+               validators.validInt(c)
+               configBase.settingNotify(c, self.preview3d.updateModelTransform)
 
                # load and slice buttons.
                loadButton = wx.Button(self, -1, 'Load Model')
index 1bc41bc5da4d8b1431777d71780fba9ffe607638..b7afb4f4777b63aca82ca6ba98a72b23ffc3c9ff 100644 (file)
@@ -381,21 +381,32 @@ class PreviewGLCanvas(glcanvas.GLCanvas):
                                self.modelDisplayList = glGenLists(1);\r
                        if self.parent.modelDirty:\r
                                self.parent.modelDirty = False\r
+                               multiX = int(settings.getProfileSetting('model_multiply_x', '1'))\r
+                               multiY = int(settings.getProfileSetting('model_multiply_y', '1'))\r
+                               modelSize = self.parent.triangleMesh.getCarveCornerMaximum() - self.parent.triangleMesh.getCarveCornerMinimum()\r
                                glNewList(self.modelDisplayList, GL_COMPILE)\r
-                               glBegin(GL_TRIANGLES)\r
-                               for face in self.parent.triangleMesh.faces:\r
-                                       v1 = self.parent.triangleMesh.vertexes[face.vertexIndexes[0]]\r
-                                       v2 = self.parent.triangleMesh.vertexes[face.vertexIndexes[1]]\r
-                                       v3 = self.parent.triangleMesh.vertexes[face.vertexIndexes[2]]\r
-                                       glNormal3f(face.normal.x, face.normal.y, face.normal.z)\r
-                                       glVertex3f(v1.x, v1.y, v1.z)\r
-                                       glVertex3f(v2.x, v2.y, v2.z)\r
-                                       glVertex3f(v3.x, v3.y, v3.z)\r
-                                       glNormal3f(-face.normal.x, -face.normal.y, -face.normal.z)\r
-                                       glVertex3f(v1.x, v1.y, v1.z)\r
-                                       glVertex3f(v3.x, v3.y, v3.z)\r
-                                       glVertex3f(v2.x, v2.y, v2.z)\r
-                               glEnd()\r
+                               glPushMatrix()\r
+                               glTranslate(-(modelSize.x+self.lineWidth*15)*(multiX-1)/2,-(modelSize.y+self.lineWidth*15)*(multiY-1)/2, 0)\r
+                               for mx in xrange(0, multiX):\r
+                                       for my in xrange(0, multiY):\r
+                                               for face in self.parent.triangleMesh.faces:\r
+                                                       glPushMatrix()\r
+                                                       glTranslate((modelSize.x+self.lineWidth*15)*mx,(modelSize.y+self.lineWidth*15)*my, 0)\r
+                                                       glBegin(GL_TRIANGLES)\r
+                                                       v1 = self.parent.triangleMesh.vertexes[face.vertexIndexes[0]]\r
+                                                       v2 = self.parent.triangleMesh.vertexes[face.vertexIndexes[1]]\r
+                                                       v3 = self.parent.triangleMesh.vertexes[face.vertexIndexes[2]]\r
+                                                       glNormal3f(face.normal.x, face.normal.y, face.normal.z)\r
+                                                       glVertex3f(v1.x, v1.y, v1.z)\r
+                                                       glVertex3f(v2.x, v2.y, v2.z)\r
+                                                       glVertex3f(v3.x, v3.y, v3.z)\r
+                                                       glNormal3f(-face.normal.x, -face.normal.y, -face.normal.z)\r
+                                                       glVertex3f(v1.x, v1.y, v1.z)\r
+                                                       glVertex3f(v3.x, v3.y, v3.z)\r
+                                                       glVertex3f(v2.x, v2.y, v2.z)\r
+                                                       glEnd()\r
+                                                       glPopMatrix()\r
+                               glPopMatrix()\r
                                glEndList()\r
                        if self.renderTransparent:\r
                                #If we want transparent, then first render a solid black model to remove the printer size lines.\r