/* * private void thumbnailToolStripMenuItem_Click(object sender, EventArgs e) * { * TreeNode node = SectorTree.SelectedNode; * CubeGrid cg = (CubeGrid)node.Tag; * pictureBox1.Image = cg.getThumbnail(); * } * * private void loggingCheck_CheckedChanged(object sender, EventArgs e) * { * loggingEnabled = loggingCheck.Checked; * } */ private void importModuleToolStripMenuItem_Click(object sender, EventArgs e) { TreeNode node = SectorTree.SelectedNode; CubeGrid cg = (CubeGrid)node.Tag; DialogResult result = fileopen.ShowDialog(); if (result == DialogResult.OK) { this.update_status("Importing Module"); string filename = fileopen.FileName; string xml = File.ReadAllText(filename); CubeGrid module = sector.loadCGFragment(xml, false); CubeBlock module_attachment_point = module.getBlock("LargeBlockArmorCornerInvWhite"); if (module_attachment_point != null) { //Console.WriteLine("Got module attachment"); TreeNode main_node = SectorTree.SelectedNode; CubeGrid main = (CubeGrid)main_node.Tag; CubeBlock main_attachment_point = main.getBlock("LargeBlockArmorCornerInvWhite"); if (main_attachment_point != null) { Console.WriteLine("Before rotation!!"); VRageMath.Vector3 diff = Sector.diff_orientation(main_attachment_point, module_attachment_point); //Console.WriteLine("Got module attachment"); //Console.WriteLine("Up :" + main_attachment_point.PositionAndOrientation.up.ToString() + " " + module_attachment_point.PositionAndOrientation.up.ToString()); //Console.WriteLine("Forward :" + main_attachment_point.PositionAndOrientation.forward.ToString() + " " + module_attachment_point.PositionAndOrientation.forward.ToString()); module.reOrient(module_attachment_point); //Console.WriteLine("module attachment point after reorient: "+module_attachment_point.PositionAndOrientation.position.ToString()); main.reOrient(main_attachment_point); //lets try some rotation Console.WriteLine("Steps: " + vrageMath.AngleToSteps(diff.X) + " " + vrageMath.AngleToSteps(diff.Y) + " " + vrageMath.AngleToSteps(diff.Z)); module.rotate_grid("X", vrageMath.AngleToSteps(diff.X)); module.rotate_grid("Y", vrageMath.AngleToSteps(diff.Y)); module.rotate_grid("Z", vrageMath.AngleToSteps(diff.Z)); Console.WriteLine("After rotation!!"); diff = Sector.diff_orientation(module_attachment_point, main_attachment_point); main.merge(module); SectorTree.Nodes.Clear(); SectorTree.Nodes.Add(sector.getTreeNode()); } } else { Console.WriteLine("Couldn't get module attachment"); } } this.update_status(""); }