예제 #1
0
        public void SaveRangeGraph()
        {
            var range = new RangeGraph <Vector2D>(Vector2D.Zero, new Vector2D(3.0f, 3.0f));
            var data  = BinaryDataExtensions.SaveToMemoryStream(range);

            Assert.AreEqual(68, data.Length);
        }
예제 #2
0
		public ParticleEditorDesign()
		{
			ParticleSystemName = "MyParticleSystem";
			ParticleEmitterNameToAdd = "ExistingEmitter";
			AvailableEmitterIndices = new List<string>(new[] { "0" });
			CurrentEmitterInEffect = "0";
			SpawnerTypeList = new List<string>(new[] { "Point" });
			SelectedSpawnerType = "Point";
			MaterialList = new List<string>(new[] { "Default2D" });
			SelectedMaterialName = "Default2D";
			Size = new RangeGraph<Size>(new Size(0.01f, 0.01f), new Size(0.1f, 0.1f));
			Color = new RangeGraph<Color>(Datatypes.Color.White, Datatypes.Color.TransparentWhite);
			LifeTime = 1.0f;
			BillboardModeList = new List<string>(new[] { "CameraFacing" });
			SelectedBillboardMode = "CameraFacing";
			StartPosition = new RangeGraph<Vector3D>(new Vector3D(0.0f, 0.0f, 0.0f),
				new Vector3D(0.0f, 0.0f, 0.0f));
			StartRotation = new RangeGraph<ValueRange>(new ValueRange(0.0f), new ValueRange(0.0f));
			StartVelocity = new RangeGraph<Vector3D>(new Vector3D(-0.1f, -0.2f, 0.0f),
				new Vector3D(0.2f, -0.2f, 0.0f));
			Acceleration = new RangeGraph<Vector3D>(new Vector3D(0.0f, 0.1f, 0.0f),
				new Vector3D(0.0f, 0.3f, 0.0f));
			RotationSpeed = new RangeGraph<ValueRange>(new ValueRange(0.0f), new ValueRange(0.0f));
			SpawnInterval = 0.1f;
			MaxNumberOfParticles = 128;
			ParticlesPerSpawn = 1;
		}
예제 #3
0
        public void MinMaxConstructor()
        {
            var rangeGraph = new RangeGraph <Vector2D>(Vector2D.UnitX, Vector2D.UnitY);

            Assert.AreEqual(Vector2D.UnitX, rangeGraph.Start);
            Assert.AreEqual(Vector2D.UnitY, rangeGraph.End);
        }
예제 #4
0
        public void SetStart()
        {
            var rangeGraph = new RangeGraph <Vector2D>(Vector2D.UnitX, Vector2D.UnitY);

            rangeGraph.Start = Vector2D.One;
            Assert.AreEqual(Vector2D.One, rangeGraph.Start);
        }
예제 #5
0
        public void SetEnd()
        {
            var rangeGraph = new RangeGraph <Vector2D>(Vector2D.UnitX, Vector2D.UnitY);

            rangeGraph.End = Vector2D.One;
            Assert.AreEqual(Vector2D.One, rangeGraph.End);
        }
예제 #6
0
        public void SingleConstructor()
        {
            var rangeGraph = new RangeGraph <Vector2D>(Vector2D.UnitX);

            Assert.AreEqual(Vector2D.UnitX, rangeGraph.Start);
            Assert.AreEqual(Vector2D.UnitX, rangeGraph.End);
        }
