Esempio n. 1
0
    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"));
    }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
 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
     //
 }
Esempio n. 4
0
    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;
    }
Esempio n. 6
0
    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;
    }
Esempio n. 7
0
    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);
        }
    }
Esempio n. 10
0
    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);
    }
Esempio n. 11
0
    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());
    }