public static Object3d GetByNumber(int stepId, int nb) { /* On déclare et on crée une instance des variables nécéssaires pour la recherche */ Object3d obj = new Object3d(); try { string rslt = Helper.service.LoadFile("etape.xml").ToString(); StreamWriter sw = new StreamWriter(System.Windows.Forms.Application.StartupPath + "\\temp.xml"); sw.Write(rslt); sw.Close(); //XPathDocument XPathDocu = new XPathDocument((Stream)Helper.service.LoadFile("Experts.xml")); XPathDocument XPathDocu = new XPathDocument(System.Windows.Forms.Application.StartupPath + "\\temp.xml"); XPathNavigator Navigator; XPathNodeIterator Nodes; /* On crée un navigateur */ Navigator = XPathDocu.CreateNavigator(); /* On crée ici l'expression XPath de recherche d'obj à partir du login */ string ExpXPath = "//objet[@nb='" + nb + "']"; ExpXPath = "//etape[@id='" + stepId + "']//objet[@nb='" + nb + "']"; /* On lance la recherche */ Nodes = Navigator.Select(Navigator.Compile(ExpXPath)); /* On vérifie si la recherche a été fructueuse */ //System.Windows.Forms.MessageBox.Show("Nodes.Count: " + Nodes.Count, "XMLObject3d.GetByNumber"); if (Nodes.Count != 0) { Nodes.MoveNext(); // NOTE: Necéssaire pour se placer sur le noeud recherché /* Encodage des données dans la classe Object3d */ //System.Windows.Forms.MessageBox.Show("Current: "+Nodes.Current.Name,"XMLObject3d.GetByNumber"); //System.Windows.Forms.MessageBox.Show("Current.id: " + Nodes.Current.GetAttribute("id", ""), "XMLObject3d.GetByNumber"); obj = GetById(Convert.ToInt32(Nodes.Current.GetAttribute("id", ""))); obj.setPath(); obj.setNb(nb); } /* Si aucun obj n'a été trouvé */ else { obj = null; } } catch (System.IO.FileNotFoundException x) { } catch (Exception x) { System.Windows.Forms.MessageBox.Show(x.ToString()); } /* Renvoi de toutes les données dans une instance de la classe "Client" */ return obj; }
private void btn_DrawObject_Click(object sender, EventArgs e) { ListBox listbox = ((ListBox)tabControl1.SelectedTab.GetChildAtPoint(new Point(0, 0))); ObjForListView model = (ObjForListView)(listbox.SelectedItem); if (model != null) { Vector3 scale = new Vector3(1f,1f,1f); switch (model.Name) { case "droid": scale = new Vector3(0.085f, 0.085f, 0.085f); break; case "miku": scale = new Vector3(0.35f, 0.35f, 0.35f); break; case "tournevis": scale = new Vector3(7.7f, 7.7f, 7.7f); break; case "flecheVerte": scale = new Vector3(0.88f, 0.88f, 0.88f); break; case "box": scale = new Vector3(20f, 20f, 20f); break; } Object3d obj3d = new Object3d(Convert.ToInt32(model.Id), model.Name, model.Type, new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0, 0, 0), scale, RenderForm.m_Device); obj3d.setNb(this.number); try { obj3d.LoadMesh(); } catch (FileNotFoundException) { string str = "Le modèle " + obj3d.getName() + " n'existe pas dans le chemain " + obj3d.getPath(); MessageBox.Show(this, str, "Message d'erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } RenderForm.Objects.Add(obj3d); lstbx_Objects.Items.Add(model); tabControl1.SelectedIndex = 0; if (lstbx_Objects.Items.Count > 0) { lstbx_Objects.SelectedIndex = lstbx_Objects.Items.Count - 1; lstbx_Objects_Click(null, EventArgs.Empty); } btn_RemoveObject.Enabled = true; } }