예제 #7
0
 public ParticleEditorDesign()
 {
     ParticleSystemName       = "MyParticleSystem";
     ParticleEmitterNameToAdd = "ExistingEmitter";
     AvailableEmitterIndices  = new List <string>(new[] { "0" });
     CurrentEmitterInEffect   = "0";
     SpawnerTypeList          = new List <string>(new[] { "Point" });
     SelectedSpawnerType      = "Point";
     MaterialList             = new List <string>(new[] { "Default2D" });
     SelectedMaterialName     = "Default2D";
     Size                  = new RangeGraph <Size>(new Size(0.01f, 0.01f), new Size(0.1f, 0.1f));
     Color                 = new RangeGraph <Color>(Datatypes.Color.White, Datatypes.Color.TransparentWhite);
     LifeTime              = 1.0f;
     BillboardModeList     = new List <string>(new[] { "CameraFacing" });
     SelectedBillboardMode = "CameraFacing";
     StartPosition         = new RangeGraph <Vector3D>(new Vector3D(0.0f, 0.0f, 0.0f),
                                                       new Vector3D(0.0f, 0.0f, 0.0f));
     StartRotation = new RangeGraph <ValueRange>(new ValueRange(0.0f), new ValueRange(0.0f));
     StartVelocity = new RangeGraph <Vector3D>(new Vector3D(-0.1f, -0.2f, 0.0f),
                                               new Vector3D(0.2f, -0.2f, 0.0f));
     Acceleration = new RangeGraph <Vector3D>(new Vector3D(0.0f, 0.1f, 0.0f),
                                              new Vector3D(0.0f, 0.3f, 0.0f));
     RotationSpeed        = new RangeGraph <ValueRange>(new ValueRange(0.0f), new ValueRange(0.0f));
     SpawnInterval        = 0.1f;
     MaxNumberOfParticles = 128;
     ParticlesPerSpawn    = 1;
 }
예제 #8
0
		public void RangeConstructor()
		{
			var colors = new List<Color> { Color.Red, Color.Orange, Color.Yellow };
			var rangeGraph = new RangeGraph<Color>(colors);
			Assert.AreEqual(colors[0], rangeGraph.Start);
			Assert.AreEqual(colors[2], rangeGraph.End);
		}
예제 #9
0
        public void InsertValueBeforeIndexRightOfMax()
        {
            var colors     = new[] { Color.Red, Color.Orange, Color.Yellow };
            var colorGraph = new RangeGraph <Color>(colors[0], colors[1]);

            colorGraph.AddValueBefore(5, colors[2]);
            Assert.AreEqual(colors, colorGraph.Values);
        }
		public void ConvertCompleteColorGraph()
		{
			var colorList = new List<Color>(new[] { Color.Black, Color.Red, Color.Green });
			var graphToConvert = new RangeGraph<Color>(colorList);
			var convertedString = converter.Convert(graphToConvert, typeof(string), null, null);
			var expectedString = "({" + colorList[0] + "}, {" + colorList[1] + "}, {" + colorList[2] + "})";
			Assert.AreEqual(expectedString, convertedString);
		}
예제 #11
0
		public void GetTrivialInterpolation()
		{
			var points = new List<Vector2D>(new[] { Vector2D.One });
			var graph = new RangeGraph<Vector2D>(points);
			var interpolatedPointMiddle = graph.GetInterpolatedValue(0.3f);
			var expectedPointMiddle = Vector2D.One;
			Assert.AreEqual(expectedPointMiddle, interpolatedPointMiddle);
		}
예제 #12
0
        public void SettingValueLeftOfAllIndicesExpands()
        {
            var rectangles = new[] { Rectangle.One, Rectangle.Zero, Rectangle.One };
            var rectGraph  = new RangeGraph <Rectangle>(rectangles[1], rectangles[2]);

            rectGraph.SetValue(-1, rectangles[0]);
            Assert.AreEqual(rectangles, rectGraph.Values);
        }
		public void ConvertCompleteVectorGraph()
		{
			var vectorList = new List<Vector3D>(new[] { Vector3D.Zero, Vector3D.One, Vector3D.UnitY });
			var graphToConvert = new RangeGraph<Vector3D>(vectorList);
			var convertedString = converter.Convert(graphToConvert, typeof(string), null, null);
			var expectedString = "({" + vectorList[0] + "}, {" + vectorList[1] + "}, {" + vectorList[2] + "})";
			Assert.AreEqual(expectedString, convertedString);
		}
