Beispiel #1
0
        public double calNash(string[] files)
        {
            string SimFile  = files[2];
            string ObsFile  = files[1];
            string PrecFile = files[0];
            QData  ObsQOrig = ReadQData(ObsFile);
            QData  SimQOrig = ReadQData(SimFile);
            QData  SimQ     = new QData();
            QData  ObsQ     = new QData();

            if (SimQOrig.count > ObsQOrig.count)
            {
                int        CommonNum = 0;
                double[]   QS        = new double[ObsQOrig.count];
                DateTime[] TimeS     = new DateTime[ObsQOrig.count];
                double[]   QO        = new double[ObsQOrig.count];
                DateTime[] TimeO     = new DateTime[ObsQOrig.count];
                for (int i = 0; i < ObsQOrig.count; i++)
                {
                    for (int j = 0; j < SimQOrig.count; j++)
                    {
                        if (SimQOrig.Time[j] == ObsQOrig.Time[i])
                        {
                            QO[CommonNum]    = ObsQOrig.QValue[i];
                            TimeO[CommonNum] = ObsQOrig.Time[i];
                            QS[CommonNum]    = SimQOrig.QValue[j];
                            TimeS[CommonNum] = SimQOrig.Time[j];
                            CommonNum++;
                            continue;
                        }
                    }
                }
                //MessageBox.Show(CommonNum.ToString());
                double[]   QS2    = new double[CommonNum];
                DateTime[] TimeS2 = new DateTime[CommonNum];
                double[]   QO2    = new double[CommonNum];
                DateTime[] TimeO2 = new DateTime[CommonNum];
                for (int k = 0; k < CommonNum; k++)
                {
                    QS2[k]    = QS[k];
                    TimeS2[k] = TimeS[k];
                    QO2[k]    = QO[k];
                    TimeO2[k] = TimeO[k];
                }
                SimQ.Time   = TimeS2;
                SimQ.QValue = QS2;
                SimQ.count  = CommonNum;
                ObsQ.Time   = TimeO2;
                ObsQ.QValue = QO2;
                ObsQ.count  = CommonNum;
            }
            else
            {
                SimQ = SimQOrig;
            }
            double nash = NashCoef(ObsQ.QValue, SimQ.QValue);

            return(nash);
        }
        public void StoreInfo(QData data)
        {
            var qt = new QTable {
                Name = "a_Tes", Comment = "", Pk = "Id", PkComment = "Идентификатор"
            };

            RootType.StoreInfo(qt, null, "", null, "a_Tes_", null, data);
        }
Beispiel #3
0
 public void StartGame(int categoryIndex)
 {
     questions      = new List <Pregunta>();
     dataScriptable = quizDataList[categoryIndex];
     questions.AddRange(dataScriptable.questions);
     SelectQuestion();
     gameStatus = StatusJuego.PLAYING;
 }
Beispiel #4
0
 /// <summary>
 /// Prepare static buffer for Quaternion smoother
 /// </summary>
 /// <param name="size"></param>
 private static void InitQData(int size)
 {
     lowPassSamples = size;
     qSamples       = new QData[lowPassSamples];
     for (int i = 0; i < lowPassSamples; i++)
     {
         qSamples[i] = new QData();
     }
 }
Beispiel #5
0
        public QData ReadQData(string QFile)
        {
            StreamReader sr = new StreamReader(QFile, Encoding.Default);
            string       line;
            int          count = 0;

            while ((line = sr.ReadLine()) != null)
            {
                //MessageBox.Show(line.ToString().Split('\t')[2]);
                count++;
            }
            sr.Close();
            double[]     Q    = new double[count];
            DateTime[]   Time = new DateTime[count];
            StreamReader sr2  = new StreamReader(QFile, Encoding.Default);
            int          idx  = 0;
            string       line2;

            while ((line2 = sr2.ReadLine()) != null)
            {
                //try
                //{
                //    Time[idx] = DateTime.Parse(System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[0] + " " + System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[1]);
                //    Q[idx] = Convert.ToDouble(System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[2].ToString().Trim());
                //    idx++;
                //}
                //catch (System.Exception ex)
                //{
                //    DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo();
                //    dtFormat.ShortDatePattern = "yyyy/MM/dd";
                //    Time[idx] = Convert.ToDateTime(System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[0].ToString(), dtFormat);
                //    Q[idx] = Convert.ToDouble(System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[1].ToString().Trim());
                //    idx++;
                //}

                Time[idx] = DateTime.Parse(System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[0] + " " + System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[1]);
                //Time[idx] = DateTime.Parse(line2.Split('\t')[0].ToString());
                Q[idx] = Convert.ToDouble(System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[2].ToString().Trim());
                //MessageBox.Show(Time[idx].ToString());
                idx++;
            }
            QData qdata = new QData();

            qdata.Time   = Time;
            qdata.QValue = Q;
            qdata.count  = count;
            sr2.Close();
            return(qdata);
        }
