function mouse_down_cb(e) { var pick = false; var selected_obj = null; for (var i = 0; i < _sensors.length; i++) { var sensor = _sensors[i]; if (sensor.type == ST_MOUSE_CLICK) { sensor_set_value(sensor, 1); sensor.payload = e.which; } // update selection sensors if (sensor.type == ST_SELECTION) { if (!pick) { selected_obj = m_scs.pick_object(e.clientX, e.clientY); pick = true; } if (selected_obj == sensor.source_object) sensor.value = 1; else sensor.value = 0; } } if (_prev_def_mouse_events) e.preventDefault(); }
function touch_start_cb(e) { var touches = e.targetTouches; if (touches.length == 1) { var touch = touches[0]; var x = touch.pageX; var y = touch.pageY; // update selection sensors var pick = false; var selected_obj = null; for (var i = 0; i < _sensors.length; i++) { var sensor = _sensors[i]; if (sensor.type == ST_SELECTION) { if (!pick) { selected_obj = m_scs.pick_object(x, y); pick = true; } sensor.value = (selected_obj == sensor.source_object); } } // reset coords from last touch session _touches_last_x[0] = x; _touches_last_x[1] = -1; _touches_last_y[0] = y; _touches_last_y[1] = -1; } else if (touches.length > 1) { var zoom_dist = touch_zoom_dist(touches); _touch_zoom_curr_dist = _touch_zoom_last_dist = zoom_dist; // reset coords from last touch session _touches_last_x[0] = touches[0].pageX; _touches_last_x[1] = touches[1].pageX; _touches_last_y[0] = touches[0].pageY; _touches_last_y[1] = touches[1].pageY; } // reset coords from last touch session _touches_curr_x.set(_touches_last_x); _touches_curr_y.set(_touches_last_y); // NOTE: issues with picking on mobile platforms //if (_prev_def_touch_events) // e.preventDefault(); if (_callback_touch_events) _callback_touch_events(e); }
exports.touch_start_cb = function(e) { var touches = e.targetTouches; if (touches.length == 1) { var touch = touches[0]; var x = touch.pageX; var y = touch.pageY; // update selection sensors var pick = false; var selected_obj = null; for (var i = 0; i < _sensors.length; i++) { var sensor = _sensors[i]; if (sensor.type == ST_SELECTION) { if (!pick) { selected_obj = m_scs.pick_object(x, y); pick = true; } sensor.value = (selected_obj == sensor.obj); } } // reset coords from last touch session _touch_curr_x = _touch_last_x = x; _touch_curr_y = _touch_last_y = y; } else if (touches.length > 1) { var zoom_dist = touch_zoom_dist(touches); _touch_zoom_curr_dist = _touch_zoom_last_dist = zoom_dist; } // NOTE: issues with picking on mobile platforms //e.preventDefault(); }
exports.mouse_down_cb = function(e) { var pick = false; var selected_obj = null; for (var i = 0; i < _sensors.length; i++) { var sensor = _sensors[i]; if (sensor.type == ST_MOUSE_CLICK) { sensor_set_value(sensor, 1); } // update selection sensors if (sensor.type == ST_SELECTION) { if (!pick) { selected_obj = m_scs.pick_object(e.clientX, e.clientY); pick = true; } sensor.value = (selected_obj == sensor.obj); } } e.preventDefault(); }