public virtual void Initialize(XElement element) { var idAttribute = element.Attribute("id"); if (idAttribute != null) { ID = (int)idAttribute; } var textureElement = element.Element("texture"); var sourceElement = element.Element("source"); var framesElement = element.Element("frames"); var offsetElement = element.Element("offset"); if (offsetElement != null) { Offset = Vector2F.Parse(offsetElement.Value); } var services = (ServiceContainer)ServiceLocator.Current; var contentManager = services.GetInstance <ContentManager>(); var graphicsDevice = services.GetInstance <IGraphicsDeviceService>(); var bounds = Vector4F.Parse((string)sourceElement); var sourceTexture = contentManager.Load <Texture2D>((string)textureElement); var sourceBounds = new Rectangle((int)bounds.X, (int)bounds.Y, (int)bounds.Z, (int)bounds.W); var sourceWidth = sourceBounds.Width; var sourceHeight = sourceBounds.Height; if (framesElement != null) { var firstFrame = framesElement.Elements("frame").FirstOrDefault(); var frameBounds = Vector4F.Parse((string)firstFrame); var frameWidth = (int)frameBounds.Z; var frameHeight = (int)frameBounds.W; var frameData = new Color[frameWidth * frameHeight]; sourceTexture.GetData(0, new Rectangle((int)frameBounds.X, (int)frameBounds.Y, frameWidth, frameHeight), frameData, 0, frameWidth * frameHeight); Texture = new Texture2D(graphicsDevice.GraphicsDevice, frameWidth, frameHeight); Texture.SetData <Color>(frameData); } else { var sourceData = new Color[sourceWidth * sourceHeight]; sourceTexture.GetData(0, sourceBounds, sourceData, 0, sourceData.Length); Texture = new Texture2D(graphicsDevice.GraphicsDevice, sourceWidth, sourceHeight); Texture.SetData <Color>(sourceData); } Bitmap = Texture.ToBitmapSource(); }
public void ToStringAndParse() { Vector4F vector = new Vector4F(0.0123f, 9.876f, 0.0f, -2.3f); string s = vector.ToString(); Vector4F parsedVector = Vector4F.Parse(s); Assert.AreEqual(vector, parsedVector); }
public void Parse() { Vector4F vector = Vector4F.Parse("(0.0123; 9.876; 0.0; -2.3)", CultureInfo.InvariantCulture); Assert.AreEqual(0.0123f, vector.X); Assert.AreEqual(9.876f, vector.Y); Assert.AreEqual(0.0f, vector.Z); Assert.AreEqual(-2.3f, vector.W); vector = Vector4F.Parse("( 0.0123 ; 9; 0.1 ; -2.3 ) ", CultureInfo.InvariantCulture); Assert.AreEqual(0.0123f, vector.X); Assert.AreEqual(9f, vector.Y); Assert.AreEqual(0.1f, vector.Z); Assert.AreEqual(-2.3f, vector.W); }
public void ParseException2() { Vector4F vector = Vector4F.Parse("xyzw"); }
public void ParseException() { Vector4F vector = Vector4F.Parse("(0.0123; 9.876)"); }