func init() lng.decl_priv_var(ax, 'float') lng.decl_priv_var(ay, 'float') lng.decl_priv_var(az, 'float') lng.decl_priv_var(mx, 'int') lng.decl_priv_var(my, 'int') lng.decl_priv_var(btn, 'Qt::MouseButton') end func doRotate(_data) println('glTranslatef(0.0, 0.0, ' + az + ');') println('glRotated(' + ax + ', 0.0, 1.0, 0.0);') println('glRotated(' + ay + ', 1.0, 0.0, 0.0);') event(onRotate, _data_) end func doMouseDown(_data) println(btn + ' = ' + _arr.mt_item(_data, 0) + ';') println(mx + ' = ' + _arr.mt_item(_data, 1) + ';') println(my + ' = ' + _arr.mt_item(_data, 2) + ';') end func doMouseMove(_data) fvar(dx,dy) dx = _arr.mt_item(_data, 1) dy = _arr.mt_item(_data, 2) println('if(' + mx + ' && ' + my + ') {') block.inclvl() println('if(' + btn + ' == Qt::RightButton) {') block.inclvl() println(az + ' += (float)(' + dy + ' - ' + my + ') / 4.0;') block.declvl() println('}') println('else {') block.inclvl() println(ax + ' += ' + dx + ' - ' + mx + ';') println(ay + ' += ' + dy + ' - ' + my + ';') block.declvl() println('}') println(mx + ' = ' + dx + ';') println(my + ' = ' + dy + ';') block.declvl() println('}') end func doMouseUp(_data) println(mx + ' = 0;') println(my + ' = 0;') end