public virtual ParticulaDibujable[] GeneraDibujables(Particula[] particula,float[] color,bool aleat) { ArrayList result=new ArrayList(); for (int i = 0; i < particula.Length; i++) { if(particula[i]==null)return (ParticulaDibujable[])result.ToArray(Type.GetType("ParticulaDibujable")); try { if(tempInfo==null || tempInfo.Nombre!=particula[i].GetType().Name) { tempInfo=pinfo.GetInfoParticulas(particula[i].GetType().Name); } } catch (Exception ex) { throw new Exception("Error al Generar Particulas Dibujables"); } assem=GestorEnsamblados.GetAssemblyByName(tempInfo.EnsambladoDibujable,tempInfo.PathDibujable); if(aleat) { result.Add((ParticulaDibujable)assem.CreateInstance(tempInfo.NombreDibujable, true, BindingFlags.CreateInstance, null, new object[] {particula[i]}, null, null)); } else { result.Add((ParticulaDibujable)assem.CreateInstance(tempInfo.NombreDibujable, true, BindingFlags.CreateInstance, null, new object[] {particula[i], color}, null, null)); } } return (ParticulaDibujable[])result.ToArray(Type.GetType("ParticulaDibujable")); }
public virtual ANSYSWriter GeneraAnsysWriter(string particulaName,RSA owner) { ANSYSWriter ansysReturn = null; tempInfo = pinfo.GetInfoParticulas(particulaName); assem = GestorEnsamblados.GetAssemblyByName(tempInfo.EnsambladoDibujable, tempInfo.PathDibujable); ansysReturn=(ANSYSWriter)assem.CreateInstance(tempInfo.AnsysWriterName, true, BindingFlags.CreateInstance, null, new object[] {owner}, null, null); return ansysReturn; }
public AddParticula() { // // Required for Windows Form Designer support // InitializeComponent(); this.listBox1.SelectedIndex=0; pInfo=new ParticulaInfo(); filled = false; //texts // // TODO: Add any constructor code after InitializeComponent call // }
public RSADibujable(RSAConfiguration config,ParticulaInfo pInfo,ITracker track) { aleatpart=(bool)config.Valores["colorParticulaAleatorio"]; showNumber=(bool)config.Valores["mostrarNumeros"]; colorParticula=(float[])config.Valores["colorParticulas"]; idVisualizarPlanesOn=Gl.glGenLists(1); idVisualizarPlanesOff=Gl.glGenLists(1); xmlreader = new XmlParticulaReader((string)config.Valores["particulaXml"]); //ParticulaInfo xmlInfo = pInfo; rsa=new GestorAlgoritmo().CreaRSA(config,pInfo,track); // if(((string)config.Valores["rsaClase"])=="RSAAdvanced") // { // if((((string)config.Valores["parametroVariable"])=="cantidadParticulas")) // { // rsa = new RSAAdvanced((double)config.Valores["ladoCubo"], (double)config.Valores["fraccionVolumetrica"],(int)config.Valores["cantidadParticulas"], pInfo,track); // } // else // { // if(((object[])config.Valores["parametros"]).Length!=pInfo.InfoParametro.Cantidad)throw new Exception("Error"); // object[] auxArray=(object[])config.Valores["parametros"]; // rsa = new RSAAdvanced((double)config.Valores["ladoCubo"], (double)config.Valores["fraccionVolumetrica"],auxArray, pInfo,track); // } // } // else // { // if((((string)config.Valores["parametroVariable"])=="cantidadParticulas")) // { // rsa=new RSA((double)config.Valores["ladoCubo"], (double)config.Valores["fraccionVolumetrica"],(int)config.Valores["cantidadParticulas"], pInfo,track); // } // else // { // if(((object[])config.Valores["parametros"]).Length!=pInfo.InfoParametro.Cantidad)throw new Exception("Error"); // object[] auxArray=(object[])config.Valores["parametros"]; // rsa = new RSA((double)config.Valores["ladoCubo"], (double)config.Valores["fraccionVolumetrica"],auxArray, pInfo,track); // } // } spheresInBox =(bool)config.Valores["spheresInBox"]; gestorDib = new GestorDibujables(xmlreader); ParticulaDibujable.SetOwner(this); NumerosDibujables.SetOwner(this); cuboDib = new CuboDibujable(this, (float[])config.Valores["colorCubo"], new float[] { 0, 0, 0, 0 }); planosAClipear = new double[6][] { new double[4] { 1, 0, 0, rsa.Cubo.PuntoInicial.X }, new double[4] { 0, 1, 0, rsa.Cubo.PuntoInicial.Y }, new double[4] { 0, 0, 1, rsa.Cubo.PuntoInicial.Z }, new double[4] { -1, 0, 0, rsa.Cubo.PuntoInicial.X + rsa.Cubo.Lado }, new double[4] { 0, -1, 0, rsa.Cubo.PuntoInicial.Y + rsa.Cubo.Lado }, new double[4] { 0, 0, -1, rsa.Cubo.PuntoInicial.Z + rsa.Cubo.Lado } }; numdib = new NumerosDibujables[rsa.particulas.Length]; ansyswriter = gestorDib.GeneraAnsysWriter(pInfo.Nombre, this.rsa); this.Recompile(); }
public virtual ParticulaInfo GetInfoParticulas(string particula) { ParticulaInfo xpartInfo = new ParticulaInfo(); reader.Load(Application.StartupPath+"\\"+xmlPath); XmlNode node = reader.SelectSingleNode("./*/particula[nombre='" + particula + "']"); XmlNode auxNode = node.SelectSingleNode("nombre"); //Nombre xpartInfo.Nombre = auxNode.InnerText; auxNode = node.SelectSingleNode("nombreDibujable"); //Nombre Dibujable xpartInfo.NombreDibujable = auxNode.InnerText; auxNode = node.SelectSingleNode("path"); //Path xpartInfo.Path = auxNode.InnerText; ////Parametros //xpartInfo.InfoParametro = new ParametroInfo(); //auxNode = node.SelectSingleNode("parametros/cantidad"); ; ////Cantidad //xpartInfo.InfoParametro.Cantidad = int.Parse(auxNode.InnerText); //Ensamblado auxNode = node.SelectSingleNode("nEnsamblado"); xpartInfo.Ensamblado=auxNode.InnerText; //Ensamblado auxNode = node.SelectSingleNode("nEnsambladoDibujable"); xpartInfo.EnsambladoDibujable=auxNode.InnerText; //path Dibujable auxNode = node.SelectSingleNode("pathDibujable"); xpartInfo.PathDibujable=auxNode.InnerText; //Parametro de Particula auxNode = node.SelectSingleNode("nombreParametro"); xpartInfo.ParametroDeParticula = auxNode.InnerText; //ANSYS WRITER auxNode = node.SelectSingleNode("ansysWriterClase"); xpartInfo.AnsysWriterName = auxNode.InnerText; auxNode=null; xpartInfo.InfoParametro = GetInfoParametros(particula); return xpartInfo; }
public virtual RSA CreaRSA(RSAConfiguration config,ParticulaInfo pInfo,ITracker track) { Assembly partAssembly = GestorEnsamblados.GetAssemblyByName((string)config.Valores["rsaClase"],/*config.Valores["rsaEnsamblado"]*/ "TES1.dll"); RSA result=null; try { if((((string)config.Valores["parametroVariable"])=="cantidadParticulas")) { result=(RSA)partAssembly.CreateInstance((string)config.Valores["rsaClase"],true,BindingFlags.CreateInstance,null,new object[]{(double)config.Valores["ladoCubo"], (double)config.Valores["fraccionVolumetrica"],(int)config.Valores["cantidadParticulas"], pInfo,track},null,null); } else { if(((object[])config.Valores["parametros"]).Length!=pInfo.InfoParametro.Cantidad)throw new Exception("Error"); object[] auxArray=(object[])config.Valores["parametros"]; result=(RSA)partAssembly.CreateInstance((string)config.Valores["rsaClase"],true,BindingFlags.CreateInstance,null,new object[]{(double)config.Valores["ladoCubo"], (double)config.Valores["fraccionVolumetrica"],auxArray, pInfo,track},null,null); } } catch(Exception e){throw new Exception("Error al crear particula en Gestor de Creacion");} if(result==null)throw new Exception("Error al crear particula en Gestor de Creacion"); return result; }
public virtual void ReInit(RSAConfiguration config,ParticulaInfo pInfo,ITracker track) { aleatpart=(bool)config.Valores["colorParticulaAleatorio"]; showNumber=(bool)config.Valores["mostrarNumeros"]; for(int i=0;i<colorParticula.Length;i++ ) colorParticula[i]=((float[])config.Valores["colorParticulas"])[i]; // idVisualizarPlanesOn=Gl.glGenLists(1); // idVisualizarPlanesOff=Gl.glGenLists(1); xmlreader.Path=(string)config.Valores["particulaXml"]; //ParticulaInfo xmlInfo = xmlreader.GetInfoParticulas((string)config.Valores["particulaInicial"]); if(((string)config.Valores["rsaClase"])=="RSAAdvanced") { if((((string)config.Valores["parametroVariable"])=="cantidadParticulas")) { rsa = new RSAAdvanced((double)config.Valores["ladoCubo"], (double)config.Valores["fraccionVolumetrica"],(int)config.Valores["cantidadParticulas"], pInfo,track); } else { if(((object[])config.Valores["parametros"]).Length!=pInfo.InfoParametro.Cantidad)throw new Exception("Error"); object[] auxArray=(object[])config.Valores["parametros"]; rsa = new RSAAdvanced((double)config.Valores["ladoCubo"], (double)config.Valores["fraccionVolumetrica"],auxArray, pInfo,track); } } else { if((((string)config.Valores["parametroVariable"])=="cantidadParticulas")) { rsa=new RSA((double)config.Valores["ladoCubo"], (double)config.Valores["fraccionVolumetrica"],(int)config.Valores["cantidadParticulas"], pInfo,track); } else { if(((object[])config.Valores["parametros"]).Length!=pInfo.InfoParametro.Cantidad)throw new Exception("Error"); object[] auxArray=(object[])config.Valores["parametros"]; rsa = new RSA((double)config.Valores["ladoCubo"], (double)config.Valores["fraccionVolumetrica"],auxArray, pInfo,track); } } spheresInBox =(bool)config.Valores["spheresInBox"]; gestorDib.Xml=xmlreader; ParticulaDibujable.SetOwner(this); NumerosDibujables.SetOwner(this); cuboDib.Color=(float[])config.Valores["colorCubo"]; //planosAClipear = new double[6][] { new double[4] { 1, 0, 0, rsa.Cubo.PuntoInicial.X }, new double[4] { 0, 1, 0, rsa.Cubo.PuntoInicial.Y }, new double[4] { 0, 0, 1, rsa.Cubo.PuntoInicial.Z }, new double[4] { -1, 0, 0, rsa.Cubo.PuntoInicial.X + rsa.Cubo.Lado }, new double[4] { 0, -1, 0, rsa.Cubo.PuntoInicial.Y + rsa.Cubo.Lado }, new double[4] { 0, 0, -1, rsa.Cubo.PuntoInicial.Z + rsa.Cubo.Lado } }; numdib = new NumerosDibujables[rsa.particulas.Length]; ansyswriter = gestorDib.GeneraAnsysWriter(pInfo.Nombre, this.rsa); this.Recompile(); }
protected string ParametrosXmlCode(ParticulaInfo xpart) { StringBuilder result = new StringBuilder(); result.Append("<parametros>"); for (int i = 0; i < xpart.InfoParametro.Cantidad; i++) { result .Append( "<datoParametro>" + "<nombre>" + xpart.InfoParametro.ListaDatosDeParametros[i].nombre + "</nombre>" + "<tipo>" + xpart.InfoParametro.ListaDatosDeParametros[i].tipo + "</tipo>"+ "</datoParametro>"); } result.Append("</parametros>"); return result.ToString(); }
public virtual void UpdateInfoParticula(string particula, ParticulaInfo updateInfo) { reader.Load(Application.StartupPath+"\\"+xmlPath); XmlNode oldCd; oldCd = reader.SelectSingleNode("/particulas/particula[nombre='" + particula + "']"); if (oldCd != null) { XmlElement newCd = reader.CreateElement("particula"); newCd.InnerXml = "<nombre>" + updateInfo.Nombre + "</nombre>" + "<nombreDibujable>" + updateInfo.NombreDibujable + "</nombreDibujable>" + "<path>" + updateInfo.Path + "</path>" + ParametrosXmlCode(updateInfo)+ "<nEnsamblado>"+updateInfo.Ensamblado+"</nEnsamblado>"+ "<nEnsambladoDibujable>"+updateInfo.EnsambladoDibujable+"</nEnsambladoDibujable>"+ "<pathDibujable>"+updateInfo.PathDibujable+"</pathDibujable>"+ "<nombreParametro>"+updateInfo.ParametroDeParticula+"</nombreParametro>"+ "<ansysWriterClase>"+updateInfo.AnsysWriterName+"</ansysWriterClase>"; reader.SelectSingleNode("/particulas").ReplaceChild(newCd, oldCd); //save the output to a file reader.Save(Application.StartupPath+"\\"+xmlPath); } }
public virtual void InsertInfoParticula(ParticulaInfo pinfo) { reader.Load(Application.StartupPath+"\\"+xmlPath); XmlElement newCd = reader.CreateElement("particula"); newCd.InnerXml = "<nombre>" + pinfo.Nombre + "</nombre>" + "<nombreDibujable>" + pinfo.NombreDibujable + "</nombreDibujable>" + "<path>" + pinfo.Path + "</path>" + ParametrosXmlCode(pinfo)+ "<nEnsamblado>"+pinfo.Ensamblado+"</nEnsamblado>"+ "<nEnsambladoDibujable>"+pinfo.EnsambladoDibujable+"</nEnsambladoDibujable>"+ "<pathDibujable>" + pinfo.PathDibujable + "</pathDibujable>" + "<nombreParametro>" + pinfo.ParametroDeParticula + "</nombreParametro>"+ "<ansysWriterClase></ansysWriterClase>"; XmlNode particulas = reader.SelectSingleNode("/particulas"); particulas.AppendChild(newCd); reader.Save(Application.StartupPath+"\\"+xmlPath); }
public virtual ParticulaInfo[] GetParticulas() { ArrayList result = new ArrayList(); reader.Load(Application.StartupPath+"\\"+xmlPath); XmlNodeList nombreParticulas = reader.SelectNodes("./*/*"); ParticulaInfo xpartInfo = new ParticulaInfo(); foreach (XmlNode node in nombreParticulas) { XmlNode auxNode = node.SelectSingleNode("nombre"); //Nombre xpartInfo.Nombre = auxNode.InnerText; auxNode = node.SelectSingleNode("nombreDibujable"); //Nombre Dibujable xpartInfo.NombreDibujable = auxNode.InnerText; auxNode = node.SelectSingleNode("path"); //Path xpartInfo.Path = auxNode.InnerText; ////Parametros //xpartInfo.InfoParametro = new ParametroInfo(); //auxNode = node.SelectSingleNode("parametros/cantidad"); ; ////Cantidad //xpartInfo.InfoParametro.Cantidad = int.Parse(auxNode.InnerText); //auxNode = null; //Ensamblado auxNode = node.SelectSingleNode("nEnsamblado"); xpartInfo.Ensamblado=auxNode.InnerText; //Ensamblado auxNode = node.SelectSingleNode("nEnsambladoDibujable"); xpartInfo.EnsambladoDibujable=auxNode.InnerText; //path Dibujable auxNode = node.SelectSingleNode("pathDibujable"); xpartInfo.PathDibujable=auxNode.InnerText; //Parametro de Particula auxNode = node.SelectSingleNode("nombreParametro"); xpartInfo.ParametroDeParticula = auxNode.InnerText; //ANSYS WRITER auxNode = node.SelectSingleNode("ansysWriterClase"); xpartInfo.AnsysWriterName = auxNode.InnerText; auxNode=null; xpartInfo.InfoParametro = GetInfoParametros(xpartInfo.Nombre); result.Add(xpartInfo); } return (ParticulaInfo[])result.ToArray(xpartInfo.GetType()); }