quadtree.as

来自「一个2D基于verlet的Flash物理引擎。它用AS3编写而成。Fisix的目」· AS 代码 · 共 51 行

AS
51
字号
package org.papervision3d.core.data.qTree{	import flash.geom.Point;	import flash.geom.Rectangle;		/**	 * @Author Ralph Hauwert	 * 	 */	public class QuadTree	{		public var baseNode:QuadTreeBaseNode;				public function QuadTree(width:Number, height:Number, maxDepth:int = 6)		{			baseNode = new QuadTreeBaseNode(width,height,maxDepth);		}				public function insertItem(item:QuadTreeItem):Boolean		{			if(item.rectangle.intersects(baseNode.boundingRectangle)){				if(baseNode.boundingRectangle.containsRect(item.rectangle)){					//It falls within the quadtree, cool..back to normal..					baseNode.insertItem(item);				}else{					//It doesn't fall within the tree, but it does intersect, let's clip the items rectangle.					item.clipRectangleWith(baseNode.boundingRectangle);					//And insert					baseNode.insertItem(item);				}			}			//It doesn't even intersect...exit...			return false;		}				public function queryRectangle(rectangle:Rectangle):Array		{			var array:Array = new Array();			baseNode.queryRectangle(rectangle, array);			return array;		}				public function queryPoint(point:Point):Array		{			var array:Array = new Array();			baseNode.queryPoint(point, array);			return array;		}			}}

⌨️ 快捷键说明

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