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 ThreeMfTexture2DGroup ParseTexture2DGroup(XElement element, Dictionary <int, ThreeMfResource> resourceMap) { var texture = resourceMap[element.AttributeIntValueOrThrow(TextureIdAttributeName)] as ThreeMfTexture2D; var textureGroup = new ThreeMfTexture2DGroup(texture); textureGroup.Id = element.AttributeIntValueOrThrow(IdAttributeName); foreach (var textureCoordinateElement in element.Elements(ThreeMfTexture2DCoordinate.Texture2DCoordinateName)) { var coord = ThreeMfTexture2DCoordinate.ParseCoordinate(textureCoordinateElement); textureGroup.Coordinates.Add(coord); } return(textureGroup); }