Beispiel #6
0
    public static void Main(string[] args)
    {
        var occ = new int[MAX];
        for (var i = 0; i < MAX; i++)
        {
            occ[i] = -1;
        }

        int n = readInt();
        var num = readArr();
        bt = new long[n + 1];
        int qc = readInt();
        var q = new QData[qc];
        for (int i = 0; i < qc; i++)
        {
            var ip = readArr();
            q[i] = new QData(ip[0], ip[1], i);
        }
        Comparison<QData> cmp = (q1, q2) => q1.j.CompareTo(q2.j);
        Array.Sort(q, cmp);
        var result = new long[qc];
        var pos = 0;
        for (var i = 0; i < qc; i++)
        {
            while (pos < n && pos <= q[i].j)
            {
                if (occ[num[pos]] != -1)
                {
                    update(occ[num[pos]] + 1, -1);
                }
                update(pos + 1, 1);
                occ[num[pos]] = pos++;
            }

            result[q[i].pos] = query(q[i].j) - query(q[i].i - 1);
        }

        for (var i = 0; i < result.Length; i++)
        {
            Console.WriteLine(result[i]);
        }
    }
Beispiel #7
0
        public QData ReadQData(string QFile)
        {
            StreamReader sr = new StreamReader(QFile, Encoding.Default);
            string       line;
            int          count = 0;

            while ((line = sr.ReadLine()) != null)
            {
                //MessageBox.Show(line.ToString().Split('\t')[2]);
                count++;
            }
            sr.Close();
            double[]     Q    = new double[count];
            DateTime[]   Time = new DateTime[count];
            StreamReader sr2  = new StreamReader(QFile, Encoding.Default);
            int          idx  = 0;
            string       line2;

            while ((line2 = sr2.ReadLine()) != null)
            {
                Time[idx] = DateTime.Parse(System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[0] + " " + System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[1]);
                Q[idx]    = Convert.ToDouble(System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[2].ToString().Trim());
                //Time[idx] = DateTime.Parse(line2.Split('\t')[0].ToString() + " " + line2.Split('\t')[1].ToString());
                //Time[idx] = DateTime.Parse(line2.Split('\t')[0].ToString());
                //Q[idx] = Convert.ToDouble(line2.Split('\t')[1].ToString().Trim());
                //MessageBox.Show(Time[idx].ToString());
                idx++;
            }
            sr2.Close();
            QData qdata = new QData();

            qdata.Time   = Time;
            qdata.QValue = Q;
            qdata.count  = count;
            return(qdata);
        }