예제 #14
0
        public void InsertValueAfterIndexLeftOfMin()
        {
            var colors     = new[] { Color.LightBlue, Color.Cyan, Color.Green };
            var colorGraph = new RangeGraph <Color>(colors[1], colors[2]);

            colorGraph.AddValueAfter(-7, colors[0]);
            Assert.AreEqual(colors, colorGraph.Values);
        }
        public void SetForce()
        {
            var emitter = new ParticleEmitter(GetEmitterData(spark, 512), Vector3D.Zero);
            var force   = new RangeGraph <Vector3D>(Vector3D.One);

            emitter.EmitterData.Acceleration = force;
            Assert.AreEqual(force, emitter.EmitterData.Acceleration);
        }
		public void ConvertCompleteSizeGraph()
		{
			var sizeList = new List<Size>(new[] { Size.Half, Size.One, Size.Zero, Size.Half });
			var graphToConvert = new RangeGraph<Size>(sizeList);
			var convertedString = converter.Convert(graphToConvert, typeof(string), null, null);
			var expectedString = "({" + sizeList[0] + "}, {" + sizeList[1] + "}, {" + sizeList[2] + "}, {" +
				sizeList[3] + "})";
			Assert.AreEqual(expectedString, convertedString);
		}
		public void ConvertingBackReversesConverting()
		{
			var colorList = new List<Color>(new[] { Color.Black, Color.Red, Color.Green });
			var initialGraph = new RangeGraph<Color>(colorList);
			var convertedString = converter.Convert(initialGraph, typeof(string), null, null);
			var retrievedGraph = (RangeGraph<Color>)converter.ConvertBack(convertedString,
				typeof(RangeGraph<Color>), null, null);
			Assert.AreEqual(initialGraph.Values, retrievedGraph.Values);
		}
예제 #18
0
        public void ConvertCompleteColorGraph()
        {
            var colorList       = new List <Color>(new[] { Color.Black, Color.Red, Color.Green });
            var graphToConvert  = new RangeGraph <Color>(colorList);
            var convertedString = converter.Convert(graphToConvert, typeof(string), null, null);
            var expectedString  = "({" + colorList[0] + "}, {" + colorList[1] + "}, {" + colorList[2] + "})";

            Assert.AreEqual(expectedString, convertedString);
        }
예제 #19
0
        public void GetTrivialInterpolation()
        {
            var points = new List <Vector2D>(new[] { Vector2D.One });
            var graph  = new RangeGraph <Vector2D>(points);
            var interpolatedPointMiddle = graph.GetInterpolatedValue(0.3f);
            var expectedPointMiddle     = Vector2D.One;

            Assert.AreEqual(expectedPointMiddle, interpolatedPointMiddle);
        }
        public void ConvertCompleteVectorGraph()
        {
            var vectorList      = new List <Vector3D>(new[] { Vector3D.Zero, Vector3D.One, Vector3D.UnitY });
            var graphToConvert  = new RangeGraph <Vector3D>(vectorList);
            var convertedString = converter.Convert(graphToConvert, typeof(string), null, null);
            var expectedString  = "({" + vectorList[0] + "}, {" + vectorList[1] + "}, {" + vectorList[2] + "})";

            Assert.AreEqual(expectedString, convertedString);
        }
예제 #21
0
        public void ConvertToStringAndBackVector2D()
        {
            var rangeGraph          = new RangeGraph <Vector2D>(Vector2D.UnitX, Vector2D.UnitY);
            var stringGraph         = rangeGraph.ToString();
            var retrievedRangeGraph = new RangeGraph <Vector2D>(stringGraph);

            Assert.AreEqual("({1, 0}, {0, 1})", stringGraph);
            Assert.AreEqual(rangeGraph.Values, retrievedRangeGraph.Values);
        }
예제 #22
0
        public void RangeConstructor()
        {
            var colors = new List <Color> {
                Color.Red, Color.Orange, Color.Yellow
            };
            var rangeGraph = new RangeGraph <Color>(colors);

            Assert.AreEqual(colors[0], rangeGraph.Start);
            Assert.AreEqual(colors[2], rangeGraph.End);
        }
        public void ConvertCompleteSizeGraph()
        {
            var sizeList        = new List <Size>(new[] { Size.Half, Size.One, Size.Zero, Size.Half });
            var graphToConvert  = new RangeGraph <Size>(sizeList);
            var convertedString = converter.Convert(graphToConvert, typeof(string), null, null);
            var expectedString  = "({" + sizeList[0] + "}, {" + sizeList[1] + "}, {" + sizeList[2] + "}, {" +
                                  sizeList[3] + "})";

            Assert.AreEqual(expectedString, convertedString);
        }
예제 #24
0
        public void ConvertingBackReversesConverting()
        {
            var colorList       = new List <Color>(new[] { Color.Black, Color.Red, Color.Green });
            var initialGraph    = new RangeGraph <Color>(colorList);
            var convertedString = converter.Convert(initialGraph, typeof(string), null, null);
            var retrievedGraph  = (RangeGraph <Color>)converter.ConvertBack(convertedString,
                                                                            typeof(RangeGraph <Color>), null, null);

            Assert.AreEqual(initialGraph.Values, retrievedGraph.Values);
        }
