internal static void UpdateGroundPane(AtumPrinter selectedPrinter) { if (selectedPrinter != null) { var groundPaneObject = new GroundPane((selectedPrinter.ProjectorResolutionX / 10) * selectedPrinter.TrapeziumCorrectionFactorX, (selectedPrinter.ProjectorResolutionY / 10) * selectedPrinter.TrapeziumCorrectionFactorY, 0.02f); if (ObjectView.Objects3D.Count > 0 && ObjectView.Objects3D[0] is GroundPane) { ((GroundPane)ObjectView.Objects3D[0]).Triangles = groundPaneObject.Triangles; groundPaneObject = ((GroundPane)ObjectView.Objects3D[0]); } else { ObjectView.Objects3D.Insert(0, groundPaneObject); } if (groundPaneObject.VBOIndexes == null) { groundPaneObject.BindModel(); } groundPaneObject.UpdateBinding(); } }
internal BasicCorrectionModel() : base(STLModel3D.TypeObject.Model, true) { this.FileName = "Calibration"; this.Triangles = new TriangleInfoList(); GroundPane groundPane = ObjectView.GroundPane; float x = 75; float y = 45; if (PrintJobManager.SelectedPrinter is AtumDLPStation5 || PrintJobManager.SelectedPrinter is LoctiteV10) { switch (PrintJobManager.SelectedPrinter.PrinterXYResolution) { case AtumPrinter.PrinterXYResolutionType.Micron100: x = 75f; y = 35f; break; case AtumPrinter.PrinterXYResolutionType.Micron75: x = 55f; y = 25f; break; case AtumPrinter.PrinterXYResolutionType.Micron50: x = 35; y = 15f; break; } } else { switch (PrintJobManager.SelectedPrinter.PrinterXYResolution) { case AtumPrinter.PrinterXYResolutionType.Micron75: x = 55f; //55 //43 y = 32.5f; //32.5 //25 break; case AtumPrinter.PrinterXYResolutionType.Micron50: x = 35; y = 20; break; } } AtumBox atumBox1 = new AtumBox(CUBESIZE, CUBESIZE, CUBESIZE, true, false); atumBox1.Triangles.UpdateWithMoveTranslation(new Vector3Class(-x + CUBESIZE, y + CUBESIZE, SUPPORTBASEMENTHEIGHT)); atumBox1.SupportBasement = true; this.Triangles[0].AddRange(atumBox1.Triangles[0]); this.Triangles[0].AddRange(atumBox1.SupportBasementStructure.Triangles[0]); AtumBox atumBox2 = new AtumBox(CUBESIZE, CUBESIZE, CUBESIZE, true, false); atumBox2.Rotate(0.0f, 0.0f, -270f, RotationEventArgs.TypeAxis.Z, updateFaceColor: false); atumBox2.Triangles.UpdateWithMoveTranslation(new Vector3Class(-x + CUBESIZE, -y + CUBESIZE, SUPPORTBASEMENTHEIGHT)); atumBox2.SupportBasement = true; this.Triangles[0].AddRange(atumBox2.Triangles[0]); this.Triangles[0].AddRange(atumBox2.SupportBasementStructure.Triangles[0]); AtumBox atumBox3 = new AtumBox(CUBESIZE, CUBESIZE, CUBESIZE, true, false); atumBox3.Rotate(0.0f, 0.0f, 180f, RotationEventArgs.TypeAxis.Z, updateFaceColor: false); atumBox3.Triangles.UpdateWithMoveTranslation(new Vector3Class(x + CUBESIZE, -y + CUBESIZE, SUPPORTBASEMENTHEIGHT)); atumBox3.SupportBasement = true; this.Triangles[0].AddRange(atumBox3.Triangles[0]); this.Triangles[0].AddRange(atumBox3.SupportBasementStructure.Triangles[0]); Triangle3D triangle3D = new Triangle3D(CUBESIZE, CUBESIZE, CUBESIZE, true, false); triangle3D.Rotate(0, 0, 180, RotationEventArgs.TypeAxis.Z, updateFaceColor: false); triangle3D.Triangles.UpdateWithMoveTranslation(new Vector3Class(x + CUBESIZE, y + CUBESIZE, SUPPORTBASEMENTHEIGHT)); triangle3D.SupportBasement = true; this.Triangles[0].AddRange(triangle3D.Triangles[0]); this.Triangles[0].AddRange(triangle3D.SupportBasementStructure.Triangles[0]); }