 		private var _idToNode				: Vector.<ISceneNode>
 		private var _transforms				: Vector.<Matrix4x4>;
 		private var _localToWorldTransforms : Vector.<Matrix4x4>;
+        private var _worldToLocalTransforms : Vector.<Matrix4x4>;
 		private var _numChildren			: Vector.<uint>;
 		private var _firstChildId			: Vector.<uint>;
 		private var _parentId				: Vector.<int>;

				}
			}
		}
		
		private function updateAncestorsAndSelfLocalToWorld(nodeId : int) : void
		{
			var dirtyRoot : int = nodeId;
			
			while (nodeId >= 0)
			{
				if ((_transforms[nodeId] as Matrix4x4)._hasChanged)
					dirtyRoot = nodeId;
				
				nodeId = _parentId[nodeId];
			}
			
			if (dirtyRoot >= 0)
				updateLocalToWorld(dirtyRoot);
		}
		
		private function targetAddedHandler(ctrl	: TransformController,
											target	: ISceneNode) : void

			_nodeToId = new Dictionary(true);
			_transforms = new <Matrix4x4>[];
			_localToWorldTransforms = new <Matrix4x4>[];
            _worldToLocalTransforms = new <Matrix4x4>[];
			_numChildren = new <uint>[];
			_firstChildId = new <uint>[];
			_idToNode = new <ISceneNode>[];
