public void PushUpdatedInfomation(ModelTransformPair model) { if (editmode == ModelAdjustmentsDialog.EditMode.Rotation) { X_Slider.TrackPosition = model.transformNode.Rotation.X; Y_Slider.TrackPosition = model.transformNode.Rotation.Y; Z_Slider.TrackPosition = model.transformNode.Rotation.Z; } else if (editmode == ModelAdjustmentsDialog.EditMode.Scale) { X_Slider.TrackPosition = model.transformNode.Scale.X; Y_Slider.TrackPosition = model.transformNode.Scale.Y; Z_Slider.TrackPosition = model.transformNode.Scale.Z; } else { if (editmode != ModelAdjustmentsDialog.EditMode.Translation) { return; } X_Slider.TrackPosition = model.transformNode.Translation.X; Y_Slider.TrackPosition = model.transformNode.Translation.Y; } }
public override void Redo(PrinterView printerView) { ModelTransformPair modelById = printerView.GetModelByID(ObjectID); if (modelById == null) { return; } modelById.transformNode.TransformData = newTransform; printerView.PushUpdatedInfomation(modelById); }
public void PlaceObjectOnFloor(int selected_model_index) { if (ModelList.Count <= 0 || selected_model_index < 0) { return; } ModelTransformPair model = ModelList[selected_model_index]; var vector3 = new M3D.Model.Utils.Vector3(0.0f, 0.0f, (float)(-model.modelSize.Min.Z + 1.0)); model.transformNode.Translation.Z += vector3.Z; model.CalculateExtents(); }
public static bool GenerateAndSaveIcon(ModelTransformPair model_transform, string icon_file, Vector2 icon_size, Color4 bgColor, GLControl glcontrol, ImageCapture.PreviewImageCallback callback) { Bitmap icon = ImageCapture.GenerateIcon(model_transform.modelNode, glcontrol, icon_size, new M3D.Model.Utils.Vector3(model_transform.transformNode.Rotation), new Color4(0.8431373f, 0.8901961f, 0.9921569f, 1f)); if (icon == null) { return(false); } ImageCapture.SaveIcon(icon, icon_file); if (callback != null) { var fileName = string.IsNullOrEmpty(model_transform.modelNode.zipFileName) ? model_transform.modelNode.fileName : model_transform.modelNode.zipFileName; callback(fileName, icon_file); } return(true); }
public int AddModel(Graphics.Ext3D.ModelRendering.Model model, out ModelTransformPair modtrans_pair) { modtrans_pair = new ModelTransformPair { modelNode = new Model3DNode(3200) }; modtrans_pair.modelNode.SetModel(model); modtrans_pair.modelNode.Ambient = new Color4(modelColor.R / 4f, modelColor.G / 4f, modelColor.B / 4f, 1f); modtrans_pair.modelNode.Diffuse = modelColor; modtrans_pair.modelNode.Specular = new Color4(0.5f, 0.5f, 0.5f, 1f); modtrans_pair.modelNode.Shininess = 100f; modtrans_pair.transformNode = new TransformationNode(3100, ObjectToPrinterSpace); modtrans_pair.transformNode.AddChildElement(modtrans_pair.modelNode); modtrans_pair.CalculateExtents(); ObjectToPrinterSpace.AddChildElement(modtrans_pair.transformNode); ModelList.Add(modtrans_pair); return(ModelList.Count - 1); }
public void GenerateIconForLibrary(ModelTransformPair model_transform) { var zipFileName = model_transform.modelNode.zipFileName; if (!string.IsNullOrEmpty(zipFileName)) { if (zipFileName == "313a13a6-9edf-44c7-a81d-50b914e423cc-6bb0e036-df11-4d66-82b3-8b7f0de03d2c") { return; } RecentModelHistory.RecentRecord record = libraryData.GetRecord(zipFileName); if (record != null && !string.IsNullOrEmpty(record.iconfilename)) { ImageGenerated(zipFileName, record.iconfilename); return; } } var iconFileName = GenerateIconFileName(model_transform.modelNode.fileName); ImageCapture.GenerateAndSaveIcon(model_transform, iconFileName, new Vector2(400f, 400f), new Color4(0.8431373f, 0.8901961f, 0.9921569f, 1f), glControl, new ImageCapture.PreviewImageCallback(ImageGenerated)); }
private void ObjectWithinBounds(int selected_model_index) { ResetExceedBounds(); lock (exceedsBoundsSync) { if (ModelList.Count <= 0 || selected_model_index < 0) { return; } ModelTransformPair model = ModelList[selected_model_index]; List <M3D.Model.Utils.Vector3> usingTransformMatric = model.modelNode.CalculateBoundingUsingTransformMatric(model.transformNode.GetTransformationMatrix()); StackedBoundingBox printableRegion = PrinterBoundsConst.PrintableRegion; foreach (M3D.Model.Utils.Vector3 vector3 in usingTransformMatric) { var count = printableRegion.bounds_list.Count; for (var index = 0; index < count; ++index) { if (vector3.Z >= (double)printableRegion.bounds_list[index].min.z && (index >= count - 1 || vector3.Z <= (double)printableRegion.bounds_list[index].max.z)) { var num = printableRegion.bounds_list[index].OutOfBoundsCheck(vector3.X, vector3.Y, vector3.Z); if ((num & 1) != 0) { ExceedsBoundsGeometry[index, 1].Visible = true; } if ((num & 2) != 0) { ExceedsBoundsGeometry[index, 0].Visible = true; } if ((num & 4) != 0) { ExceedsBoundsGeometry[index, 2].Visible = true; } if ((num & 8) != 0) { ExceedsBoundsGeometry[index, 3].Visible = true; } if ((num & 32) != 0 && index + 1 == printableRegion.bounds_list.Count) { ExceedsBoundsGeometry[index, 4].Visible = true; } } } } ObjectExceedsBounds = false; for (var index1 = 0; index1 < ExceedsBoundsGeometry.GetLength(0) && !ObjectExceedsBounds; ++index1) { for (var index2 = 0; index2 < ExceedsBoundsGeometry.GetLength(1) && !ObjectExceedsBounds; ++index2) { if (ExceedsBoundsGeometry[index1, index2] != null) { ObjectExceedsBounds = ExceedsBoundsGeometry[index1, index2].Visible; } } } } }