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); }
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)); }); }
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())); }