Beispiel #8
0
        private QFile transfer(string path)
        {
            try
            {
                DataSet   ds = ImportFormExcel(path);
                DataTable dt = ImportFormExcel(path).Tables[0];

                int rows = dt.Rows.Count + 1;
                int cols = dt.Columns.Count;

                object[,] objs = new object[cols, rows];
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    objs[i, 0] = dt.Columns[i].Caption;
                }

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        objs[j, i + 1] = dt.Rows[i][j];
                    }
                }

                QFile qf    = new QFile();
                int   count = (dt.Columns.Count - 3) / 4;
                qf[1002] = SheetName;
                qf[1005] = SheetName;

                for (int i = 0; i < count; i++)
                {
                    QParamter p = new QParamter();
                    p.id = i + 1;

                    p[2001] = objs[i * 4 + 6, 0].ToString();
                    p[2102] = double.Parse(objs[i * 4 + 3, 1].ToString());
                    p[2110] = double.Parse(objs[i * 4 + 4, 1].ToString());
                    p[2111] = double.Parse(objs[i * 4 + 5, 1].ToString());

                    double data = double.Parse(objs[i * 4 + 6, 1].ToString());

                    qf.pramters.Add(p);
                }

                int hcount = dt.Rows.Count / 2 + 1;

                for (int i = 0; i < hcount; i++)
                {
                    QData    data = new QData();
                    DateTime date = DateTime.Parse(objs[0, i * 2 + 1].ToString()
                                                   + " " + objs[1, i * 2 + 1].ToString());

                    for (int j = 0; j < count; j++)
                    {
                        QDataItem di = new QDataItem();
                        di.date = date;
                        string v = objs[j * 4 + 3, i * 2 + 1].ToString();

                        if (v == null || v.Length == 0)
                        {
                            di.p1 = 256;
                        }
                        else
                        {
                            di.value = double.Parse(v);
                        }

                        data.items.Add(di);
                    }

                    qf.data.Add(data);
                }


                return(qf);
            }
            catch (Exception e1)
            {
                AddLog(path, e1.Message);
            }
            return(null);
        }
        internal static void StoreInfo(QTable qt, QHierarchy h, string prefix, string comment, string tab_prefix, string tab_comment, QData data)
        {
            var prf = (prefix != null && prefix.Length > 10 ? prefix.Substring(0, 5) + prefix.Substring(prefix.Length - 5) : prefix);

            data.AddInfo(qt, h,
                         new QField {
                Name = "StringElement1", Type = QType.String, Size = 20, Prefix = prf, Comment = (comment != null ? comment + ": " : "") + ""
            },
                         new QField {
                Name = "StringElement2", Type = QType.String, Size = 100, Prefix = prf, Comment = (comment != null ? comment + ": " : "") + ""
            },
                         new QField {
                Name = "StringElement3", Type = QType.String, Size = 100, Prefix = prf, Comment = (comment != null ? comment + ": " : "") + ""
            });

            StringList.StoreInfo(new QTable {
                Name = (tab_prefix.Length > 23 ? tab_prefix.Substring(0, 23) : tab_prefix) + "emp", Comment = (tab_comment != null ? tab_comment + ": " : "") + "", Pk = "Id", PkComment = "Идентификатор", Fk = "IdFk", FkComment = "Идентификатор родительской записи"
            },
                                 new QHierarchy("empty", QHType.List, h), -1, "", data);

            StringWithAttrType.StoreInfo(qt, new QHierarchy("StringWithAttr", QHType.Member, h), prefix + "SWA", (comment != null ? comment + ": " : "") + "", tab_prefix + "SWA", (tab_comment != null ? tab_comment + ": " : "") + "", data);
        }
 internal static void StoreInfo(QTable qt, QHierarchy h, string prefix, string comment, string tab_prefix, string tab_comment, QData data)
 {
     data.AddInfo(qt, h);
 }
Beispiel #11
0
        private bool LoadData(string p)
        {
            try
            {
                string content = "";
                using (StreamReader sr = new StreamReader(p, Encoding.Default))
                {
                    content = sr.ReadToEnd();
                }

                string[] lines = content.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

                for (int i = 0; i < lines.Length; i++)
                {
                    try
                    {
                        //将第i行数据分成三分,分别为时间,数据和头文件。
                        string[] sectors = lines[i].Split(new char[] { ',', '\r' }, StringSplitOptions.RemoveEmptyEntries);

                        //将第二段数据拆分,拆分后,倒数第二段为数据。
                        string[] pts = sectors[1].Split(new char[] { ' ', ':' }, StringSplitOptions.RemoveEmptyEntries);

                        //保存数据。
                        QData     data = new QData();
                        QDataItem di   = new QDataItem();
                        di.date  = DateTime.Parse(sectors[0]);
                        di.value = double.Parse(pts[pts.Length - 2]);
                        data.items.Add(di);

                        //根据第三段寻找头文件,如果找到则退出。
                        bool added = false;
                        for (int j = 0; j < qfs.Count; j++)
                        {
                            string fn = (string)qfs[j].Tag;
                            if (fn.ToLower().Contains(sectors[2].ToLower()))
                            {
                                qfs[j].data.Add(data);
                                added = true;
                                break;
                            }
                        }

                        if (!added)
                        {
                            AddLog(p, string.Format("在转换 {0} 第 {1} 行数据时,未找到定义文件,数据发生丢失,数据为 {2}",
                                                    p, i, lines[i]));
                        }
                    }
                    catch (Exception e1)
                    {
                        string err = string.Format("在转换 {0} 第 {1} 行数据时发生错误,原因:", p, i);
                        AddFailedFile(p, err + e1.Message);
                        return(false);
                    }
                }
            }
            catch (Exception e1)
            {
                AddFailedFile(p, e1.Message);
                return(false);
            }
            return(true);
        }