예제 #25
0
        public void ConvertToStringAndBackColors()
        {
            var rangeGraph     = new RangeGraph <Color>(new[] { Color.Red, Color.Black, Color.Green });
            var stringGraph    = rangeGraph.ToString();
            var retrievedGraph = new RangeGraph <Color>(stringGraph);

            Assert.AreEqual(
                "({R=255, G=0, B=0, A=255}, {R=0, G=0, B=0, A=255}, {R=0, G=255, B=0, A=255})", stringGraph);
            Assert.AreEqual(rangeGraph.Values, retrievedGraph.Values);
        }
예제 #26
0
		public void AddColorsToGradient()
		{
			var colors = new List<Color>(new[] { Color.DarkGreen, Color.Red, Color.Orange, Color.Green});
			var initiallySetColors = new List<Color>(new[] { colors[0], colors[2] });
			var colorRanges = new RangeGraph<Color>(initiallySetColors);
			var gradient = new GradientGraph(new Rectangle(0.1f, 0.4f, 0.8f, 0.2f), colorRanges);
			gradient.AddValueAfter(1,colors[3]);
			gradient.AddValueBefore(1,colors[1]);
			Assert.AreEqual(colors.ToArray(), gradient.Values);
		}
		public void ConvertBackCorrectString()
		{
			var colorList = new List<Color>(new[] { Color.Black, Color.Red, Color.Green });
			var toConvert = "{" + colorList[0] + ", " + colorList[1] + ", " + colorList[2] + "}";
			var retrieved =
				(RangeGraph<Color>)
					converter.ConvertBack(toConvert, typeof(RangeGraph<Color>), null, null);
			var expected = new RangeGraph<Color>(colorList);
			Assert.AreEqual(expected.Values, retrieved.Values);
		}
		public void ConvertingBackReversesConverting()
		{
			var vectorList = new List<Vector3D>(new[] { Vector3D.Zero, Vector3D.One, Vector3D.UnitY });
			var initialGraph = new RangeGraph<Vector3D>(vectorList);
			var convertedString = converter.Convert(initialGraph, typeof(string), null, null);
			var retrievedGraph =
				(RangeGraph<Vector3D>)
					converter.ConvertBack(convertedString, typeof(RangeGraph<Vector3D>), null, null);
			Assert.AreEqual(initialGraph.Values, retrievedGraph.Values);
		}
		public void ConvertBackCorrectString()
		{
			var vectorList = new List<Vector3D>(new[] { Vector3D.Zero, Vector3D.One, Vector3D.UnitY });
			var toConvert = "{" + vectorList[0] + ", " + vectorList[1] + ", " + vectorList[2] + "}";
			var retrieved =
				(RangeGraph<Vector3D>)
					converter.ConvertBack(toConvert, typeof(RangeGraph<Vector3D>), null, null);
			var expected = new RangeGraph<Vector3D>(vectorList);
			Assert.AreEqual(expected.Values, retrieved.Values);
		}
예제 #30
0
        public void SetValuesToSeveralGraphTypes()
        {
            var vectorGraph = new RangeGraph <Vector3D>(Vector3D.Zero, Vector3D.UnitZ);
            var colorGraph  = new RangeGraph <Color>(Color.Red, Color.Orange);

            colorGraph.SetValue(1, Color.Gold);
            Assert.AreEqual(Vector3D.Zero, vectorGraph.Start);
            Assert.AreEqual(Vector3D.UnitZ, vectorGraph.Values[1]);
            Assert.AreEqual(Color.Gold, colorGraph.End);
        }
예제 #31
0
		public void DrawGradientGraph()
		{
			var colors = new List<Color>(new[]
			{
				Color.DarkGreen, Color.Red, Color.Orange, Color.Green, Color.Black, Color.Gold,
				Color.PaleGreen
			});
			var colorRanges = new RangeGraph<Color>(colors);
			new GradientGraph(new Rectangle(0.1f, 0.4f, 0.8f, 0.2f), colorRanges);
		}
		public void ConvertingBackReversesConverting()
		{
			var sizeList = new List<Size>(new[] { Size.Half, Size.One, Size.Zero, Size.Half });
			var initialGraph = new RangeGraph<Size>(sizeList);
			var convertedString = converter.Convert(initialGraph, typeof(string), null, null);
			var retrievedGraph =
				(RangeGraph<Size>)
					converter.ConvertBack(convertedString, typeof(RangeGraph<Vector3D>), null, null);
			Assert.AreEqual(initialGraph.Values, retrievedGraph.Values);
		}
