TestCenter: Color has now 100% unit test code coverage and all tests are green

Color: fixed some minor issues. Color is completly finished including unit tests now.
This commit is contained in:
Glatzemann 2011-11-04 13:07:50 +00:00
parent 7423fd4532
commit 2c46103340
2 changed files with 333 additions and 28 deletions

View File

@ -93,6 +93,151 @@ namespace ANX.Framework.TestCenter.Strukturen
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat } new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat }
}; };
static object[] colors =
{
new Object[] { XNAColor.AliceBlue, ANXColor.AliceBlue, "Color.AliceBlue" },
new Object[] { XNAColor.AntiqueWhite, ANXColor.AntiqueWhite, "Color.AntiqueWhite" },
new Object[] { XNAColor.Aqua, ANXColor.Aqua, "Color.Aqua" },
new Object[] { XNAColor.Aquamarine, ANXColor.Aquamarine, "Color.Aquamarine" },
new Object[] { XNAColor.Azure, ANXColor.Azure, "Color.Azure" },
new Object[] { XNAColor.Beige, ANXColor.Beige, "Color.Beige" },
new Object[] { XNAColor.Bisque, ANXColor.Bisque, "Color.Bisque" },
new Object[] { XNAColor.Black, ANXColor.Black, "Color.Black" },
new Object[] { XNAColor.BlanchedAlmond, ANXColor.BlanchedAlmond, "Color.BlanchedAlmond" },
new Object[] { XNAColor.Blue, ANXColor.Blue, "Color.Blue" },
new Object[] { XNAColor.BlueViolet, ANXColor.BlueViolet, "Color.BlueViolet" },
new Object[] { XNAColor.Brown, ANXColor.Brown, "Color.Brown" },
new Object[] { XNAColor.BurlyWood, ANXColor.BurlyWood, "Color.BurlyWood" },
new Object[] { XNAColor.CadetBlue, ANXColor.CadetBlue, "Color.CadetBlue" },
new Object[] { XNAColor.Chartreuse, ANXColor.Chartreuse, "Color.Chartreuse" },
new Object[] { XNAColor.Chocolate, ANXColor.Chocolate, "Color.Choclate" },
new Object[] { XNAColor.Coral, ANXColor.Coral, "Color.Coral" },
new Object[] { XNAColor.CornflowerBlue, ANXColor.CornflowerBlue, "Color.CornflowerBlue" },
new Object[] { XNAColor.Cornsilk, ANXColor.Cornsilk, "Color.Cornsilk" },
new Object[] { XNAColor.Crimson, ANXColor.Crimson, "Color.Crimson" },
new Object[] { XNAColor.Cyan, ANXColor.Cyan, "Color.Cyan" },
new Object[] { XNAColor.DarkBlue, ANXColor.DarkBlue, "Color.DarkBlue" },
new Object[] { XNAColor.DarkCyan, ANXColor.DarkCyan, "Color.DarkCyan" },
new Object[] { XNAColor.DarkGoldenrod, ANXColor.DarkGoldenrod, "Color.DarkGoldenrod" },
new Object[] { XNAColor.DarkGray, ANXColor.DarkGray, "Color.DarkGray" },
new Object[] { XNAColor.DarkGreen, ANXColor.DarkGreen, "Color.DarkGreen" },
new Object[] { XNAColor.DarkKhaki, ANXColor.DarkKhaki, "Color.DarkKhaki" },
new Object[] { XNAColor.DarkMagenta, ANXColor.DarkMagenta, "Color.DarkMagenta" },
new Object[] { XNAColor.DarkOliveGreen, ANXColor.DarkOliveGreen, "Color.DarkOliveGreen" },
new Object[] { XNAColor.DarkOrange, ANXColor.DarkOrange, "Color.DarkOrange" },
new Object[] { XNAColor.DarkOrchid, ANXColor.DarkOrchid, "Color.DarkOrchid" },
new Object[] { XNAColor.DarkRed, ANXColor.DarkRed, "Color.DarkRed" },
new Object[] { XNAColor.DarkSalmon, ANXColor.DarkSalmon, "Color.DarkSalmon" },
new Object[] { XNAColor.DarkSeaGreen, ANXColor.DarkSeaGreen, "Color.DarkSeaGreen" },
new Object[] { XNAColor.DarkSlateBlue, ANXColor.DarkSlateBlue, "Color.DarkSlateBlue" },
new Object[] { XNAColor.DarkSlateGray, ANXColor.DarkSlateGray, "Color.DarkSlateGray" },
new Object[] { XNAColor.DarkTurquoise, ANXColor.DarkTurquoise, "Color.DarkTurquoise" },
new Object[] { XNAColor.DarkViolet, ANXColor.DarkViolet, "Color.DarkViolet" },
new Object[] { XNAColor.DeepPink, ANXColor.DeepPink, "Color.DeepPink" },
new Object[] { XNAColor.DeepSkyBlue, ANXColor.DeepSkyBlue, "Color.DeepSkyBlue" },
new Object[] { XNAColor.DimGray, ANXColor.DimGray, "Color.DimGray" },
new Object[] { XNAColor.DodgerBlue, ANXColor.DodgerBlue, "Color.DodgerBlue" },
new Object[] { XNAColor.Firebrick, ANXColor.Firebrick, "Color.Firebrick" },
new Object[] { XNAColor.FloralWhite, ANXColor.FloralWhite, "Color.FloralWhite" },
new Object[] { XNAColor.ForestGreen, ANXColor.ForestGreen, "Color.ForestGreen" },
new Object[] { XNAColor.Fuchsia, ANXColor.Fuchsia, "Color.Fuchsia" },
new Object[] { XNAColor.Gainsboro, ANXColor.Gainsboro, "Color.Gainsboro" },
new Object[] { XNAColor.GhostWhite, ANXColor.GhostWhite, "Color.GhostWhite" },
new Object[] { XNAColor.Gold, ANXColor.Gold, "Color.Gold" },
new Object[] { XNAColor.Goldenrod, ANXColor.Goldenrod, "Color.Goldenrod" },
new Object[] { XNAColor.Gray, ANXColor.Gray, "Color.Gray" },
new Object[] { XNAColor.Green, ANXColor.Green, "Color.Green" },
new Object[] { XNAColor.GreenYellow, ANXColor.GreenYellow, "Color.GreenYellow" },
new Object[] { XNAColor.Honeydew, ANXColor.Honeydew, "Color.Honeydew" },
new Object[] { XNAColor.HotPink, ANXColor.HotPink, "Color.HotPink" },
new Object[] { XNAColor.IndianRed, ANXColor.IndianRed, "Color.IndianRed" },
new Object[] { XNAColor.Indigo, ANXColor.Indigo, "Color.Indigo" },
new Object[] { XNAColor.Ivory, ANXColor.Ivory, "Color.Ivory" },
new Object[] { XNAColor.Khaki, ANXColor.Khaki, "Color.Khaki" },
new Object[] { XNAColor.Lavender, ANXColor.Lavender, "Color.Lavender" },
new Object[] { XNAColor.LavenderBlush, ANXColor.LavenderBlush, "Color.LavenderBlush" },
new Object[] { XNAColor.LawnGreen, ANXColor.LawnGreen, "Color.LawnGreen" },
new Object[] { XNAColor.LemonChiffon, ANXColor.LemonChiffon, "Color.LemonChiffon" },
new Object[] { XNAColor.LightBlue, ANXColor.LightBlue, "Color.LightBlue" },
new Object[] { XNAColor.LightCoral, ANXColor.LightCoral, "Color.LightCoral" },
new Object[] { XNAColor.LightCyan, ANXColor.LightCyan, "Color.LightCyan" },
new Object[] { XNAColor.LightGoldenrodYellow, ANXColor.LightGoldenrodYellow, "Color.LightGoldenrodYellow" },
new Object[] { XNAColor.LightGray, ANXColor.LightGray, "Color.LightGray" },
new Object[] { XNAColor.LightGreen, ANXColor.LightGreen, "Color.LightGreen" },
new Object[] { XNAColor.LightPink, ANXColor.LightPink, "Color.LightPink" },
new Object[] { XNAColor.LightSalmon, ANXColor.LightSalmon, "Color.LightSalmon" },
new Object[] { XNAColor.LightSeaGreen, ANXColor.LightSeaGreen, "Color.LightSeaGreen" },
new Object[] { XNAColor.LightSkyBlue, ANXColor.LightSkyBlue, "Color.LightSkyBlue" },
new Object[] { XNAColor.LightSlateGray, ANXColor.LightSlateGray, "Color.LightSlateGray" },
new Object[] { XNAColor.LightSteelBlue, ANXColor.LightSteelBlue, "Color.LightSteelBlue" },
new Object[] { XNAColor.LightYellow, ANXColor.LightYellow, "Color.LightYellow" },
new Object[] { XNAColor.Lime, ANXColor.Lime, "Color.Lime" },
new Object[] { XNAColor.LimeGreen, ANXColor.LimeGreen, "" },
new Object[] { XNAColor.Linen, ANXColor.Linen, "" },
new Object[] { XNAColor.Magenta, ANXColor.Magenta, "" },
new Object[] { XNAColor.Maroon, ANXColor.Maroon, "" },
new Object[] { XNAColor.MediumAquamarine, ANXColor.MediumAquamarine, "" },
new Object[] { XNAColor.MediumBlue, ANXColor.MediumBlue, "" },
new Object[] { XNAColor.MediumOrchid, ANXColor.MediumOrchid, "" },
new Object[] { XNAColor.MediumPurple, ANXColor.MediumPurple, "" },
new Object[] { XNAColor.MediumSeaGreen, ANXColor.MediumSeaGreen, "" },
new Object[] { XNAColor.MediumSlateBlue, ANXColor.MediumSlateBlue, "" },
new Object[] { XNAColor.MediumSpringGreen, ANXColor.MediumSpringGreen, "" },
new Object[] { XNAColor.MediumTurquoise, ANXColor.MediumTurquoise, "" },
new Object[] { XNAColor.MediumVioletRed, ANXColor.MediumVioletRed, "" },
new Object[] { XNAColor.MidnightBlue, ANXColor.MidnightBlue, "" },
new Object[] { XNAColor.MintCream, ANXColor.MintCream, "" },
new Object[] { XNAColor.MistyRose, ANXColor.MistyRose, "" },
new Object[] { XNAColor.Moccasin, ANXColor.Moccasin, "" },
new Object[] { XNAColor.NavajoWhite, ANXColor.NavajoWhite, "" },
new Object[] { XNAColor.Navy, ANXColor.Navy, "" },
new Object[] { XNAColor.OldLace, ANXColor.OldLace, "" },
new Object[] { XNAColor.Olive, ANXColor.Olive, "" },
new Object[] { XNAColor.OliveDrab, ANXColor.OliveDrab, "" },
new Object[] { XNAColor.Orange, ANXColor.Orange, "" },
new Object[] { XNAColor.OrangeRed, ANXColor.OrangeRed, "" },
new Object[] { XNAColor.Orchid, ANXColor.Orchid, "" },
new Object[] { XNAColor.PaleGoldenrod, ANXColor.PaleGoldenrod, "" },
new Object[] { XNAColor.PaleGreen, ANXColor.PaleGreen, "" },
new Object[] { XNAColor.PaleTurquoise, ANXColor.PaleTurquoise, "" },
new Object[] { XNAColor.PaleVioletRed, ANXColor.PaleVioletRed, "" },
new Object[] { XNAColor.PapayaWhip, ANXColor.PapayaWhip, "" },
new Object[] { XNAColor.PeachPuff, ANXColor.PeachPuff, "" },
new Object[] { XNAColor.Peru, ANXColor.Peru, "" },
new Object[] { XNAColor.Pink, ANXColor.Pink, "" },
new Object[] { XNAColor.Plum, ANXColor.Plum, "" },
new Object[] { XNAColor.PowderBlue, ANXColor.PowderBlue, "" },
new Object[] { XNAColor.Purple, ANXColor.Purple, "" },
new Object[] { XNAColor.Red, ANXColor.Red, "" },
new Object[] { XNAColor.RosyBrown, ANXColor.RosyBrown, "" },
new Object[] { XNAColor.RoyalBlue, ANXColor.RoyalBlue, "" },
new Object[] { XNAColor.SaddleBrown, ANXColor.SaddleBrown, "" },
new Object[] { XNAColor.Salmon, ANXColor.Salmon, "" },
new Object[] { XNAColor.SandyBrown, ANXColor.SandyBrown, "" },
new Object[] { XNAColor.SeaGreen, ANXColor.SeaGreen, "" },
new Object[] { XNAColor.SeaShell, ANXColor.SeaShell, "" },
new Object[] { XNAColor.Sienna, ANXColor.Sienna, "" },
new Object[] { XNAColor.Silver, ANXColor.Silver, "" },
new Object[] { XNAColor.SkyBlue, ANXColor.SkyBlue, "" },
new Object[] { XNAColor.SlateBlue, ANXColor.SlateBlue, "" },
new Object[] { XNAColor.SlateGray, ANXColor.SlateGray, "" },
new Object[] { XNAColor.Snow, ANXColor.Snow, "" },
new Object[] { XNAColor.SpringGreen, ANXColor.SpringGreen, "" },
new Object[] { XNAColor.SteelBlue, ANXColor.SteelBlue, "" },
new Object[] { XNAColor.Tan, ANXColor.Tan, "" },
new Object[] { XNAColor.Teal, ANXColor.Teal, "" },
new Object[] { XNAColor.Thistle, ANXColor.Thistle, "" },
new Object[] { XNAColor.Tomato, ANXColor.Tomato, "" },
new Object[] { XNAColor.Transparent, ANXColor.Transparent, "" },
new Object[] { XNAColor.Turquoise, ANXColor.Turquoise, "" },
new Object[] { XNAColor.Violet, ANXColor.Violet, "" },
new Object[] { XNAColor.Wheat, ANXColor.Wheat, "" },
new Object[] { XNAColor.White, ANXColor.White, "" },
new Object[] { XNAColor.WhiteSmoke, ANXColor.WhiteSmoke, "" },
new Object[] { XNAColor.Yellow, ANXColor.Yellow, "" },
new Object[] { XNAColor.YellowGreen, ANXColor.YellowGreen, "" },
};
#region Constructors #region Constructors
[Test] [Test]
public void constructor0() public void constructor0()
@ -156,6 +301,34 @@ namespace ANX.Framework.TestCenter.Strukturen
AssertHelper.ConvertEquals(xna, anx, "constructor6"); AssertHelper.ConvertEquals(xna, anx, "constructor6");
} }
[Test]
public void constructor7()
{
XNAColor xna = new XNAColor(512, 512, 512);
ANXColor anx = new ANXColor(512, 512, 512);
AssertHelper.ConvertEquals(xna, anx, "constructor7");
}
[Test, TestCaseSource("fourfloats")]
public void constructor8(float r, float g, float b, float a)
{
XNAColor xna = new XNAColor(r, g, b, a);
ANXColor anx = new ANXColor(r, g, b, a);
AssertHelper.ConvertEquals(xna, anx, "constructor8");
}
[Test]
public void constructor9()
{
XNAColor xna = new XNAColor(512, 512, 512, 512);
ANXColor anx = new ANXColor(512, 512, 512, 512);
AssertHelper.ConvertEquals(xna, anx, "constructor9");
}
#endregion #endregion
#region Methods #region Methods
@ -183,6 +356,54 @@ namespace ANX.Framework.TestCenter.Strukturen
} }
} }
[Test, TestCaseSource("eightfloats")]
public void EqualOperator2(
float r1, float g1, float b1, float a1,
float r2, float g2, float b2, float a2)
{
Object xna1 = new XNAColor(r1, g1, b1) * a1;
Object xna2 = new XNAColor(r2, g2, b2) * a2;
Object anx1 = new ANXColor(r1, g1, b1) * a1;
Object anx2 = new ANXColor(r2, g2, b2) * a2;
bool xna = xna1.Equals(xna2);
bool anx = anx1.Equals(anx2);
if (xna == anx)
{
Assert.Pass("EqualsOperator2 passed");
}
else
{
Assert.Fail(String.Format("EqualsOperator2 failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
}
}
[Test, TestCaseSource("eightfloats")]
public void EqualOperator3(
float r1, float g1, float b1, float a1,
float r2, float g2, float b2, float a2)
{
Object xna1 = new XNAColor(r1, g1, b1) * a1;
Object xna2 = new XNAColor(r2, g2, b2) * a2;
Object anx1 = new ANXColor(r1, g1, b1) * a1;
Object anx2 = new ANXColor(r2, g2, b2) * a2;
bool xna = xna1.Equals(anx2); // this is itentional!!!
bool anx = anx1.Equals(xna2); // this is itentional!!!
if (xna == anx)
{
Assert.Pass("EqualsOperator3 passed");
}
else
{
Assert.Fail(String.Format("EqualsOperator3 failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
}
}
[Test, TestCaseSource("eightfloats")] [Test, TestCaseSource("eightfloats")]
public void UnequalOperator( public void UnequalOperator(
float r1, float g1, float b1, float a1, float r1, float g1, float b1, float a1,
@ -217,6 +438,15 @@ namespace ANX.Framework.TestCenter.Strukturen
AssertHelper.ConvertEquals(xna, anx, "FromNonPremultipliedIntStatic"); AssertHelper.ConvertEquals(xna, anx, "FromNonPremultipliedIntStatic");
} }
[Test]
public void FromNonPremultipliedIntStatic2(float r, float g, float b, float a)
{
XNAColor xna = XNAColor.FromNonPremultiplied(512, 512, 512, 512);
ANXColor anx = ANXColor.FromNonPremultiplied(512, 512, 512, 512);
AssertHelper.ConvertEquals(xna, anx, "FromNonPremultipliedIntStatic2");
}
[Test, TestCaseSource("fourfloats")] [Test, TestCaseSource("fourfloats")]
public void FromNonPremultipliedVector4Static(float r, float g, float b, float a) public void FromNonPremultipliedVector4Static(float r, float g, float b, float a)
{ {
@ -246,6 +476,40 @@ namespace ANX.Framework.TestCenter.Strukturen
AssertHelper.ConvertEquals(xna, anx, "LerpStatic"); AssertHelper.ConvertEquals(xna, anx, "LerpStatic");
} }
[Test, TestCaseSource("ninefloats")]
public void LerpStaticNaN(float r1, float g1, float b1, float a1,float r2, float g2, float b2, float a2, float nop)
{
float amount = float.NaN;
XNAColor xna1 = new XNAColor(r1, g1, b1) * a1;
XNAColor xna2 = new XNAColor(r2, g2, b2) * a2;
ANXColor anx1 = new ANXColor(r1, g1, b1) * a1;
ANXColor anx2 = new ANXColor(r2, g2, b2) * a2;
XNAColor xna = XNAColor.Lerp(xna1, xna2, amount);
ANXColor anx = ANXColor.Lerp(anx1, anx2, amount);
AssertHelper.ConvertEquals(xna, anx, "LerpStaticNan");
}
[Test, TestCaseSource("ninefloats")]
public void LerpStaticNegative(float r1, float g1, float b1, float a1, float r2, float g2, float b2, float a2, float nop)
{
float amount = float.MinValue / 65536f;
XNAColor xna1 = new XNAColor(r1, g1, b1) * a1;
XNAColor xna2 = new XNAColor(r2, g2, b2) * a2;
ANXColor anx1 = new ANXColor(r1, g1, b1) * a1;
ANXColor anx2 = new ANXColor(r2, g2, b2) * a2;
XNAColor xna = XNAColor.Lerp(xna1, xna2, amount);
ANXColor anx = ANXColor.Lerp(anx1, anx2, amount);
AssertHelper.ConvertEquals(xna, anx, "LerpStaticNegative");
}
[Test, TestCaseSource("eightfloats")] [Test, TestCaseSource("eightfloats")]
public void MultiplyStatic(float r, float g, float b, float a, float scale, float x, float y, float z) public void MultiplyStatic(float r, float g, float b, float a, float scale, float x, float y, float z)
{ {
@ -362,6 +626,60 @@ namespace ANX.Framework.TestCenter.Strukturen
AssertHelper.ConvertEquals(xnaColor.A, anxColor.A, "A"); AssertHelper.ConvertEquals(xnaColor.A, anxColor.A, "A");
} }
[Test, TestCaseSource("colors")]
public void NamedColorProperties(XNAColor xnaColor, ANXColor anxColor, string name)
{
AssertHelper.ConvertEquals(xnaColor, anxColor, name);
}
[Test, TestCaseSource("fourfloats")]
public void RSet(float r, float g, float b, float a)
{
XNAColor xnaColor = new XNAColor();
ANXColor anxColor = new ANXColor();
xnaColor.R = (byte)(r * 255);
anxColor.R = (byte)(r * 255);
AssertHelper.ConvertEquals(xnaColor.R, anxColor.R, "RSet");
}
[Test, TestCaseSource("fourfloats")]
public void GSet(float r, float g, float b, float a)
{
XNAColor xnaColor = new XNAColor();
ANXColor anxColor = new ANXColor();
xnaColor.G = (byte)(r * 255);
anxColor.G = (byte)(r * 255);
AssertHelper.ConvertEquals(xnaColor.G, anxColor.G, "GSet");
}
[Test, TestCaseSource("fourfloats")]
public void BSet(float r, float g, float b, float a)
{
XNAColor xnaColor = new XNAColor();
ANXColor anxColor = new ANXColor();
xnaColor.B = (byte)(r * 255);
anxColor.B = (byte)(r * 255);
AssertHelper.ConvertEquals(xnaColor.B, anxColor.B, "BSet");
}
[Test, TestCaseSource("fourfloats")]
public void ASet(float r, float g, float b, float a)
{
XNAColor xnaColor = new XNAColor();
ANXColor anxColor = new ANXColor();
xnaColor.A = (byte)(r * 255);
anxColor.A = (byte)(r * 255);
AssertHelper.ConvertEquals(xnaColor.A, anxColor.A, "ASet");
}
#endregion #endregion
} }
} }

