public PROJECT_ERROR_TYPE AddItemToAtlasReferenceTable(ReferenceInfo refItem) { PROJECT_ERROR_TYPE errorType = PROJECT_ERROR_TYPE.PROJECT_ERROR_NONE; if (string.IsNullOrEmpty(refItem.ReferenceFilePath)) { return(PROJECT_ERROR_TYPE.PROJECT_ERROR_REFERENCEFILE_ERROR); } ReferenceTable.Add(refItem); return(errorType); }
public PROJECT_ERROR_TYPE ModifyRefTableAfterAddSprite(AtlasSpriteImage[] spriteImageTable) { PROJECT_ERROR_TYPE errorType = PROJECT_ERROR_TYPE.PROJECT_ERROR_NONE; AtlasSpriteImage tempSprite = null; ReferenceInfo refInfo = null; if (null == spriteImageTable) { return(PROJECT_ERROR_TYPE.PROJECT_ERROR_SPRITEIMAGE_PATH); } foreach (var spriteItem in spriteImageTable) { if (!FindSprite(spriteItem.Path, ref tempSprite)) { continue; } //更新Sprite反依赖 tempSprite.ReferenceTable = spriteItem.ReferenceTable; //更新Atlas反依赖 foreach (var assetItem in spriteItem.ReferenceTable) { if (!FindRefAssetFile(assetItem, ref refInfo)) { ReferenceInfo newInfo = new ReferenceInfo(); newInfo.ReferenceFilePath = assetItem; newInfo.ReferencingSprite.Add(System.IO.Path.GetFileNameWithoutExtension(spriteItem.Path)); ReferenceTable.Add(newInfo); } else { if (!FindRefAssetSprite(assetItem, System.IO.Path.GetFileNameWithoutExtension(spriteItem.Path))) { refInfo.ReferencingSprite.Add(System.IO.Path.GetFileNameWithoutExtension(spriteItem.Path)); } } } } return(errorType); }
/// <summary> /// String representation of the PDF document /// </summary> /// <returns></returns> public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append(Header); IEnumerator enu = _indirectObjects.GetEnumerator(); while (enu.MoveNext()) { IndirectObject iobj = (IndirectObject)enu.Current; iobj.Offset = sb.Length; ReferenceTable.Add(new CrossRef(iobj.Offset, 0)); sb.Append(iobj.ToString()); } Trailer.CrossRefStartOffset = sb.Length; sb.Append(ReferenceTable); Trailer.Size = this._indirectObjects.Count + 1; sb.Append(Trailer.ToString()); return(sb.ToString()); }
public static void AssignProperties(XPathNavigator node, object o, ReferenceTable references) { //var properties = o.GetType().GetProperties(); foreach ( var property in o.GetType().GetProperties() ) { if ( !property.HasAttribute(typeof(SerializeAttribute)) ) continue; var pnode = node.SelectSingleNode(property.Name); if ( pnode == null ) continue;// use default value var val = pnode.Value; if ( property.PropertyType.IsEnum ) { property.SetValue(o, Enum.Parse(property.PropertyType, val), null); } else if ( property.PropertyType.IsValueType ) { var parse = property.PropertyType.GetMethod("Parse", new Type[] { typeof(string) }); var value = parse.Invoke(null, new object[] { val }); property.SetValue(o, value, null); } else if ( property.PropertyType.Name == "String" ) { property.SetValue(o, val, null); } else if ( val == "null" ) { property.SetValue(o, null, null); } else if ( property.CanWrite ) { references.Add(new Guid(val), property, o); } } }