internal static ThreeMfResource ParseResource(XElement element, Dictionary <int, ThreeMfResource> resourceMap, Package package) { if (element.Name == ObjectName) { return(ThreeMfObject.ParseObject(element, resourceMap, package)); } else if (element.Name == BaseMaterialsName) { return(ThreeMfBaseMaterials.ParseBaseMaterials(element)); } else if (element.Name == ColorGroupName) { return(ThreeMfColorGroup.ParseColorGroup(element)); } else if (element.Name == Texture2DName) { return(ThreeMfTexture2D.ParseTexture(element, package)); } else if (element.Name == Texture2DGroupName) { return(ThreeMfTexture2DGroup.ParseTexture2DGroup(element, resourceMap)); } else { return(null); } }
internal static ThreeMfBaseMaterials ParseBaseMaterials(XElement element) { var baseMaterials = new ThreeMfBaseMaterials(); baseMaterials.Id = element.AttributeIntValueOrThrow(IdAttributeName); foreach (var baseElement in element.Elements(ThreeMfBase.BaseName)) { var baseMaterial = ThreeMfBase.ParseBaseMaterial(baseElement); baseMaterials.Bases.Add(baseMaterial); } return(baseMaterials); }