View File

@ -107,8 +107,9 @@ namespace ANX.Framework
} }
public Color(Vector4 vector) public Color(Vector4 vector)
: this(vector.X, vector.Y, vector.Z, vector.W)
{ {
this.packedValue = 0;
((IPackedVector)this).PackFromVector4(vector);
} }
private Color(uint packedValue) private Color(uint packedValue)
@ -785,20 +786,10 @@ namespace ANX.Framework
get { return new Color(255, 99, 71, 255); } get { return new Color(255, 99, 71, 255); }
} }
public static Color TransparentBlack public static Color Transparent
{ {
get { return new Color(0, 0, 0, 0); } get { return new Color(0, 0, 0, 0); }
} }
public static Color TransparentWhite
{
get { return new Color(255, 255, 255, 0); }
}
public static Color Transparent
{
get { return new Color(0, 0, 0, 0); }
}
public static Color Turquoise public static Color Turquoise
{ {
@ -867,10 +858,6 @@ namespace ANX.Framework
{ {
Color color; Color color;
r = r * a;
g = g * a;
b = b * a;
if (((((r | g) | b) | a) & -256) != 0) if (((((r | g) | b) | a) & -256) != 0)
{ {
r = r < 0 ? 0 : (r > 255 ? 255 : r); r = r < 0 ? 0 : (r > 255 ? 255 : r);
@ -879,6 +866,10 @@ namespace ANX.Framework
a = a < 0 ? 0 : (a > 255 ? 255 : a); a = a < 0 ? 0 : (a > 255 ? 255 : a);
} }
r = r * a;
g = g * a;
b = b * a;
color.packedValue = (uint)(((r | g << 8) | b << 16) | a << 24); color.packedValue = (uint)(((r | g << 8) | b << 16) | a << 24);
return color; return color;
@ -987,11 +978,6 @@ namespace ANX.Framework
return result; return result;
} }
public void PackFromVector4(Vector4 vector)
{
throw new NotImplementedException();
}
#endregion // Methods #endregion // Methods
#region Properties #region Properties
@ -1085,14 +1071,15 @@ namespace ANX.Framework
{ {
return 0; return 0;
} }
if (value > bitmask)
{
return (uint)bitmask;
}
return (uint)value; return (uint)value;
} }
void IPackedVector.PackFromVector4(Vector4 vector)
{
this.packedValue = ColorPack(vector.X, vector.Y, vector.Z, vector.W);
}
#endregion // Helper #endregion // Helper
} }
} }