Check-in [17fe78b11b]
Not logged in
Overview
Comment:(no comment)
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 17fe78b11be639451e6077c2217e7bbee4c1b863
User & Date: Derek on 2012-12-24 04:23:37.926
Other Links: manifest | tags
Context
2012-12-24
17:03
changed drawing of axes to provide more visual cues for perspective check-in: d59b29f2f5 user: Derek tags: trunk
04:23
(no comment) check-in: 17fe78b11b user: Derek tags: trunk
03:52
moved globals to beginning of draw.html added some null checking to matrix_vector_lib.js fixed small bugs (zooming in to much messes up axis draw) check-in: 7c222a4184 user: Derek tags: trunk
Changes
Modified draw.html from [97f687849d] to [6762019ffe].
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
90
91
92
93
94
95
96







97
98
99
100
101
102
103







-
-
-
-
-
-
-







	


var view_transform =
    [[1, 0, 0],
     [0, 1, 0],
     [0, 0, 1]];
    







            

var key_state = {};
var key_state_augmentation_timeout = 150; // the permissible time in milliseconds since the last key event to still allow the key state to augment instead of clearing.

function addKeyListener(keycode, func){
337
338
339
340
341
342
343
344

345
346
347
348
349
350
351
330
331
332
333
334
335
336

337
338
339
340
341
342
343
344







-
+







					if(selected_points[i] == highlight_object){
					   selected_points.splice(i, 1); // deselect point
					   alreadySelected = true; 
					   break; }}}
			else{
				selected_points.length = 0;}
				
			if(!alreadySelected) selected_points.push(highlight_object); }
			if(!alreadySelected && highlight_object < points.length) selected_points.push(highlight_object); }

		else if(!key_state[16] || !key_state[16].state)
			selected_points.length = 0; }
		
		
	else if(lasts && mouse_dragging ){  // drag actions
		
256
257
258
259
260
261
262
263

264
265
266
267
268
269
270
256
257
258
259
260
261
262

263
264
265
266
267
268
269
270







-
+







//
// equation at:
// http://inside.mines.edu/~gmurray/ArbitraryAxisRotation/ArbitraryAxisRotation.html
// creates a rotation matrix about the given vector.
//
function vector_rotation(vector, s){
	if(!vector) throw "vector argument to vector_rotation missing";
	if(!s) throw "angle argument to vector_rotation missing";
	if(s === null || s === undefined) throw "angle argument to vector_rotation missing";
	
    var len = Math.sqrt(vector[0]*vector[0]
                        + vector[1]*vector[1]
                        + vector[2]*vector[2]);

    var u = vector[0]/len;
    var v = vector[1]/len;