Пример #1
0
 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);
        }