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(); }
protected void CargaValores() { float[] color=new float[4]; XmlDocument partReader=new XmlDocument(); reader.Load(Application.StartupPath+"\\RsaConfig.xml"); XmlNode node = reader.SelectSingleNode("./Descriptor"); //particulaXml node=node.FirstChild; config["particulaXml"]=node.InnerText; //particulaInicial node=node.NextSibling; config["particulaInicial"]=node.InnerText; //ladoCubo node=node.NextSibling; config["ladoCubo"]=ParseDouble(node.InnerText); //fraccionVolumetrica node=node.NextSibling; config["fraccionVolumetrica"]=ParseDouble(node.InnerText); //parametroVariable node=node.NextSibling; config["parametroVariable"]=node.InnerText; XmlParticulaReader part=new XmlParticulaReader((string)config["particulaXml"]); ParametroInfo pinfo=part.GetInfoParametros((string)config["particulaInicial"]); if(node.InnerText=="cantidadParticulas") { node=node.NextSibling; config["cantidadParticulas"]=int.Parse(node.InnerText); node=node.NextSibling; XmlNodeList xmlnod=node.SelectNodes("parametro"); int count=xmlnod.Count; object[] aux=new object[count]; for(int i=0;i<count;i++) { aux[i]=0; } config["parametros"]=aux; } else { node=node.NextSibling; config["cantidadParticulas"]=0; node=node.NextSibling; XmlNodeList xmlnod=node.SelectNodes("parametro"); int count=0; object[] aux=new object[xmlnod.Count]; foreach(XmlNode nod in xmlnod) { aux[count]=Parse(nod.InnerText,pinfo.ListaDatosDeParametros[count].tipo); count++; } config["parametros"]=aux; } //spheresInBox node=node.NextSibling; config["spheresInBox"]=bool.Parse(node.InnerText);; //colorCubo node=node.NextSibling; color[0]=ParseFloat(node.SelectSingleNode("rojo").InnerText); color[1]=ParseFloat(node.SelectSingleNode("verde").InnerText); color[2]=ParseFloat(node.SelectSingleNode("azul").InnerText); color[3]=ParseFloat(node.SelectSingleNode("transparencia").InnerText); config["colorCubo"]=color; //colorParticulaAleatorio node=node.NextSibling; config["colorParticulaAleatorio"]=bool.Parse(node.InnerText);; color=new float[4]; node=node.NextSibling; color[0]=ParseFloat(node.SelectSingleNode("rojo").InnerText); color[1]=ParseFloat(node.SelectSingleNode("verde").InnerText); color[2]=ParseFloat(node.SelectSingleNode("azul").InnerText); color[3]=ParseFloat(node.SelectSingleNode("transparencia").InnerText); config["colorParticulas"]=color; //mostrarNumeros node=node.NextSibling; config["mostrarNumeros"]=bool.Parse(node.InnerText); //rsaClase node=node.NextSibling; config["rsaClase"]=node.InnerText; }
public GestorDibujables(XmlParticulaReader infoParticle) { pinfo=infoParticle; //nombreDibujables = new Hashtable(); }
public WinForms() { modified=false; scene = new Scene(); scene.redraw += new EventHandler(scene_redraw); InitializeComponent(); if(Screen.PrimaryScreen.Bounds.Width==800 &&Screen.PrimaryScreen.Bounds.Height==600) { this.WindowState=FormWindowState.Maximized; } this.uiStatusBar1.Panels[0].Width=this.uiTab1.Location.X+uiTab1.Width; simpleOpenGlControl1.InitializeContexts(); scene.Initialize(); scene.Reshape(simpleOpenGlControl1.Width, simpleOpenGlControl1.Height); config=new RSAConfiguration(); reader=new XmlParticulaReader((string)config.Valores["particulaXml"]); ParametroInfo pInfo=reader.GetInfoParametros((string)config.Valores["particulaInicial"]); // varPar=(object[])config.Valores["parametros"]; // for(int i=0;i<pInfo.Cantidad;i++) // { // varPar[i]=0; // } scene.element=new RSADibujable(config, reader.GetInfoParticulas((string)config.Valores["particulaInicial"]),this); textBox1.Text=((RSADibujable)scene.element).AnsysObj.Ruta; textBox2.Text=((RSADibujable)scene.element).AnsysObj.NombreArchivo; Init(); // this.progressBar1.Location=this.uiStatusBar1.Location; // this.progressBar1.Left=this.uiTab1.Location.X+uiTab1.Width; // this.progressBar1.Top-=this.progressBar1.Height; }