 {
 	import flash.display.Bitmap;
 	import flash.display.BitmapData;
+	import flash.geom.ColorTransform;
 	import flash.geom.Matrix;
 	import flash.net.URLRequest;
 	
 	import mx.rpc.events.FaultEvent;
 	import mx.rpc.events.ResultEvent;
 	
-	import weave.api.data.IQualifiedKey;
+	import weave.Weave;
 	import weave.api.newLinkableChild;
 	import weave.api.registerLinkableChild;
 	import weave.api.reportError;
 	import weave.api.setSessionState;
+	import weave.api.data.IQualifiedKey;
 	import weave.api.ui.IPlotTask;
 	import weave.api.ui.IPlotter;
 	import weave.core.LinkableBoolean;

				var dx:Number = Math.round(tempPoint.x) + (_rotation == 0 && image.width % 2 ? 0.5 : 0);
				var dy:Number = Math.round(tempPoint.y) + (_rotation == 0 && image.height % 2 ? 0.5 : 0);
				tempMatrix.translate(dx, dy);
				
				// draw image
				task.buffer.draw(image, tempMatrix);
				
				return task.iteration / task.recordKeys.length;
			}
			return 1;
		}
		
		/**
		 * This function will save a downloaded image into the image cache.

		public static var debug:Boolean = false;
		
		public function ImageGlyphPlotter()
		{
			color.internalDynamicColumn.target = Weave.defaultColorColumn;
		}
		
		public const color:AlwaysDefinedColumn = newLinkableChild(this, AlwaysDefinedColumn);
		
		public const imageURL:AlwaysDefinedColumn = newLinkableChild(this, AlwaysDefinedColumn);
		public const imageSize:AlwaysDefinedColumn = newLinkableChild(this, AlwaysDefinedColumn);