Beispiel #12
0
        private void WriteResults()
        {
            var path = Path.Combine("TestResults", QData.EscapeScenePath(EditorApplication.currentScene)) + ".xml";

            QData.Save(path, _results);
        }
Beispiel #13
0
        public void DrawHydrograph()
        {
            string SimFile  = files[2];
            string ObsFile  = files[1];
            string PrecFile = files[0];
            QData  ObsQOrig = ReadQData(ObsFile);
            QData  SimQOrig = ReadQData(SimFile);
            QData  pData    = ReadPrecData(PrecFile);
            QData  SimQ     = new QData();
            QData  ObsQ     = new QData();

            if (SimQOrig.count > ObsQOrig.count)
            {
                int        CommonNum = 0;
                double[]   QS        = new double[ObsQOrig.count];
                DateTime[] TimeS     = new DateTime[ObsQOrig.count];
                double[]   QO        = new double[ObsQOrig.count];
                DateTime[] TimeO     = new DateTime[ObsQOrig.count];
                for (int i = 0; i < ObsQOrig.count; i++)
                {
                    for (int j = 0; j < SimQOrig.count; j++)
                    {
                        if (SimQOrig.Time[j] == ObsQOrig.Time[i])
                        {
                            QO[CommonNum]    = ObsQOrig.QValue[i];
                            TimeO[CommonNum] = ObsQOrig.Time[i];
                            QS[CommonNum]    = SimQOrig.QValue[j];
                            TimeS[CommonNum] = SimQOrig.Time[j];
                            CommonNum++;
                            continue;
                        }
                    }
                }
                //MessageBox.Show(CommonNum.ToString());
                double[]   QS2    = new double[CommonNum];
                DateTime[] TimeS2 = new DateTime[CommonNum];
                double[]   QO2    = new double[CommonNum];
                DateTime[] TimeO2 = new DateTime[CommonNum];
                for (int k = 0; k < CommonNum; k++)
                {
                    QS2[k]    = QS[k];
                    TimeS2[k] = TimeS[k];
                    QO2[k]    = QO[k];
                    TimeO2[k] = TimeO[k];
                }
                SimQ.Time   = TimeS2;
                SimQ.QValue = QS2;
                SimQ.count  = CommonNum;
                ObsQ.Time   = TimeO2;
                ObsQ.QValue = QO2;
                ObsQ.count  = CommonNum;
            }
            else
            {
                SimQ = SimQOrig;
                ObsQ = ObsQOrig;
            }
            double nash = NashCoef(ObsQ.QValue, SimQ.QValue);

            //MessageBox.Show(nash.ToString());
            axTChartHydrograph.Axis.Left.Automatic = false;
            axTChartHydrograph.Axis.Left.Maximum   = Math.Max(ObsQ.QValue.Max(), SimQ.QValue.Max()) * 1.5;
            //axTChartHydrograph.Axis.Left.Minimum = Math.Min(0, Math.Min(ObsQ.QValue.Min(), SimQ.QValue.Min()) - 10);
            axTChartHydrograph.Axis.Left.Minimum    = Math.Min(ObsQ.QValue.Min(), SimQ.QValue.Min()) - 10;
            axTChartHydrograph.Axis.Right.Automatic = false;
            axTChartHydrograph.Axis.Right.Minimum   = pData.QValue.Min();
            axTChartHydrograph.Axis.Right.Maximum   = pData.QValue.Max() * 4.0;

            axTChartHydrograph.Series(0).AddArray(ObsQ.QValue.Length, ObsQ.QValue, ObsQ.Time);
            axTChartHydrograph.Series(1).AddArray(SimQ.QValue.Length, SimQ.QValue, SimQ.Time);
            axTChartHydrograph.Series(2).AddArray(pData.Time.Length, pData.QValue, pData.Time);
            axTChartHydrograph.Axis.Left.Title.Caption = files[3];
            labelChartTitle.Text = "Nash Coefficient: " + nash.ToString("f3");
        }
