');
309 | Marker_bg[i].data('idx', i);
310 | Marker_bg[i].css('z-index', 10000);
311 | Marker_bg[i].appendTo($('#category-panel'));
312 |
313 | Marker_bg[i].draggable({
314 | cursor: 'move',
315 | cursorAt: { top: 31, left: 15.5 },
316 | start: function (e, ui){
317 | var k = $(this).data('idx');
318 | Marker[k].data('x', e.pageX-15.5);
319 | Marker[k].data('y', e.pageY-30);
320 | Marker[k].css('left', e.pageX-15.5);
321 | Marker[k].css('top', e.pageY-30);
322 | Marker_bg[k].css('left', e.pageX-15.5);
323 | Marker_bg[k].css('top', e.pageY-30);
324 | Marker_bg[k].data('ondrag', 'TRUE');
325 | },
326 | drag: function (e, ui) {
327 | // reset Marker's position
328 | var i = ctrler.cur_img_idx;
329 | var j = ctrler.cur_obj_idx;
330 | var k = $(this).data('idx');
331 | var offsetX = parseFloat(Marker_bg[k].css('width'));
332 | var offsetY = parseFloat(Marker_bg[k].css('height'));
333 | Marker[k].css('left', e.pageX-offsetX/2);
334 | Marker[k].css('top', e.pageY-offsetY/2);
335 | if (Anno[i].ans[j] == -1){
336 | Anno[i].ans[j] = 1;
337 | Marker[0].css('color', 'blue');
338 | Marker[0].html('+');
339 | }
340 | },
341 | stop: function (e, ui) {
342 | var k = $(this).data('idx');
343 | var i = ctrler.cur_img_idx;
344 | var j = ctrler.cur_obj_idx;
345 | Marker_bg[k].data('ondrag', 'FALSE');
346 | var wid = parseFloat(Marker[k].css('width'));
347 | var hei = parseFloat(Marker[k].css('height'));
348 | var leftPos = parseFloat(e.pageX);
349 | var topPos = parseFloat(e.pageY);
350 | var leftPosIm = $('#img-'+i).position().left;
351 | var topPosIm = $('#img-'+i).position().top;
352 | var widIm = parseFloat($('#img-'+i).css('width'));
353 | var heiIm = parseFloat($('#img-'+i).css('height'));
354 | var offset = 0;
355 | if (!(leftPos > leftPosIm-offset && leftPos < leftPosIm+widIm+offset &&
356 | topPos > topPosIm -offset && topPos < topPosIm +heiIm+offset)){
357 | hideMarker(i, j, k);
358 | }else{
359 | showMarker(i, j, k, e);
360 | }
361 | ctrler.render_anno();
362 | ctrler.renderLen(e);
363 | }
364 | });
365 | hideMarker(0,0,i);
366 | }
367 | }
368 |
369 | function showMarker(i,j,k,e){
370 | Marker[k].data('show' , 1);
371 | Anno[i].ans[j][k] = 1;
372 | Anno[i].annoloc[j][k] = [e.pageX, e.pageY];
373 | var im = $('#img-'+i);
374 | var imLeft = im.position().left;
375 | var imTop = im.position().top;
376 | var imWid = Im[i].width;
377 | var imHei = Im[i].height;
378 | var x = (e.pageX - imLeft)/imWid;
379 | var y = (e.pageY - imTop)/imHei;
380 | Anno[i].annoloc_percentage[j][k] = [x, y];
381 | }
382 | function hideMarker(i,j,k){
383 | Marker[k].data('show' , 0);
384 | Anno[i].ans[j][k] = 0;
385 | Anno[i].annoloc[j][k] = [-1, -1];
386 | Anno[i].annoloc_percentage[j][k] = [-1, -1];
387 | }
388 |
389 | // script starts here
390 | function imClick_Ctrl(){
391 | ctrler = new Ctrler();
392 | ctrler.N = Anno.length;
393 | createMarker();
394 | addDialog();
395 | // redner image
396 | ctrler.render_im_panel(); // render image and bg image
397 | ctrler.render_category_panel();
398 | ctrler.render_anno();
399 | // add listner after things set up
400 | addListener();
401 | // set finishing dialog
402 | ctrler.render_hint();
403 | }
404 |
405 |
--------------------------------------------------------------------------------
/static/js/mturk_form_submission.js:
--------------------------------------------------------------------------------
1 | // ================================================================
2 | // Function to submit form to Server
3 | // The form is submitted to MTurk after server successfully process the submission
4 | // The HIT is completed after MTurk server receives the submission
5 | // ================================================================
6 | function submit_form(){
7 |
8 | // process answers
9 | // pack user's response in a dictionary structure and send to the server in JSON format
10 | // TODO: fill in the answers you'd like to send back to server
11 | answers = [];
12 |
13 | var ans = JSON.stringify(answers);
14 | var duration = ($.now()-init_time)/1000;
15 | duration = duration.toString();
16 |
17 | // set the resp to send back to the server here
18 | // the values to send to MTurk has already defined inside #mturk_form
19 | // if you don't need to bother to set value here
20 | resp =
21 | {
22 | // TODO: set the data to be submitted back to server
23 | };
24 |
25 | // post ajax request to server
26 | // if there's no backend to process the request, form can be directly submitted to MTurk
27 | $.ajax({
28 | type: "POST",
29 | // "TODO: set the url of server to process the data",
30 | url: "",
31 | data: {'resp':JSON.stringify(resp)}
32 | }).done(function(data) {
33 | $('#mturk_form').submit();
34 | });
35 | }
--------------------------------------------------------------------------------
/static/opensurfaces/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Sean Bell
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/static/opensurfaces/css/bootstrap-responsive.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Responsive v2.2.2
3 | *
4 | * Copyright 2012 Twitter, Inc
5 | * Licensed under the Apache License v2.0
6 | * http://www.apache.org/licenses/LICENSE-2.0
7 | *
8 | * Designed and built with all the love in the world @twitter by @mdo and @fat.
9 | */@-ms-viewport{width:device-width}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .dropdown-menu a:hover{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:hover{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}}
10 |
--------------------------------------------------------------------------------
/static/opensurfaces/css/jquery-ui-1.9.1.custom.min.css:
--------------------------------------------------------------------------------
1 | /*! jQuery UI - v1.9.1 - 2012-10-30
2 | * http://jqueryui.com
3 | * Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css
4 | * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5 | * Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px);clip:rect(1px,1px,1px,1px)}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{zoom:1}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;zoom:1}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto;zoom:1}.ui-autocomplete{position:absolute;top:0;cursor:default}* html .ui-autocomplete{width:1px}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;cursor:pointer;text-align:center;zoom:1;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:1.4}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0em}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-cover{position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em;zoom:1}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}* html .ui-tooltip{background-image:none}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}
--------------------------------------------------------------------------------
/static/opensurfaces/css/mturk.css:
--------------------------------------------------------------------------------
1 | /*body, html { padding: 0px; margin: 0px; [>overflow:hidden;<] }*/
2 | iframe { border: 1px solid #969696; }
3 | #mt-top {
4 | position: fixed;
5 | top: 0px;
6 | left: 0px;
7 | z-index: 999;
8 | width: 100%;
9 | height: 20px;
10 | }
11 | #mt-top-padding {
12 | height: 60px;
13 | }
14 | #modal-instructions {
15 | width: 1000px;
16 | margin-left: -500px;
17 | }
18 | #mt-feedback {
19 | padding: 0px;
20 | margin: 0px;
21 | margin-left: 20px;
22 | }
23 | #mt-feedback > input {
24 | margin-bottom: 0px;
25 | margin-top: -2px;
26 | vertical-align: middle;
27 | }
28 | #mt-instructions {
29 | background-color: #EDA126;
30 | font-weight: bold;
31 | padding: 8px;
32 | margin: 0px;
33 | }
34 | #mt-instructions > .btn {
35 | margin: 0px;
36 | }
37 | #mt-instructions > span {
38 | padding: 0px;
39 | margin: 0px;
40 | margin-top: -5px;
41 | }
42 | #mt-num-shapes {
43 | text-decoration: underline;
44 | }
45 | .ui-controls-top {
46 | background-color:#EEE;
47 | padding: 5px;
48 | margin: 0px;
49 | }
50 | .mt-caption {
51 | text-align: center;
52 | }
53 | .item-selected {
54 | background-color: #fff1c5; border: 1px solid #ff7000;
55 | -webkit-box-shadow: 0px 0px 5px #ff7000;
56 | -moz-box-shadow: 0px 0px 5px #ff7000;
57 | box-shadow: 0px 0px 5px #ff7000;
58 | }
59 |
--------------------------------------------------------------------------------
/static/opensurfaces/examples/bad-examples.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/examples/bad-examples.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/examples/bench-example.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/examples/bench-example.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/examples/cat-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/examples/cat-1.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/examples/cat-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/examples/cat-2.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/examples/cat-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/examples/cat-3.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/examples/control-bar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/examples/control-bar.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/examples/disjointed-objects.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/examples/disjointed-objects.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/examples/good-examples.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/examples/good-examples.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/examples/zoom.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/examples/zoom.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/adjust0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/adjust0.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/adjust1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/adjust1.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/adjust2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/adjust2.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/bad-close.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/bad-close.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/bad-vertex.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/bad-vertex.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/bad1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/bad1.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/bad2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/bad2.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/bad3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/bad3.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/bad4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/bad4.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/bad5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/bad5.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/bad6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/bad6.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/controls.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/controls.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/draw1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/draw1.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/draw5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/draw5.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/draw6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/draw6.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/glyphicons-halflings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/glyphicons-halflings.png
--------------------------------------------------------------------------------
/static/opensurfaces/img/good-close.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/good-close.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/good11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/good11.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/good12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/good12.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/good4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/good4.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/good5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/good5.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/good9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/good9.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/segment_material_bad1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/segment_material_bad1.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/segment_material_bad2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/segment_material_bad2.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/segment_material_bad3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/segment_material_bad3.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/segment_material_bad4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/segment_material_bad4.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/segment_material_good1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/segment_material_good1.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/img/segment_material_good2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tylin/coco-ui/6f2b3e3dc6726ee7fc36c08a923a6daf89cd9df4/static/opensurfaces/img/segment_material_good2.jpg
--------------------------------------------------------------------------------
/static/opensurfaces/js/coco_instance_segmentation.js:
--------------------------------------------------------------------------------
1 | //write functions here
2 | function Ctrler(){
3 | this.N = 0;
4 | this.cur_anno_idx = 0;
5 | this.originX;
6 | this.originY;
7 | this.im = new Image();
8 | // use cat icon for demo
9 | var cat_id = 17;
10 | this.im.src = STATIC_ROOT + '/images/categories/'+cat_id+'.png';
11 | this.zoomLevel = 0;
12 | }
13 | // center icon
14 | Ctrler.prototype.centerIcon = function(){
15 | var stage_ui = window.controller_ui.s.stage_ui;
16 | var imWid = stage_ui.size['width'];
17 | var imHei = stage_ui.size['height'];
18 | var bbox = window.controller_ui.s.stage_ui.bbox;
19 | var zoom = ctrler.getZoomFactor();
20 | origin = ctrler.getOrigin();
21 | // compute new origin
22 | stage_ui.translate_delta(Anno[0][0]* imWid- imWid/2/zoom - origin['x'], Anno[0][1]*imHei- imHei/2/zoom - origin['y']);
23 | setTimeout(function(){ctrler.renderHint();}, 300);
24 | }
25 | Ctrler.prototype.zoomAtCenter = function(delta){
26 | var stage_ui = window.controller_ui.s.stage_ui;
27 | var imWid = stage_ui.size['width'];
28 | var imHei = stage_ui.size['height'];
29 | var p = new Object();
30 | p['x'] = imWid/2
31 | p['y'] = imHei/2
32 | stage_ui.zoom_delta(delta,p);
33 | }
34 | //render hint
35 | Ctrler.prototype.renderHint = function(){
36 | var stage_ui = window.controller_ui.s.stage_ui;
37 | var imWid = stage_ui.size['width'];
38 | var imHei = stage_ui.size['height'];
39 | var ctx = $('canvas')[0].getContext('2d');
40 | var icon_size=20;
41 |
42 | for (i=0; i < ctrler.N; i++){
43 | var x = Anno[i][0];
44 | var y = Anno[i][1];
45 | var left = x * imWid;
46 | var top = y * imHei;
47 | var container = $('#mt-container');
48 | var offsetX = parseFloat(container.position().left);
49 | var offsetY = parseFloat(container.position().top );
50 | // adjust with new zoom and origin
51 | var origin = ctrler.getOrigin();
52 | var zoom = ctrler.getZoomFactor();
53 | left = (left - origin['x'])*zoom;
54 | top = (top - origin['y'])*zoom;
55 | if (left >0 && left < Math.min($(window).width()-icon_size/2, imWid*zoom) &&
56 | top > 0 && top < Math.min( $(window).width()-icon_size/2, imHei*zoom)){
57 | for (k = 0; k < polys.length; k++){
58 | ctx.beginPath();
59 | vertex = polys[k];
60 | ctx.moveTo((vertex[0]*imWid - origin['x'])*zoom, (vertex[1]*imHei-origin['y'])*zoom);
61 | for (j=2; j< vertex.length; j+=2){
62 | ctx.lineTo((vertex[j]*imWid - origin['x'])*zoom, (vertex[j+1]*imHei-origin['y'])*zoom);
63 | }
64 | ctx.closePath();
65 | ctx.fillStyle = 'rgba(0,0,255, 0.5)';
66 | ctx.stroke();
67 | ctx.fill();
68 | }
69 | ctx.drawImage(ctrler.im, left-15, top-15, 30, 30);
70 | }
71 | }
72 |
73 | }
74 | Ctrler.prototype.getOrigin = function(){
75 | return window.controller_ui.s.stage_ui.origin
76 | }
77 | Ctrler.prototype.getZoomFactor = function(){
78 | return window.controller_ui.s.stage_ui.get_zoom_factor()
79 | }
80 | Ctrler.prototype.getPolys = function(){
81 | // polygon points:
82 | return window.controller_ui.s.closed_polys
83 | }
84 | Ctrler.prototype.submitNoObj = function(){
85 | if (!mt_submit_ready) {
86 | return;
87 | }
88 | window.show_modal_loading("Submitting...", 0);
89 | var data = $.extend(true, {
90 | screen_width: screen.width,
91 | screen_height: screen.height,
92 | time_load_ms: window.time_load_ms
93 | }, data);
94 | var ans = JSON.stringify(data);
95 | var duration = ($.now()-init_time)/1000;
96 | var resp =
97 | {'ans':ans,
98 | 'duration': duration,
99 | 'assignmentId':$('#assignmentId').val(),
100 | 'workerId': $('#workerId').val(),
101 | 'hitId': $('#hitId').val(),
102 | 'isObj': 0,
103 | };
104 | $("input[name='duration']").val(duration)
105 | $("input[name='ans']").val(ans);
106 | $("input[name='isObj']").val(0);
107 | $('#mturk_form').submit();
108 | }
109 | Ctrler.prototype.submit_form = function(data_callback) {
110 | var data, feedback;
111 | if (!mt_submit_ready) {
112 | return;
113 | }
114 | window.show_modal_loading("Submitting...", 0);
115 | data = data_callback();
116 | if (window.ask_for_feedback) {
117 | feedback = typeof window.get_modal_feedback === "function" ? window.get_modal_feedback() : void 0;
118 | }
119 | if ((feedback != null) && !$.isEmptyObject(feedback)) {
120 | data.feedback = JSON.stringify(feedback);
121 | }
122 | console.log("submit data:");
123 | console.log(data);
124 | var data = $.extend(true, {
125 | screen_width: screen.width,
126 | screen_height: screen.height,
127 | time_load_ms: window.time_load_ms
128 | }, data);
129 | var ans = JSON.stringify(data);
130 | var duration = ($.now()-init_time)/1000;
131 | var resp =
132 | {'ans':ans,
133 | 'duration': duration,
134 | 'assignmentId':$('#assignmentId').val(),
135 | 'workerId': $('#workerId').val(),
136 | 'hitId': $('#hitId').val(),
137 | 'isObj': 1,
138 | };
139 | $("input[name='duration']").val(duration)
140 | $("input[name='ans']").val(ans);
141 | $("input[name='isObj']").val(1);
142 | $('#mturk_form').submit();
143 | }
144 | Ctrler.prototype.addListener = function(){
145 | $('#btn-zoom-in').bind('click', function(e){
146 | ctrler.zoomAtCenter(600);
147 | ctrler.zoomLevel++;
148 | ctrler.renderHint();
149 | return stop_event(e);
150 | });
151 | $('#btn-zoom-out').bind('click', function(e){
152 | ctrler.zoomAtCenter(-600);
153 | ctrler.renderHint();
154 | return stop_event(e);
155 | });
156 | $('#btn-move').bind('click', function(e){
157 | ctrler.centerIcon();
158 | return stop_event(e);
159 | //return stop_event(ev);
160 | });
161 | $(document).keydown(function(ev){
162 | if (ev.keyCode == 77 || ev.keyCode == 109){
163 | $('#btn-move').trigger('click');
164 | }else if(ev.keyCode == 73 || ev.keyCode == 105){
165 | $('#btn-zoom-in').trigger('click');
166 | }else if(ev.keyCode == 79 || ev.keyCode == 111){
167 | $('#btn-zoom-out').trigger('click');
168 | }else if(ev.keyCode == 37 || ev.keyCode == 38){
169 | }
170 | } );
171 | $('#btn-submit-noobj').bind('click', ctrler.submitNoObj);
172 | $(document).keypress( function(ev){
173 | if (ev.keyCode == 37 || ev.keyCode == 38){
174 | setTimeout(function(){
175 | ctrler.renderHint();}, 100);
176 | }
177 | });
178 | }
179 | // polygonal comparison
180 | function isPointInPoly(poly, pt){
181 | nvert = poly.length
182 | var c = false;
183 | for(i = 0, j = nvert - 1; i < nvert; j = i++){
184 | if ( (poly[i]['y'] > pt['y'] )!=(poly[j]['y']>pt['y']) &&
185 | (pt['x'] < (poly[j]['x']-poly[i]['x']) * (pt['y']-poly[i]['y']) / (poly[j]['y']-poly[i]['y']) + poly[i]['x'] )){
186 | c = !c;
187 | }
188 | }
189 | return c;
190 | }
191 |
192 | function accOfOverlappedPolygons(poly1, poly2){
193 | var bbox = getbboxOfPolys(poly1, poly2);
194 | var intersection = 0;
195 | var union = 0;
196 | var poly1Pixel = 0;
197 | var poly2Pixel = 0;
198 | for (var i = bbox['x_min']; i < bbox['x_max']; i++){
199 | for (var j = bbox['y_min']; j < bbox['y_max']; j++){
200 | var pt = new Object();
201 | pt = {'x':i, 'y':j};
202 | var inPoly1 = isPointInPoly(poly1, pt);
203 | var inPoly2 = isPointInPoly(poly2, pt);
204 | if (inPoly1 || inPoly2){
205 | union++;
206 | }
207 | if (inPoly1){
208 | poly1Pixel++;
209 | }
210 | if(inPoly1 ^ inPoly2){
211 | intersection++;
212 | }
213 | }
214 | }
215 | return intersection/poly1Pixel;
216 | }
217 | function getbboxOfPolys(poly1, poly2){
218 | bbox1 =getbbox(poly1);
219 | bbox2 =getbbox(poly2);
220 | var bbox = new Object();
221 | bbox['x_min'] = Math.min(bbox1['x_min'], bbox2['x_min']);
222 | bbox['y_min'] = Math.min(bbox1['y_min'], bbox2['y_min']);
223 | bbox['x_max'] = Math.max(bbox1['x_max'], bbox2['x_max']);
224 | bbox['y_max'] = Math.max(bbox1['y_max'], bbox2['y_max']);
225 | return bbox
226 | }
227 | function getbbox(poly){
228 | var x_min=1000000, x_max=0, y_min=100000, y_max = 0;
229 | for (var i=0; i poly[i]['x']){x_min = poly[i]['x'];};
231 | if (x_max < poly[i]['x']){x_max = poly[i]['x'];};
232 | if (y_min > poly[i]['y']){y_min = poly[i]['y'];};
233 | if (y_max < poly[i]['y']){y_max = poly[i]['y'];};
234 | }
235 | return {'x_min':x_min, 'x_max':x_max, 'y_min':y_min, 'y_max':y_max,}
236 | }
237 | // windows
238 | var ctrler;
239 | $(window).load(function(){
240 | // append a invisible annotation
241 | // set up things
242 | ctrler = new Ctrler();
243 | ctrler.N = Anno.length;
244 | // redner things
245 | ctrler.renderHint();
246 | // ctrler.centerIcon();
247 | ctrler.addListener();
248 | window.controller_ui.s.stage_ui.layer.afterDrawFunc = ctrler.renderHint
249 | });
250 |
--------------------------------------------------------------------------------
/tasks/coco_category_labeling.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
42 |
43 |
44 |
45 |
46 |
51 |
52 |
53 |
54 |
55 |
Instructions:
56 |
57 |
58 | Please
59 | drag and drop
60 | icons from the bottom panel to matching objects in the image.
61 | If an icon matches multiple objects you can drag the icon onto any of the objects.
62 | There are 11
63 | sets of objects to drag onto the image.
64 | Use the buttons or arrow keys
65 | to cycle through them.
66 | There are total of
67 |
68 | images to label.
69 |
70 | Please drag and drop ICONS to matching objects in the image.
71 |
72 |
73 | Here is an example of a labeled image:
74 |
75 |
You only need to mark up to 10 instances if multiple cat(s) exist in the image.
105 | It is possible for some images that this object does not appear.
106 |
The blinking icon (Hint) shows where one instance of the object could be.
107 | The Hint is NOT ALWAYS correct. Go NEXT when no cat in the image.
108 |
Use key N to go to the next image and B to go back.
109 |