加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
index.html 50.48 KB
一键复制 编辑 原始数据 按行查看 历史
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310
<!DOCTYPE html>
<html lang="en">
<head>
<title>SUSTech POINTS</title>
<meta charset="utf-8">
<link rel="icon" type="image/png" href="/static/icon2.png">
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<!-- <script src="/static/js/lib/jquery-1.12.4.js"></script>
<link rel="stylesheet" href="/static/js/lib/jquery-ui-1.12.1/jquery-ui.min.css">
<script src="/static/js/lib/jquery-ui-1.12.1/jquery-ui.min.js"></script> -->
<link type="text/css" rel="stylesheet" href="/static/css/main.css">
</head>
<body>
<div id="main-editor"></div>
<!-- div id="batch-editor"-->
</div>
<template id="editor-template"><div id="main-ui" class="editor-ui">
<div id="header">
<div id="global-info">
<!-- text id="frame"></text-->
<div id="selectors">
<select id="scene-selector">
<option>--scene--</option>
</select>
<div id='btn-reload-scene-list' class="ui-button" title="reload scene list">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<path d="M 12 20 A 8 8 0 1 1 20 12 M 21 9 L 20 12 L 18 10" />
</g></svg>
</div>
<select id="frame-selector">
<option>--frame--</option>
</select>
<!-- <select id="camera-selector">
<option>--camera--</option>
</select> -->
<div id="camera-selector">
<span>Camera</span>
<div id="camera-list">
</div>
</div>
</div>
<select id="object-selector">
<option>--object--</option>
</select>
<text id="box"></text>
<text id="ref-obj"></text>
</div>
<div id="buttons">
<div id="dynamic-buttons-placeholder">
</div>
<div id="static-buttons">
<div id="changed-mark" class="ui-button">
<div id='save-button'>
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<path d="M 4 4 L 18 4 L 20 6 L 20 20 L 4 20 Z M 8 4 h 8 v 2 h -8 z M 6 10 h 12 V 18 h -12 z "></path>
</g></svg>
</div>
<div id="changed-world-list-wrapper">
<div> All modified frames, click to save them all</div>
<div id='changed-world-list'></div>
</div>
</div>
<div id="log-button" class="ui-button">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" id="log-svg" class="svg-button">
<g>
<circle cx = 12 cy=12 r=4 />
</g>
</svg>
</div>
<div id="config-button" class="ui-button">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button">
<g>
<circle cx = 12 cy=7 r=1 />
<circle cx = 12 cy=12 r=1 />
<circle cx = 12 cy=17 r=1 />
</g>
</svg>
</div>
</div>
</div>
</div>
<div id="content">
<div id="container">
<div id='select-box' ></div>
<svg width="100%" height="100%" id = "main-view-svg">
<g id="grid-lines-wrapper"></g>
</svg>
</div>
<!-- div id="image"></div -->
<div id="floating-things">
<div id="floating-labels" class="non-selectable"></div>
<div id="obj-editor">
<div class="obj-editor-row">
<div id="label-copy" class="ui-button" title="copy (C-c)">
<!-- <span class="ui-icon ui-icon-copy"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<!-- <rect x="4" y="4" width="12" height="12"/> -->
<rect x="8" y="8" width="12" height="12"/>
<polyline points="8 16 4 16 4 4 16 4 16 8 "/>
</g></svg>
</div>
<div id="label-paste" class="ui-button" title="auto adjust">
<!-- <span class="ui-icon ui-icon-key"></span></div> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<!-- <rect x="4" y="8" width="16" height="12"/>
<circle cx="12" cy="8" r = "4"/> -->
<circle cx=12 cy=12 r=4 />
<rect x=10 y=16 width=4 height=4 />
<polyline points='12 3 12 6' />
<polyline points='3 12 6 12' />
<polyline points='18 12 21 12' />
<polyline points='5 5 8 8' />
<polyline points='18 5 15 8' />
</g></svg>
</div>
<div id="label-batchedit" class="ui-button" title="edit multiple instances">
<!-- <span class="ui-icon ui-icon-zoomin"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<rect x="4" y="4" width="8" height="8"/>
<rect x="4" y="12" width="8" height="8"/>
<rect x="12" y="4" width="8" height="8"/>
</g></svg>
</div>
<div id="label-trajectory" class="ui-button" title="trajectory">
<!-- <span class="ui-icon ui-icon-zoomin"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<path d="M 4 4 C 20 4, 4 20, 20 20" />
</g></svg>
</div>
<div id="label-highlight" class="ui-button" title="focus">
<!-- <span class="ui-icon ui-icon-zoomin"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<circle cx="10" cy="10" r="7"/>
<polyline points="15 15 20 20"/>
<polyline points="10 6 10 14"/>
<polyline points="6 10 14 10"/>
</g></svg>
</div>
<div id="label-edit" class="ui-button" title="edit">
<!-- <span class="ui-icon ui-icon-pencil"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<polyline points="12 4 12 20" />
<polyline points="4 9 12 9" />
<polyline points="8 5 12 9 8 13" />
<polyline points="20 15 12 15" />
<!-- <polyline points="16 19 12 15 16 11" /> -->
</svg>
</div>
<div id="label-rotate" class="ui-button" title="reverse direction (g)">
<!-- <span class="ui-icon ui-icon-transferthick-e-w"></span></div> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<!-- <rect x=6 y=4 width=12 height=8 />
<polyline points="12 12 12 20" />
<polyline points="8 16 12 20 16 16" /> -->
<rect x=8 y=8 width=8 height=8 />
<polyline points="12 12 12 21" />
<polyline points="10 19 12 21 14 19" />
<polyline points="12 12 12 3" stroke-dasharray="1" />
<polyline points="10 5 12 3 14 5" stroke-dasharray="1" />
</g></svg>
</div>
<div id="label-del" class="ui-button" title="delete (Del)">
<!-- <span class="ui-icon ui-icon-trash"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V8H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"></path>
</g></svg>
</div>
<div id="label-more" class="ui-button">
<!-- <span class="ui-icon ui-icon-trash"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<g>
<circle cx="7" cy="12" r="0.5"></circle>
<circle cx="12" cy="12" r="0.5"></circle>
<circle cx="17" cy="12" r="0.5"></circle>
</g>
</g></svg>
<div id="object-dropdown-menu" class="non-selectable">
<div class="menu-item" id="cm-delete-obj">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Delete this object (in all frames)</div>
</div>
<div class="menu-item" id="cm-modify-obj-type">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Sync object type & attr</div>
</div>
<div class="menu-item" id="cm-modify-obj-size">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Sync object size</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-auto-ann-background">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Auto ann. it in background</div>
</div>
<div class="menu-item" id="cm-interpolate-background">
<div class="menu-item-icon"></div>
<div class="menu-item-text">interpolate it in background</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-select-as-ref">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Copy/Select as Ref</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-change-id-to-ref">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Change ID to Ref</div>
</div>
<div class="menu-item" id="cm-change-id-to-ref-in-scene">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Change ID to Ref in all frames</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-follow-ref">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Follow Ref</div>
</div>
<div class="menu-item" id="cm-sync-followers">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Sync followers</div>
</div>
<div class="menu-item" id="cm-follow-static-objects">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Follow Static Objects</div>
</div>
</div>
</div>
</div>
<div class="obj-editor-row">
<select title="category" id="object-category-selector"></select>
<input title="tracking id" list="obj-ids-of-scene" id="object-track-id-editor" type="text" size="5" placeholder="track id"></input>
<datalist id="obj-ids-of-scene"></datalist>
<div id="label-gen-id" class="ui-button" title="generate ID">
<!-- <span class="ui-icon ui-icon-copy"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<!-- <rect x="4" y="4" width="12" height="12"/> -->
<rect x="6" y="6" width="12" height="12"/>
</g></svg>
</div>
</div>
<div class = "obj-editor-row">
<div id="attr-editor">
<input title="attribute" id="attr-input" type="text" size="10" placeholder="attribute">
<div id="attr-selector">
</div>
</div>
</div>
</div>
</div>
<div id="main-box-editor-wrapper"></div>
<div id="batch-box-editor">
<div id="batch-box-editor-header"></div>
<div id="batch-box-editor-group"></div>
</div>
</div>
<div id="context-menu-wrapper" class="non-selectable">
<div id="context-menu">
<div class="menu-item" id="cm-new">
<div class="menu-item-icon"></div>
<div class="menu-item-text">New</div>
<div class="menu-item-arrow menu-item-icon">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-menu-icon"><g>
<path d="M12 8 L 18 12 L 12 16Z"></path>
</g></svg>
</div>
<div id="new-submenu">
</div>
</div>
<div class="menu-item" id="cm-paste" title="hold shift key to disable auto-adjust">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Paste</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-goto">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Go to</div>
<div class="menu-item-arrow menu-item-icon">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-menu-icon"><g>
<path d="M12 8 L 18 12 L 12 16Z"></path>
</g></svg>
</div>
<div id="goto-submenu">
<div class="menu-item" id="cm-prev-frame">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Previous frame (3)</div>
</div>
<div class="menu-item" id="cm-next-frame">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Next frame (4)</div>
</div>
<div class="menu-item" id="cm-first-frame">
<div class="menu-item-icon"></div>
<div class="menu-item-text">First frame</div>
</div>
<div class="menu-item" id="cm-last-frame">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Last frame</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-prev-object">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Previous object (1)</div>
</div>
<div class="menu-item" id="cm-next-object">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Next object (2)</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-go-to-10hz">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Full 10hz scene</div>
</div>
<div class="menu-item" id="cm-go-to-full-2hz">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Full 2Hz scene</div>
</div>
<div class="menu-item" id="cm-go-to-2hz">
<div class="menu-item-icon"></div>
<div class="menu-item-text">2Hz scene</div>
</div>
</div>
</div>
<div class="menu-item" id="cm-play">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Play</div>
<div class="menu-item-arrow menu-item-icon">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-menu-icon"><g>
<path d="M12 8 L 18 12 L 12 16Z"></path>
</g></svg>
</div>
<div id="play-submenu">
<div class="menu-item" id="cm-play-2fps">
<div class="menu-item-text">2 FPS</div></div>
<div class="menu-item" id="cm-play-10fps">
<div class="menu-item-text">10 FPS</div></div>
<div class="menu-item" id="cm-play-20fps">
<div class="menu-item-text">20 FPS</div></div>
<div class="menu-item" id="cm-play-50fps">
<div class="menu-item-text">50 FPS</div></div>
</div>
</div>
<div class="menu-item" id="cm-pause">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Pause/Resume (Space)</div>
</div>
<div class="menu-item" id="cm-stop">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Stop</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-save">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Save (C-s)</div>
</div>
<!-- <div class="menu-item" id="cm-save-all">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Save All</div>
<div id="saveall-submenu"></div>
</div> -->
<div class="menu-item" id="cm-reload">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Reload (C-r)</div>
</div>
<div class="menu-item" id="cm-reload-all">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Reload All</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-reset-view">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Reset view</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-show-frame-info">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Frame info</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-show-stat">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Stat</div>
</div>
<div class="menu-item" id="cm-check-scene">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Check</div>
</div>
</div>
<div id="object-context-menu">
<div class="menu-item" id="cm-delete">
<div class="menu-item-icon">
</div>
<div class="menu-item-text">Delete</div>
</div>
<div class="menu-item" id="cm-delete-obj">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Delete this object (in all frames)</div>
</div>
<div class="menu-item" id="cm-modify-obj-type">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Sync object type & attr</div>
</div>
<div class="menu-item" id="cm-modify-obj-size">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Sync object size</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-edit-multiple-instances">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Edit multiple instances</div>
</div>
<div class="menu-item" id="cm-auto-ann-background">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Auto annotate in background</div>
</div>
<div class="menu-item" id="cm-interpolate-background">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Interpolate in background</div>
</div>
<div class="menu-item" id="cm-show-trajectory">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Show Trajectory</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-select-as-ref">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Copy/Select as Ref</div>
</div>
<div class="menu-item" id="cm-follow-ref">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Follow Ref</div>
</div>
<div class="menu-item" id="cm-sync-followers">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Sync followers</div>
</div>
<div class="menu-item" id="cm-follow-static-objects">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Follow Static Objects</div>
</div>
</div>
<div id="box-editor-context-menu">
<div class="menu-item" id="cm-select-all">
<div class="menu-item-icon">
</div>
<div class="menu-item-text"><u>S</u>elect all</div>
</div>
<div class="menu-item" id="cm-select-all-previous">
<div class="menu-item-icon">
</div>
<div class="menu-item-text">Select all previous</div>
</div>
<div class="menu-item" id="cm-select-all-next">
<div class="menu-item-icon">
</div>
<div class="menu-item-text">Select all next</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-delete-empty-boxes">
<div class="menu-item-icon">
</div>
<div class="menu-item-text">Delete empty boxes</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-delete">
<div class="menu-item-icon">
</div>
<div class="menu-item-text"><u>D</u>elete</div>
</div>
<div class="menu-item" id="cm-delete-intersected-boxes">
<div class="menu-item-icon">
</div>
<div class="menu-item-text">Delete intersected boxes</div>
</div>
<div class="menu-item" id="cm-interpolate">
<div class="menu-item-icon">
</div>
<div class="menu-item-text">Int<u>e</u>rpolate</div>
</div>
<div class="menu-item" id="cm-auto-annotate">
<div class="menu-item-icon">
</div>
<div class="menu-item-text"><u>A</u>uto annotate</div>
</div>
<div class="menu-item" id="cm-auto-annotate-wo-rotation">
<div class="menu-item-icon">
</div>
<div class="menu-item-text">Auto annotate (no rotation)</div>
</div>
<div class="menu-item" id="cm-fit">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Fit</div>
<div class="menu-item-arrow menu-item-icon">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-menu-icon"><g>
<path d="M12 8 L 18 12 L 12 16Z"></path>
</g></svg>
</div>
<div id="cm-fit-submenu">
<div class="menu-item" id="cm-fit-size">
<div class="menu-item-text">Size</div></div>
<div class="menu-item" id="cm-fit-position">
<div class="menu-item-text">Position</div></div>
<div class="menu-item" id="cm-fit-rotation">
<div class="menu-item-text">Rotation</div></div>
<div class="menu-item" id="cm-fit-moving-direction">
<div class="menu-item-text">Moving direction</div></div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-fit-top">
<div class="menu-item-text">Top</div></div>
<div class="menu-item" id="cm-fit-bottom">
<div class="menu-item-text">Bottom</div></div>
<div class="menu-item" id="cm-fit-left">
<div class="menu-item-text">Left</div></div>
<div class="menu-item" id="cm-fit-right">
<div class="menu-item-text">Right</div></div>
<div class="menu-item" id="cm-fit-front">
<div class="menu-item-text">Front</div></div>
<div class="menu-item" id="cm-fit-rear">
<div class="menu-item-text">Rear</div></div>
</div>
</div>
<div class="menu-item" id="cm-reverse-direction">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Reverse heading direction</div>
</div>
<div class="menu-item" id="cm-reset-roll-pitch">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Reset roll & pitch</div>
</div>
<div class="menu-item" id="cm-finalize">
<div class="menu-item-icon">
</div>
<div class="menu-item-text"><u>F</u>inalize</div>
</div>
<div class="menu-item" id="cm-reload">
<div class="menu-item-icon">
</div>
<div class="menu-item-text">Reload</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-goto-this-frame">
<div class="menu-item-text"><u>G</u>o to this frame</div>
</div>
<div class="menu-item" id="cm-sync-size">
<div class="menu-item-text">Sync size to all</div>
</div>
<div class="menu-item" id="cm-follow-static-objects">
<div class="menu-item-text">Follow static objects</div>
</div>
<!-- <div class="menu-item" id="cm-this">
<div class="menu-item-icon"></div>
<div class="menu-item-text">This frame</div>
<div class="menu-item-arrow menu-item-icon">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-menu-icon"><g>
<path d="M12 8 L 18 12 L 12 16Z"></path>
</g></svg>
</div>
<div id="cm-this-submenu">
</div>
</div> -->
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-show-trajectory">
<div class="menu-item-icon">
</div>
<div class="menu-item-text"><u>T</u>rajectory</div>
</div>
<div class="menu-item" id="cm-check">
<div class="menu-item-icon">
</div>
<div class="menu-item-text">Check</div>
</div>
</div>
<div id="box-editor-manager-context-menu">
<div class="menu-item" id="cm-increase-box-editor">
<div class="menu-item-icon">
</div>
<div class="menu-item-text">More object instance</div>
</div>
<div class="menu-item" id="cm-decrease-box-editor">
<div class="menu-item-icon">
</div>
<div class="menu-item-text">less object instance</div>
</div>
</div>
</div>
<div id="config-wrapper">
<div id="config-menu" class="non-selectable">
<div class="menu-nonclickable-item" id="cfg-theme">
<span>Theme</span>
<div class="cfg-widget-group">
<select type="checkbox" id="cfg-theme-select" class="cfg-widget">
<option value="dark" selected>dark</option>
<option value="light" selected>light</option>
</select>
</div>
</div>
<div class="menu-nonclickable-item" id="cfg-point-size">
<span>Point size</span>
<div class='cfg-widget-group'>
<div id='cfg-increase-size' class='menu-button'>+</div>
<div id='cfg-decrease-size' class='menu-button'>-</div>
</div>
</div>
<div class="menu-nonclickable-item" id="cfg-point-brightness">
<span>Point brightness</span>
<div class='cfg-widget-group'>
<div id='cfg-increase-brightness' class='menu-button'>+</div>
<div id='cfg-decrease-brightness' class='menu-button'>-</div>
</div>
</div>
<div class="menu-nonclickable-item" id="cfg-hide-circle-ruler">
<span>Hide circle ruler</span>
<div class="cfg-widget-group">
<input type="checkbox" id="cfg-hide-circle-ruler-checkbox" class="cfg-widget">
</div>
</div>
<div class="menu-nonclickable-item" id="cfg-hide-box">
<span>Hide box</span>
<div class="cfg-widget-group">
<input type="checkbox" id="cfg-hide-box-checkbox" class="cfg-widget">
</div>
</div>
<div class="menu-nonclickable-item" id="cfg-hide-id">
<span>Hide Id</span>
<div class="cfg-widget-group">
<input type="checkbox" id="cfg-hide-id-checkbox" class="cfg-widget">
</div>
</div>
<div class="menu-nonclickable-item" id="cfg-hide-category">
<span>Hide Category</span>
<div class="cfg-widget-group">
<input type="checkbox" id="cfg-hide-category-checkbox" class="cfg-widget">
</div>
</div>
<div class="menu-nonclickable-item" id="cfg-color-points">
<span>Color point</span>
<div class="cfg-widget-group">
<select type="checkbox" id="cfg-color-points-select" class="cfg-widget">
<option value="mono" selected>mono</option>
<option value="intensity" selected>by intensity</option>
</select>
</div>
</div>
<div class="menu-nonclickable-item" id="cfg-color-object">
<span>Color objects</span>
<div class="cfg-widget-group">
<select id="cfg-color-object-scheme"  class="cfg-widget">
<option value="category">by category</option>
<option value="id">by ID</option>
<option value="no">don't color</option>
</select>
</div>
</div>
<div class="menu-nonclickable-item" id="cfg-menu-batch-mode-inst-number">
<span>Batch mode max box number</span>
<div class="cfg-widget-group">
<select title="instance number" id="cfg-batch-mode-inst-number"  class="cfg-widget">
<option value = 10>10</option>
<option value = 20 selected>20</option>
<option value = 30>30</option>
<option value = 40>40</option>
</select>
</div>
</div>
<div class="menu-nonclickable-item" id="cfg-coordinate-system">
<span>Coordinate system</span>
<div class="cfg-widget-group">
<select title="coordinate system" id="cfg-coordinate-system-select"  class="cfg-widget">
<option value = "utm">GPS/UTM</option>
<option value = "lidar" selected>LiDAR</option>
</select>
</div>
</div>
<div class="menu-nonclickable-item" id="cfg-auto-rotate-xy">
<span>Auto rotate X/Y (roll/pitch)</span>
<div class="cfg-widget-group">
<input type="checkbox" id="cfg-auto-rotate-xy-checkbox" class="cfg-widget">
</div>
</div>
<div class="menu-nonclickable-item" id="cfg-auto-update-interpolated-boxes">
<span>Auto update interploated boxes</span>
<div class="cfg-widget-group">
<input type="checkbox" id="cfg-auto-update-interpolated-boxes-checkbox" class="cfg-widget">
</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cfg-data">
<span>Data settings</span>
<div class="menu-item-arrow menu-item-icon">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-menu-icon"><g>
<path d="M12 8 L 18 12 L 12 16Z"></path>
</g></svg>
</div>
<div id="cfg-data-submenu">
<div class="menu-nonclickable-item" id="cfg-data-preload">
<div class="menu-item-text">Preload</div>
<div class="cfg-widget-group">
<input type="checkbox" id="cfg-data-preload-checkbox" class="cfg-widget">
</div>
</div>
<div class="menu-nonclickable-item" id="cfg-data-aux-lidar">
<div class="menu-item-text">Auxiliary LiDAR</div>
<div class="cfg-widget-group">
<input type="checkbox" id="cfg-data-aux-lidar-checkbox" class="cfg-widget">
</div>
</div>
<div class="menu-nonclickable-item" id="cfg-data-radar">
<div class="menu-item-text">Radar</div>
<div class="cfg-widget-group">
<input type="checkbox" id="cfg-data-radar-checkbox" class="cfg-widget">
</div>
</div>
<div class="menu-nonclickable-item" id="cfg-data-filter-points">
<div class="menu-item-text">Hide points</div>
<div class="cfg-widget-group">
<input type="checkbox" id="cfg-data-filter-points-checkbox" class="cfg-widget">
<span> z-threshold</span>
<input id="cfg-data-filter-points-z" class="cfg-widget">
</div>
</div>
</div>
</div>
<div class="menu-item" id="cfg-experimental">
<span>Experimental</span>
<div class="menu-item-arrow menu-item-icon">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-menu-icon"><g>
<path d="M12 8 L 18 12 L 12 16Z"></path>
</g></svg>
</div>
<div id="cfg-experimental-submenu">
<div class="menu-nonclickable-item" id="cfg-calib-camera-LiDAR">
<div class="menu-item-text">Camera-LiDAR calibration</div>
<div class='cfg-widget-group'>
<div id='cfg-start-calib' class='menu-button'>start</div>
<div id='cfg-show-calib' class='menu-button'>result</div>
<div id='cfg-stop-calib' class='menu-button'>stop</div>
<!-- <div id='cfg-reset-calib' class='menu-button'>reset</div> -->
</div>
</div>
<div class="menu-item" id="cfg-crop-scene">
<div class="menu-item-text">Crop scene</div>
</div>
</div>
</div>
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cfg-show-log">
<span>Show logs</span>
</div>
<div class="menu-item" id="cfg-take-screenshot">
<span>Take screenshot</span>
</div>
<div class="menu-item" id="cfg-help">
<a href="https://github.com/naurril/SUSTechPOINTS/blob/dev-auto-annotate/README_guide.md" target="_blank">Help</a>
</div>
</div>
</div>
<!-- div id="projective-view-context-menu">
<div class="menu-item menu-seperator"></div>
<div class="menu-item" id="cm-delete">
<div class="menu-item-icon"></div>
<div class="menu-item-text">Delete</div>
</div>
<div class="menu-item menu-seperator"></div>
</div -->
<div id="object-track-wrapper" class="popup-window-wrapper" tabindex="-1">
<div id="view" class="non-selectable">
<div id="header">
<span id="title">
Trajectory
</span>
<div id="buttons">
<div id="btn-restore" class="ui-button" title="restore">
<!-- <span class="ui-icon ui-icon-trash"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<rect x = 6 y = 6 width=12 height=12></rect>
</g></svg>
</div>
<div id="btn-maximize" class="ui-button" title="maximize">
<!-- <span class="ui-icon ui-icon-trash"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<rect x = 4 y = 4 width=16 height=16></rect>
</g></svg>
</div>
<div id="btn-exit" class="ui-button" title="exit">
<!-- <span class="ui-icon ui-icon-trash"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<path d="M4 4 L 20 20 M 20 4 L 4 20"></path>
</g></svg>
</div>
</div>
</div>
<svg id = "object-track-svg" viewbox="0 0 1000 1000" preserveAspectRatio="xMinYMax meet">
<g id="svg-arrows"></g>
<g id="svg-scaler"></g>
</svg>
</div>
</div>
<div id="info-wrapper" class="popup-window-wrapper" tabindex='-1'>
<div id="view">
<div id="header">
<span id="title">Info</span>
<div id="buttons">
<div id="btn-restore" class="ui-button" title="restore">
<!-- <span class="ui-icon ui-icon-trash"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<rect x = 6 y = 6 width=12 height=12></rect>
</g></svg>
</div>
<div id="btn-maximize" class="ui-button" title="maximize">
<!-- <span class="ui-icon ui-icon-trash"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<rect x = 4 y = 4 width=16 height=16></rect>
</g></svg>
</div>
<div id="btn-exit" class="ui-button" title="exit">
<!-- <span class="ui-icon ui-icon-trash"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<path d="M4 4 L 20 20 M 20 4 L 4 20"></path>
</g></svg>
</div>
</div>
</div>
<div id="info-content"></div>
<div id="info-bottom-buttons">
<button id="btn-no">No</button>
<button id="btn-yes">Yes</button>
</div>
</div>
</div>
<div id="crop-scene-wrapper" class="popup-window-wrapper" tabindex='-1'>
<div id="view">
<div id="header">
<span id="title">Crop scene</span>
<div id="buttons">
<div id="btn-restore" class="ui-button" title="restore">
<!-- <span class="ui-icon ui-icon-trash"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<rect x = 6 y = 6 width=12 height=12></rect>
</g></svg>
</div>
<div id="btn-maximize" class="ui-button" title="maximize">
<!-- <span class="ui-icon ui-icon-trash"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<rect x = 4 y = 4 width=16 height=16></rect>
</g></svg>
</div>
<div id="btn-exit" class="ui-button" title="exit">
<!-- <span class="ui-icon ui-icon-trash"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<path d="M4 4 L 20 20 M 20 4 L 4 20"></path>
</g></svg>
</div>
</div>
</div>
<div id="content">
<div>
<!-- <div><span>scene-id:</span><input id="scene-id" /></div> -->
<div><span>desc:</span><input id="scene-desc" /></div>
<div><span>start time:</span><input id="scene-start-time" /></div>
<div><span>seconds:</span><input id="scene-seconds" /></div>
<div>
<button id="btn-generate">generate</button>
</div>
<div id="log">
</div>
</div>
</div>
</div>
</div>
<div id="log-wrapper" class="popup-window-wrapper" tabindex='-1'>
<div id="view">
<div id="header">
<span id="title">Output</span>
<div id="buttons">
<!-- <div id="btn-restore" class="ui-button" title="restore">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<rect x = 6 y = 6 width=12 height=12></rect>
</g></svg>
</div>
<div id="btn-maximize" class="ui-button" title="maximize">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<rect x = 4 y = 4 width=16 height=16></rect>
</g></svg>
</div> -->
<div id="btn-clear" class="ui-button" title="clear logs">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<circle cx = 12 cy=12 r= 8 />
<polyline points="7 7 17 17" />
</g></svg>
</div>
<div id="btn-exit" class="ui-button" title="exit">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<path d="M4 4 L 20 20 M 20 4 L 4 20"></path>
</g></svg>
</div>
</div>
</div>
<div id="tabs">
<div id = "tab-log" class="tab-button tab-selected">Logs</div>
<div id = "tab-error" class="tab-button">Errors</div>
</div>
<div id="content-logs">
</div>
<div id="content-errors">
</div>
</div>
</div>
<div id="move-handle-wrapper">
</div>
</template>
<template id="box-editor-ui-template"><div id="sub-views">
<div class="box-info non-selectable" id="box-info"></div>
<div class="view-manipulator" id="z-view-manipulator" tabindex="-1">
<!-- <div class="subview-obj-size">
<div class="obj-vertical-size">2.33</div>
<div class="obj-horizontal-size"></div>
</div> -->
<svg class="subview-svg" id = "view-svg">
<circle cx="50%" cy="50%" r="5" class="origin-point-indicator" id="origin-point-indicator"></circle>
<rect x="70" y="50" width="20" height="140" fill="#00000000" class="line-handle ew-handle" id="line-left-handle"/>
<line x1="80" y1="40" x2="80" y2="200" class = "svg-line" id="line-left" />
<rect x="90" y="30" width="40" height="20" fill="#00000000" class="line-handle ns-handle" id="line-top-handle"/>
<line x1="80" y1="40" x2="140" y2="40" class = "svg-line" id="line-top" />
<rect x="130" y="50" width="20" height="140" fill="#00000000" class="line-handle ew-handle" id="line-right-handle"/>
<line x1="140" y1="40" x2="140" y2="200" class = "svg-line" id="line-right" />
<rect x="90" y="190" width="40" height="20" fill="#00000000" class="line-handle ns-handle" id="line-bottom-handle"/>
<line x1="80" y1="200" x2="140" y2="200" class = "svg-line" id="line-bottom" />
<rect x="110" y="120" width="20" height="70" fill="#00000000" class="line-handle ew-handle" id="line-direction-handle"/>
<line x1="110" y1="120" x2="110" y2="40" class = "svg-line" id="line-direction" />
<!-- corners -->
<rect x="60" y="40" width="20" height="20" fill="#00000000" class="line-handle nw-handle" id="top-left-handle"/>
<rect x="110" y="120" width="20" height="20" fill="#00000000" class="line-handle ne-handle" id="top-right-handle"/>
<rect x="110" y="120" width="20" height="20" fill="#00000000" class="line-handle sw-handle" id="bottom-left-handle"/>
<rect x="110" y="120" width="20" height="20" fill="#00000000" class="line-handle se-handle" id="bottom-right-handle"/>
<rect x="100" y="110" width="20" height="20" fill="#00000000" class="line-handle grab-handle" id="move-handle"/>
</svg>
<div class="v-buttons-wrapper" id="v-buttons">
<div id="v-fit-position" class="ui-button" title="Fit position">
<!-- <span class="ui-icon ui-icon-arrow-4"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<!-- <polyline points="3 5 15 3 17 13 5 15 3 5" stroke-dasharray="1" /> -->
<!-- <polyline points="8 10 20 8 22 18 10 20 8 10" /> -->
<rect x="8" y="8" width="12" height="12" stroke-dasharray="1"/>
<rect x="4" y="4" width="12" height="12"/>
</g></svg>
</div>
<div id="v-fit-rotation" class="ui-button" title="Fit Rotation">
<!-- <span class="ui-icon ui-icon-arrow-1-n"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<rect x="8" y="10" width="12" height="10"/>
<polyline points="3 5 15 3 17 13 5 15 3 5" stroke-dasharray="1" />
</g></svg>
</div>
<div id="v-fit-size" class="ui-button" title="Fit size">
<!-- <span class="ui-icon ui-icon-arrow-4"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<!-- <polyline points="3 5 15 3 17 13 5 15 3 5" stroke-dasharray="1" /> -->
<!-- <polyline points="8 10 20 8 22 18 10 20 8 10" /> -->
<rect x="8" y="10" width="10" height="12" stroke-dasharray="1"/>
<rect x="4" y="4" width="8" height="10"/>
</g></svg>
</div>
<div id="v-fit-all" class="ui-button" title="Fit all">
<!-- <span class="ui-icon ui-icon-arrow-2-n-s"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<rect x="6" y="6" width="14" height="14"/>
<polyline points="3 5 15 3 17 13 5 15 3 5" stroke-dasharray="1" />
</g></svg>
</div>
<div id="v-fit-moving-direction" class="ui-button" title="Fit moving direction">
<!-- <span class="ui-icon ui-icon-arrow-2-n-s"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<polyline points="6 18 14 10"/>
<polyline points="10 10 14 10 14 14"/>
<circle cx=5 cy=19 r=2 />
<circle cx=19 cy=5 r=2 />
</g></svg>
</div>
<!-- <div id="v-reset-rotation" class="ui-button" title="reset rotation">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<circle cx=12 cy=12 r=8 />
<circle cx=12 cy=12 r=1 />
</g></svg>
</div> -->
</div>
</div>
<div class="view-manipulator" id="y-view-manipulator" tabindex="-1">
<svg class="subview-svg" id="view-svg">
<rect x="70" y="50" width="20" height="140" fill="#00000000" class="line-handle ew-handle" id="line-left-handle"/>
<line x1="80" y1="40" x2="80" y2="200" class = "svg-line" id="line-left" />
<rect x="90" y="30" width="40" height="20" fill="#00000000" class="line-handle ns-handle" id="line-top-handle"/>
<line x1="80" y1="40" x2="140" y2="40" class = "svg-line" id="line-top" />
<rect x="130" y="50" width="20" height="140" fill="#00000000" class="line-handle ew-handle" id="line-right-handle"/>
<line x1="140" y1="40" x2="140" y2="200" class = "svg-line" id="line-right" />
<rect x="90" y="190" width="40" height="20" fill="#00000000" class="line-handle ns-handle" id="line-bottom-handle"/>
<line x1="80" y1="200" x2="140" y2="200" class = "svg-line" id="line-bottom" />
<rect x="110" y="120" width="20" height="70" fill="#00000000" class="line-handle ew-handle" id="line-direction-handle"/>
<line x1="110" y1="120" x2="110" y2="40" class = "svg-line" id="line-direction" />
<!-- corners -->
<rect x="60" y="40" width="20" height="20" fill="#00000000" class="line-handle nw-handle" id="top-left-handle"/>
<rect x="110" y="120" width="20" height="20" fill="#00000000" class="line-handle ne-handle" id="top-right-handle"/>
<rect x="110" y="120" width="20" height="20" fill="#00000000" class="line-handle sw-handle" id="bottom-left-handle"/>
<rect x="110" y="120" width="20" height="20" fill="#00000000" class="line-handle se-handle" id="bottom-right-handle"/>
<rect x="100" y="110" width="20" height="20", fill="#00000000" class="line-handle grab-handle" id="move-handle"/>
</svg>
<div class="v-buttons-wrapper" id="v-buttons">
<div id="v-fit-all" class="ui-button" title="fit all">
<!-- <span class="ui-icon ui-icon-key"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<rect x="6" y="6" width="14" height="14"/>
<polyline points="3 5 15 3 17 13 5 15 3 5" stroke-dasharray="1" />
</g></svg>
</div>
<div id="v-reset-rotation" class="ui-button" title="reset rotation">
<!-- <span class="ui-icon ui-icon-refresh"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<circle cx=12 cy=12 r=8 />
<circle cx=12 cy=12 r=1 />
</g></svg>
</div>
</div>
</div>
<div class="view-manipulator" id="x-view-manipulator" tabindex="-1">
<svg class="subview-svg" id="view-svg">
<rect x="70" y="50" width="20" height="140" fill="#00000000" class="line-handle ew-handle" id="line-left-handle"/>
<line x1="80" y1="40" x2="80" y2="200" class = "svg-line" id="line-left" />
<rect x="90" y="30" width="40" height="20" fill="#00000000" class="line-handle ns-handle" id="line-top-handle"/>
<line x1="80" y1="40" x2="140" y2="40" class = "svg-line" id="line-top" />
<rect x="130" y="50" width="20" height="140" fill="#00000000" class="line-handle ew-handle" id="line-right-handle"/>
<line x1="140" y1="40" x2="140" y2="200" class = "svg-line" id="line-right" />
<rect x="90" y="190" width="40" height="20" fill="#00000000" class="line-handle ns-handle" id="line-bottom-handle"/>
<line x1="80" y1="200" x2="140" y2="200" class = "svg-line" id="line-bottom" />
<rect x="110" y="120" width="20" height="70" fill="#00000000" class="line-handle ew-handle" id="line-direction-handle"/>
<line x1="110" y1="120" x2="110" y2="40" class = "svg-line" id="line-direction" />
<!-- corners -->
<rect x="60" y="40" width="20" height="20" fill="#00000000" class="line-handle nw-handle" id="top-left-handle"/>
<rect x="110" y="120" width="20" height="20" fill="#00000000" class="line-handle ne-handle" id="top-right-handle"/>
<rect x="110" y="120" width="20" height="20" fill="#00000000" class="line-handle sw-handle" id="bottom-left-handle"/>
<rect x="110" y="120" width="20" height="20" fill="#00000000" class="line-handle se-handle" id="bottom-right-handle"/>
<rect x="100" y="110" width="20" height="20" fill="#00000000" class="line-handle grab-handle" id="move-handle"/>
</svg>
<div class="v-buttons-wrapper" id="v-buttons">
<div id="v-fit-all" class="ui-button" title="fit all">
<!-- <span class="ui-icon ui-icon-key"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<rect x="6" y="6" width="14" height="14"/>
<polyline points="3 5 15 3 17 13 5 15 3 5" stroke-dasharray="1" />
</g></svg>
</div>
<div id="v-reset-rotation" class="ui-button" title="reset rotation">
<!-- <span class="ui-icon ui-icon-refresh"></span> -->
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button"><g>
<circle cx=12 cy=12 r=8 />
<circle cx=12 cy=12 r=1 />
</g></svg>
</div>
</div>
</div>
<canvas id="focuscanvas" class="non-selectable" width="320" height="240">cavas</canvas>
</div></template>
<template id="batch-editor-tools-template">
<div id="batch-editor-tools-wrapper" class="non-selectable">
<div id="batch-editor-tools">
<!-- <select title="category" id="object-category-selector"></select>
<input title="tracking id" list="obj-ids-of-scene" id="object-track-id-editor" type="text" size="5"></input> -->
<div class="menu-button" id="exit">Exit</div>
<div class="menu-button" id="prev">Previous</div>
<div class="menu-button" id="next">Next</div>
<div class="menu-button" id="trajectory">Trajectory</div>
<div class="menu-button" id="auto-annotate">Auto</div>
<div class="menu-button" id="auto-annotate-translate-only">Auto (no rotation) </div>
<div class="menu-button" id="interpolate">Interpolate</div>
<div class="menu-button" id="reload">Reload</div>
<div class="menu-button" id="finalize">Finalize</div>
<!-- <div class="menu-button" id="save">Save</div> -->
<!-- <div class="ui-button" id="config">
<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" class="svg-button">
<g>
<circle cx = 12 cy=7 r=1 />
<circle cx = 12 cy=12 r=1 />
<circle cx = 12 cy=17 r=1 />
</g>
</svg>
</div> -->
</div>
</div>
</template>
<template id="image-wrapper-template">
<div class="image-wrapper">
<svg id = "maincanvas-svg" viewbox="0 0 2048 1536" preserveAspectRatio="none">
<image id="svg-image" x="0" y="0" width="2048" height="1536" preserveAspectRatio="none"
xlink:href=""
/>
<g id="svg-boxes"></g>
<g id="svg-points"></g>
</svg>
<div id="move-handle">
</div>
<header id="header"></header>
</div>
</template>
<script src="/static/js/lib/ml/tf.min.js"></script>
<script type="module" src="/static/js/main.js"></script>
</body>
</html>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化