Ejemplo n.º 1
0
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();
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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();
}
Ejemplo n.º 4
0
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();
}