예제 #33
0
        public void ConvertingFromInvalidStringThrows()
        {
            var rangeGraph  = new RangeGraph <Color>(new[] { Color.Red, Color.Black, Color.Green });
            var stringGraph = rangeGraph.ToString();

            Assert.Throws <Range <Vector3D> .TypeInStringNotEqualToInitializedType>(
                () => { new RangeGraph <Vector3D>(stringGraph); });
            Assert.Throws <Range <Vector3D> .InvalidStringFormat>(
                () => { new RangeGraph <Vector3D>("rect, 123, que?"); });
        }
예제 #34
0
        public void DrawGradientGraph()
        {
            var colors = new List <Color>(new[]
            {
                Color.DarkGreen, Color.Red, Color.Orange, Color.Green, Color.Black, Color.Gold,
                Color.PaleGreen
            });
            var colorRanges = new RangeGraph <Color>(colors);

            new GradientGraph(new Rectangle(0.1f, 0.4f, 0.8f, 0.2f), colorRanges);
        }
 public void ConvertCompleteValueRangeGraph()
 {
     var valueRangeList =
         new List<ValueRange>(new[]
         { new ValueRange(0.0f, 1.0f), new ValueRange(0.5f, 0.75f), new ValueRange(1.0f, 2.0f) });
     var graphToConvert = new RangeGraph<ValueRange>(valueRangeList);
     var convertedString = converter.Convert(graphToConvert, typeof(string), null, null);
     var expectedString = "({" + valueRangeList[0] + "}, {" + valueRangeList[1] + "}, {" +
         valueRangeList[2] + "})";
     Assert.AreEqual(expectedString, convertedString);
 }
		public void ConvertBackCorrectString()
		{
			var sizeList = new List<Size>(new[] { Size.Half, Size.One, Size.Zero, Size.Half });
			var toConvert = "{" + sizeList[0] + ", " + sizeList[1] + ", " + sizeList[2] + ", " +
				sizeList[3] + "}";
			var retrieved =
				(RangeGraph<Size>)
					converter.ConvertBack(toConvert, typeof(RangeGraph<Vector3D>), null, null);
			var expected = new RangeGraph<Size>(sizeList);
			Assert.AreEqual(expected.Values, retrieved.Values);
		}
예제 #37
0
        public void ConvertBackCorrectString()
        {
            var colorList = new List <Color>(new[] { Color.Black, Color.Red, Color.Green });
            var toConvert = "{" + colorList[0] + ", " + colorList[1] + ", " + colorList[2] + "}";
            var retrieved =
                (RangeGraph <Color>)
                converter.ConvertBack(toConvert, typeof(RangeGraph <Color>), null, null);
            var expected = new RangeGraph <Color>(colorList);

            Assert.AreEqual(expected.Values, retrieved.Values);
        }
        public void ConvertBackCorrectString()
        {
            var vectorList = new List <Vector3D>(new[] { Vector3D.Zero, Vector3D.One, Vector3D.UnitY });
            var toConvert  = "{" + vectorList[0] + ", " + vectorList[1] + ", " + vectorList[2] + "}";
            var retrieved  =
                (RangeGraph <Vector3D>)
                converter.ConvertBack(toConvert, typeof(RangeGraph <Vector3D>), null, null);
            var expected = new RangeGraph <Vector3D>(vectorList);

            Assert.AreEqual(expected.Values, retrieved.Values);
        }
        public void ConvertingBackReversesConverting()
        {
            var vectorList      = new List <Vector3D>(new[] { Vector3D.Zero, Vector3D.One, Vector3D.UnitY });
            var initialGraph    = new RangeGraph <Vector3D>(vectorList);
            var convertedString = converter.Convert(initialGraph, typeof(string), null, null);
            var retrievedGraph  =
                (RangeGraph <Vector3D>)
                converter.ConvertBack(convertedString, typeof(RangeGraph <Vector3D>), null, null);

            Assert.AreEqual(initialGraph.Values, retrievedGraph.Values);
        }
