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 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(); }