Beispiel #14
0
        public QData ReadPrecData(string PrecFile)
        {
            StreamReader sr = new StreamReader(PrecFile, Encoding.Default);
            string       line;
            int          count = 0;

            string[] line2 = new string[500];
            while ((line = sr.ReadLine()) != null)
            {
                line2[count] = line.ToString();
                count++;
            }
            sr.Close();
            DateTime[]   precTime = new DateTime[count * 4];
            double[]     Prec     = new double[count * 4];
            int          idx      = 0;
            StreamReader sr2      = new StreamReader(PrecFile, Encoding.Default);
            int          identi   = line2[0].Split('\t').Length;

            for (int i = 0; i < count; i++)
            {
                DateTime temptime = DateTime.Parse(System.Text.RegularExpressions.Regex.Split(line2[i], @"\s+")[0] + " " + System.Text.RegularExpressions.Regex.Split(line2[i], @"\s+")[1]);

                if (identi == 4)
                {
                    DateTime temptimeend = DateTime.Parse(System.Text.RegularExpressions.Regex.Split(line2[i], @"\s+")[0] + " " + System.Text.RegularExpressions.Regex.Split(line2[i], @"\s+")[2]);
                    double   tempvalue   = Convert.ToDouble(System.Text.RegularExpressions.Regex.Split(line2[i], @"\s+")[3].ToString().Trim());
                    precTime[idx]     = temptime;
                    precTime[idx + 1] = temptime;
                    precTime[idx + 2] = temptimeend;
                    precTime[idx + 3] = temptimeend;
                    Prec[idx]         = 0.0;
                    Prec[idx + 1]     = tempvalue;
                    Prec[idx + 2]     = tempvalue;
                    Prec[idx + 3]     = 0.0;
                    //MessageBox.Show(Prec[idx].ToString());
                    idx = idx + 4;
                }
                else
                {
                    double tempvalue = Convert.ToDouble(System.Text.RegularExpressions.Regex.Split(line2[i], @"\s+")[2].ToString().Trim());
                    precTime[idx]     = temptime;
                    precTime[idx + 1] = temptime;
                    if (idx + 3 < count * 4 - 1)
                    {
                        DateTime temptime2 = DateTime.Parse(System.Text.RegularExpressions.Regex.Split(line2[i + 1], @"\s+")[0] + " " + System.Text.RegularExpressions.Regex.Split(line2[i + 1], @"\s+")[1]);
                        precTime[idx + 2] = temptime2;
                        precTime[idx + 3] = temptime2;
                        //precTime[idx + 2] = Convert.ToDateTime(System.Text.RegularExpressions.Regex.Split(line2[i + 1], @"\s+")[0].ToString(), dtFormat);
                        //precTime[idx + 3] = Convert.ToDateTime(System.Text.RegularExpressions.Regex.Split(line2[i + 1], @"\s+")[0].ToString(), dtFormat);
                    }
                    else
                    {
                        precTime[idx + 2] = temptime;
                        precTime[idx + 3] = temptime;
                    }
                    Prec[idx]     = 0.0;
                    Prec[idx + 1] = tempvalue;
                    Prec[idx + 2] = tempvalue;
                    Prec[idx + 3] = 0.0;
                    idx           = idx + 4;

                    //DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo();
                    //dtFormat.ShortDatePattern = "yyyy/MM/dd";
                    //DateTime temptime = Convert.ToDateTime(line2[i].Split('\t')[0].ToString().Trim(), dtFormat);
                    //double tempvalue = Convert.ToDouble(System.Text.RegularExpressions.Regex.Split(line2[i], @"\s+")[1].ToString().Trim());
                    //precTime[idx] = temptime;
                    //precTime[idx + 1] = temptime;
                    ////precTime[idx] = Convert.ToDateTime(System.Text.RegularExpressions.Regex.Split(line2[i], @"\s+")[0].ToString(), dtFormat);
                    ////precTime[idx + 1] = Convert.ToDateTime(System.Text.RegularExpressions.Regex.Split(line2[i], @"\s+")[0].ToString(), dtFormat);
                    //if (idx + 3 < count * 4 - 1)
                    //{
                    //    DateTime temptime2 = Convert.ToDateTime(line2[i + 1].Split('\t')[0].ToString().Trim(), dtFormat);
                    //    precTime[idx + 2] = temptime2;
                    //    precTime[idx + 3] = temptime2;
                    //    //precTime[idx + 2] = Convert.ToDateTime(System.Text.RegularExpressions.Regex.Split(line2[i + 1], @"\s+")[0].ToString(), dtFormat);
                    //    //precTime[idx + 3] = Convert.ToDateTime(System.Text.RegularExpressions.Regex.Split(line2[i + 1], @"\s+")[0].ToString(), dtFormat);
                    //}
                    //else
                    //{
                    //    precTime[idx + 2] = temptime;
                    //    precTime[idx + 3] = temptime;
                    //    //precTime[idx + 2] = Convert.ToDateTime(System.Text.RegularExpressions.Regex.Split(line2[i], @"\s+")[0].ToString(), dtFormat);
                    //    //precTime[idx + 3] = Convert.ToDateTime(System.Text.RegularExpressions.Regex.Split(line2[i], @"\s+")[0].ToString(), dtFormat);
                    //}
                    //Prec[idx] = 0.0;
                    //Prec[idx + 1] = tempvalue;
                    //Prec[idx + 2] = tempvalue;
                    ////Prec[idx + 1] = Convert.ToDouble(System.Text.RegularExpressions.Regex.Split(line2[i], @"\s+")[1].ToString().Trim());
                    ////Prec[idx + 2] = Convert.ToDouble(System.Text.RegularExpressions.Regex.Split(line2[i], @"\s+")[1].ToString().Trim());
                    //Prec[idx + 3] = 0.0;
                    ////MessageBox.Show(Prec[idx].ToString());
                    //idx = idx + 4;
                }
            }
            sr2.Close();
            //while ((line2 = sr2.ReadLine()) != null)
            //{
            //    try
            //    {
            //        precTime[idx] = DateTime.Parse(line2.Split('\t')[0].ToString() + " " + line2.Split('\t')[1].ToString());
            //        precTime[idx + 1] = DateTime.Parse(line2.Split('\t')[0].ToString() + " " + line2.Split('\t')[1].ToString());
            //        precTime[idx + 2] = DateTime.Parse(line2.Split('\t')[0].ToString() + " " + line2.Split('\t')[2].ToString());
            //        precTime[idx + 3] = DateTime.Parse(line2.Split('\t')[0].ToString() + " " + line2.Split('\t')[2].ToString());
            //        Prec[idx] = 0.0;
            //        Prec[idx + 1] = Convert.ToDouble(line2.Split('\t')[3].ToString().Trim());
            //        Prec[idx + 2] = Convert.ToDouble(line2.Split('\t')[3].ToString().Trim());
            //        Prec[idx + 3] = 0.0;
            //        //MessageBox.Show(Prec[idx].ToString());
            //        idx = idx + 4;
            //    }
            //    catch (System.Exception ex)
            //    {
            //        DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo();
            //        dtFormat.ShortDatePattern = "yyyy/MM/dd";
            //        precTime[idx] = Convert.ToDateTime(System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[0].ToString(), dtFormat);
            //        precTime[idx + 1] = Convert.ToDateTime(System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[0].ToString(), dtFormat);
            //        precTime[idx + 2] = Convert.ToDateTime(System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[0].ToString(), dtFormat);
            //        precTime[idx + 3] = Convert.ToDateTime(System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[0].ToString(), dtFormat);
            //        Prec[idx] = 0.0;
            //        Prec[idx + 1] = Convert.ToDouble(System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[1].ToString().Trim());
            //        Prec[idx + 2] = Convert.ToDouble(System.Text.RegularExpressions.Regex.Split(line2, @"\s+")[1].ToString().Trim());
            //        Prec[idx + 3] = 0.0;
            //        //MessageBox.Show(Prec[idx].ToString());
            //        idx = idx + 4;
            //    }

            //}
            QData precdata = new QData();

            precdata.Time   = precTime;
            precdata.QValue = Prec;
            precdata.count  = count;
            return(precdata);
        }
