Example #1
0
 /// <summary>
 /// インスタンスを生成します。
 /// </summary>
 /// <param name="blockLoader">
 /// Block をロードするための IBlockLoader。
 /// </param>
 /// <param name="blockMeshFactory">
 /// 取得した Block から BlockMesh を生成するための BlockMeshFactory。
 /// </param>
 public BlockMeshManager(IBlockLoader blockLoader, BlockMeshFactory blockMeshFactory)
 {
     if (blockLoader == null) throw new ArgumentNullException("blockLoader");
     if (blockMeshFactory == null) throw new ArgumentNullException("blockMeshFactory");
     this.blockLoader = blockLoader;
     this.blockMeshFactory = blockMeshFactory;
 }
        /// <summary>
        /// InterBlockMesh のロード要求をキューへ追加します。
        /// </summary>
        /// <param name="loader">Block のロードに使用する IBlockLoader。</param>
        /// <param name="name">ロードする Block の名前。</param>
        /// <param name="lodCount">生成する LOD の数。</param>
        /// <param name="callback">InterBlockMesh のロード完了で呼び出されるコールバック メソッド。</param>
        public void Load(IBlockLoader loader, string name, int lodCount, InterBlockMeshLoadQueueCallback callback)
        {
            if (loader == null)
            {
                throw new ArgumentNullException("loader");
            }
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }

            var item = new Task
            {
                Loader   = loader,
                Name     = name,
                LodCount = lodCount,
                Callback = callback
            };

            queue.Add(item);
        }
Example #3
0
 /// <summary>
 /// インスタンスを生成します。
 /// </summary>
 /// <param name="blockLoader">
 /// Block をロードするための IBlockLoader。
 /// </param>
 /// <param name="blockMeshFactory">
 /// 取得した Block から BlockMesh を生成するための BlockMeshFactory。
 /// </param>
 public BlockMeshManager(IBlockLoader blockLoader, BlockMeshFactory blockMeshFactory)
 {
     if (blockLoader == null)
     {
         throw new ArgumentNullException("blockLoader");
     }
     if (blockMeshFactory == null)
     {
         throw new ArgumentNullException("blockMeshFactory");
     }
     this.blockLoader      = blockLoader;
     this.blockMeshFactory = blockMeshFactory;
 }
        /// <summary>
        /// InterBlockMesh のロード要求をキューへ追加します。
        /// </summary>
        /// <param name="loader">Block のロードに使用する IBlockLoader。</param>
        /// <param name="name">ロードする Block の名前。</param>
        /// <param name="lodCount">生成する LOD の数。</param>
        /// <param name="callback">InterBlockMesh のロード完了で呼び出されるコールバック メソッド。</param>
        public void Load(IBlockLoader loader, string name, int lodCount, InterBlockMeshLoadQueueCallback callback)
        {
            if (loader == null) throw new ArgumentNullException("loader");
            if (name == null) throw new ArgumentNullException("name");
            if (callback == null) throw new ArgumentNullException("callback");

            var item = new Task
            {
                Loader = loader,
                Name = name,
                LodCount = lodCount,
                Callback = callback
            };

            queue.Add(item);
        }