private List <VizData> GetStateRepresentation() { List <VizData> result = new List <VizData>(); bool allUnsafe = true; for (int j = 0; j < plotData.Count; ++j) { if (plotData[j].type != PlotData.PlotType.UNSAFE) { allUnsafe = false; break; } } for (int j = 0; j < plotData.Count; ++j) { PlotData data = plotData[j]; if (data.q == null) { continue; } Dictionary <string, DoubleInterval> varValues = GetSystemState(data.q); if (timeAxis) { PlotData datanext = j < plotData.Count - 1 ? plotData[j + 1] : null; if (datanext == null || datanext.q == null || data.searchIndex != datanext.searchIndex) { continue; } Dictionary <string, DoubleInterval> varValuesNext = datanext != null?GetSystemState(datanext.q) : null; // X is time double time = NormalizeAlongAxis(data.q.step, 0); double timenext = NormalizeAlongAxis(datanext.q.step, 0); if (searchIndexAxis) { // Z is search index double index = NormalizeAlongAxis(data.searchIndex, 2) * searchZDepth; DoubleInterval value = axisValue[1].Eval(varValues); DoubleInterval valueNext = axisValue[1].Eval(varValuesNext); double[] nvalue = NormalizeAlongAxis(value, 1); double[] nvalueNext = NormalizeAlongAxis(valueNext, 1); VizData viz = new VizData(); viz.data = data; viz.quad[0] = new Vector3d(time, nvalue[1], index); viz.quad[1] = new Vector3d(time, nvalue[0], index); viz.quad[2] = new Vector3d(timenext, nvalueNext[0], index); viz.quad[3] = new Vector3d(timenext, nvalueNext[1], index); result.Add(viz); } else { if (data.type == PlotData.PlotType.UNSAFE && !allUnsafe) { continue; } // Y-Z are variables DoubleInterval valueY = axisValue[1].Eval(varValues); DoubleInterval valueZ = axisValue[2].Eval(varValues); DoubleInterval valueYnext = axisValue[1].Eval(varValuesNext); DoubleInterval valueZnext = axisValue[2].Eval(varValuesNext); double[] nvalueY = NormalizeAlongAxis(valueY, 1); double[] nvalueZ = NormalizeAlongAxis(valueZ, 2); double[] nvalueYnext = NormalizeAlongAxis(valueYnext, 1); double[] nvalueZnext = NormalizeAlongAxis(valueZnext, 2); VizData viz = new VizData(); viz.data = data; viz.quad[0] = new Vector3d(time, nvalueY[1], nvalueZ[1]); viz.quad[1] = new Vector3d(time, nvalueY[0], nvalueZ[1]); viz.quad[2] = new Vector3d(timenext, nvalueYnext[0], nvalueZnext[1]); viz.quad[3] = new Vector3d(timenext, nvalueYnext[1], nvalueZnext[1]); result.Add(viz); viz = new VizData(); viz.data = data; viz.quad[0] = new Vector3d(time, nvalueY[1], nvalueZ[0]); viz.quad[1] = new Vector3d(time, nvalueY[0], nvalueZ[0]); viz.quad[2] = new Vector3d(timenext, nvalueYnext[0], nvalueZnext[0]); viz.quad[3] = new Vector3d(timenext, nvalueYnext[1], nvalueZnext[0]); result.Add(viz); viz = new VizData(); viz.data = data; viz.quad[0] = new Vector3d(time, nvalueY[1], nvalueZ[0]); viz.quad[1] = new Vector3d(time, nvalueY[1], nvalueZ[1]); viz.quad[2] = new Vector3d(timenext, nvalueYnext[1], nvalueZnext[1]); viz.quad[3] = new Vector3d(timenext, nvalueYnext[1], nvalueZnext[0]); result.Add(viz); viz = new VizData(); viz.data = data; viz.quad[0] = new Vector3d(time, nvalueY[0], nvalueZ[0]); viz.quad[1] = new Vector3d(time, nvalueY[0], nvalueZ[1]); viz.quad[2] = new Vector3d(timenext, nvalueYnext[0], nvalueZnext[1]); viz.quad[3] = new Vector3d(timenext, nvalueYnext[0], nvalueZnext[0]); result.Add(viz); } } else { if (searchIndexAxis) { // X-Y are variables double index = NormalizeAlongAxis(data.searchIndex, 2) * searchZDepth; DoubleInterval valueX = axisValue[0].Eval(varValues); DoubleInterval valueY = axisValue[1].Eval(varValues); double[] nvalueX = NormalizeAlongAxis(valueX, 0); double[] nvalueY = NormalizeAlongAxis(valueY, 1); VizData viz = new VizData(); viz.data = data; viz.quad[0] = new Vector3d(nvalueX[1], nvalueY[0], index); viz.quad[1] = new Vector3d(nvalueX[0], nvalueY[0], index); viz.quad[2] = new Vector3d(nvalueX[0], nvalueY[1], index); viz.quad[3] = new Vector3d(nvalueX[1], nvalueY[1], index); result.Add(viz); } } } return(result); }
public bool doQuery(PropertyGrid grid) { data = (VizData)grid.SelectedObject; ; string res = viz.cataloguesData(data.Target, data.Radius, data.Unit, data.Text); try { XmlDocument doc = new XmlDocument(); doc.LoadXml(res); //XmlNodeList root = doc.DocumentElement.ChildNodes;//SelectNodes("VOTABLE"); //object[] o = new object[root.Count]; //int i=0; //foreach (XmlNode n in root) //{ // o[i++] = n.InnerXml; //} //grid.SelectedObjects = o; grid.SelectedObject = doc.DocumentElement.FirstChild; return true; } catch (Exception) {} OutData x = new OutData(); x.Result = res; grid.SelectedObject = x; return (x.Result != null); }