示例#1
0
        public void RenderMaterials_CopiedMaterialsGeneratesTheSameMaterialID()
        {
            RenderMaterial  mat   = new RenderMaterial();
            RenderMaterials mats  = new RenderMaterials();
            UUID            matID = mats.AddMaterial(mat);

            RenderMaterials matsCopy = mats.Copy();

            Assert.True(mats.ContainsMaterial(matID));
            Assert.True(matsCopy.ContainsMaterial(matID));
        }
        private UUID ExtractMaterial(Guid matId, RenderMaterials mats)
        {
            byte[] osdBlob = m_assetResolver.ResolveAsset(matId);
            if (osdBlob != null)
            {
                OSD osd = OSDParser.DeserializeLLSDXml(osdBlob);
                return(mats.AddMaterial(RenderMaterial.FromOSD(osd)));
            }

            return(UUID.Zero);
        }
示例#3
0
        public void RenderMaterial_ToFromBinaryTest()
        {
            RenderMaterial  mat  = new RenderMaterial();
            RenderMaterials mats = new RenderMaterials();
            UUID            key  = mats.AddMaterial(mat);

            byte[]          bytes   = mats.ToBytes();
            RenderMaterials newmats = RenderMaterials.FromBytes(bytes, 0);

            Assert.DoesNotThrow(() =>
            {
                RenderMaterial newmat = newmats.GetMaterial(key);
                Assert.That(mat, Is.EqualTo(newmat));
            });
        }
示例#4
0
        public void RenderMaterial_SerializedMaterialsDataGeneratesTheSameMaterialID()
        {
            RenderMaterials materials = new RenderMaterials();
            RenderMaterial  mat       = new RenderMaterial();
            UUID            matID     = materials.AddMaterial(mat);

            byte[]          matData      = materials.ToBytes();
            RenderMaterials newMaterials = RenderMaterials.FromBytes(matData, 0, matData.Length);

            Assert.That(materials, Is.EqualTo(newMaterials));

            Assert.DoesNotThrow(() =>
            {
                RenderMaterial newmat = newMaterials.GetMaterial(matID);
                UUID newmatID         = RenderMaterial.GenerateMaterialID(newmat);
                Assert.That(mat, Is.EqualTo(newmat));
                Assert.That(matID, Is.EqualTo(newmatID));
            });
        }
        private Tuple <RenderMaterials, byte[]> ExtractRenderMaterials(dynamic osPart)
        {
            var te = new Primitive.TextureEntry(osPart.Shape.TextureEntry, 0, osPart.Shape.TextureEntry.Length);
            var materialTextureIds = new List <Guid>();
            var mats = new RenderMaterials();

            if (te.DefaultTexture != null)
            {
                te.DefaultTexture.MaterialID = ExtractMaterial(te.DefaultTexture.MaterialID.Guid, mats);
            }

            foreach (Primitive.TextureEntryFace face in te.FaceTextures)
            {
                if (face != null)
                {
                    face.MaterialID = ExtractMaterial(face.MaterialID.Guid, mats);
                }
            }

            return(new Tuple <RenderMaterials, byte[]>(mats, te.GetBytes()));
        }
示例#6
0
        public void RenderMaterials_CopiedMaterialsGeneratesTheSameMaterialID()
        {
            RenderMaterial mat = new RenderMaterial();
            RenderMaterials mats = new RenderMaterials();
            UUID matID = mats.AddMaterial(mat);

            RenderMaterials matsCopy = mats.Copy();

            Assert.True(mats.ContainsMaterial(matID));
            Assert.True(matsCopy.ContainsMaterial(matID));
        }
示例#7
0
        public void RenderMaterial_SerializedMaterialsDataGeneratesTheSameMaterialID()
        {
            RenderMaterials materials = new RenderMaterials();
            RenderMaterial mat = new RenderMaterial();
            UUID matID = materials.AddMaterial(mat);

            byte[] matData = materials.ToBytes();
            RenderMaterials newMaterials = RenderMaterials.FromBytes(matData, 0, matData.Length);
            Assert.That(materials, Is.EqualTo(newMaterials));

            Assert.DoesNotThrow(() =>
            {
                RenderMaterial newmat = newMaterials.GetMaterial(matID);
                UUID newmatID = RenderMaterial.GenerateMaterialID(newmat);
                Assert.That(mat, Is.EqualTo(newmat));
                Assert.That(matID, Is.EqualTo(newmatID));
            });
        }
示例#8
0
        public void RenderMaterial_ToFromBinaryTest()
        {
            RenderMaterial mat = new RenderMaterial();
            RenderMaterials mats = new RenderMaterials();
            UUID key = mats.AddMaterial(mat);

            byte[] bytes = mats.ToBytes();
            RenderMaterials newmats = RenderMaterials.FromBytes(bytes, 0);

            Assert.DoesNotThrow(() =>
            {
                RenderMaterial newmat = newmats.GetMaterial(key);
                Assert.That(mat, Is.EqualTo(newmat));
            });


        }