 	import weave.api.newDisposableChild;
 	import weave.api.primitives.IBounds2D;
 	import weave.api.registerLinkableChild;
+	import weave.api.ui.ILineStyle;
 	import weave.api.ui.IPlotTask;
 	import weave.api.ui.IPlotter;
 	import weave.api.ui.ITextPlotter;

				// draw bitmap text
				_bitmapText.draw(destination);								
			}
			if(showBarycenter.value)
			{
				drawBarycenter(recordKeys, dataBounds, screenBounds, graphics, destination);
			}
			
			if(showVoronoi.value)
			{
				drawVoronoi(recordKeys, dataBounds, screenBounds, graphics, destination);
			}
			if(showConvexHull.value)
			{
				drawConvexHull(recordKeys, dataBounds, screenBounds, graphics, destination);
			}
			destination.draw(tempShape);							
			
			_currentScreenBounds.copyFrom(screenBounds);
			_currentDataBounds.copyFrom(dataBounds);

			graphics.drawCircle(barycenter.x, barycenter.y, barycenterRadius.value);
			
			graphics.endFill();
			destination.draw(static_tempShape);
		}
		
		public function drawConvexHull(recordKeys:Array, dataBounds:IBounds2D, screenBounds:IBounds2D, destination:BitmapData):void
		{
			static_drawConvexHull(anchors, circleLineStyle, recordKeys, dataBounds, screenBounds, destination);
		}
		
		private static const static_tempShape:Shape = new Shape();
		public static function static_drawConvexHull(anchors:LinkableHashMap, lineStyle:ILineStyle, recordKeys:Array, dataBounds:IBounds2D, screenBounds:IBounds2D, destination:BitmapData):void
		{
			var graphics:Graphics = static_tempShape.graphics;
			var anchor1:AnchorPoint;
			var anchor2:AnchorPoint;
			var anchor:AnchorPoint;
			var _anchors:Array = [];
			var index:int;
			var p1:Point = new Point();
			var p2:Point = new Point();
			
			graphics.clear();
			if (recordKeys)
			{
				
				// convert the array of record keys into array of anchors
				for(index = 0; index < recordKeys.length; index++)
				{
					anchor = anchors.getObject(recordKeys[index].localName) as AnchorPoint;
					
					if (recordKeys[index].keyType != ANCHOR_KEYTYPE || !anchor)
						continue;
					
					_anchors.push(anchor);
				}
			}
			else
				_anchors = anchors.getObjects();
			
			// don't draw anything if no anchors
			if (_anchors.length == 0)
				return;
			
			// sort by polar angle
			_anchors.sort(anchorCompareFunctionByPolarAngle);