예제 #40
0
        public void AddColorsToGradient()
        {
            var colors             = new List <Color>(new[] { Color.DarkGreen, Color.Red, Color.Orange, Color.Green });
            var initiallySetColors = new List <Color>(new[] { colors[0], colors[2] });
            var colorRanges        = new RangeGraph <Color>(initiallySetColors);
            var gradient           = new GradientGraph(new Rectangle(0.1f, 0.4f, 0.8f, 0.2f), colorRanges);

            gradient.AddValueAfter(1, colors[3]);
            gradient.AddValueBefore(1, colors[1]);
            Assert.AreEqual(colors.ToArray(), gradient.Values);
        }
        public void ConvertingBackReversesConverting()
        {
            var sizeList        = new List <Size>(new[] { Size.Half, Size.One, Size.Zero, Size.Half });
            var initialGraph    = new RangeGraph <Size>(sizeList);
            var convertedString = converter.Convert(initialGraph, typeof(string), null, null);
            var retrievedGraph  =
                (RangeGraph <Size>)
                converter.ConvertBack(convertedString, typeof(RangeGraph <Vector3D>), null, null);

            Assert.AreEqual(initialGraph.Values, retrievedGraph.Values);
        }
예제 #42
0
        public void InsertValuesInTheMiddle()
        {
            var points = new[]
            { Vector2D.Zero, Vector2D.UnitX, Vector2D.UnitY, Vector2D.UnitY, Vector2D.One };
            var pointGraph = new RangeGraph <Vector2D>(points[0], points[4]);

            pointGraph.AddValueAfter(0, points[2]);
            pointGraph.AddValueAfter(1, points[3]);
            pointGraph.AddValueBefore(1, points[1]);
            Assert.AreEqual(points, pointGraph.Values);
        }
        public void ConvertBackCorrectString()
        {
            var sizeList  = new List <Size>(new[] { Size.Half, Size.One, Size.Zero, Size.Half });
            var toConvert = "{" + sizeList[0] + ", " + sizeList[1] + ", " + sizeList[2] + ", " +
                            sizeList[3] + "}";
            var retrieved =
                (RangeGraph <Size>)
                converter.ConvertBack(toConvert, typeof(RangeGraph <Vector3D>), null, null);
            var expected = new RangeGraph <Size>(sizeList);

            Assert.AreEqual(expected.Values, retrieved.Values);
        }
        public void ConvertCompleteValueRangeGraph()
        {
            var valueRangeList =
                new List <ValueRange>(new[]
                                      { new ValueRange(0.0f, 1.0f), new ValueRange(0.5f, 0.75f), new ValueRange(1.0f, 2.0f) });
            var graphToConvert  = new RangeGraph <ValueRange>(valueRangeList);
            var convertedString = converter.Convert(graphToConvert, typeof(string), null, null);
            var expectedString  = "({" + valueRangeList[0] + "}, {" + valueRangeList[1] + "}, {" +
                                  valueRangeList[2] + "})";

            Assert.AreEqual(expectedString, convertedString);
        }
 public void ConvertingBackReversesConverting()
 {
     var ValueRangeList =
         new List<ValueRange>(new[]
         { new ValueRange(0.0f, 1.0f), new ValueRange(0.5f, 0.75f), new ValueRange(1.0f, 2.0f) });
     var initialGraph = new RangeGraph<ValueRange>(ValueRangeList);
     var convertedString = converter.Convert(initialGraph, typeof(string), null, null);
     var retrievedGraph =
         (RangeGraph<ValueRange>)
             converter.ConvertBack(convertedString, typeof(RangeGraph<Vector3D>), null, null);
     Assert.AreEqual(initialGraph.Values, retrievedGraph.Values);
 }
