[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/opensourceware/aima-python/GraphPlan/js/gridworld.js [Back]  [Original]

var latest_output_area ="NONE"; // Jquery object for the DOM element of output area which was used most recently

function handle_output(out, block){
    var output = out.content.data["text/html"];
    latest_output_area.html(output);
}

function handle_click(canvas,coord) {
	console.log(canvas,coord);
	latest_output_area = $(canvas).parents('.output_subarea');
	$(canvas).parents('.output_subarea')
    var world_object_name = canvas.dataset.world_name;
    var command = world_object_name + ".handle_click(" + JSON.stringify(coord) + ")";
    console.log("Executing Command: " + command);
    var kernel = IPython.notebook.kernel;
    var callbacks = { 'iopub' : {'output' : handle_output}};
    kernel.execute(command,callbacks);
};


function generateGridWorld(state,size,elements)
{
	// Declaring array to store image object
	var $imgArray = new Object(), hasImg=false;
	// Loading images LOOP
	$.each(elements, function(i, val) {
	    // filtering for type img
	    if(val["type"]=="img") {
	    	// setting image load
	    	hasImg = true;
		    $imgArray[i] = $('').attr({height:size,width:size,src:val["source"]}).data({name:i,loaded:false}).load(function(){
		    	// Check for all image loaded
		    	var execute=true;
		    	$(this).data("loaded",true);
		    	$.each($imgArray, function(i, val) {
		    		if(!$(this).data("loaded")) {
		    			execute=false;
		    			// exit on unloaded image
		    			return false;
		    		}
		    	});	
		    	if (execute) {
		    		// Converting loaded image to canvas covering block size.
		    		$.each($imgArray, function(i, val) {
		    			$imgArray[i] = $('').attr({width:size,height:size}).get(0);
		    			$imgArray[i].getContext('2d').drawImage(val.get(0),0,0,size,size);
		    		});	
		    		// initialize the world
		    		initializeWorld();	
		    	}
		    });
	    }
	});

	if(!hasImg) {
		initializeWorld();
	}

	function initializeWorld(){
		var $parentDiv = $('div.map-grid-world');
		// remove object reference
		$('div.map-grid-world').removeClass('map-grid-world');
		// get some info about the canvas
		var row = state.length;
		var column = state[0].length;
		var canvas = $parentDiv.find('canvas').get(0);
		var ctx = canvas.getContext('2d');
		canvas.width =  size * column;
		canvas.height = size * row;
		
		//Initialize previous positions
		for(var i=0;i=0 && gx=0 && gy

Web Proxy Viewer  |  New URL  |  Original Page