Exemple #1
0
        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();
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
 public void ParseException2()
 {
     Vector4F vector = Vector4F.Parse("xyzw");
 }
Exemple #5
0
 public void ParseException()
 {
     Vector4F vector = Vector4F.Parse("(0.0123; 9.876)");
 }