Ejemplo n.º 1
0
        public retData CheckBones(AniClip clip)
        {
            retData ret = new retData();

            ret.info = string.Format("人物骨骼数:{0},动作骨骼数:{1}", allBones.Count, clip.boneinfo.Count);


            var count = Mathf.Min(clip.boneinfo.Count, allBones.Count);

            //
            for (int i = 0; i < count; i++)
            {
                if (allBones[i] != clip.boneinfo[i])
                {
                    ret.errorBones.Add(allBones[i]);
                    ret.errorBones.Add(clip.boneinfo[i]);
                }

                //丢失节点
                if (ani.transform.Find(clip.boneinfo[i]) == null)
                {
                    ret.notExsitBones.Add(clip.boneinfo[i]);
                }
            }

            return(ret);
        }
Ejemplo n.º 2
0
        // NOTE: this function is adapted to be run in a thread
        static retData CreateOneReport(Dictionary <string, List <Data.SymbolDayData> > sdds, Data.SymbolInfo symbolInfo)
        {
            string report = "";

            if (SymbolsDrawingsToSerialize.ContainsKey(symbolInfo.FullName) == false)
            {
                return(new retData());
            }

            var sdd = GetSymbolData(sdds, symbolInfo);

            foreach (var line in SymbolsDrawingsToSerialize[symbolInfo.FullName].chartLines)
            {
                if (line.Color != "Lime" && line.Color != "Red")
                {
                    continue;
                }

                DateTime lineStartDate = DateTime.ParseExact(line.StartPointDV.Split('+')[0],
                                                             Data.dateTimeFormat, CultureInfo.InvariantCulture);
                DateTime lineEndDate = DateTime.ParseExact(line.EndPointDV.Split('+')[0],
                                                           Data.dateTimeFormat, CultureInfo.InvariantCulture);
                double extraDaysFromStart = double.Parse(line.StartPointDV.Split('+')[1].Split(';')[0],
                                                         Data.numberFormat);
                double extraDaysToEnd = double.Parse(line.EndPointDV.Split('+')[1].Split(';')[0],
                                                     Data.numberFormat);

                if (lineEndDate.AddDays(extraDaysToEnd) < sdd[0].Date)
                {
                    continue;
                }

                // find sdd at start of line
                var sddIt = 0;
                while (sdd[sddIt].Date > lineStartDate)
                {
                    sddIt++;
                }

                double numDays = sddIt - extraDaysFromStart + extraDaysToEnd;

                double startVal = double.Parse(line.StartPointDV.Split(';')[1],
                                               Data.numberFormat);
                double endVal = double.Parse(line.EndPointDV.Split(';')[1],
                                             Data.numberFormat);
                double step = (endVal - startVal) / numDays;

                double lineValAtSdd0 = startVal + step * sddIt;

                if (sdd[0].Low < lineValAtSdd0 && lineValAtSdd0 < sdd[0].Hi)
                {
                    string e = "";

                    report += "NAME: " + symbolInfo.FullName + " with ";
                    if (step > 0)
                    {
                        e += "ASCENDING line ";
                    }
                    else
                    {
                        e += "DESCENDING line ";
                    }
                    e += "crossed at value " + lineValAtSdd0.ToString("F2", Data.numberFormat);

                    ReportItem ri = new ReportItem();
                    ri.Symbol = symbolInfo.FullName;
                    ri.Date   = sdd[0].Date;
                    ri.Event  = e;
                    ReportItems.Add(ri);

                    report += e + "\n";
                }
            }

            var rd = new retData();

            rd.reportString = report;
            return(rd);
        }