Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
        /// <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());
        }
Exemplo n.º 4
0
		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);
				}
			}
		}