public GeometricNodeListEnumeration(Node n){
			squares = new SquarePositionCollection();
			//calculate the position in the datastructure of the node
			location = getPosOfNode(n);
			
			//fill the vector with the addresses of the neighborhood squares
			if(location.x == 0){ mask[0][0] = 0; mask[0][1] = 0; mask[0][2] = 0; }
			if(location.x+1 == xDim){ mask[2][0] = 0; mask[2][1] = 0; mask[2][2] = 0; }
			if(location.y == 0){ mask[0][0] = 0; mask[1][0] = 0; mask[2][0] = 0; }
			if(location.y+1 == yDim){ mask[0][2] = 0; mask[1][2] = 0; mask[2][2] = 0; }

			for(int i = 0; i < 3; i++){
				for(int j = 0; j < 3; j++){
					if(mask[j][i] != 0){
						squares.add(location.x+(j-1), location.y+(i-1));
					}
				}
			}
			
			//initialize the enumeration over the vector
			listEnumeration = squares.elements();
		}