예제 #46
0
		public void GraphOfRanges()
		{
			var ranges = new[]
			{
				new Range<Color>(Color.Red, Color.Orange), new Range<Color>(Color.Orange, Color.Gold),
				new Range<Color>(Color.Gold, Color.Yellow)
			};
			var rangesGraph = new RangeGraph<Range<Color>>(ranges[0], ranges[2]);
			rangesGraph.AddValueAfter(0, ranges[1]);
			Assert.AreEqual(ranges, rangesGraph.Values);
			Assert.IsTrue(rangesGraph.ToString().StartsWith("("));
		}
 public void ConvertBackCorrectString()
 {
     var ValueRangeList =
         new List<ValueRange>(new[]
         { new ValueRange(0.0f, 1.0f), new ValueRange(0.5f, 0.75f), new ValueRange(1.0f, 2.0f) });
     var toConvert = "{" + ValueRangeList[0] + ", " + ValueRangeList[1] + ", " +
         ValueRangeList[2] + "}";
     var retrieved =
         (RangeGraph<ValueRange>)
             converter.ConvertBack(toConvert, typeof(RangeGraph<Vector3D>), null, null);
     var expected = new RangeGraph<ValueRange>(ValueRangeList);
     Assert.AreEqual(expected.Values, retrieved.Values);
 }
        public void ConvertingBackReversesConverting()
        {
            var ValueRangeList =
                new List <ValueRange>(new[]
                                      { new ValueRange(0.0f, 1.0f), new ValueRange(0.5f, 0.75f), new ValueRange(1.0f, 2.0f) });
            var initialGraph    = new RangeGraph <ValueRange>(ValueRangeList);
            var convertedString = converter.Convert(initialGraph, typeof(string), null, null);
            var retrievedGraph  =
                (RangeGraph <ValueRange>)
                converter.ConvertBack(convertedString, typeof(RangeGraph <Vector3D>), null, null);

            Assert.AreEqual(initialGraph.Values, retrievedGraph.Values);
        }
예제 #49
0
 public ParticleEmitterData()
     : base("<GeneratedParticleEmitterData>")
 {
     StartVelocity = new RangeGraph<Vector3D>(Vector3D.Zero, Vector3D.Zero);
     Acceleration = new RangeGraph<Vector3D>(Vector3D.Zero, Vector3D.Zero);
     Size = new RangeGraph<Size>(new Size(), new Size());
     Color = new RangeGraph<Color>(Datatypes.Color.White, Datatypes.Color.White);
     PositionType = ParticleEmitterPositionType.Point;
     StartPosition = new RangeGraph<Vector3D>(Vector3D.Zero, Vector3D.Zero);
     StartRotation = new RangeGraph<ValueRange>(new ValueRange(0.0f), new ValueRange(0.0f));
     RotationSpeed = new RangeGraph<ValueRange>(new ValueRange(0.0f), new ValueRange(0.0f));
     ParticlesPerSpawn = new RangeGraph<ValueRange>(new ValueRange(1, 1), new ValueRange(1, 1));
 }
예제 #50
0
		public void GetInterpolation()
		{
			var points =
				new List<Vector2D>(new[]
				{ Vector2D.Zero, Vector2D.UnitX, Vector2D.UnitY, Vector2D.UnitY, Vector2D.One });
			var graph = new RangeGraph<Vector2D>(points);
			var interpolatedPointMiddle = graph.GetInterpolatedValue(0.3f);
			var expectedPointMiddle = points[1].Lerp(points[2], 4 * 0.3f - 1);
			var interpolatedPointEnd = graph.GetInterpolatedValue(1.0f);
			var expectedPointEnd = points[4];
			var interpolatedPointStart = graph.GetInterpolatedValue(0.0f);
			var expectedPointStart = points[0];
			Assert.AreEqual(expectedPointMiddle, interpolatedPointMiddle);
			Assert.AreEqual(expectedPointStart, interpolatedPointStart);
			Assert.AreEqual(expectedPointEnd, interpolatedPointEnd);
		}
예제 #51
0
		public void ConvertingFromInvalidStringThrows()
		{
			var rangeGraph = new RangeGraph<Color>(new[] { Color.Red, Color.Black, Color.Green });
			var stringGraph = rangeGraph.ToString();
			Assert.Throws<Range<Vector3D>.TypeInStringNotEqualToInitializedType>(
				() => { new RangeGraph<Vector3D>(stringGraph); });
			Assert.Throws<Range<Vector3D>.InvalidStringFormat>(
				() => { new RangeGraph<Vector3D>("rect, 123, que?"); });
		}
예제 #52
0
		public void SetStart()
		{
			var rangeGraph = new RangeGraph<Vector2D>(Vector2D.UnitX, Vector2D.UnitY);
			rangeGraph.Start = Vector2D.One;
			Assert.AreEqual(Vector2D.One, rangeGraph.Start);
		}
