コード例 #1
0
        private static void ReadXMLBezierPositions(XmlReader reader, EffectStateRatioSet set)
        {
            var bcps = new List <BezierControlPoint>(2);

            while (reader.Read())
            {
                if (reader.IsStartElement())
                {
                    if (reader.Name == "BezierPosition")
                    {
                        try
                        {
                            var pos = reader.GetAttribute("Position");
                            var bcp = BezierControlPoint.Deserialize(pos);
                            bcps.Add(bcp);
                        }
                        catch
                        {
                        }
                    }
                }
            }
            if (bcps.Count >= 2)
            {
                set.BAnalyzer = new BezierAnalyzer(bcps.ToArray());
            }
            reader.Close();
        }
コード例 #2
0
 public void SetLinearRatio()
 {
     bcps = new BezierControlPoint[] {
         BezierControlPoint.Deserialize("VT=1 SX=0 SY=128 TDX=0.707106781 TDY=-0.707106781 TL=60"),
         BezierControlPoint.Deserialize("VF=1 SX=128 SY=0 FDX=-0.707106781 FDY=0.707106781 FL=60")
     };
     IsLinear = true;
     DrawandRefresh();
 }
コード例 #3
0
        private static void ReadXMLRatioMakers(XmlReader reader, EffectStateRatioSet set)
        {
            while (reader.Read())
            {
                if (reader.Name == "RatioMaker")
                {
                    RatioType type = RatioType.X;
                    switch (reader.GetAttribute("Type"))
                    {
                    case "X":
                        type = RatioType.X;
                        break;

                    case "Y":
                        type = RatioType.Y;
                        break;

                    case "Alpha":
                        type = RatioType.Alpha;
                        break;

                    case "Rotation":
                        type = RatioType.Rotation;
                        break;

                    case "ScaleX":
                        type = RatioType.ScaleX;
                        break;

                    case "ScaleY":
                        type = RatioType.ScaleY;
                        break;

                    case "BezierPosition":
                        type = RatioType.BezierPosition;
                        break;
                    }
                    IRatioMaker maker = null;
                    switch (reader.GetAttribute("MakerType"))
                    {
                    case "LinearRatioMaker":
                        maker = new LinearRatioMaker();
                        break;

                    case "ConstantRatioMaker":
                        maker = new ConstantRatioMaker();
                        break;

                    case "BezierRatioMaker":
                        var p1 = BezierControlPoint.Deserialize(reader.GetAttribute("P1"));
                        var p2 = BezierControlPoint.Deserialize(reader.GetAttribute("P2"));
                        maker = new BezierRatioMaker(p1, p2);
                        break;
                    }
                    maker.Set = set;
                    set[type] = maker;
                }
            }
            reader.Close();
            set.SetDefaultToNullMaker();
        }