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 + -
显示快捷键?