blockertraverser.as

来自「著名的flash 3d引擎 away 3d的源代码」· AS 代码 · 共 55 行

AS
55
字号
package away3d.core.traverse
{
	import away3d.containers.*;
    import away3d.core.block.*;
    import away3d.core.base.*;
    

    /**
    * Traverser that gathers blocker primitives for occlusion culling.
    */
    public class BlockerTraverser extends Traverser
    {
		/**
		 * Defines the view being used.
		 */
    	public var view:View3D;
		
		/**
		 * Defines the blocker consumer being used.
		 */
        public var consumer:IBlockerConsumer;
		    	
		/**
		 * Creates a new <code>BlockerTraverser</code> object.
		 */
        public function BlockerTraverser()
        {
        }
        
		/**
		 * @inheritDoc
		 */
		public override function match(node:Object3D):Boolean
        {
            if (!node.visible)
                return false;
            if (node is ILODObject)
                return (node as ILODObject).matchLOD(view);
            return true;
        }
        
		/**
		 * @inheritDoc
		 */
        public override function apply(node:Object3D):void
        {
            if (node is IBlockerProvider)
            {
                (node as IBlockerProvider).blockers(consumer);
            }
        }

    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?