예제 #53
0
		public void SingleConstructor()
		{
			var rangeGraph = new RangeGraph<Vector2D>(Vector2D.UnitX);
			Assert.AreEqual(Vector2D.UnitX, rangeGraph.Start);
			Assert.AreEqual(Vector2D.UnitX, rangeGraph.End);
		}
예제 #54
0
		public void SaveRangeGraph()
		{
			var range = new RangeGraph<Vector2D>(Vector2D.Zero, new Vector2D(3.0f, 3.0f));
			var data = BinaryDataExtensions.SaveToMemoryStream(range);
			Assert.AreEqual(68, data.Length);
		}
예제 #55
0
		public void InsertValueBeforeIndexRightOfMax()
		{
			var colors = new[] { Color.Red, Color.Orange, Color.Yellow };
			var colorGraph = new RangeGraph<Color>(colors[0], colors[1]);
			colorGraph.AddValueBefore(5, colors[2]);
			Assert.AreEqual(colors, colorGraph.Values);
		}
예제 #56
0
		public GradientGraph(Rectangle drawArea, RangeGraph<Color> colorRanges)
			: base(drawArea)
		{
			colorIntervals = colorRanges;
			UpdateDrawingToRanges();
		}
예제 #57
0
		public void SmokeAndWind()
		{
			window.BackgroundColor = new Color(40, 64, 20);
			var defaultForce = new RangeGraph<Vector3D>(Vector3D.Zero);
			var windForce = new RangeGraph<Vector3D>(new Vector3D(-0.5f, -0.01f, 0.0f),
				new Vector3D(-1.0f, 0.01f, 0.0f));
			var emitterData = GetEmitterData(spark, 256, 2.0f);
			emitterData.Color = new RangeGraph<Color>(Color.White, Color.Transparent(Color.DarkGray));
			emitterData.Size = new RangeGraph<Size>(new Size(0.05f), new Size(0.2f));
			emitterData.Acceleration = defaultForce;
			emitterData.StartVelocity = new RangeGraph<Vector3D>(new Vector3D(0.0f, 0.0f, 0.35f),
				new Vector3D(0.1f, 0.1f, 0.1f));
			var emitter = new ParticleEmitter(emitterData, Vector3D.Zero);
			new Command(() => emitter.EmitterData.Acceleration = windForce).Add(new KeyTrigger(Key.Space));
			new Command(() => emitter.EmitterData.Acceleration = defaultForce).Add(
				new KeyTrigger(Key.Space, State.Releasing));
		}
예제 #58
0
		public void SetForce()
		{
			var emitter = new ParticleEmitter(GetEmitterData(spark, 512), Vector3D.Zero);
			var force = new RangeGraph<Vector3D>(Vector3D.One);
			emitter.EmitterData.Acceleration = force;
			Assert.AreEqual(force, emitter.EmitterData.Acceleration);
		}
예제 #59
0
 protected override void LoadData(Stream fileData)
 {
     var emitterData = (ParticleEmitterData)new BinaryReader(fileData).Create();
     SpawnInterval = emitterData.SpawnInterval;
     LifeTime = emitterData.LifeTime;
     MaximumNumberOfParticles = emitterData.MaximumNumberOfParticles;
     StartVelocity = emitterData.StartVelocity;
     Acceleration = emitterData.Acceleration;
     Size = emitterData.Size;
     StartRotation = emitterData.StartRotation;
     Color = emitterData.Color;
     ParticleMaterial = emitterData.ParticleMaterial;
     ParticlesPerSpawn = emitterData.ParticlesPerSpawn;
     RotationSpeed = emitterData.RotationSpeed;
     PositionType = emitterData.PositionType;
     StartPosition = emitterData.StartPosition;
     ParticlesPerSpawn = emitterData.ParticlesPerSpawn;
     DoParticlesTrackEmitter = emitterData.DoParticlesTrackEmitter;
 }
예제 #60
0
		public void SetEnd()
		{
			var rangeGraph = new RangeGraph<Vector2D>(Vector2D.UnitX, Vector2D.UnitY);
			rangeGraph.End = Vector2D.One;
			Assert.AreEqual(Vector2D.One, rangeGraph.End);
		}