Ejemplo n.º 1
0
function get_tsr_offset(origin_tsr, delta_x, delta_y, delta_z, angle, dest) {
    m_tsr.identity(dest);

    var quat         = m_quat.setAxisAngle(m_util.AXIS_MY, angle, _quat_tmp);
    var trans_offset = m_vec3.set(delta_x, delta_y, delta_z, _vec3_tmp);

    m_tsr.set_trans(trans_offset, dest);
    m_tsr.set_quat(quat, dest);

    m_tsr.multiply(origin_tsr, dest, dest);

    return dest;
}
Ejemplo n.º 2
0
function init_constraints() {
    // position control box

    var cbox = m_scs.get_object_by_name("control_box");

    var tsr_cbox_in_cam_space = m_tsr.multiply(m_tsr.invert(_cam_tsr,
                                                            m_tsr.create()),
                                               m_trans.get_tsr(cbox),
                                               m_tsr.create());

    var distance = Math.abs(tsr_cbox_in_cam_space[2]);
    var rotation = m_tsr.get_quat_view(tsr_cbox_in_cam_space);

    m_cons.append_stiff_viewport(cbox, _cam, {
        right: 0.0,
        bottom: 0.0,
        distance: distance,
        rotation: rotation
    });

    m_cons.append_track(_light_point, _bm_13, "-Z", "X");
}
Ejemplo n.º 3
0
    var ray_test_cb = function(id, hit_fract, obj_hit, hit_time, hit_pos, hit_norm) {

        var decal = m_obj.copy(decal_src, "decal" + String(++decal_num), false);
        m_scenes.append_object(decal);

        m_tsr.set_trans(hit_pos, decal_tsr);

        m_quat.rotationTo(m_util.AXIS_Y, hit_norm, decal_rot);
        m_trans.set_rotation_v(decal, decal_rot);
        m_tsr.set_quat(decal_rot, decal_tsr);

        if (obj_hit && m_anim.is_animated(obj_hit)) {
            m_trans.get_tsr(obj_hit, obj_tsr);

            m_tsr.invert(obj_tsr, obj_tsr);
            m_tsr.multiply(obj_tsr, decal_tsr, decal_tsr);
            
            var offset = m_tsr.get_trans_view(decal_tsr);
            var rot_offset = m_tsr.get_quat_view(decal_tsr);
            m_cons.append_stiff(decal, obj_hit, offset, rot_offset);
        }

        m_trans.set_tsr(decal, decal_tsr);
    }