public static MaterialDefinition LoadFromXPathNavigator(XPathNavigator navigator)
{
if (navigator == null)
{
return null;
}
MaterialDefinition materialDefinition = new MaterialDefinition();
//name
materialDefinition.Name = navigator.GetAttribute("Name", string.Empty);
materialDefinition.NameHash = Cryptography.JenkinsOneAtATime(materialDefinition.Name);
//type
materialDefinition.Type = navigator.GetAttribute("Type", string.Empty);
materialDefinition.TypeHash = Cryptography.JenkinsOneAtATime(materialDefinition.Type);
//draw styles
XPathNodeIterator entries = navigator.Select("./Array[@Name='DrawStyles']/Object[@Class='DrawStyle']");
while (entries.MoveNext())
{
DrawStyle drawStyle = DrawStyle.LoadFromXPathNavigator(entries.Current);
if (drawStyle != null)
{
materialDefinition.DrawStyles.Add(drawStyle);
}
}
return materialDefinition;
}