Axiom.Serialization.OgreSkeletonSerializer.ImportSkeleton C# (CSharp) Метод

ImportSkeleton() публичный Метод

public ImportSkeleton ( Stream stream, Skeleton skeleton ) : void
stream Stream
skeleton Axiom.Animating.Skeleton
Результат void
		public void ImportSkeleton( Stream stream, Skeleton skeleton )
		{
			// store a local reference to the mesh for modification
			this.skeleton = skeleton;

			BinaryReader reader = new BinaryReader( stream, System.Text.Encoding.UTF8 );

			// start off by taking a look at the header
			ReadFileHeader( reader );

			SkeletonChunkID chunkID = 0;

			while ( !IsEOF( reader ) )
			{
				chunkID = ReadChunk( reader );

				switch ( chunkID )
				{
					case SkeletonChunkID.Bone:
						ReadBone( reader );
						break;

					case SkeletonChunkID.BoneParent:
						ReadBoneParent( reader );
						break;

					case SkeletonChunkID.Animation:
						ReadAnimation( reader );
						break;

					case SkeletonChunkID.AttachmentPoint:
						ReadAttachmentPoint( reader );
						break;

					default:
						LogManager.Instance.Write( "Can only parse bones, parents, and animations at the top level during skeleton loading." );
						LogManager.Instance.Write( "Unexpected chunk: " + chunkID.ToString() );
						break;
				} // switch
			} // while

			// assume bones are stored in binding pose
			skeleton.SetBindingPose();
		}

Usage Example

        /// <summary>
        ///		Loads the mesh data.
        /// </summary>
        /// <summary>
        ///    Generic load, called by SkeletonManager.
        /// </summary>
        public override void Load()
        {
            if (isLoaded) {
                Unload();
                isLoaded = false;
            }

            skeletonLoadMeter.Enter();

            LogManager.Instance.Write("Skeleton: Loading '{0}'...", name);

            // load the skeleton file
            Stream data = SkeletonManager.Instance.FindResourceData(name);

            string extension = Path.GetExtension(name);

            if (extension == ".skeleton") {
                // instantiate a new skeleton reader
                OgreSkeletonSerializer reader = new OgreSkeletonSerializer();
                reader.ImportSkeleton(data, this);
            } else if (extension == ".xml") {
                // instantiate a new skeleton reader
                OgreXmlSkeletonReader reader = new OgreXmlSkeletonReader(data);
                reader.Import(this);
            } else {
                data.Close();
                throw new Exception("Unsupported skeleton file format '" + extension + "'");
            }
            data.Close();

            isLoaded = true;

            skeletonLoadMeter.Exit();
        }
All Usage Examples Of Axiom.Serialization.OgreSkeletonSerializer::ImportSkeleton