Beispiel #15
0
 public void Load(string path)
 {
     QData.Load(path, _table);
 }
Beispiel #16
0
 public void Save(string path)
 {
     QData.Save(path, _table);
 }
Beispiel #17
0
        /*
         * private ScreenSpaceAmbientOcclusion sSAOC;
         * private ScreenSpaceAmbientObscurance sSAOB;
         * private EdgeDetection edgeDetection;
         * private CreaseShading creaseShading;
         */
        /* Fog */

        /*
         * private float m_3DFogAmount = 0f;
         * private float m_3DFogAmountMax = 1f;
         *
         * private float m_3DFogStart  = 0f;
         * private float m_3DFogStartMax = 1f;
         *
         * private float m_3DFogDistance = 0;
         * private float m_3DFogDistanceMax = 100000f;
         *
         * private float m_3DNoiseStepSize = 0f;
         * private float m_3DNoiseStepSizeMax = 120f;
         *
         * private float m_3DNoiseScale = 0;
         * private float m_3DNoiseScaleMax = 1f;
         */
        //Game
        //private bool useButtons;
        //private bool useCollision;
        // Use this for initialization
        void Start()
        {
            //Resolution
            fullScreen = Screen.fullScreen;

            /*
             * //Rendering
             * antiAliasing = QualitySettings.antiAliasing;
             * anisotropicFilt = QualitySettings.anisotropicFiltering;
             * textureQuality = QualitySettings.masterTextureLimit;
             * pixelLightCount = QualitySettings.pixelLightCount;
             * //Shadow
             * shadowProjection = QualitySettings.shadowProjection;
             * shadowDistance = QualitySettings.shadowDistance;
             * shadowCascade = QualitySettings.shadowCascades;
             * //Other
             * vSync = QualitySettings.vSyncCount;
             * particleRaycastBudget = QualitySettings.particleRaycastBudget;
             * frameRate = Application.targetFrameRate;
             *
             * LoDLevel = QualitySettings.maximumLODLevel;
             * LoDBias = QualitySettings.lodBias;*/
            //FPS
            frameUpdateTimer           = new Timer(refreshRateMS);
            frameUpdateTimer.Elapsed  += new ElapsedEventHandler(frameUpdateTimer_Elapsed);
            frameUpdateTimer.AutoReset = true;
            frameUpdateTimer.Start();
            optionWindowRect = new Rect((Screen.width / 2) - (optionWindowRect.width / 2), (Screen.height / 2) - (optionWindowRect.height / 2), optionWindowRect.width, optionWindowRect.height);
            cameraBehaviours = Camera.main.GetComponents <MonoBehaviour>() as MonoBehaviour[];
            //Get MonoBehaviours here.
            foreach (var t in FindObjectsOfType <MonoBehaviour>())
            {
                var properties = t as RenderProperties;
                if (properties != null)
                {
                    this.renderProperties = properties;
                }
                var properties1 = t as DayNightProperties;
                if (properties1 != null)
                {
                    this.dayNightProperties = properties1;
                }
                var properties2 = t as DayNightCloudsProperties;
                if (properties2 != null)
                {
                    this.dayNightCloudsProperties = properties2;
                }
                var properties3 = t as FogProperties;
                if (properties3 != null)
                {
                    this.fogProperties = properties3;
                }
            }

            //m_fogHeight = (float)EUtils.GetFieldValue(renderProperties,"m_fogHeight");

            /*
             * m_fogHeight = (float)EUtils.GetFieldValue(renderProperties,"m_fogHeight");
             * EUtils.SetFieldValue(renderProperties,"m_fogHeight",m_fogHeight);
             *
             * m_edgeFogDistance = (float)EUtils.GetFieldValue(renderProperties,"m_edgeFogDistance");
             * EUtils.SetFieldValue(renderProperties,"m_edgeFogDistance",m_edgeFogDistance);
             *
             * m_useVolumeFog = (bool)EUtils.GetFieldValue(renderProperties,"m_useVolumeFog");
             * EUtils.SetFieldValue(renderProperties,"m_useVolumeFog",m_useVolumeFog);
             *
             * m_volumeFogDensity = (float)EUtils.GetFieldValue(renderProperties,"m_volumeFogDensity");
             * EUtils.SetFieldValue(renderProperties,"m_volumeFogDensity",m_volumeFogDensity);
             *
             * m_volumeFogStart = (float)EUtils.GetFieldValue(renderProperties,"m_volumeFogStart");
             * EUtils.SetFieldValue(renderProperties,"m_volumeFogStart",m_volumeFogStart);
             *
             * m_volumeFogDistance = (float)EUtils.GetFieldValue(renderProperties,"m_volumeFogDistance");
             * EUtils.SetFieldValue(renderProperties,"m_volumeFogDistance",m_volumeFogDistance);
             *
             * m_pollutionFogIntensity = (float)EUtils.GetFieldValue(renderProperties,"m_pollutionFogIntensity");
             * EUtils.SetFieldValue(renderProperties,"m_pollutionFogIntensity",m_pollutionFogIntensity);
             */
            /* Fog */

            /*
             * m_3DFogAmount =  (float)EUtils.GetFieldValue(GetCameraBehaviour("FogEffect"),"m_3DFogAmount");
             * m_3DFogStart  = (float)EUtils.GetFieldValue(GetCameraBehaviour("FogEffect"),"m_3DFogStart");
             * m_3DFogDistance = (float)EUtils.GetFieldValue(GetCameraBehaviour("FogEffect"),"m_3DFogDistance");
             * m_3DNoiseStepSize = (float)EUtils.GetFieldValue(GetCameraBehaviour("FogEffect"),"m_3DNoiseStepSize");
             * m_3DNoiseScale = (float)EUtils.GetFieldValue(GetCameraBehaviour("FogEffect"),"m_3DNoiseScale");
             */

            //Added Effects

            /*
             * sSAOC = Camera.main.gameObject.AddComponent<ScreenSpaceAmbientOcclusion>();
             * sSAOB = Camera.main.gameObject.AddComponent<ScreenSpaceAmbientObscurance>();
             * edgeDetection = Camera.main.gameObject.AddComponent<EdgeDetection>();
             * creaseShading = Camera.main.gameObject.AddComponent<CreaseShading>();
             *
             * sSAOC.enabled = false;
             * sSAOB.enabled = false;
             * edgeDetection.enabled = false;
             * creaseShading.enabled = false;*/


            //QugetFileLoader Alpha.
            filePath = Application.persistentDataPath + "\\qMoreOptionsConfig.qgt";
            QLoader qLoader = new QLoader(filePath);

            qData = qLoader.qData;
            if (qData == null)
            {
                qData = new QData();
            }

            if (qData.GetValueByKey("DONT_REMOVE_THIS") == null)
            {
                //OVERRIDE
                qData.AddToValues("DONT_REMOVE_THIS", "ELSE_IT_RESETS!");
                ResetToDefault();
            }
            else
            {
                //Default
                antiAliasing = Load(saveTag + GetName(new { antiAliasing }));
                //anisotropicFilt = Load(saveTag + GetName (new { anisotropicFilt }));
                float anisoFloat = Load(saveTag + GetName(new { anisotropicFilt }));
                if (anisoFloat == 0)
                {
                    anisotropicFilt = AnisotropicFiltering.Disable;
                }
                if (anisoFloat == 1)
                {
                    anisotropicFilt = AnisotropicFiltering.Enable;
                }
                if (anisoFloat == 2)
                {
                    anisotropicFilt = AnisotropicFiltering.ForceEnable;
                }

                textureQuality  = Load(saveTag + GetName(new { textureQuality }));
                pixelLightCount = Load(saveTag + GetName(new { pixelLightCount }));
                //Shadow
                float shadowProjFloat = Load(saveTag + GetName(new { shadowProjection }));
                if (shadowProjFloat == 0)
                {
                    shadowProjection = ShadowProjection.CloseFit;
                }
                if (shadowProjFloat == 1)
                {
                    shadowProjection = ShadowProjection.StableFit;
                }
                maxShadowDistance = Load(saveTag + GetName(new { shadowDistance = maxShadowDistance }));
                shadowCascade     = Load(saveTag + GetName(new { shadowCascade }));
                //Other
                vSync = Load(saveTag + GetName(new { vSync }));
                particleRaycastBudget = Load(saveTag + GetName(new { particleRaycastBudget }));
                frameRate             = Load(saveTag + GetName(new { frameRate }));

                LoDLevel = Load(saveTag + GetName(new { LoDLevel }));
                LoDBias  = Load(saveTag + GetName(new { LoDBias }));

                //Update
                QualitySettings.antiAliasing         = (int)antiAliasing;
                QualitySettings.anisotropicFiltering = anisotropicFilt;
                QualitySettings.masterTextureLimit   = (int)textureQuality;
                QualitySettings.pixelLightCount      = (int)pixelLightCount;
                //Shadow
                QualitySettings.shadowProjection = shadowProjection;

                QualitySettings.shadowDistance = maxShadowDistance;
                QualitySettings.shadowCascades = (int)shadowCascade;
                //Other
                QualitySettings.vSyncCount            = (int)vSync;
                QualitySettings.particleRaycastBudget = (int)particleRaycastBudget;
                Application.targetFrameRate           = (int)frameRate;

                QualitySettings.maximumLODLevel = (int)LoDLevel;
                QualitySettings.lodBias         = LoDBias;
                //Fog
                BackupFogClassicOptions();
                Configuration.instance.fogClassic = Configuration.defaults.fogClassic;
                SetFogClassicOptions();
            }
        }