racer-svn Mailing List for Racer (Page 3)
Status: Alpha
Brought to you by:
jlegg
You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(42) |
Oct
(23) |
Nov
(32) |
Dec
(78) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
(55) |
Feb
(28) |
Mar
(16) |
Apr
(2) |
May
|
Jun
(43) |
Jul
(2) |
Aug
(10) |
Sep
(14) |
Oct
(2) |
Nov
|
Dec
|
From: <jl...@us...> - 2010-06-22 15:01:05
|
Revision: 299 http://racer.svn.sourceforge.net/racer/?rev=299&view=rev Author: jlegg Date: 2010-06-22 15:00:59 +0000 (Tue, 22 Jun 2010) Log Message: ----------- Decrease the minimum time allowed between boosts. Modified Paths: -------------- trunk/racer/Engine/GameObjects/Car.cpp Modified: trunk/racer/Engine/GameObjects/Car.cpp =================================================================== --- trunk/racer/Engine/GameObjects/Car.cpp 2010-06-21 22:43:15 UTC (rev 298) +++ trunk/racer/Engine/GameObjects/Car.cpp 2010-06-22 15:00:59 UTC (rev 299) @@ -391,7 +391,7 @@ } // near booster? - if (boost_timer >= 100) + if (boost_timer >= 40) { const Track::Track & track = world.get_track(); const Track::Path & path = track.get_path(); @@ -422,6 +422,7 @@ } } } + if (boost_timer < 100) boost_timer++; } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-21 22:43:23
|
Revision: 298 http://racer.svn.sourceforge.net/racer/?rev=298&view=rev Author: jlegg Date: 2010-06-21 22:43:15 +0000 (Mon, 21 Jun 2010) Log Message: ----------- Add countdown before the race begins. Modified Paths: -------------- trunk/racer/Engine/GameScene.cpp trunk/racer/Engine/GameScene.h Added Paths: ----------- trunk/racer/data/ui/hud/countdown.png trunk/racer/data/ui/hud/countdown.svg Modified: trunk/racer/Engine/GameScene.cpp =================================================================== --- trunk/racer/Engine/GameScene.cpp 2010-06-21 22:42:43 UTC (rev 297) +++ trunk/racer/Engine/GameScene.cpp 2010-06-21 22:43:15 UTC (rev 298) @@ -43,7 +43,7 @@ , world(track) , save_replay(true) , fps(0) - , first_tick(true) + , countdown_timer(-3000) , paused(false) , show_debug(false) #ifndef NDEBUG @@ -66,6 +66,7 @@ tex_load("text.finish.hud.ui", "data/ui/hud/finished_text.png", m_finish_text_texture); tex_load("disqualified.hud.ui", "data/ui/hud/disqualified_text.png", m_disqualified_text_texture); tex_load("reverse.hud.ui", "data/ui/hud/reverse.png", m_reverse_texture); + tex_load("countdown.hud.ui", "data/ui/hud/countdown.png", m_countdown_texture); #undef tex_load /** @todo Replays should save the version since they are not compatible * with other versions. @@ -289,6 +290,7 @@ void GameScene::update_logic(unsigned int milliseconds_elapsed) { + fps = 1000.0 / float(milliseconds_elapsed); if (paused) { if (m_pause_menu.want_to_quit()) @@ -313,13 +315,13 @@ } return; } - // ignore the first tick because it counts time elapsed while loading. - if (!(first_tick)) + if (countdown_timer <=500) { - world.update(milliseconds_elapsed); + countdown_timer += milliseconds_elapsed; + // don't do physics simulation until race starts. + if (countdown_timer < 0) return; } - first_tick = false; - fps = 1000.0 / float(milliseconds_elapsed); + world.update(milliseconds_elapsed); // if we are done with all cars, quit the scene. bool quit = true; @@ -645,6 +647,10 @@ draw_reverse_sign(player); glColor3ub(255, 255, 255); } + if (countdown_timer < 500) + { + draw_countdown(); + } } glEnable(GL_DEPTH_TEST); @@ -909,6 +915,49 @@ glEnd(); } +void GameScene::draw_countdown() +{ + m_countdown_texture->bind(); + unsigned int tick = 3000+countdown_timer; + // which sign to show (0->3, 1->2, 2->1, 3->Go) + unsigned int n = tick/1000; + float xl = float(n) / 4.0; + float xh = xl + 0.25; + // time taken on this sign in seconds + float s_time = float (tick - n * 1000) / 1000.0; + glPushMatrix(); + if (n == 3) + { + s_time *= 2.0; + float scale = 1.0 + sqrt(s_time) * 2.0; + glScalef(scale, scale, 1.0); + } + if (s_time > 0.875) + { + //glColor4f(1.0, 1.0, 1.0, s_time*16.0-15.0); + float scale_t = 8.0+s_time*-8.0; + float h_scale = 1.0/(scale_t); + float v_scale = scale_t * scale_t; + glScalef(h_scale, v_scale, 1.0); + // white and grey + glBegin(GL_QUADS); + glTexCoord2f(xl, 0.5); glVertex2f(-0.3, -0.3); + glTexCoord2f(xh, 0.5); glVertex2f( 0.3, -0.3); + glTexCoord2f(xh, 0.0); glVertex2f( 0.3, 0.3); + glTexCoord2f(xl, 0.0); glVertex2f(-0.3, 0.3); + glEnd(); + } else { + // coloured outline, dark shadow + glBegin(GL_QUADS); + glTexCoord2f(xl, 1.0); glVertex2f(-0.3, -0.3); + glTexCoord2f(xh, 1.0); glVertex2f( 0.3, -0.3); + glTexCoord2f(xh, 0.5); glVertex2f( 0.3, 0.3); + glTexCoord2f(xl, 0.5); glVertex2f(-0.3, 0.3); + glEnd(); + } + glPopMatrix(); +} + void GameScene::do_sound() { } Modified: trunk/racer/Engine/GameScene.h =================================================================== --- trunk/racer/Engine/GameScene.h 2010-06-21 22:42:43 UTC (rev 297) +++ trunk/racer/Engine/GameScene.h 2010-06-21 22:43:15 UTC (rev 298) @@ -122,13 +122,12 @@ void draw_finished(unsigned int player); /// Show the user they are facing the wrong way. void draw_reverse_sign(unsigned int player); + /// Show the countdown at the begining of the race + void draw_countdown(); /// Set car_ranks. void rank_cars(); - /// True if the first logic tick hasn't been completed. - bool first_tick; - /// The centre of the starting plane btVector3 start_point; /// A normalized vector in the direction perpendicular to the starting plane. @@ -148,7 +147,14 @@ Track::Texture * m_disqualified_text_texture; /// The texture for the u-turn sign that appears when facing the wrong way Track::Texture * m_reverse_texture; + /// The texture for the countdown at the start of the race + Track::Texture * m_countdown_texture; + /** Millisecond timer to the start of the race. + * >= 0 implies race has started. + */ + int countdown_timer; + /// True if the game is paused. bool paused; /// The menu to display when paused. Added: trunk/racer/data/ui/hud/countdown.png =================================================================== (Binary files differ) Property changes on: trunk/racer/data/ui/hud/countdown.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/racer/data/ui/hud/countdown.svg =================================================================== --- trunk/racer/data/ui/hud/countdown.svg (rev 0) +++ trunk/racer/data/ui/hud/countdown.svg 2010-06-21 22:43:15 UTC (rev 298) @@ -0,0 +1,520 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="1024" + height="512" + id="svg2" + version="1.1" + inkscape:version="0.46+devel r22559" + sodipodi:docname="countdown.svg" + inkscape:export-filename="/home/james/programs/racer/svn_root/trunk/racer/data/ui/hud/countdown.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <defs + id="defs4"> + <filter + inkscape:collect="always" + id="filter4131"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.8046969" + id="feGaussianBlur4133" /> + </filter> + <filter + inkscape:collect="always" + id="filter4135"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.8046969" + id="feGaussianBlur4137" /> + </filter> + <filter + inkscape:collect="always" + id="filter4139"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.8046969" + id="feGaussianBlur4141" /> + </filter> + <filter + inkscape:collect="always" + id="filter4143"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.8046969" + id="feGaussianBlur4145" /> + </filter> + <filter + inkscape:collect="always" + id="filter4189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.8046967" + id="feGaussianBlur4191" /> + </filter> + <filter + inkscape:collect="always" + id="filter4321"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.7553711" + id="feGaussianBlur4323" /> + </filter> + <filter + inkscape:collect="always" + id="filter4325"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.7553711" + id="feGaussianBlur4327" /> + </filter> + <filter + inkscape:collect="always" + id="filter4329"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.7553711" + id="feGaussianBlur4331" /> + </filter> + <filter + inkscape:collect="always" + id="filter4333"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.7553711" + id="feGaussianBlur4335" /> + </filter> + <filter + inkscape:collect="always" + id="filter4353"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.8046975" + id="feGaussianBlur4355" /> + </filter> + <filter + inkscape:collect="always" + id="filter4357"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.8046975" + id="feGaussianBlur4359" /> + </filter> + <filter + inkscape:collect="always" + id="filter4361"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.8046975" + id="feGaussianBlur4363" /> + </filter> + <filter + inkscape:collect="always" + id="filter4365"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.8046975" + id="feGaussianBlur4367" /> + </filter> + <filter + inkscape:collect="always" + id="filter4385"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.6753711" + id="feGaussianBlur4387" /> + </filter> + <filter + inkscape:collect="always" + id="filter4389"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.6753711" + id="feGaussianBlur4391" /> + </filter> + <filter + inkscape:collect="always" + id="filter4393"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.6753711" + id="feGaussianBlur4395" /> + </filter> + <filter + inkscape:collect="always" + id="filter4397"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="2.6753711" + id="feGaussianBlur4399" /> + </filter> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.1860097" + inkscape:cx="530.25" + inkscape:cy="256" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + showguides="true" + inkscape:guide-bbox="true" + inkscape:window-width="1255" + inkscape:window-height="1004" + inkscape:window-x="25" + inkscape:window-y="0" + inkscape:window-maximized="1"> + <inkscape:grid + type="xygrid" + id="grid3279" + empspacing="2" + visible="true" + enabled="true" + snapvisiblegridlinesonly="true" /> + <sodipodi:guide + orientation="0,1" + position="0,256" + id="guide3281" /> + <sodipodi:guide + orientation="1,0" + position="256,512" + id="guide3285" /> + <sodipodi:guide + orientation="1,0" + position="512,512" + id="guide3287" /> + <sodipodi:guide + orientation="1,0" + position="768,512" + id="guide3289" /> + <sodipodi:guide + orientation="1,0" + position="128,0" + id="guide4457" /> + <sodipodi:guide + orientation="1,0" + position="384,0" + id="guide4459" /> + <sodipodi:guide + orientation="1,0" + position="640,0" + id="guide4461" /> + <sodipodi:guide + orientation="1,0" + position="896,0" + id="guide4463" /> + <sodipodi:guide + orientation="0,1" + position="1024,128" + id="guide4465" /> + <sodipodi:guide + orientation="0,1" + position="1024,384" + id="guide4467" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-540.36218)"> + <g + id="g4443" + transform="translate(2.7004615,-0.05888915)"> + <text + id="text4099" + y="976.77985" + x="56" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:32;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4353);font-family:Sans;-inkscape-font-specification:Sans Bold" + xml:space="preserve"><tspan + style="font-size:144px;font-weight:bold;fill:#000000;stroke:#000000;stroke-width:32;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Sans;-inkscape-font-specification:Sans Bold" + y="976.77985" + x="56" + id="tspan4101" + sodipodi:role="line">3</tspan></text> + <text + xml:space="preserve" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#000000;fill-opacity:1;stroke:#ff0000;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;font-family:Sans;-inkscape-font-specification:Sans Bold" + x="56" + y="976.77985" + id="text4083"><tspan + sodipodi:role="line" + id="tspan4085" + x="56" + y="976.77985" + style="font-size:144px;font-weight:bold;fill:#000000;stroke:#ff0000;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;font-family:Sans;-inkscape-font-specification:Sans Bold">3</tspan></text> + <text + id="text3291" + y="976.77985" + x="56" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" + xml:space="preserve"><tspan + style="font-size:144px;font-weight:bold;fill:#ffffff;font-family:Sans;-inkscape-font-specification:Sans Bold" + y="976.77985" + x="56" + id="tspan3293" + sodipodi:role="line">3</tspan></text> + <text + xml:space="preserve" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:32;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4329);font-family:Sans;-inkscape-font-specification:Sans Bold" + x="56" + y="720.77985" + id="text4203"><tspan + sodipodi:role="line" + id="tspan4205" + x="56" + y="720.77985" + style="font-size:144px;font-weight:bold;fill:#ffffff;stroke:#ffffff;stroke-width:32;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Sans;-inkscape-font-specification:Sans Bold">3</tspan></text> + <text + id="text4207" + y="720.77985" + x="56" + style="font-size:144px;font-style:normal;font-weight:bold;fill:none;stroke:#808080;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;filter:url(#filter4393);font-family:Sans;-inkscape-font-specification:Sans Bold" + xml:space="preserve"><tspan + style="font-size:144px;font-weight:bold;fill:none;stroke:#808080;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;font-family:Sans;-inkscape-font-specification:Sans Bold" + y="720.77985" + x="56" + id="tspan4209" + sodipodi:role="line">3</tspan></text> + <text + xml:space="preserve" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" + x="56" + y="720.77985" + id="text4211"><tspan + sodipodi:role="line" + id="tspan4213" + x="56" + y="720.77985" + style="font-size:144px;font-weight:bold;fill:#ffffff;font-family:Sans;-inkscape-font-specification:Sans Bold">3</tspan></text> + </g> + <g + id="g4429" + transform="translate(2.7004615,-0.05888915)"> + <text + id="text4103" + y="977.79938" + x="318.26041" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:32;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4357);font-family:Sans;-inkscape-font-specification:Sans Bold" + xml:space="preserve"><tspan + y="977.79938" + x="318.26041" + id="tspan4105" + sodipodi:role="line" + style="stroke-width:32">2</tspan></text> + <text + xml:space="preserve" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#000000;fill-opacity:1;stroke:#ff0000;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;font-family:Sans;-inkscape-font-specification:Sans Bold" + x="318.26041" + y="977.79938" + id="text4087"><tspan + sodipodi:role="line" + id="tspan4089" + x="318.26041" + y="977.79938" + style="stroke-width:16">2</tspan></text> + <text + id="text3295" + y="977.79938" + x="318.26041" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" + xml:space="preserve"><tspan + y="977.79938" + x="318.26041" + id="tspan3297" + sodipodi:role="line">2</tspan></text> + <text + xml:space="preserve" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:32;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4333);font-family:Sans;-inkscape-font-specification:Sans Bold" + x="318.26041" + y="721.79938" + id="text4217"><tspan + style="fill:#ffffff;stroke:#ffffff;stroke-width:32" + sodipodi:role="line" + id="tspan4219" + x="318.26041" + y="721.79938">2</tspan></text> + <text + id="text4221" + y="721.79938" + x="318.26041" + style="font-size:144px;font-style:normal;font-weight:bold;fill:none;stroke:#808080;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;filter:url(#filter4397);font-family:Sans;-inkscape-font-specification:Sans Bold" + xml:space="preserve"><tspan + style="fill:none;stroke:#808080;stroke-width:16" + y="721.79938" + x="318.26041" + id="tspan4223" + sodipodi:role="line">2</tspan></text> + <text + xml:space="preserve" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" + x="318.26041" + y="721.79938" + id="text4225"><tspan + sodipodi:role="line" + id="tspan4227" + x="318.26041" + y="721.79938">2</tspan></text> + </g> + <g + id="g4415" + transform="translate(2.7004615,-0.05888915)"> + <text + id="text4107" + y="976.85016" + x="577.14581" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:32;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4361);font-family:Sans;-inkscape-font-specification:Sans Bold" + xml:space="preserve"><tspan + y="976.85016" + x="577.14581" + id="tspan4109" + sodipodi:role="line" + style="stroke-width:32">1</tspan></text> + <text + xml:space="preserve" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#000000;fill-opacity:1;stroke:#ff0000;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;font-family:Sans;-inkscape-font-specification:Sans Bold" + x="577.14581" + y="976.85016" + id="text4091"><tspan + sodipodi:role="line" + id="tspan4093" + x="577.14581" + y="976.85016" + style="stroke-width:16">1</tspan></text> + <text + id="text3299" + y="976.85016" + x="577.14581" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" + xml:space="preserve"><tspan + y="976.85016" + x="577.14581" + id="tspan3301" + sodipodi:role="line">1</tspan></text> + <text + xml:space="preserve" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:32;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4325);font-family:Sans;-inkscape-font-specification:Sans Bold" + x="577.14581" + y="720.85016" + id="text4231"><tspan + style="fill:#ffffff;stroke:#ffffff;stroke-width:32" + sodipodi:role="line" + id="tspan4233" + x="577.14581" + y="720.85016">1</tspan></text> + <text + id="text4235" + y="720.85016" + x="577.14581" + style="font-size:144px;font-style:normal;font-weight:bold;fill:none;stroke:#808080;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;filter:url(#filter4389);font-family:Sans;-inkscape-font-specification:Sans Bold" + xml:space="preserve"><tspan + style="fill:none;stroke:#808080;stroke-width:16" + y="720.85016" + x="577.14581" + id="tspan4237" + sodipodi:role="line">1</tspan></text> + <text + xml:space="preserve" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" + x="577.14581" + y="720.85016" + id="text4239"><tspan + sodipodi:role="line" + id="tspan4241" + x="577.14581" + y="720.85016">1</tspan></text> + </g> + <g + id="g4401" + transform="translate(2.7004615,-0.05888915)"> + <text + id="text4111" + y="976.77985" + x="784" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:32;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4365);font-family:Sans;-inkscape-font-specification:Sans Bold" + xml:space="preserve"><tspan + y="976.77985" + x="784" + id="tspan4113" + sodipodi:role="line" + style="stroke-width:32">Go</tspan></text> + <text + xml:space="preserve" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#000000;fill-opacity:1;stroke:#0000ff;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;font-family:Sans;-inkscape-font-specification:Sans Bold" + x="784" + y="976.77985" + id="text4095"><tspan + sodipodi:role="line" + id="tspan4097" + x="784" + y="976.77985" + style="stroke-width:16">Go</tspan></text> + <text + id="text3303" + y="976.77985" + x="784" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" + xml:space="preserve"><tspan + y="976.77985" + x="784" + id="tspan3305" + sodipodi:role="line">Go</tspan></text> + <text + xml:space="preserve" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:32;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4321);font-family:Sans;-inkscape-font-specification:Sans Bold" + x="784" + y="720.77985" + id="text4245"><tspan + style="fill:#ffffff;stroke:#ffffff;stroke-width:32" + sodipodi:role="line" + id="tspan4247" + x="784" + y="720.77985">Go</tspan></text> + <text + id="text4249" + y="720.77985" + x="784" + style="font-size:144px;font-style:normal;font-weight:bold;fill:none;stroke:#808080;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;filter:url(#filter4385);font-family:Sans;-inkscape-font-specification:Sans Bold" + xml:space="preserve"><tspan + style="fill:none;stroke:#808080;stroke-width:16" + y="720.77985" + x="784" + id="tspan4251" + sodipodi:role="line">Go</tspan></text> + <text + xml:space="preserve" + style="font-size:144px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" + x="784" + y="720.77985" + id="text4253"><tspan + sodipodi:role="line" + id="tspan4255" + x="784" + y="720.77985">Go</tspan></text> + </g> + </g> +</svg> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-21 22:42:49
|
Revision: 297 http://racer.svn.sourceforge.net/racer/?rev=297&view=rev Author: jlegg Date: 2010-06-21 22:42:43 +0000 (Mon, 21 Jun 2010) Log Message: ----------- remove unused variable. Modified Paths: -------------- trunk/racer/Engine/GameObjects/Car.cpp Modified: trunk/racer/Engine/GameObjects/Car.cpp =================================================================== --- trunk/racer/Engine/GameObjects/Car.cpp 2010-06-21 17:54:38 UTC (rev 296) +++ trunk/racer/Engine/GameObjects/Car.cpp 2010-06-21 22:42:43 UTC (rev 297) @@ -333,8 +333,6 @@ void Car::set_forces() { rigid_body->clearForces(); - btTransform transform; - rigid_body->applyCentralForce(local_force); rigid_body->applyTorque(local_torque); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-21 17:54:44
|
Revision: 296 http://racer.svn.sourceforge.net/racer/?rev=296&view=rev Author: jlegg Date: 2010-06-21 17:54:38 +0000 (Mon, 21 Jun 2010) Log Message: ----------- Make a pause menu, where you can abandon a game without finishing it. Modified Paths: -------------- trunk/racer/Engine/GameScene.cpp trunk/racer/Engine/GameScene.h trunk/racer/Makefile.am trunk/racer/UI/Makefile.am Added Paths: ----------- trunk/racer/UI/PauseMenu.cpp trunk/racer/UI/PauseMenu.h Modified: trunk/racer/Engine/GameScene.cpp =================================================================== --- trunk/racer/Engine/GameScene.cpp 2010-06-21 01:52:42 UTC (rev 295) +++ trunk/racer/Engine/GameScene.cpp 2010-06-21 17:54:38 UTC (rev 296) @@ -233,6 +233,11 @@ void GameScene::take_input(InputReport & report) { + if (paused) + { + m_pause_menu.take_input(report); + return; + } switch (report.get_report_type()) { case InputReport::RT_MENU_BACK: @@ -260,10 +265,11 @@ { car_skip[car] = true; } else { - paused = !paused; + paused = true; } } else { - DEBUG_MESSAGE("Pause request from unknown input device."); + // unused controller. + paused = true; } } break; @@ -283,8 +289,32 @@ void GameScene::update_logic(unsigned int milliseconds_elapsed) { + if (paused) + { + if (m_pause_menu.want_to_quit()) + { + // escape or backspace hit while pause menu showing. + unpause(); + } else { + switch (m_pause_menu.get_response()) + { + case UI::PauseMenu::R_NONE: + // wait for user to respond to pause menu. + break; + case UI::PauseMenu::R_CONTINUE: + // continue the game. + unpause(); + break; + case UI::PauseMenu::R_QUIT: + // quit selected, then confirm pressed (space or enter). + main_loop->pop_scene(); + break; + } + } + return; + } // ignore the first tick because it counts time elapsed while loading. - if (!(first_tick || paused)) + if (!(first_tick)) { world.update(milliseconds_elapsed); } @@ -489,6 +519,7 @@ Graphics::Window::get_instance().get_height()); Graphics::Window::get_instance().set_ortho_projection(); glLoadIdentity(); + glDisable(GL_DEPTH_TEST); // darken screen to reduce burn in glDisable(GL_TEXTURE_2D); glEnable(GL_BLEND); @@ -502,15 +533,15 @@ glVertex2f(x, y); glVertex2f(-1, y); glEnd(); - // some explanation in the middle of the screen. + // show menu in the middle of the screen. glEnable(GL_TEXTURE_2D); glColor3f(1, 1, 1); - glTranslatef(int(x) / 2 - 42, int(y) / 2, 0); - FTTextureFont & font = UI::BasicFonts::get_instance().big_font; - glDisable(GL_DEPTH_TEST); - font.Render("Paused"); + glTranslatef(int(x/2), int(y/2), 0.0); + glDisable(GL_CULL_FACE); + m_pause_menu.draw(); glEnable(GL_DEPTH_TEST); - glLoadIdentity(); + glEnable(GL_CULL_FACE); + glDisable(GL_BLEND); } void GameScene::draw_for_player(unsigned int player, float aspect) @@ -929,4 +960,11 @@ } +void GameScene::unpause() +{ + // menu is already giving a response. Reset it so we can show it again. + m_pause_menu.reset(); + paused = false; } + +} Modified: trunk/racer/Engine/GameScene.h =================================================================== --- trunk/racer/Engine/GameScene.h 2010-06-21 01:52:42 UTC (rev 295) +++ trunk/racer/Engine/GameScene.h 2010-06-21 17:54:38 UTC (rev 296) @@ -17,6 +17,7 @@ #include "GameObjects/Car.h" #include "CarCamera.h" #include "InputHandler.h" +#include "../UI/PauseMenu.h" #include <libtrack/OcclusionTester.h> #include <libtrack/Track.h> @@ -150,6 +151,10 @@ /// True if the game is paused. bool paused; + /// The menu to display when paused. + UI::PauseMenu m_pause_menu; + /// Unpause the game and reset the pause menu. + void unpause(); bool show_debug; Modified: trunk/racer/Makefile.am =================================================================== --- trunk/racer/Makefile.am 2010-06-21 01:52:42 UTC (rev 295) +++ trunk/racer/Makefile.am 2010-06-21 17:54:38 UTC (rev 296) @@ -3,4 +3,4 @@ bin_PROGRAMS = racer racer_SOURCES = main.cpp MainLoop.cpp MainLoop.h RacerApp.cpp RacerApp.h racer_CPPFLAGS = $(racer_CFLAGS) -I@top_srcdir@ -racer_LDADD=UI/libui.la Engine/libengine.la Graphics/libgraphics.la ../libtrack/libtrack.la +racer_LDADD= Engine/libengine.la UI/libui.la Graphics/libgraphics.la ../libtrack/libtrack.la Modified: trunk/racer/UI/Makefile.am =================================================================== --- trunk/racer/UI/Makefile.am 2010-06-21 01:52:42 UTC (rev 295) +++ trunk/racer/UI/Makefile.am 2010-06-21 17:54:38 UTC (rev 296) @@ -5,6 +5,7 @@ GameStartMenuItem.cpp GameStartMenuItem.h\ Menu.cpp Menu.h\ MenuItem.cpp MenuItem.h\ +PauseMenu.cpp PauseMenu.h\ ReplayStartMenuItem.cpp ReplayStartMenuItem.h\ SubMenuItem.cpp SubMenuItem.h\ TitleScene.cpp TitleScene.h\ Added: trunk/racer/UI/PauseMenu.cpp =================================================================== --- trunk/racer/UI/PauseMenu.cpp (rev 0) +++ trunk/racer/UI/PauseMenu.cpp 2010-06-21 17:54:38 UTC (rev 296) @@ -0,0 +1,66 @@ +/** @file UI/PauseMenu.cpp + * @brief Implement the UI::PauseMenu, UI::ContinueButton, and UI::QuitButton + * classes. + * @author James Legg + */ +/* Copyright © 2010 James Legg. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. +*/ + +#include "PauseMenu.h" + +namespace UI +{ + +ContinueButton::ContinueButton(PauseMenu & menu) + : MenuItem(L"Continue") + , m_menu(menu) +{ +} + +void ContinueButton::activate() +{ + m_menu.set_response(PauseMenu::R_CONTINUE); +} + +QuitButton::QuitButton(PauseMenu & menu) + : MenuItem(L"Quit") + , m_menu(menu) +{ +} + +void QuitButton::activate() +{ + m_menu.set_response(PauseMenu::R_QUIT); +} + +PauseMenu::PauseMenu() + : m_continue_item(*this) + , m_quit_item(*this) + , m_response(R_NONE) +{ + insert_item(&m_continue_item); + insert_item(&m_quit_item); +} + +void PauseMenu::set_response(Response response) +{ + m_response = response; +} + + +PauseMenu::Response PauseMenu::get_response() const +{ + return m_response; +} + +void PauseMenu::reset() +{ + m_response = R_NONE; + quit = false; +} + +} // namespace UI Added: trunk/racer/UI/PauseMenu.h =================================================================== --- trunk/racer/UI/PauseMenu.h (rev 0) +++ trunk/racer/UI/PauseMenu.h 2010-06-21 17:54:38 UTC (rev 296) @@ -0,0 +1,72 @@ +/** @file UI/PauseMenu.h + * @brief Declare the UI::PauseMenu, UI::ContinueButton, and UI::QuitButton + * classes. + * @author James Legg + */ +/* Copyright © 2010 James Legg. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. +*/ + +#ifndef UI_PAUSE_MENU_H_ +#define UI_PAUSE_MENU_H_ + +#include "Menu.h" + +namespace UI +{ + +class PauseMenu; + +/// A MenuItem for continuing a paused game. +class ContinueButton + : public MenuItem +{ + public: + ContinueButton(PauseMenu & menu); + virtual void activate(); + protected: + PauseMenu & m_menu; +}; + +/// A MenuItem for abandoning a paused game. +class QuitButton + : public MenuItem +{ + public: + QuitButton(PauseMenu & menu); + virtual void activate(); + protected: + PauseMenu & m_menu; +}; + +class PauseMenu + : public Menu +{ + public: + /// User's choice on the pause menu. + enum Response { + /// No action confirmed yet. + R_NONE, + /// Continue the game + R_CONTINUE, + /// Quit the game + R_QUIT}; + PauseMenu(); + /// Set the response to the given action + void set_response(Response response); + /// Return the user's choosen action. + Response get_response() const; + /// Reset the response so the menu can be used again. + void reset(); + protected: + ContinueButton m_continue_item; + QuitButton m_quit_item; + Response m_response; +}; + +} // namespace UI + +#endif // UI_PAUSE_MENU_H_ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-21 01:52:48
|
Revision: 295 http://racer.svn.sourceforge.net/racer/?rev=295&view=rev Author: jlegg Date: 2010-06-21 01:52:42 +0000 (Mon, 21 Jun 2010) Log Message: ----------- Move car's starting position closer to the track so cars can start at funny angles (such as upside down) without falling off. Modified Paths: -------------- trunk/racer/Engine/GameScene.cpp Modified: trunk/racer/Engine/GameScene.cpp =================================================================== --- trunk/racer/Engine/GameScene.cpp 2010-06-21 01:40:56 UTC (rev 294) +++ trunk/racer/Engine/GameScene.cpp 2010-06-21 01:52:42 UTC (rev 295) @@ -111,7 +111,7 @@ } } // raise the car above the track slightly. - initial_transform.setOrigin(initial_transform(btVector3(0.0, 0.0, 1.0))); + initial_transform.setOrigin(initial_transform(btVector3(0.0, 0.0, 0.2))); cars.push_back(new GameObjects::Car(world, initial_transform, *(input_devices[i].first), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-21 01:41:02
|
Revision: 294 http://racer.svn.sourceforge.net/racer/?rev=294&view=rev Author: jlegg Date: 2010-06-21 01:40:56 +0000 (Mon, 21 Jun 2010) Log Message: ----------- Fix crash when setting the start edge for the first time. Modified Paths: -------------- trunk/libtrack/document/SetStartEdgeDelta.cpp trunk/libtrack/path/Path.h Modified: trunk/libtrack/document/SetStartEdgeDelta.cpp =================================================================== --- trunk/libtrack/document/SetStartEdgeDelta.cpp 2010-06-21 01:14:40 UTC (rev 293) +++ trunk/libtrack/document/SetStartEdgeDelta.cpp 2010-06-21 01:40:56 UTC (rev 294) @@ -42,27 +42,30 @@ { // deltas to delete the Track::StartMarkers on the current edge. unsigned int old_edge_name = track.get_path().get_starting_edge(); - const Track::PathEdge &old_edge = track.get_path().get_edge(old_edge_name); - std::vector<boost::shared_ptr<Track::TrackAttachment> >::const_iterator it = old_edge.get_attachments().begin(); - while (it != old_edge.get_attachments().end()) + if (old_edge_name != 0) { - if (dynamic_cast<const Track::StartingPosition *>(&(**it))) + const Track::PathEdge &old_edge = track.get_path().get_edge(old_edge_name); + std::vector<boost::shared_ptr<Track::TrackAttachment> + >::const_iterator it = old_edge.get_attachments().begin(); + while (it != old_edge.get_attachments().end()) { - boost::shared_ptr<Document::DocumentDelta> delta - ( - new Document::RemoveTrackAttachmentDelta + if (dynamic_cast<const Track::StartingPosition *>(&(**it))) + { + boost::shared_ptr<Document::DocumentDelta> delta ( - InsertRemoveTrackAttachmentIdentifier(*it) - ) - ); - add_to_stack(delta, track); - // Invalidates iterator, start again. - it = old_edge.get_attachments().begin(); - } else { - it++; + new Document::RemoveTrackAttachmentDelta + ( + InsertRemoveTrackAttachmentIdentifier(*it) + ) + ); + add_to_stack(delta, track); + // Invalidates iterator, start again. + it = old_edge.get_attachments().begin(); + } else { + it++; + } } } - // delta to replace the starting edge add_to_stack(boost::shared_ptr<DocumentDelta>( new SetStartEdgeDelta(Document::StartEdgeFinder(), Modified: trunk/libtrack/path/Path.h =================================================================== --- trunk/libtrack/path/Path.h 2010-06-21 01:14:40 UTC (rev 293) +++ trunk/libtrack/path/Path.h 2010-06-21 01:40:56 UTC (rev 294) @@ -123,7 +123,11 @@ /// Add the surface AI considers to a mesh. void add_ai_faces(MeshFaces & mesh) const; - /// return the name of the edge which cars should start the race on. + /** return the name of the edge which cars should start the race on. + * If no edge has been provided, returns 0. + * The first edge becomes the starting edge when loading from a stream, + * so if you get a track this way you don't need to check for 0. + */ unsigned long int get_starting_edge() const; /// change the edge cars start on. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-21 01:14:47
|
Revision: 293 http://racer.svn.sourceforge.net/racer/?rev=293&view=rev Author: jlegg Date: 2010-06-21 01:14:40 +0000 (Mon, 21 Jun 2010) Log Message: ----------- Fix problem where the first frame of a CarCamera would show the wrong thing. Modified Paths: -------------- trunk/racer/Engine/CarCamera.cpp trunk/racer/Engine/CarCamera.h Modified: trunk/racer/Engine/CarCamera.cpp =================================================================== --- trunk/racer/Engine/CarCamera.cpp 2010-06-21 00:59:23 UTC (rev 292) +++ trunk/racer/Engine/CarCamera.cpp 2010-06-21 01:14:40 UTC (rev 293) @@ -2,7 +2,7 @@ * @brief Implement the Engine::CarCamera class. * @author James Legg */ -/* Copyright © 2009 James Legg. +/* Copyright © 2009, 2010 James Legg. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -56,13 +56,18 @@ CarCamera::CarCamera(GameObjects::Car & car, Physics::World & world) : car(car), - world(world), - location(0, -15, 5), - up(0, 0, 1), - centre(0, 0, 0), - first_tick(true) + world(world) { world.add_tick_observer(this); + + // set inital camera position. + btTransform car_transform; + car.get_transform(car_transform); + btTransform car_rotation_transform = car_transform; + car_rotation_transform.setOrigin(btVector3(0, 0, 0)); + location = car_transform(btVector3(0.0, -0.70, 0.3)); + up = car_rotation_transform(btVector3(0.0, 0.0, 1.0)); + centre = car_transform(btVector3(0.0, 1.0, 0.1)); } CarCamera::~CarCamera() @@ -91,27 +96,16 @@ car.get_transform(car_transform); btTransform car_rotation_transform = car_transform; car_rotation_transform.setOrigin(btVector3(0, 0, 0)); - //car_transform = car_transform.inverse(); // find a new place behind the car looking at it. btVector3 new_position(car_transform(btVector3(0.0, -0.70, 0.3))); btVector3 new_up(car_rotation_transform(btVector3(0.0, 0.0, 1.0))); btVector3 new_centre = car_transform(btVector3(0.0, 1.0, 0.1)); - if (first_tick) - { - // start with the found camera position. - location = new_position; - up = new_up; - centre = new_centre; - first_tick = false; - } else { - // blend with the last camera positions - location = location.lerp(new_position, blend); - up = up.lerp(new_up, blend); - up.normalize(); - centre = centre.lerp(new_centre, blend); - //transform.setOrigin(cam.getOrigin().lerp(transform.getOrigin(), blend)); - } + // blend new position with the last camera position to soften motion. + location = location.lerp(new_position, blend); + up = up.lerp(new_up, blend); + up.normalize(); + centre = centre.lerp(new_centre, blend); } void CarCamera::update_occlusion_tester(Track::OcclusionTester & occlusion_tester, btScalar aspect) const Modified: trunk/racer/Engine/CarCamera.h =================================================================== --- trunk/racer/Engine/CarCamera.h 2010-06-21 00:59:23 UTC (rev 292) +++ trunk/racer/Engine/CarCamera.h 2010-06-21 01:14:40 UTC (rev 293) @@ -2,7 +2,7 @@ * @brief Declare the Engine::CarCamera class. * @author James Legg */ -/* Copyright © 2009 James Legg. +/* Copyright © 2009, 2010 James Legg. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -42,7 +42,6 @@ btVector3 location; btVector3 up; btVector3 centre; - bool first_tick; }; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-21 00:59:33
|
Revision: 292 http://racer.svn.sourceforge.net/racer/?rev=292&view=rev Author: jlegg Date: 2010-06-21 00:59:23 +0000 (Mon, 21 Jun 2010) Log Message: ----------- Lower theme1's meshes slightly so ground plane is at 0. This makes the TrackAttachments fit better. Modified Paths: -------------- trunk/racer/data/theme1/theme1 trunk/racer/data/theme1/theme1.blend Modified: trunk/racer/data/theme1/theme1 =================================================================== --- trunk/racer/data/theme1/theme1 2010-06-21 00:24:57 UTC (rev 291) +++ trunk/racer/data/theme1/theme1 2010-06-21 00:59:23 UTC (rev 292) @@ -1,301 +1,301 @@ 6 1 22 data/theme1/sky.png.+z 1 22 data/theme1/sky.png.-z 1 22 data/theme1/sky.png.-x 1 22 data/theme1/sky.png.+x 1 22 data/theme1/sky.png.-y 1 22 data/theme1/sky.png.+y 7 1 24 data/theme1/right_90.png 297 -0.0 -6.0 -0.8125 -4.25 -6.0 -0.0625 --4.25 -6.0 -0.0625 -0.0 -6.0 0.0625 -4.0 -6.0 0.0625 --4.0 -6.0 0.0625 -4.0 2.0 0.25 -4.0 -6.0 0.25 --4.0 -6.0 0.25 -4.25 -6.0 0.5 --4.25 -6.0 0.5 -0.0 -2.0 -0.8125 -4.25 -2.0 -0.0625 -0.0 -2.0 0.0625 -4.0 -2.0 0.0625 -4.0 -2.0 0.25 -4.25 -2.0 0.5 -0.0 0.0 -0.8125 -0.0 -4.0 -0.8125 -4.25 -4.0 -0.0625 -4.25 0.0 -0.0625 -0.0 0.0 0.0625 -0.0 -4.0 0.0625 -4.0 -4.0 0.0625 -4.0 0.0 0.0625 -4.0 0.0 0.25 -4.0 -4.0 0.25 -4.25 0.0 0.5 -4.25 -4.0 0.5 --4.25 -4.25 0.5 -4.0 0.0 0.5 -4.0 -2.0 0.5 -4.0 -4.0 0.5 --4.0 -4.25 0.5 -4.0 -6.0 0.5 --4.0 -6.0 0.5 -4.25 -1.34375 0.5 -4.25 -0.65625 0.5 -4.0 -0.65625 0.5 -4.0 -1.34375 0.5 -4.0 -1.34375 1.5 -4.25 -1.34375 1.75 -4.25 -0.65625 1.75 -4.0 -0.65625 1.5 -3.5 -1.34375 1.75 -3.5 -0.65625 1.75 -3.75 -1.34375 1.5 -3.75 -0.65625 1.5 -4.0 2.0 0.0625 --4.0 4.0 0.5 --2.0 4.0 0.5 --2.65625 4.25 0.5 --2.0 4.25 0.5 --6.0 -4.25 0.5 --4.0 -4.0 0.25 --6.0 -4.0 0.25 --6.0 4.25 0.5 --3.34375 4.25 0.5 --3.34375 4.0 0.5 --2.65625 4.25 1.75 --3.34375 4.25 1.75 --2.65625 3.75 1.5 --2.65625 4.0 1.5 --2.65625 3.5 1.75 --3.34375 3.5 1.75 --3.34375 3.75 1.5 --3.34375 4.0 1.5 --2.65625 4.0 0.5 --4.0 4.25 0.5 --4.0 4.0 0.25 --6.0 4.0 0.25 --4.0 -4.0 0.0625 --6.0 -4.0 0.0625 --4.0 4.0 0.0625 --6.0 4.0 0.0625 -0.0 4.0 0.0625 --2.0 4.0 0.0625 --6.0 -4.25 -0.0625 --4.25 -4.25 -0.0625 --6.0 4.25 -0.0625 --4.0 4.25 -0.0625 --2.0 4.25 -0.0625 -0.0 4.25 -0.0625 --4.0 0.0 -0.8125 --6.0 0.0 -0.8125 -0.0 4.0 0.5 -0.0 4.25 0.5 -0.0 4.0 0.25 --2.0 4.0 0.25 --4.0 0.0 0.0625 --2.0 0.0 0.0625 --2.0 0.0 -0.8125 -2.0 4.0 0.25 -2.0 2.0 0.0625 --6.0 0.0 0.0625 -4.0 4.25 -0.0625 -4.0 4.25 0.5 -2.0 4.25 -0.0625 -2.0 4.25 0.5 -2.0 4.0 0.5 -2.0 4.0 0.0625 -4.0 4.0 0.0625 -4.25 4.0 -0.0625 -4.25 2.0 -0.0625 -4.0 2.0 0.5 -4.25 2.0 0.5 -4.0 4.0 0.5 -4.25 4.0 0.5 -0.0 -6.0 -0.8125 -0.0 -4.0 -0.8125 -4.25 -6.0 -0.0625 -4.25 -4.0 -0.0625 -4.25 -2.0 -0.0625 -4.25 0.0 -0.0625 -4.0 -6.0 0.0625 -4.0 -4.0 0.0625 -4.0 -2.0 0.0625 -4.0 -2.0 0.0625 -4.0 0.0 0.0625 -4.0 -4.0 0.0625 -4.0 2.0 0.25 -4.0 2.0 0.25 -4.25 2.0 0.5 -4.25 2.0 0.5 -4.25 2.0 0.5 -4.0 2.0 0.5 -4.25 4.0 0.5 -4.25 4.0 0.5 -4.0 4.25 0.5 -4.0 4.25 0.5 -4.0 4.25 0.5 -4.0 4.0 0.5 -4.0 4.0 0.5 -4.0 4.0 0.0625 -4.0 4.0 0.0625 -4.0 2.0 0.0625 -4.0 2.0 0.0625 -4.0 0.0 0.0625 -2.0 4.0 0.0625 -0.0 4.0 0.0625 -0.0 4.0 0.0625 --2.0 4.0 0.0625 --2.0 4.0 0.0625 --4.0 4.0 0.0625 --4.0 4.0 0.0625 --6.0 4.0 0.0625 -2.0 4.0 0.5 -2.0 4.0 0.5 -2.0 4.25 0.5 -2.0 4.25 0.5 -0.0 4.25 0.5 -0.0 4.25 0.5 -0.0 4.25 0.5 -0.0 4.0 0.5 -0.0 4.0 0.25 --2.0 4.25 0.5 --2.0 4.25 0.5 --2.65625 4.25 0.5 --2.65625 4.25 0.5 --2.65625 4.25 0.5 --2.65625 4.0 0.5 --2.65625 4.0 0.5 --2.65625 4.0 0.5 --4.0 4.0 0.5 --4.0 4.0 0.5 --4.0 4.0 0.5 --4.0 4.25 0.5 --4.0 4.25 0.5 --4.0 4.25 0.5 --3.34375 4.25 0.5 --6.0 4.25 0.5 --4.0 4.0 0.25 --3.34375 4.0 0.5 --2.65625 4.0 1.5 --2.65625 4.0 1.5 --3.34375 4.0 1.5 --3.34375 4.0 1.5 --3.34375 4.0 0.5 --3.34375 4.0 0.5 --3.34375 4.25 0.5 --3.34375 3.75 1.5 --3.34375 3.75 1.5 --3.34375 3.5 1.75 --3.34375 3.5 1.75 --2.65625 3.5 1.75 --2.65625 3.5 1.75 --2.65625 3.75 1.5 --2.65625 4.25 1.75 --2.65625 4.25 1.75 --3.34375 4.25 1.75 --3.34375 4.25 1.75 --3.34375 4.25 0.5 --2.65625 3.75 1.5 --3.34375 4.25 0.5 -0.0 4.0 0.5 -2.0 4.25 0.5 -2.0 4.0 0.5 -4.0 4.25 -0.0625 -4.0 4.25 -0.0625 -4.25 4.0 -0.0625 -4.25 4.0 -0.0625 -4.25 0.0 0.5 -4.25 0.0 0.5 -4.25 0.0 0.5 -4.25 -0.65625 0.5 -4.25 -0.65625 0.5 -4.25 -0.65625 1.75 -4.25 -0.65625 1.75 -4.25 -1.34375 1.75 -4.25 -1.34375 1.75 -4.25 -1.34375 0.5 -4.25 -1.34375 0.5 -4.25 -1.34375 0.5 -4.25 -0.65625 0.5 -4.25 -2.0 0.5 -4.25 -2.0 0.5 -4.25 -2.0 0.5 -4.25 -4.0 0.5 -4.25 -4.0 0.5 -4.25 -4.0 0.5 -4.25 -6.0 0.5 -4.25 -6.0 0.5 -4.0 -6.0 0.5 -4.0 -6.0 0.5 -4.0 -4.0 0.5 -4.0 -4.0 0.5 -4.0 -4.0 0.25 -4.0 -4.0 0.25 -4.0 -2.0 0.25 -4.0 -2.0 0.5 -4.0 -2.0 0.5 -4.0 -1.34375 0.5 -4.0 -1.34375 0.5 -4.0 -1.34375 0.5 -4.0 -1.34375 1.5 -4.0 -1.34375 1.5 -3.75 -1.34375 1.5 -3.75 -1.34375 1.5 -3.5 -1.34375 1.75 -3.5 -1.34375 1.75 -3.5 -0.65625 1.75 -3.5 -0.65625 1.75 -3.75 -0.65625 1.5 -4.0 -0.65625 1.5 -4.0 -0.65625 1.5 -4.0 -0.65625 0.5 -3.75 -0.65625 1.5 -4.0 -0.65625 0.5 -4.0 0.0 0.5 -4.0 -1.34375 0.5 -4.0 0.0 0.5 -4.0 0.0 0.5 -4.0 -0.65625 0.5 -4.0 0.0 0.25 -4.25 -2.0 0.5 -4.25 -0.65625 0.5 --4.0 -4.0 0.0625 --4.0 -4.0 0.0625 --4.0 -6.0 0.0625 --6.0 -4.0 0.0625 --6.0 -4.25 -0.0625 --4.25 -4.25 -0.0625 --4.25 -4.25 -0.0625 --4.25 -6.0 -0.0625 --4.25 -4.25 0.5 --6.0 4.25 -0.0625 --4.0 4.25 -0.0625 --2.0 4.25 -0.0625 -0.0 4.25 -0.0625 --4.0 0.0 -0.8125 --6.0 0.0 -0.8125 --2.0 4.25 0.5 --2.0 4.25 0.5 --2.0 4.0 0.5 --2.0 4.0 0.25 -4.0 2.0 0.5 -4.0 4.0 0.5 -4.0 4.0 0.5 -4.25 4.0 0.5 --4.0 4.0 0.25 --6.0 4.0 0.25 -0.0 4.0 0.25 --2.0 4.0 0.25 --2.0 4.0 0.5 --2.65625 4.0 0.5 --4.25 -6.0 0.5 --4.25 -6.0 0.5 --4.25 -4.25 0.5 --4.0 -6.0 0.5 --4.0 -6.0 0.5 --4.0 -4.25 0.5 --4.0 -4.25 0.5 -4.0 -2.0 0.25 -4.0 0.0 0.25 --6.0 -4.0 0.25 --6.0 -4.25 0.5 -0.0 0.0 0.0625 +0.0 -6.0 -0.875 +4.25 -6.0 -0.125 +-4.25 -6.0 -0.125 +0.0 -6.0 0.0 +4.0 -6.0 0.0 +-4.0 -6.0 0.0 +4.0 2.0 0.1875 +4.0 -6.0 0.1875 +-4.0 -6.0 0.1875 +4.25 -6.0 0.4375 +-4.25 -6.0 0.4375 +0.0 -2.0 -0.875 +4.25 -2.0 -0.125 +0.0 -2.0 0.0 +4.0 -2.0 0.0 +4.0 -2.0 0.1875 +4.25 -2.0 0.4375 +0.0 0.0 -0.875 +0.0 -4.0 -0.875 +4.25 -4.0 -0.125 +4.25 0.0 -0.125 +0.0 0.0 0.0 +0.0 -4.0 0.0 +4.0 -4.0 0.0 +4.0 0.0 0.0 +4.0 0.0 0.1875 +4.0 -4.0 0.1875 +4.25 0.0 0.4375 +4.25 -4.0 0.4375 +-4.25 -4.25 0.4375 +4.0 0.0 0.4375 +4.0 -2.0 0.4375 +4.0 -4.0 0.4375 +-4.0 -4.25 0.4375 +4.0 -6.0 0.4375 +-4.0 -6.0 0.4375 +4.25 -1.34375 0.4375 +4.25 -0.65625 0.4375 +4.0 -0.65625 0.4375 +4.0 -1.34375 0.4375 +4.0 -1.34375 1.4375 +4.25 -1.34375 1.6875 +4.25 -0.65625 1.6875 +4.0 -0.65625 1.4375 +3.5 -1.34375 1.6875 +3.5 -0.65625 1.6875 +3.75 -1.34375 1.4375 +3.75 -0.65625 1.4375 +4.0 2.0 0.0 +-4.0 4.0 0.4375 +-2.0 4.0 0.4375 +-2.65625 4.25 0.4375 +-2.0 4.25 0.4375 +-6.0 -4.25 0.4375 +-4.0 -4.0 0.1875 +-6.0 -4.0 0.1875 +-6.0 4.25 0.4375 +-3.34375 4.25 0.4375 +-3.34375 4.0 0.4375 +-2.65625 4.25 1.6875 +-3.34375 4.25 1.6875 +-2.65625 3.75 1.4375 +-2.65625 4.0 1.4375 +-2.65625 3.5 1.6875 +-3.34375 3.5 1.6875 +-3.34375 3.75 1.4375 +-3.34375 4.0 1.4375 +-2.65625 4.0 0.4375 +-4.0 4.25 0.4375 +-4.0 4.0 0.1875 +-6.0 4.0 0.1875 +-4.0 -4.0 0.0 +-6.0 -4.0 0.0 +-4.0 4.0 0.0 +-6.0 4.0 0.0 +0.0 4.0 0.0 +-2.0 4.0 0.0 +-6.0 -4.25 -0.125 +-4.25 -4.25 -0.125 +-6.0 4.25 -0.125 +-4.0 4.25 -0.125 +-2.0 4.25 -0.125 +0.0 4.25 -0.125 +-4.0 0.0 -0.875 +-6.0 0.0 -0.875 +0.0 4.0 0.4375 +0.0 4.25 0.4375 +0.0 4.0 0.1875 +-2.0 4.0 0.1875 +-4.0 0.0 0.0 +-2.0 0.0 0.0 +-2.0 0.0 -0.875 +2.0 4.0 0.1875 +2.0 2.0 0.0 +-6.0 0.0 0.0 +4.0 4.25 -0.125 +4.0 4.25 0.4375 +2.0 4.25 -0.125 +2.0 4.25 0.4375 +2.0 4.0 0.4375 +2.0 4.0 0.0 +4.0 4.0 0.0 +4.25 4.0 -0.125 +4.25 2.0 -0.125 +4.0 2.0 0.4375 +4.25 2.0 0.4375 +4.0 4.0 0.4375 +4.25 4.0 0.4375 +0.0 -6.0 -0.875 +0.0 -4.0 -0.875 +4.25 -6.0 -0.125 +4.25 -4.0 -0.125 +4.25 -2.0 -0.125 +4.25 0.0 -0.125 +4.0 -6.0 0.0 +4.0 -4.0 0.0 +4.0 -2.0 0.0 +4.0 -2.0 0.0 +4.0 0.0 0.0 +4.0 -4.0 0.0 +4.0 2.0 0.1875 +4.0 2.0 0.1875 +4.25 2.0 0.4375 +4.25 2.0 0.4375 +4.25 2.0 0.4375 +4.0 2.0 0.4375 +4.25 4.0 0.4375 +4.25 4.0 0.4375 +4.0 4.25 0.4375 +4.0 4.25 0.4375 +4.0 4.25 0.4375 +4.0 4.0 0.4375 +4.0 4.0 0.4375 +4.0 4.0 0.0 +4.0 4.0 0.0 +4.0 2.0 0.0 +4.0 2.0 0.0 +4.0 0.0 0.0 +2.0 4.0 0.0 +0.0 4.0 0.0 +0.0 4.0 0.0 +-2.0 4.0 0.0 +-2.0 4.0 0.0 +-4.0 4.0 0.0 +-4.0 4.0 0.0 +-6.0 4.0 0.0 +2.0 4.0 0.4375 +2.0 4.0 0.4375 +2.0 4.25 0.4375 +2.0 4.25 0.4375 +0.0 4.25 0.4375 +0.0 4.25 0.4375 +0.0 4.25 0.4375 +0.0 4.0 0.4375 +0.0 4.0 0.1875 +-2.0 4.25 0.4375 +-2.0 4.25 0.4375 +-2.65625 4.25 0.4375 +-2.65625 4.25 0.4375 +-2.65625 4.25 0.4375 +-2.65625 4.0 0.4375 +-2.65625 4.0 0.4375 +-2.65625 4.0 0.4375 +-4.0 4.0 0.4375 +-4.0 4.0 0.4375 +-4.0 4.0 0.4375 +-4.0 4.25 0.4375 +-4.0 4.25 0.4375 +-4.0 4.25 0.4375 +-3.34375 4.25 0.4375 +-6.0 4.25 0.4375 +-4.0 4.0 0.1875 +-3.34375 4.0 0.4375 +-2.65625 4.0 1.4375 +-2.65625 4.0 1.4375 +-3.34375 4.0 1.4375 +-3.34375 4.0 1.4375 +-3.34375 4.0 0.4375 +-3.34375 4.0 0.4375 +-3.34375 4.25 0.4375 +-3.34375 3.75 1.4375 +-3.34375 3.75 1.4375 +-3.34375 3.5 1.6875 +-3.34375 3.5 1.6875 +-2.65625 3.5 1.6875 +-2.65625 3.5 1.6875 +-2.65625 3.75 1.4375 +-2.65625 4.25 1.6875 +-2.65625 4.25 1.6875 +-3.34375 4.25 1.6875 +-3.34375 4.25 1.6875 +-3.34375 4.25 0.4375 +-2.65625 3.75 1.4375 +-3.34375 4.25 0.4375 +0.0 4.0 0.4375 +2.0 4.25 0.4375 +2.0 4.0 0.4375 +4.0 4.25 -0.125 +4.0 4.25 -0.125 +4.25 4.0 -0.125 +4.25 4.0 -0.125 +4.25 0.0 0.4375 +4.25 0.0 0.4375 +4.25 0.0 0.4375 +4.25 -0.65625 0.4375 +4.25 -0.65625 0.4375 +4.25 -0.65625 1.6875 +4.25 -0.65625 1.6875 +4.25 -1.34375 1.6875 +4.25 -1.34375 1.6875 +4.25 -1.34375 0.4375 +4.25 -1.34375 0.4375 +4.25 -1.34375 0.4375 +4.25 -0.65625 0.4375 +4.25 -2.0 0.4375 +4.25 -2.0 0.4375 +4.25 -2.0 0.4375 +4.25 -4.0 0.4375 +4.25 -4.0 0.4375 +4.25 -4.0 0.4375 +4.25 -6.0 0.4375 +4.25 -6.0 0.4375 +4.0 -6.0 0.4375 +4.0 -6.0 0.4375 +4.0 -4.0 0.4375 +4.0 -4.0 0.4375 +4.0 -4.0 0.1875 +4.0 -4.0 0.1875 +4.0 -2.0 0.1875 +4.0 -2.0 0.4375 +4.0 -2.0 0.4375 +4.0 -1.34375 0.4375 +4.0 -1.34375 0.4375 +4.0 -1.34375 0.4375 +4.0 -1.34375 1.4375 +4.0 -1.34375 1.4375 +3.75 -1.34375 1.4375 +3.75 -1.34375 1.4375 +3.5 -1.34375 1.6875 +3.5 -1.34375 1.6875 +3.5 -0.65625 1.6875 +3.5 -0.65625 1.6875 +3.75 -0.65625 1.4375 +4.0 -0.65625 1.4375 +4.0 -0.65625 1.4375 +4.0 -0.65625 0.4375 +3.75 -0.65625 1.4375 +4.0 -0.65625 0.4375 +4.0 0.0 0.4375 +4.0 -1.34375 0.4375 +4.0 0.0 0.4375 +4.0 0.0 0.4375 +4.0 -0.65625 0.4375 +4.0 0.0 0.1875 +4.25 -2.0 0.4375 +4.25 -0.65625 0.4375 +-4.0 -4.0 0.0 +-4.0 -4.0 0.0 +-4.0 -6.0 0.0 +-6.0 -4.0 0.0 +-6.0 -4.25 -0.125 +-4.25 -4.25 -0.125 +-4.25 -4.25 -0.125 +-4.25 -6.0 -0.125 +-4.25 -4.25 0.4375 +-6.0 4.25 -0.125 +-4.0 4.25 -0.125 +-2.0 4.25 -0.125 +0.0 4.25 -0.125 +-4.0 0.0 -0.875 +-6.0 0.0 -0.875 +-2.0 4.25 0.4375 +-2.0 4.25 0.4375 +-2.0 4.0 0.4375 +-2.0 4.0 0.1875 +4.0 2.0 0.4375 +4.0 4.0 0.4375 +4.0 4.0 0.4375 +4.25 4.0 0.4375 +-4.0 4.0 0.1875 +-6.0 4.0 0.1875 +0.0 4.0 0.1875 +-2.0 4.0 0.1875 +-2.0 4.0 0.4375 +-2.65625 4.0 0.4375 +-4.25 -6.0 0.4375 +-4.25 -6.0 0.4375 +-4.25 -4.25 0.4375 +-4.0 -6.0 0.4375 +-4.0 -6.0 0.4375 +-4.0 -4.25 0.4375 +-4.0 -4.25 0.4375 +4.0 -2.0 0.1875 +4.0 0.0 0.1875 +-6.0 -4.0 0.1875 +-6.0 -4.25 0.4375 +0.0 0.0 0.0 179 0.0 -1.0 -0.0 0.30373737215995789 0.77120675146579742 292 0.0 -1.0 -0.0 0.30373737215995789 0.78851495683193207 @@ -835,12 +835,12 @@ 17 0.17378534376621246 0.0 -0.9847835898399353 0.56996077299118042 0.98599416017532349 199 0.17378534376621246 0.0 -0.9847835898399353 0.57006806135177612 0.79026897251605988 20 6 -3.25 3.2500019073486328 0.0625 --6.0 3.2499990463256836 0.0625 --6.0 -3.25 0.0625 --3.2500009536743164 -3.25 0.0625 --3.2500019073486328 -5.9999980926513672 0.0625 -3.2500019073486328 -5.9999980926513672 0.0625 +3.25 3.2500019073486328 0.0 +-6.0 3.2499990463256836 0.0 +-6.0 -3.25 0.0 +-3.2500009536743164 -3.25 0.0 +-3.2500019073486328 -5.9999980926513672 0.0 +3.2500019073486328 -5.9999980926513672 0.0 4 0.0 0.0 1.0 0 0 0 0.0 0.0 1.0 0 0 @@ -854,903 +854,905 @@ 4 0.0 0.0 1.0 0 0 0 0.0 0.0 1.0 0 0 4 0.0 0.0 1.0 0 0 -5 100 -1.9999985694885254 4.0 0.5 -1.9999985694885254 4.0 0.0625 -4.0 4.0000019073486328 0.0625 -4.25 4.0000019073486328 -0.0625 -4.25 2.0000019073486328 -0.0625 -4.0000009536743164 2.0000019073486328 0.5 -4.25 2.0000019073486328 0.5 -4.0 4.0000019073486328 0.5 -4.2499990463256836 4.0000019073486328 0.5 -0.0 -6.0 -0.8125 -4.25 -6.0 -0.0625 --4.25 -6.0 -0.0625 -4.0000019073486328 -5.9999980926513672 0.0625 --4.0000019073486328 -5.9999980926513672 0.0625 -4.0 2.0 0.25 -4.0000019073486328 -5.9999980926513672 0.25 --4.0000019073486328 -5.9999980926513672 0.25 -4.25 -6.0 0.5 --4.25 -6.0 0.5 -0.0 -2.0 -0.8125 -4.2499990463256836 -1.9999990463256836 -0.0625 -4.0 -1.9999990463256836 0.0625 -4.0 -1.9999990463256836 0.25 -4.2499990463256836 -1.9999985694885254 0.5 -0.0 0.0 -0.8125 -0.0 -4.0 -0.8125 -4.25 -3.9999990463256836 -0.0625 -4.2499980926513672 1.1920928955078125e-06 -0.0625 -4.0000009536743164 -3.9999990463256836 0.0625 -4.0 4.76837158203125e-07 0.0625 -4.0 4.76837158203125e-07 0.25 -4.0000009536743164 -3.9999990463256836 0.25 -4.2499980926513672 1.430511474609375e-06 0.5 -4.25 -3.9999990463256836 0.5 --4.25 -4.2499990463256836 0.5 -4.0 4.76837158203125e-07 0.5 -4.0 -1.9999990463256836 0.5 -4.0000009536743164 -3.9999990463256836 0.5 --4.0000009536743164 -4.2499990463256836 0.5 -4.0000019073486328 -5.9999980926513672 0.5 --4.0000019073486328 -5.9999980926513672 0.5 -4.2499990463256836 -1.333331823348999 0.5 -4.2499980926513672 -0.66666519641876221 0.5 -4.0 -0.66666615009307861 0.5 -4.0 -1.3333327770233154 0.5 -4.0 -1.3333327770233154 1.5 -4.2499990463256836 -1.333331823348999 1.75 -4.2499980926513672 -0.66666519641876221 1.75 -4.0 -0.66666615009307861 1.5 -3.4999990463256836 -1.333331823348999 1.75 -3.4999980926513672 -0.66666519641876221 1.75 -3.75 -1.3333327770233154 1.5 -3.75 -0.66666615009307861 1.5 -4.0 2.0 0.0625 --4.0000009536743164 4.0 0.5 --2.0000014305114746 4.0 0.5 --2.6666688919067383 4.2499980926513672 0.5 --2.0000019073486328 4.2499980926513672 0.5 --6.0000019073486328 -4.2499980926513672 0.5 --4.0000009536743164 -4.0 0.25 --6.0 -4.0 0.25 --6.0000019073486328 4.2499980926513672 0.5 --3.3333358764648438 4.2499980926513672 0.5 --3.3333339691162109 4.0 0.5 --2.6666688919067383 4.2499980926513672 1.75 --3.3333358764648438 4.2499980926513672 1.75 --2.6666679382324219 3.75 1.5 --2.6666679382324219 4.0 1.5 --2.6666688919067383 3.4999980926513672 1.75 --3.3333358764648438 3.4999980926513672 1.75 --3.3333339691162109 3.75 1.5 --3.3333339691162109 4.0 1.5 --2.6666679382324219 4.0 0.5 --4.0000019073486328 4.2499980926513672 0.5 --4.0000009536743164 4.0 0.25 --6.0 3.9999990463256836 0.25 --4.0000009536743164 -4.0 0.0625 --6.0 -4.0 0.0625 --4.0000009536743164 4.0 0.0625 --6.0 3.9999990463256836 0.0625 --1.430511474609375e-06 4.0 0.0625 --2.0000014305114746 4.0 0.0625 --6.0000019073486328 -4.2499980926513672 -0.0625 --4.2500019073486328 -4.2499990463256836 -0.0625 --6.0000019073486328 4.2499980926513672 -0.0625 --4.0000019073486328 4.2499980926513672 -0.0625 --2.0000014305114746 4.2499980926513672 -0.0625 --1.6689300537109375e-06 4.25 -0.0625 --4.0 -4.76837158203125e-07 -0.8125 --6.0 -9.5367431640625e-07 -0.8125 --1.430511474609375e-06 4.0 0.5 --1.9073486328125e-06 4.2499990463256836 0.5 --1.430511474609375e-06 4.0 0.25 --2.0000014305114746 4.0 0.25 --2.0000004768371582 -4.76837158203125e-07 -0.8125 -1.9999980926513672 4.0000009536743164 0.25 -3.9999980926513672 4.25 -0.0625 -3.9999980926513672 4.25 0.5 -1.9999980926513672 4.25 -0.0625 -1.9999980926513672 4.2499990463256836 0.5 -153 -9.5367369112864253e-07 -1.0 0.0 0 0 -0 9.5367369112864253e-07 -1.0 0.0 0 0 -1 9.5367369112864253e-07 -1.0 0.0 0 0 -2 9.5367369112864253e-07 -1.0 0.0 0 0 -0 9.5367369112864253e-07 -1.0 0.0 0 0 -2 9.5367369112864253e-07 -1.0 0.0 0 0 -7 0.0 0.0 1.0 0 0 -5 0.0 0.0 1.0 0 0 -6 0.0 0.0 1.0 0 0 -8 0.0 0.0 1.0 0 0 -5 0.0 0.0 1.0 0 0 -8 0.0 0.0 1.0 0 0 -7 1.0 2.384185791015625e-07 8.4771050978815765e-07 0 0 -3 1.0 2.384185791015625e-07 8.4771050978815765e-07 0 0 -8 1.0 2.384185791015625e-07 8.4771050978815765e-07 0 0 -6 1.0 2.384185791015625e-07 8.4771050978815765e-07 0 0 -3 1.0 2.384185791015625e-07 8.4771050978815765e-07 0 0 -6 1.0 2.384185791015625e-07 8.4771050978815765e-07 0 0 -4 1.9073559087701142e-06 -1.0 0.0 0 0 -22 1.9073559087701142e-06 -1.0 0.0 0 0 -23 1.9073559087701142e-06 -1.0 0.0 0 0 -36 -3.8147263694554567e-06 1.0 0.0 0 0 -30 -3.8147263694554567e-06 1.0 0.0 0 0 -35 -3.8147263694554567e-06 1.0 0.0 0 0 -32 -7.6294527389109135e-06 -1.0 0.0 0 0 -15 -7.6294527389109135e-06 -1.0 0.0 0 0 -17 -7.6294527389109135e-06 -1.0 0.0 0 0 -39 7.6294527389109135e-06 -1.0 0.0 0 0 -18 7.6294527389109135e-06 -1.0 0.0 0 0 -16 7.6294527389109135e-06 -1.0 0.0 0 0 +5 104 +4.0 2.0 0.0 +4.0 4.0 0.0 +4.0 2.0 0.4375 +4.0 4.0 0.4375 +2.0 4.0 0.4375 +2.0 4.0 0.0 +4.0 4.0 0.0 +4.25 4.0 -0.125 +4.25 2.0 -0.125 +4.0 2.0 0.4375 +4.25 2.0 0.4375 +4.0 4.0 0.4375 +4.25 4.0 0.4375 +0.0 -6.0 -0.875 +4.25 -6.0 -0.125 +-4.25 -6.0 -0.125 +4.0 -6.0 0.0 +-4.0 -6.0 0.0 +4.0 2.0 0.1875 +4.0 -6.0 0.1875 +-4.0 -6.0 0.1875 +4.25 -6.0 0.4375 +-4.25 -6.0 0.4375 +0.0 -2.0 -0.875 +4.25 -2.0 -0.125 +4.0 -2.0 0.0 +4.0 -2.0 0.1875 +4.25 -2.0 0.4375 +0.0 0.0 -0.875 +0.0 -4.0 -0.875 +4.25 -4.0 -0.125 +4.25 0.0 -0.125 +4.0 -4.0 0.0 +4.0 0.0 0.0 +4.0 0.0 0.1875 +4.0 -4.0 0.1875 +4.25 0.0 0.4375 +4.25 -4.0 0.4375 +-4.25 -4.25 0.4375 +4.0 0.0 0.4375 +4.0 -2.0 0.4375 +4.0 -4.0 0.4375 +-4.0 -4.25 0.4375 +4.0 -6.0 0.4375 +-4.0 -6.0 0.4375 +4.25 -1.328125 0.4375 +4.25 -0.671875 0.4375 +4.0 -0.671875 0.4375 +4.0 -1.328125 0.4375 +4.0 -1.328125 1.4375 +4.25 -1.328125 1.6875 +4.25 -0.671875 1.6875 +4.0 -0.671875 1.4375 +3.5 -1.328125 1.6875 +3.5 -0.671875 1.6875 +3.75 -1.328125 1.4375 +3.75 -0.671875 1.4375 +4.0 2.0 0.0 +-4.0 4.0 0.4375 +-2.0 4.0 0.4375 +-2.671875 4.25 0.4375 +-2.0 4.25 0.4375 +-6.0 -4.25 0.4375 +-4.0 -4.0 0.1875 +-6.0 -4.0 0.1875 +-6.0 4.25 0.4375 +-3.328125 4.25 0.4375 +-3.328125 4.0 0.4375 +-2.671875 4.25 1.6875 +-3.328125 4.25 1.6875 +-2.671875 3.75 1.4375 +-2.671875 4.0 1.4375 +-2.671875 3.5 1.6875 +-3.328125 3.5 1.6875 +-3.328125 3.75 1.4375 +-3.328125 4.0 1.4375 +-2.671875 4.0 0.4375 +-4.0 4.25 0.4375 +-4.0 4.0 0.1875 +-6.0 4.0 0.1875 +-4.0 -4.0 0.0 +-6.0 -4.0 0.0 +-4.0 4.0 0.0 +-6.0 4.0 0.0 +0.0 4.0 0.0 +-2.0 4.0 0.0 +-6.0 -4.25 -0.125 +-4.25 -4.25 -0.125 +-6.0 4.25 -0.125 +-4.0 4.25 -0.125 +-2.0 4.25 -0.125 +0.0 4.25 -0.125 +-4.0 0.0 -0.875 +-6.0 0.0 -0.875 +0.0 4.0 0.4375 +0.0 4.25 0.4375 +0.0 4.0 0.1875 +-2.0 4.0 0.1875 +-2.0 0.0 -0.875 +2.0 4.0 0.1875 +4.0 4.25 -0.125 +4.0 4.25 0.4375 +2.0 4.25 -0.125 +2.0 4.25 0.4375 +155 +-1.0 0.0 0.0 0 0 +0 -1.0 0.0 0.0 0 0 +2 -1.0 0.0 0.0 0 0 +3 -1.0 0.0 0.0 0 0 +0 -1.0 0.0 0.0 0 0 +3 -1.0 0.0 0.0 0 0 +1 -0.0 -1.0 0.0 0 0 +4 -0.0 -1.0 0.0 0 0 +5 -0.0 -1.0 0.0 0 0 +6 -0.0 -1.0 0.0 0 0 +4 -0.0 -1.0 0.0 0 0 +6 -0.0 -1.0 0.0 0 0 +11 0.0 0.0 1.0 0 0 +9 0.0 0.0 1.0 0 0 +10 0.0 0.0 1.0 0 0 +12 0.0 0.0 1.0 0 0 +9 0.0 0.0 1.0 0 0 +12 0.0 0.0 1.0 0 0 +11 1.0 -0.0 0.0 0 0 +7 1.0 -0.0 0.0 0 0 +12 1.0 -0.0 0.0 0 0 +10 1.0 -0.0 0.0 0 0 +7 1.0 -0.0 0.0 0 0 +10 1.0 -0.0 0.0 0 0 +8 0.0 -1.0 -0.0 0 0 +26 0.0 -1.0 -0.0 0 0 +27 0.0 -1.0 -0.0 0 0 40 0.0 1.0 0.0 0 0 -31 0.0 1.0 0.0 0 0 -37 0.0 1.0 0.0 0 0 -33 0.0 0.0 0.0 0 0 -35 0.0 0.0 0.0 0 0 -44 0.0 0.0 0.0 0 0 -43 -1.0 0.0 0.0 0 0 -35 -1.0 0.0 0.0 0 0 -29 -1.0 0.0 0.0 0 0 -44 -0.0 -0.0 -1.0 0 0 -23 -0.0 -0.0 -1.0 0 0 -42 -0.0 -0.0 -1.0 0 0 -41 1.0 7.152557373046875e-07 -6.0632981925198837e-13 0 0 -23 1.0 7.152557373046875e-07 -6.0632981925198837e-13 0 0 -20 1.0 7.152557373046875e-07 -6.0632981925198837e-13 0 0 -42 0.17378538846969604 4.1433661834844315e-08 -0.9847835898399353 0 0 -24 0.17378538846969604 4.1433661834844315e-08 -0.9847835898399353 0 0 -27 0.17378538846969604 4.1433661834844315e-08 -0.9847835898399353 0 0 -20 0.17378538846969604 4.1433661834844315e-08 -0.9847835898399353 0 0 -24 0.17378538846969604 4.1433661834844315e-08 -0.9847835898399353 0 0 -20 0.17378538846969604 4.1433661834844315e-08 -0.9847835898399353 0 0 -19 0.17378535866737366 4.1433658282130637e-08 -0.9847835898399353 0 0 -19 0.17378535866737366 4.1433658282130637e-08 -0.9847835898399353 0 0 -20 0.17378535866737366 4.1433658282130637e-08 -0.9847835898399353 0 0 -26 0.17378535866737366 4.1433658282130637e-08 -0.9847835898399353 0 0 -19 0.17378535866737366 4.1433658282130637e-08 -0.9847835898399353 0 0 -26 0.17378535866737366 4.1433658282130637e-08 -0.9847835898399353 0 0 -25 0.17378534376621246 0.0 -0.9847835898399353 0 0 -10 0.17378534376621246 0.0 -0.9847835898399353 0 0 -9 0.17378534376621246 0.0 -0.9847835898399353 0 0 -25 0.17378534376621246 0.0 -0.9847835898399353 0 0 -10 0.17378534376621246 0.0 -0.9847835898399353 0 0 -25 0.17378534376621246 0.0 -0.9847835898399353 0 0 -26 -0.17378528416156769 -8.8391750807659264e-08 -0.98478353023529053 0 0 -25 -0.17378528416156769 -8.8391750807659264e-08 -0.98478353023529053 0 0 -9 -0.17378528416156769 -8.8391750807659264e-08 -0.98478353023529053 0 0 -11 -0.17378528416156769 -8.8391750807659264e-08 -0.98478353023529053 0 0 -25 -0.17378528416156769 -8.8391750807659264e-08 -0.98478353023529053 0 0 -11 -0.17378528416156769 -8.8391750807659264e-08 -0.98478353023529053 0 0 -83 -1.0 -4.76837158203125e-07 0.0 0 0 -28 -1.0 -4.76837158203125e-07 0.0 0 0 -31 -1.0 -4.76837158203125e-07 0.0 0 0 -22 -1.0 -4.76837158203125e-07 0.0 0 0 -28 -1.0 -4.76837158203125e-07 0.0 0 0 -22 -1.0 -4.76837158203125e-07 0.0 0 0 -21 -1.0 -0.0 0.0 0 0 -29 -1.0 -0.0 0.0 0 0 -30 -1.0 -0.0 0.0 0 0 -14 -1.0 -0.0 0.0 0 0 -29 -1.0 -0.0 0.0 0 0 -14 -1.0 -0.0 0.0 0 0 -53 1.0 -9.5367408903257456e-07 2.0210989457557227e-13 0 0 -4 1.0 -9.5367408903257456e-07 2.0210989457557227e-13 0 0 -6 1.0 -9.5367408903257456e-07 2.0210989457557227e-13 0 0 -32 1.0 -9.5367408903257456e-07 2.0210989457557227e-13 0 0 -4 1.0 -9.5367408903257456e-07 2.0210989457557227e-13 0 0 -32 1.0 -9.5367408903257456e-07 2.0210989457557227e-13 0 0 -27 1.0 4.7683710135970614e-07 -2.0210990812809942e-13 0 0 -20 1.0 4.7683710135970614e-07 -2.0210990812809942e-13 0 0 -23 1.0 4.7683710135970614e-07 -2.0210990812809942e-13 0 0 -33 1.0 4.7683710135970614e-07 -2.0210990812809942e-13 0 0 -20 1.0 4.7683710135970614e-07 -2.0210990812809942e-13 0 0 -33 1.0 4.7683710135970614e-07 -2.0210990812809942e-13 0 0 -26 1.0 -0.0 0.0 0 0 -26 1.0 -0.0 0.0 0 0 -33 1.0 -0.0 0.0 0 0 -17 1.0 -0.0 0.0 0 0 -26 1.0 -0.0 0.0 0 0 -17 1.0 -0.0 0.0 0 0 -10 -0.70710813999176025 -3.3717537917254958e-07 0.70710545778274536 0 0 -22 -0.70710813999176025 -3.3717537917254958e-07 0.70710545778274536 0 0 -31 -0.70710813999176025 -3.3717537917254958e-07 0.70710545778274536 0 0 -33 -0.70710813999176025 -3.3717537917254958e-07 0.70710545778274536 0 0 -22 -0.70710813999176025 -3.3717537917254958e-07 0.70710545778274536 0 0 -33 -0.70710813999176025 -3.3717537917254958e-07 0.70710545778274536 0 0 -23 -0.70710808038711548 3.3717540759425901e-07 0.70710539817810059 0 0 -14 -0.70710808038711548 3.3717540759425901e-07 0.70710539817810059 0 0 -30 -0.70710808038711548 3.3717540759425901e-07 0.70710539817810059 0 0 -32 -0.70710808038711548 3.3717540759425901e-07 0.70710539817810059 0 0 -14 -0.70710808038711548 3.3717540759425901e-07 0.70710539817810059 0 0 -32 -0.70710808038711548 3.3717540759425901e-07 0.70710539817810059 0 0 -6 0.0 0.0 1.0 0 0 +34 0.0 1.0 0.0 0 0 +39 0.0 1.0 0.0 0 0 +36 0.0 -1.0 -0.0 0 0 +19 0.0 -1.0 -0.0 0 0 +21 0.0 -1.0 -0.0 0 0 +43 -0.0 -1.0 -0.0 0 0 +22 -0.0 -1.0 -0.0 0 0 +20 -0.0 -1.0 -0.0 0 0 +44 0.0 1.0 0.0 0 0 +35 0.0 1.0 0.0 0 0 +41 0.0 1.0 0.0 0 0 +37 0.0 0.0 0.0 0 0 +39 0.0 0.0 0.0 0 0 +48 0.0 0.0 0.0 0 0 +47 -1.0 0.0 0.0 0 0 +39 -1.0 0.0 0.0 0 0 +33 -1.0 0.0 0.0 0 0 +48 0.0 0.0 0.0 0 0 +27 0.0 0.0 0.0 0 0 +46 0.0 0.0 0.0 0 0 +45 1.0 0.0 -0.0 0 0 +27 1.0 0.0 -0.0 0 0 +24 1.0 0.0 -0.0 0 0 +46 0.17378534376621246 0.0 -0.9847835898399353 0 0 +28 0.17378534376621246 0.0 -0.9847835898399353 0 0 +31 0.17378534376621246 0.0 -0.9847835898399353 0 0 +24 0.17378534376621246 0.0 -0.9847835898399353 0 0 +28 0.17378534376621246 0.0 -0.9847835898399353 0 0 +24 0.17378534376621246 0.0 -0.9847835898399353 0 0 +23 0.17378534376621246 0.0 -0.9847835898399353 0 0 +23 0.17378534376621246 0.0 -0.9847835898399353 0 0 +24 0.17378534376621246 0.0 -0.9847835898399353 0 0 +30 0.17378534376621246 0.0 -0.9847835898399353 0 0 +23 0.17378534376621246 0.0 -0.9847835898399353 0 0 +30 0.17378534376621246 0.0 -0.9847835898399353 0 0 +29 0.17378534376621246 0.0 -0.9847835898399353 0 0 +14 0.17378534376621246 0.0 -0.9847835898399353 0 0 +13 0.17378534376621246 0.0 -0.9847835898399353 0 0 +29 0.17378534376621246 0.0 -0.9847835898399353 0 0 +14 0.17378534376621246 0.0 -0.9847835898399353 0 0 +29 0.17378534376621246 0.0 -0.9847835898399353 0 0 +30 -0.17378532886505127 0.0 -0.98478353023529053 0 0 +29 -0.17378532886505127 0.0 -0.98478353023529053 0 0 +13 -0.17378532886505127 0.0 -0.98478353023529053 0 0 +15 -0.17378532886505127 0.0 -0.98478353023529053 0 0 +29 -0.17378532886505127 0.0 -0.98478353023529053 0 0 +15 -0.17378532886505127 0.0 -0.98478353023529053 0 0 +87 -1.0 -0.0 0.0 0 0 +32 -1.0 -0.0 0.0 0 0 +35 -1.0 -0.0 0.0 0 0 +26 -1.0 -0.0 0.0 0 0 +32 -1.0 -0.0 0.0 0 0 +26 -1.0 -0.0 0.0 0 0 +25 -1.0 -0.0 0.0 0 0 +33 -1.0 -0.0 0.0 0 0 +34 -1.0 -0.0 0.0 0 0 +18 -1.0 -0.0 0.0 0 0 +33 -1.0 -0.0 0.0 0 0 +18 -1.0 -0.0 0.0 0 0 +57 1.0 -0.0 0.0 0 0 +8 1.0 -0.0 0.0 0 0 +10 1.0 -0.0 0.0 0 0 +36 1.0 -0.0 0.0 0 0 +8 1.0 -0.0 0.0 0 0 +36 1.0 -0.0 0.0 0 0 +31 1.0 -0.0 0.0 0 0 +24 1.0 -0.0 0.0 0 0 +27 1.0 -0.0 0.0 0 0 +37 1.0 -0.0 0.0 0 0 +24 1.0 -0.0 0.0 0 0 +37 1.0 -0.0 0.0 0 0 +30 1.0 -0.0 0.0 0 0 +30 1.0 -0.0 0.0 0 0 +37 1.0 -0.0 0.0 0 0 +21 1.0 -0.0 0.0 0 0 +30 1.0 -0.0 0.0 0 0 +21 1.0 -0.0 0.0 0 0 +14 -0.70710676908493042 0.0 0.70710676908493042 0 0 +26 -0.70710676908493042 0.0 0.70710676908493042 0 0 +35 -0.70710676908493042 0.0 0.70710676908493042 0 0 +37 -0.70710676908493042 0.0 0.70710676908493042 0 0 +26 -0.70710676908493042 0.0 0.70710676908493042 0 0 +37 -0.70710676908493042 0.0 0.70710676908493042 0 0 +27 -0.70710676908493042 0.0 0.70710676908493042 0 0 +18 -0.70710676908493042 0.0 0.70710676908493042 0 0 +34 -0.70710676908493042 0.0 0.70710676908493042 0 0 +36 -0.70710676908493042 0.0 0.70710676908493042 0 0 +18 -0.70710676908493042 0.0 0.70710676908493042 0 0 +36 -0.70710676908493042 0.0 0.70710676908493042 0 0 +10 0.0 0.0 1.0 0 0 +43 0.0 0.0 1.0 0 0 +21 0.0 0.0 1.0 0 0 +37 0.0 0.0 1.0 0 0 +43 0.0 0.0 1.0 0 0 +37 0.0 0.0 1.0 0 0 +41 -0.0 0.0 1.0 0 0 +44 -0.0 0.0 1.0 0 0 +42 -0.0 0.0 1.0 0 0 +38 -0.0 0.0 1.0 0 0 +44 -0.0 0.0 1.0 0 0 +38 -0.0 0.0 1.0 0 0 +22 0.0 0.0 1.0 0 0 +48 0.0 0.0 1.0 0 0 +40 0.0 0.0 1.0 0 0 +27 0.0 0.0 1.0 0 0 +48 0.0 0.0 1.0 0 0 +27 0.0 0.0 1.0 0 0 +45 0.0 0.0 1.0 0 0 39 0.0 0.0 1.0 0 0 -17 0.0 0.0 1.0 0 0 -33 0.0 0.0 1.0 0 0 +47 0.0 0.0 1.0 0 0 +46 0.0 0.0 1.0 0 0 39 0.0 0.0 1.0 0 0 -33 0.0 0.0 1.0 0 0 -37 -0.0 0.0 1.0 0 0 -40 -0.0 0.0 1.0 0 0 -38 -0.0 0.0 1.0 0 0 -34 -0.0 0.0 1.0 0 0 -40 -0.0 0.0 1.0 0 0 -34 -0.0 0.0 1.0 0 0 -18 0.0 0.0 1.0 0 0 -44 0.0 0.0 1.0 0 0 -36 0.0 0.0 1.0 0 0 -23 0.0 0.0 1.0 0 0 -44 0.0 0.0 1.0 0 0 -23 0.0 0.0 1.0 0 0 -41 0.0 0.0 1.0 0 0 -35 0.0 0.0 1.0 0 0 -43 0.0 0.0 1.0 0 0 -42 0.0 0.0 1.0 0 0 -35 0.0 0.0 1.0 0 0 -42 0.0 0.0 1.0 0 0 -32 3.8147118175402284e-06 -1.0 0.0 0 0 -45 3.8147118175402284e-06 -1.0 0.0 0 0 -44 3.8147118175402284e-06 -1.0 0.0 0 0 -41 3.8147118175402284e-06 -1.0 0.0 0 0 -45 3.8147118175402284e-06 -1.0 0.0 0 0 -41 3.8147118175402284e-06 -1.0 0.0 0 0 -46 -3.8147263694554567e-06 1.0 0.0 0 0 -42 -3.8147263694554567e-06 1.0 0.0 0 0 -43 -3.8147263694554567e-06 1.0 0.0 0 0 -48 -3.8147263694554567e-06 1.0 0.0 0 0 -42 -3.8147263694554567e-06 1.0 0.0 0 0 -48 -3.8147263694554567e-06 1.0 0.0 0 0 +46 0.0 0.0 1.0 0 0 +36 -0.0 -1.0 0.0 0 0 +49 -0.0 -1.0 0.0 0 0 +48 -0.0 -1.0 0.0 0 0 +45 -0.0 -1.0 0.0 0 0 +49 -0.0 -1.0 0.0 0 0 +45 -0.0 -1.0 0.0 0 0 +50 0.0 1.0 0.0 0 0 +46 0.0 1.0 0.0 0 0 +47 0.0 1.0 0.0 0 0 +52 0.0 1.0 0.0 0 0 +46 0.0 1.0 0.0 0 0 +52 0.0 1.0 0.0 0 0 +51 -1.0 0.0 -0.0 0 0 47 -1.0 0.0 -0.0 0 0 -43 -1.0 0.0 -0.0 0 0 -44 -1.0 0.0 -0.0 0 0 -45 -1.0 0.0 -0.0 0 0 -43 -1.0 0.0 -0.0 0 0 -45 -1.0 0.0 -0.0 0 0 -48 1.0 1.4305115882962127e-06 0.0 0 0 -41 1.0 1.4305115882962127e-06 0.0 0 0 -42 1.0 1.4305115882962127e-06 0.0 0 0 -47 1.0 1.4305115882962127e-06 0.0 0 0 -41 1.0 1.4305115882962127e-06 0.0 0 0 -47 1.0 1.4305115882962127e-06 0.0 0 0 -46 -1.0 -4.7683738557680044e-07 0.0 0 0 -12 -1.0 -4.7683738557680044e-07 0.0 0 0 -39 -1.0 -4.7683738557680044e-07 0.0 0 0 -37 -1.0 -4.7683738557680044e-07 0.0 0 0 -12 -1.0 -4.7683738557680044e-07 0.0 0 0 -37 -1.0 -4.7683738557680044e-07 0.0 0 0 -28 0.0 -0.0 1.0 0 0 -47 0.0 -0.0 1.0 0 0 -50 0.0 -0.0 1.0 0 0 -49 0.0 -0.0 1.0 0 0 -47 0.0 -0.0 1.0 0 0 -49 0.0 -0.0 1.0 0 0 -46 0.0 0.0 -1.0 0 0 -48 0.0 0.0 -1.0 0 0 -45 0.0 0.0 -1.0 0 0 -51 0.0 0.0 -1.0 0 0 -48 0.0 0.0 -1.0 0 0 -51 0.0 0.0 -1.0 0 0 -52 0.0 1.0 -3.814697265625e-06 0 0 -47 0.0 1.0 -3.814697265625e-06 0 0 -48 0.0 1.0 -3.814697265625e-06 0 0 -52 0.0 1.0 -3.814697265625e-06 0 0 -47 0.0 1.0 -3.814697265625e-06 0 0 -52 0.0 1.0 -3.814697265625e-06 0 0 -50 0.0 -1.0 3.814697265625e-06 0 0 -46 0.0 -1.0 3.814697265625e-06 0 0 -49 0.0 -1.0 3.814697265625e-06 0 0 -51 0.0 -1.0 3.814697265625e-06 0 0 -46 0.0 -1.0 3.814697265625e-06 0 0 -51 0.0 -1.0 3.814697265625e-06 0 0 -45 -0.70710474252700806 -5.0576079502206994e-07 -0.70710879564285278 0 0 -52 -0.70710474252700806 -5.0576079502206994e-07 -0.70710879564285278 0 0 -51 -0.70710474252700806 -5.0576079502206994e-07 -0.70710879564285278 0 0 -49 -0.70710474252700806 -5.0576079502206994e-07 -0.70710879564285278 0 0 -52 -0.70710474252700806 -5.0576079502206994e-07 -0.70710879564285278 0 0 -49 -0.70710474252700806 -5.0576079502206994e-07 -0.70710879564285278 0 0 +48 -1.0 0.0 -0.0 0 0 +49 -1.0 0.0 -0.0 0 0 +47 -1.0 0.0 -0.0 0 0 +49 -1.0 0.0 -0.0 0 0 +52 1.0 0.0 0.0 0 0 +45 1.0 0.0 0.0 0 0 +46 1.0 0.0 0.0 0 0 +51 1.0 0.0 0.0 0 0 +45 1.0 0.0 0.0 0 0 +51 1.0 0.0 0.0 0 0 50 -1.0 -0.0 0.0 0 0 -21 -1.0 -0.0 0.0 0 0 -36 -1.0 -0.0 0.0 0 0 -44 -1.0 -0.0 0.0 0 0 -21 -1.0 -0.0 0.0 0 0 -44 -1.0 -0.0 0.0 0 0 -29 1.0 3.5762784023063432e-07 4.2385502752040338e-07 0 0 -27 1.0 3.5762784023063432e-07 4.2385502752040338e-07 0 0 -32 1.0 3.5762784023063432e-07 4.2385502752040338e-07 0 0 -42 1.0 3.5762784023063432e-07 4.2385502752040338e-07 0 0 -27 1.0 3.5762784023063432e-07 4.2385502752040338e-07 0 0 -42 1.0 3.5762784023063432e-07 4.2385502752040338e-07 0 0 -20 0.0 1.0 0.0 0 0 -85 0.0 1.0 0.0 0 0 -73 0.0 1.0 0.0 0 0 -62 0.0 1.0 0.0 0 0 -85 0.0 1.0 0.0 0 0 -62 0.0 1.0 0.0 0 0 -86 0.0 -1.0 0.0 0 0 -81 0.0 -1.0 0.0 0 0 +16 -1.0 -0.0 0.0 0 0 +43 -1.0 -0.0 0.0 0 0 +41 -1.0 -0.0 0.0 0 0 +16 -1.0 -0.0 0.0 0 0 +41 -1.0 -0.0 0.0 0 0 +32 0.0 -0.0 1.0 0 0 +51 0.0 -0.0 1.0 0 0 +54 0.0 -0.0 1.0 0 0 +53 0.0 -0.0 1.0 0 0 +51 0.0 -0.0 1.0 0 0 +53 0.0 -0.0 1.0 0 0 +50 0.0 0.0 -1.0 0 0 +52 0.0 0.0 -1.0 0 0 +49 0.0 0.0 -1.0 0 0 +55 0.0 0.0 -1.0 0 0 +52 0.0 0.0 -1.0 0 0 +55 0.0 0.0 -1.0 0 0 +56 -0.0 1.0 0.0 0 0 +51 -0.0 1.0 0.0 0 0 +52 -0.0 1.0 0.0 0 0 +56 -0.0 1.0 0.0 0 0 +51 -0.0 1.0 0.0 0 0 +56 -0.0 1.0 0.0 0 0 +54 0.0 -1.0 0.0 0 0 +50 0.0 -1.0 0.0 0 0 +53 0.0 -1.0 0.0 0 0 55 0.0 -1.0 0.0 0 0 -72 0.0 -1.0 0.0 0 0 -81 0.0 -1.0 0.0 0 0 -72 0.0 -1.0 0.0 0 0 -78 0.0 -0.70710408687591553 -0.70710945129394531 0 0 -70 0.0 -0.70710408687591553 -0.70710945129394531 0 0 -66 0.0 -0.70710408687591553 -0.70710945129394531 0 0 -68 0.0 -0.70710408687591553 -0.70710945129394531 0 0 -70 0.0 -0.70710408687591553 -0.70710945129394531 0 0 -68 0.0 -0.70710408687591553 -0.70710945129394531 0 0 -69 1.0 0.0 3.814697265625e-06 0 0 -64 1.0 0.0 3.814697265625e-06 0 0 -68 1.0 0.0 3.814697265625e-06 0 0 -66 1.0 0.0 3.814697265625e-06 0 0 -64 1.0 0.0 3.814697265625e-06 0 0 -66 1.0 0.0 3.814697265625e-06 0 0 -67 -1.0 0.0 -7.62939453125e-06 0 0 -65 -1.0 0.0 -7.62939453125e-06 0 0 -71 -1.0 0.0 -7.62939453125e-06 0 0 -70 -1.0 0.0 -7.62939453125e-06 0 0 -65 -1.0 0.0 -7.62939453125e-06 0 0 -70 -1.0 0.0 -7.62939453125e-06 0 0 -69 0.0 0.0 -1.0 0 0 +50 0.0 -1.0 0.0 0 0 +55 0.0 -1.0 0.0 0 0 +49 -0.70710676908493042 0.0 -0.70710676908493042 0 0 +56 -0.70710676908493042 0.0 -0.70710676908493042 0 0 +55 -0.70710676908493042 0.0 -0.70710676908493042 0 0 +53 -0.70710676908493042 0.0 -0.70710676908493042 0 0 +56 -0.70710676908493042 0.0 -0.70710676908493042 0 0 +53 -0.70710676908493042 0.0 -0.70710676908493042 0 0 +54 -1.0 -0.0 0.0 0 0 +25 -1.0 -0.0 0.0 0 0 +40 -1.0 -0.0 0.0 0 0 +48 -1.0 -0.0 0.0 0 0 +25 -1.0 -0.0 0.0 0 0 +48 -1.0 -0.0 0.0 0 0 +33 1.0 -0.0 0.0 0 0 +31 1.0 -0.0 0.0 0 0 +36 1.0 -0.0 0.0 0 0 +46 1.0 -0.0 0.0 0 0 +31 1.0 -0.0 0.0 0 0 +46 1.0 -0.0 0.0 0 0 +24 0.0 1.0 0.0 0 0 +89 0.0 1.0 0.0 0 0 +77 0.0 1.0 0.0 0 0 +66 0.0 1.0 0.0 0 0 +89 0.0 1.0 0.0 0 0 +66 0.0 1.0 0.0 0 0 +90 0.0 -1.0 0.0 0 0 +85 0.0 -1.0 0.0 0 0 +59 0.0 -1.0 0.0 0 0 +76 0.0 -1.0 0.0 0 0 +85 0.0 -1.0 0.0 0 0 +76 0.0 -1.0 0.0 0 0 +82 0.0 -0.70710676908493042 -0.70710676908493042 0 0 +74 0.0 -0.70710676908493042 -0.70710676908493042 0 0 +70 0.0 -0.70710676908493042 -0.70710676908493042 0 0 +72 0.0 -0.70710676908493042 -0.70710676908493042 0 0 +74 0.0 -0.70710676908493042 -0.70710676908493042 0 0 +72 0.0 -0.70710676908493042 -0.70710676908493042 0 0 +73 1.0 0.0 -0.0 0 0 +68 1.0 0.0 -0.0 0 0 +72 1.0 0.0 -0.0 0 0 +70 1.0 0.0 -0.0 0 0 +68 1.0 0.0 -0.0 0 0 +70 1.0 0.0 -0.0 0 0 +71 -1.0 0.0 0.0 0 0 +69 -1.0 0.0 0.0 0 0 +75 -1.0 0.0 0.0 0 0 +74 -1.0 0.0 0.0 0 0 +69 -1.0 0.0 0.0 0 0 +74 -1.0 0.0 0.0 0 0 +73 0.0 0.0 -1.0 0 0 +75 0.0 0.0 -1.0 0 0 71 0.0 0.0 -1.0 0 0 -67 0.0 0.0 -1.0 0 0 -66 0.0 0.0 -1.0 0 0 -71 0.0 0.0 -1.0 0 0 -66 0.0 0.0 -1.0 0 0 -70 0.0 0.0 1.0 0 0 -65 0.0 0.0 1.0 0 0 +70 0.0 0.0 -1.0 0 0 +75 0.0 0.0 -1.0 0 0 +70 0.0 0.0 -1.0 0 0 +74 0.0 0.0 1.0 0 0 69 0.0 0.0 1.0 0 0 -68 0.0 0.0 1.0 0 0 -65 0.0 0.0 1.0 0 0 -68 0.0 0.0 1.0 0 0 -64 0.0 -1.0 0.0 0 0 -1 0.0 -1.0 0.0 0 0 -0 0.0 -1.0 0.0 0 0 -90 0.0 -1.0 0.0 0 0 -1 0.0 -1.0 0.0 0 0 -90 0.0 -1.0 0.0 0 0 -80 0.0 1.0 0.0 0 0 -56 0.0 1.0 0.0 0 0 -62 0.0 1.0 0.0 0 0 -65 0.0 1.0 0.0 0 0 -56 0.0 1.0 0.0 0 0 -65 0.0 1.0 0.0 0 0 -64 0.0 -1.0 -0.0 0 0 -63 0.0 -1.0 -0.0 0 0 -72 0.0 -1.0 -0.0 0 0 -67 0.0 -1.0 -0.0 0 0 -63 0.0 -1.0 -0.0 0 0 -67 0.0 -1.0 -0.0 0 0 -71 -1.0 -7.6294527389109135e-06 0.0 0 0 -62 -1.0 -7.6294527389109135e-06 0.0 0 0 -63 -1.0 -7.6294527389109135e-06 0.0 0 0 -71 -1.0 -7.6294527389109135e-06 0.0 0 0 -62 -1.0 -7.6294527389109135e-06 0.0 0 0 -71 -1.0 -7.6294527389109135e-06 0.0 0 0 -65 1.0 3.8147263694554567e-06 0.0 0 0 -67 1.0 3.8147263694554567e-06 0.0 0 0 -72 1.0 3.8147263694554567e-06 0.0 0 0 -56 1.0 3.8147263694554567e-06 0.0 0 0 -67 1.0 3.8147263694554567e-06 0.0 0 0 -56 1.0 3.8147263694554567e-06 0.0 0 0 -64 0.0 0.0 1.0 0 0 -54 0.0 0.0 1.0 0 0 -63 0.0 0.0 1.0 0 0 -62 0.0 0.0 1.0 0 0 -54 0.0 0.0 1.0 0 0 -62 0.0 0.0 1.0 0 0 73 0.0 0.0 1.0 0 0 72 0.0 0.0 1.0 0 0 -55 0.0 0.0 1.0 0 0 -57 0.0 0.0 1.0 0 0 +69 0.0 0.0 1.0 0 0 72 0.0 0.0 1.0 0 0 -57 0.0 0.0 1.0 0 0 -56 -0.0 0.0 1.0 0 0 -0 -0.0 0.0 1.0 0 0 -99 -0.0 0.0 1.0 0 0 -91 -0.0 0.0 1.0 0 0 -0 -0.0 0.0 1.0 0 0 -91 -0.0 0.0 1.0 0 0 -90 1.6858791695995023e-07 -0.70710885524749756 0.70710480213165283 0 0 -75 1.6858791695995023e-07 -0.70710885524749756 0.70710480213165283 0 0 -74 1.6858791695995023e-07 -0.70710885524749756 0.70710480213165283 0 0 -73 1.6858791695995023e-07 -0.70710885524749756 0.70710480213165283 0 0 -75 1.6858791695995023e-07 -0.70710885524749756 0.70710480213165283 0 0 -73 1.6858791695995023e-07 -0.70710885524749756 0.70710480213165283 0 0 -61 1.6858787432738609e-07 -0.70710879564285278 0.70710480213165283 0 0 -93 1.6858787432738609e-07 -0.70710879564285278 0.70710480213165283 0 0 -92 1.6858787432738609e-07 -0.70710879564285278 0.70710480213165283 0 0 -91 1.6858787432738609e-07 -0.70710879564285278 0.70710480213165283 0 0 -93 1.6858787432738609e-07 -0.70710879564285278 0.70710480213165283 0 0 -91 1.6858787432738609e-07 -0.70710879564285278 0.70710480213165283 0 0 -57 0.0 1.0 1.6954209058894776e-06 0 0 -87 0.0 1.0 1.6954209058894776e-06 0 0 -91 0.0 1.0 1.6954209058894776e-06 0 0 -99 0.0 1.0 1.6954209058894776e-06 0 0 -87 0.0 1.0 1.6954209058894776e-06 0 0 -99 0.0 1.0 1.6954209058894776e-06 0 0 -98 -7.152557373046875e-07 1.0 8.477099981973879e-07 0 0 -86 -7.152557373046875e-07 1.0 8.477099981973879e-07 0 0 -57 -7.152557373046875e-07 1.0 8.477099981973879e-07 0 0 -91 -7.152557373046875e-07 1.0 8.477099981973879e-07 0 0 -86 -7.152557373046875e-07 1.0 8.477099981973879e-07 0 0 -91 -7.152557373046875e-07 1.0 8.477099981973879e-07 0 0 -87 0.0 1.0 0.0 0 0 +68 0.0 -1.0 0.0 0 0 +5 0.0 -1.0 0.0 0 0 +4 0.0 -1.0 0.0 0 0 +94 0.0 -1.0 0.0 0 0 +5 0.0 -1.0 0.0 0 0 +94 0.0 -1.0 0.0 0 0 84 0.0 1.0 0.0 0 0 +60 0.0 1.0 0.0 0 0 +66 0.0 1.0 0.0 0 0 +69 0.0 1.0 0.0 0 0 +60 0.0 1.0 0.0 0 0 +69 0.0 1.0 0.0 0 0 +68 0.0 -1.0 -0.0 0 0 +67 0.0 -1.0 -0.0 0 0 +76 0.0 -1.0 -0.0 0 0 +71 0.0 -1.0 -0.0 0 0 +67 0.0 -1.0 -0.0 0 0 +71 0.0 -1.0 -0.0 0 0 +75 -1.0 0.0 -0.0 0 0 +66 -1.0 0.0 -0.0 0 0 +67 -1.0 0.0 -0.0 0 0 +75 -1.0 0.0 -0.0 0 0 +66 -1.0 0.0 -0.0 0 0 +75 -1.0 0.0 -0.0 0 0 +69 1.0 0.0 0.0 0 0 +71 1.0 0.0 0.0 0 0 +76 1.0 0.0 0.0 0 0 +60 1.0 0.0 0.0 0 0 +71 1.0 0.0 0.0 0 0 +60 1.0 0.0 0.0 0 0 +68 0.0 0.0 1.0 0 0 +58 0.0 0.0 1.0 0 0 +67 0.0 0.0 1.0 0 0 +66 0.0 0.0 1.0 0 0 +58 0.0 0.0 1.0 0 0 +66 0.0 0.0 1.0 0 0 +77 0.0 0.0 1.0 0 0 +76 0.0 0.0 1.0 0 0 +59 0.0 0.0 1.0 0 0 +61 0.0 0.0 1.0 0 0 +76 0.0 0.0 1.0 0 0 +61 0.0 0.0 1.0 0 0 +60 -0.0 0.0 1.0 0 0 +4 -0.0 0.0 1.0 0 0 +103 -0.0 0.0 1.0 0 0 +95 -0.0 0.0 1.0 0 0 +4 -0.0 0.0 1.0 0 0 +95 -0.0 0.0 1.0 0 0 +94 0.0 -0.70710676908493042 0.70710676908493042 0 0 +79 0.0 -0.70710676908493042 0.70710676908493042 0 0 +78 0.0 -0.70710676908493042 0.70710676908493042 0 0 +77 0.0 -0.70710676908493042 0.70710676908493042 0 0 +79 0.0 -0.70710676908493042 0.70710676908493042 0 0 +77 0.0 -0.70710676908493042 0.70710676908493042 0 0 +65 0.0 -0.70710676908493042 0.70710676908493042 0 0 +97 0.0 -0.70710676908493042 0.70710676908493042 0 0 +96 0.0 -0.70710676908493042 0.70710676908493042 0 0 +95 0.0 -0.70710676908493042 0.70710676908493042 0 0 +97 0.0 -0.70710676908493042 0.70710676908493042 0 0 +95 0.0 -0.70710676908493042 0.70710676908493042 0 0 61 0.0 1.0 0.0 0 0 -73 0.0 1.0 0.0 0 0 -84 0.0 1.0 0.0 0 0 -73 0.0 1.0 0.0 0 0 -85 4.7683738557680044e-07 -1.0 0.0 0 0 -78 4.7683738557680044e-07 -1.0 0.0 0 0 -74 4.7683738557680044e-07 -1.0 0.0 0 0 -75 4.7683738557680044e-07 -1.0 0.0 0 0 -78 4.7683738557680044e-07 -1.0 0.0 0 0 -75 4.7683738557680044e-07 -1.0 0.0 0 0 +91 0.0 1.0 0.0 0 0 +95 0.0 1.0 0.0 0 0 +103 0.0 1.0 0.0 0 0 +91 0.0 1.0 0.0 0 0 +103 0.0 1.0 0.0 0 0 +102 0.0 1.0 0.0 0 0 +90 0.0 1.0 0.0 0 0 +61 0.0 1.0 0.0 0 0 +95 0.0 1.0 0.0 0 0 +90 0.0 1.0 0.0 0 0 +95 0.0 1.0 0.0 0 0 +91 0.0 1.0 0.0 0 0 +88 0.0 1.0 0.0 0 0 +65 0.0 1.0 0.0 0 0 +77 0.0 1.0 0.0 0 0 +88 0.0 1.0 0.0 0 0 +77 0.0 1.0 0.0 0 0 +89 0.0 -1.0 0.0 0 0 +82 0.0 -1.0 0.0 0 0 +78 0.0 -1.0 0.0 0 0 79 0.0 -1.0 0.0 0 0 -80 0.0 -1.0 0.0 0 0 -92 0.0 -1.0 0.0 0 0 -93 0.0 -1.0 0.0 0 0 -80 0.0 -1.0 0.0 0 0 -93 0.0 -1.0 0.0 0 0 -81 -1.1048975068206346e-07 0.17378535866737366 -0.9847835898399353 0 0 -94 -1.1048975068206346e-07 0.17378535866737366 -0.9847835898399353 0 0 -86 -1.1048975068206346e-07 0.17378535866737366 -0.9847835898399353 0 0 -87 -1.1048975068206346e-07 0.17378535866737366 -0.9847835898399353 0 0 -94 -1.1048975068206346e-07 0.17378535866737366 -0.9847835898399353 0 0 -87 -1.1048975068206346e-07 0.17378535866737366 -0.9847835898399353 0 0 -24 0.0 0.17378538846969604 -0.9847835898399353 0 0 -88 0.0 0.17378538846969604 -0.9847835898399353 0 0 -85 0.0 0.17378538846969604 -0.9847835898399353 0 0 -86 0.0 0.17378538846969604 -0.9847835898399353 0 0 -88 0.0 0.17378538846969604 -0.9847835898399353 0 0 -86 0.0 0.17378538846969604 -0.9847835898399353 0 0 -94 -2.9463947726071638e-08 -0.17378543317317963 -0.9847835898399353 0 0 -89 -2.9463947726071638e-08 -0.17378543317317963 -0.9847835898399353 0 0 -88 -2.9463947726071638e-08 -0.17378543317317963 -0.9847835898399353 0 0 -83 -2.9463947726071638e-08 -0.17378543317317963 -0.9847835898399353 0 0 -89 -2.9463947726071638e-08 -0.17378543317317963 -0.9847835898399353 0 0 -83 -2.9463947726071638e-08 -0.17378543317317963 -0.9847835898399353 0 0 -82 -1.3811220611614772e-08 0.17378537356853485 -0.9847835898399353 0 0 -89 -1.3811220611614772e-08 0.17378537356853485 -0.9847835898399353 0 0 -84 -1.3811220611614772e-08 0.17378537356853485 -0.9847835898399353 0 0 -85 -1.3811220611614772e-08 0.17378537356853485 -0.9847835898399353 0 0 -89 -1.3811220611614772e-08 0.17378537356853485 -0.9847835898399353 0 0 -85 -1.3811220611614772e-08 0.17378537356853485 -0.9847835898399353 0 0 -88 -0.0 1.0 -0.0 0 0 -57 -0.0 1.0 -0.0 0 0 -86 -0.0 1.0 -0.0 0 0 -62 0.0 0.0 0.0 0 0 -57 0.0 0.0 0.0 0 0 -62 0.0 0.0 0.0 0 0 -56 -0.0 -1.0 0.0 0 0 -54 -0.0 -1.0 0.0 0 0 -78 -0.0 -1.0 0.0 0 0 -72 0.0 0.0 0.0 0 0 -54 0.0 0.0 0.0 0 0 -72 0.0 0.0 0.0 0 0 -63 -1.0 -1.9073559087701142e-06 -0.0 0 0 -92 -1.0 -1.9073559087701142e-06 -0.0 0 0 -90 -1.0 -1.9073559087701142e-06 -0.0 0 0 -91 1.0 1.9073559087701142e-06 -1.9073413568548858e-06 0 0 -99 1.0 1.9073559087701142e-06 -1.9073413568548858e-06 0 0 -0 1.0 1.9073559087701142e-06 -1.9073413568548858e-06 0 0 -95 -1.0 -3.8147263694554567e-06 -0.0 0 0 -74 -1.0 -3.8147263694554567e-06 -0.0 0 0 -54 -1.0 -3.8147263694554567e-06 -0.0 0 0 -73 1.0 1.9073631847277284e-06 0.0 0 0 -93 1.0 1.9073631847277284e-06 0.0 0 0 -57 1.0 1.9073631847277284e-06 0.0 0 0 -55 -2.384185791015625e-07 1.0 8.4771050978815765e-07 0 0 -98 -2.384185791015625e-07 1.0 8.4771050978815765e-07 0 0 -99 -2.384185791015625e-07 1.0 8.4771050978815765e-07 0 0 -97 -2.384185791015625e-07 1.0 8.4771050978815765e-07 0 0 -98 -2.384185791015625e-07 1.0 8.4771050978815765e-07 0 0 -97 -2.384185791015625e-07 1.0 8.4771050978815765e-07 0 0 -96 0.0 0.0 1.0 0 0 -99 0.0 0.0 1.0 0 0 -0 0.0 0.0 1.0 0 0 -7 0.0 0.0 1.0 0 0 -99 0.0 0.0 1.0 0 0 -7 0.0 0.0 1.0 0 0 -97 0.0 -1.0 7.62939453125e-06 0 0 -14 0.0 -1.0 7.62939453125e-06 0 0 -6 0.0 -1.0 7.62939453125e-06 0 0 -5 -0.0 1.0 0.0 0 0 -59 -0.0 1.0 0.0 0 0 -76 -0.0 1.0 0.0 0 0 -77 -0.0 1.0 0.0 0 0 -59 -0.0 1.0 0.0 0 0 -77 -0.0 1.0 0.0 0 0 -60 1.0 -4.7683761295047589e-07 0.0 0 0 -59 1.0 -4.7683761295047589e-07 0.0 0 0 -40 1.0 -4.7683761295047589e-07 0.0 0 0 -13 1.0 -5.4495706081070239e-07 -5.4495495760420454e-07 0 0 -38 1.0 -5.4495706081070239e-07 -5.4495495760420454e-07 0 0 -40 1.0 -5.4495706081070239e-07 -5.4495495760420454e-07 0 0 -59 1.0 -4.7683761295047589e-07 0.0 0 0 -59 1.0 -4.7683761295047589e-07 0.0 0 0 -13 1.0 -4.7683761295047589e-07 0.0 0 0 -76 1.6858787432738609e-07 0.70710879564285278 0.70710480213165283 0 0 -38 1.6858787432738609e-07 0.70710879564285278 0.70710480213165283 0 0 -59 1.6858787432738609e-07 0.70710879564285278 0.70710480213165283 0 0 -60 1.6858787432738609e-07 0.70710879564285278 0.70710480213165283 0 0 -38 1.6858787432738609e-07 0.70710879564285278 0.70710480213165283 0 0 -60 1.6858787432738609e-07 0.70710879564285278 0.70710480213165283 0 0 -58 -1.0 -5.4495643553309492e-07 1.6954210195763153e-06 0 0 -11 -1.0 -5.4495643553309492e-07 1.6954210195763153e-06 0 0 -18 -1.0 -5.4495643553309492e-07 1.6954210195763153e-06 0 0 -34 -1.0 -5.4495643553309492e-07 1.6954210195763153e-06 0 0 -11 -1.0 -5.4495643553309492e-07 1.6954210195763153e-06 0 0 -34 -1.0 -5.4495643553309492e-07 1.6954210195763153e-06 0 0 -83 -5.4495643553309492e-07 -1.0 9.2393063685913823e-13 0 0 -83 -5.4495643553309492e-07 -1.0 9.2393063685913823e-13 0 0 -34 -5.4495643553309492e-07 -1.0 9.2393063685913823e-13 0 0 -58 -5.4495643553309492e-07 -1.0 9.2393063685913823e-13 0 0 -83 -5.4495643553309492e-07 -1.0 9.2393063685913823e-13 0 0 -58 -5.4495643553309492e-07 -1.0 9.2393063685913823e-13 0 0 -82 0.0 0.0 1.0 0 0 -97 0.0 0.0 1.0 0 0 -7 0.0 0.0 1.0 0 0 -8 0.70710206031799316 0.70711147785186768 5.994224352434685e-07 0 0 -96 0.70710206031799316 0.70711147785186768 5.994224352434685e-07 0 0 -97 0.70710206031799316 0.70711147785186768 5.994224352434685e-07 0 0 -8 0.70710206031799316 0.70711147785186768 5.994224352434685e-07 0 0 -96 0.70710206031799316 0.70711147785186768 5.994224352434685e-07 0 0 -8 0.70710206031799316 0.70711147785186768 5.994224352434685e-07 0 0 -3 -0.1737852543592453 0.0 -0.9847835898399353 0 0 -24 -0.1737852543592453 0.0 -0.9847835898399353 0 0 -25 -0.1737852543592453 0.0 -0.9847835898399353 0 0 -83 1.3811222387971611e-08 -0.17378538846969604 -0.9847835898399353 0 0 -24 1.3811222387971611e-08 -0.17378538846969604 -0.9847835898399353 0 0 -83 1.3811222387971611e-08 -0.17378538846969604 -0.9847835898399353 0 0 +82 0.0 -1.0 0.0 0 0 +79 0.0 -1.0 0.0 0 0 +83 0.0 -1.0 0.0 0 0 +84 0.0 -1.0 0.0 0 0 +96 0.0 -1.0 0.0 0 0 +97 0.0 -1.0 0.0 0 0 +84 0.0 -1.0 0.0 0 0 +97 0.0 -1.0 0.0 0 0 +85 0.0 0.17378534376621246 -0.9847835898399353 0 0 +98 0.0 0.17378534376621246 -0.9847835898399353 0 0 +90 0.0 0.17378534376621246 -0.9847835898399353 0 0 +91 0.0 0.17378534376621246 -0.9847835898399353 0 0 +98 0.0 0.17378534376621246 -0.9847835898399353 0 0 +91 0.0 0.17378534376621246 -0.9847835898399353 0 0 +28 0.0 0.17378534376621246 -0.9847835898399353 0 0 +92 0.0 0.17378534376621246 -0.9847835898399353 0 0 +89 0.0 0.17378534376621246 -0.9847835898399353 0 0 +90 0.0 0.17378534376621246 -0.9847835898399353 0 0 +92 0.0 0.17378534376621246 -0.9847835898399353 0 0 +90 0.0 0.17378534376621246 -0.9847835898399353 0 0 +98 0.0 -0.17378532886505127 -0.98478353023529053 0 0 +93 0.0 -0.17378532886505127 -0.98478353023529053 0 0 +92 0.0 -0.17378532886505127 -0.98478353023529053 0 0 +87 0.0 -0.17378532886505127 -0.98478353023529053 0 0 +93 0.0 -0.17378532886505127 -0.98478353023529053 0 0 +87 0.0 -0.17378532886505127 -0.98478353023529053 0 0 +86 0.0 0.17378534376621246 -0.9847835898399353 0 0 +93 0.0 0.17378534376621246 -0.9847835898399353 0 0 88 0.0 0.17378534376621246 -0.9847835898399353 0 0 -24 0.0 0.17378534376621246 -0.9847835898399353 0 0 -87 0.0 0.17378534376621246 -0.9847835898399353 0 0 -96 0.17378541827201843 -8.2867323669688631e-08 -0.9847835898399353 0 0 -3 0.17378541827201843 -8.2867323669688631e-08 -0.9847835898399353 0 0 -27 0.17378541827201843 -8.2867323669688631e-08 -0.9847835898399353 0 0 -24 0.090166270732879639 0.09016764909029007 -0.9918365478515625 0 0 -3 0.090166270732879639 0.09016764909029007 -0.9918365478515625 0 0 -24 0.090166270732879639 0.09016764909029007 -0.9918365478515625 0 0 -96 24 -4.0 4.0000019073486328 0.5 -4.0000009536743164 2.0000019073486328 0.5 -4.0 4.0000019073486328 0.0625 -1.9999985694885254 4.0 0.0625 --5.9999980926513672 -7.152557373046875e-07 0.0625 -2.0000019073486328 1.9999995231628418 0.0625 --1.9999985694885254 -4.76837158203125e-07 0.0625 --3.9999980926513672 -4.76837158203125e-07 0.0625 --2.0000014305114746 4.0 0.0625 --1.430511474609375e-06 4.0 0.0625 --6.0 3.9999990463256836 0.0625 --4.0000009536743164 4.0 0.0625 --6.0 -4.0 0.0625 --4.0000009536743164 -4.0 0.0625 -4.0 2.0 0.0625 -4.0 4.76837158203125e-07 0.0625 -4.0000009536743164 -3.9999990463256836 0.0625 -0.0 -4.0000019073486328 0.0625 -0.0 -1.9073486328125e-06 0.0625 -4.0 -1.9999990463256836 0.0625 -0.0 -2.0000019073486328 0.0625 --4.0000019073486328 -5.9999980926513672 0.0625 -4.0000019073486328 -5.9999980926513672 0.0625 -0.0 -6.0000019073486328 0.0625 -26 +89 0.0 0.17378534376621246 -0.9847835898399353 0 0 +93 0.0 0.17378534376621246 -0.9847835898399353 0 0 +89 0.0 0.17378534376621246 -0.9847835898399353 0 0 +92 -0.0 1.0 0.0 0 0 +61 -0.0 1.0 0.0 0 0 +90 -0.0 1.0 0.0 0 0 +66 0.0 0.0 0.0 0 0 +61 0.0 0.0 0.0 0 0 +66 0.0 0.0 0.0 0 0 +60 -0.0 -1.0 0.0 0 0 +58 -0.0 -1.0 0.0 0 0 +82 -0.0 -1.0 0.0 0 0 +76 0.0 0.0 0.0 0 0 +58 0.0 0.0 0.0 0 0 +76 0.0 0.0 0.0 0 0 +67 -1.0 -0.0 -0.0 0 0 +96 -1.0 -0.0 -0.0 0 0 +94 -1.0 -0.0 -0.0 0 0 +95 1.0 0.0 0.0 0 0 +103 1.0 0.0 0.0 0 0 +4 1.0 0.0 0.0 0 0 +99 -1.0 -0.0 -0.0 0 0 +78 -1.0 -0.0 -0.0 0 0 +58 -1.0 -0.0 -0.0 0 0 +77 1.0 -0.0 0.0 0 0 +97 1.0 -0.0 0.0 0 0 +61 1.0 -0.0 0.0 0 0 +59 0.0 1.0 0.0 0 0 +102 0.0 1.0 0.0 0 0 +103 0.0 1.0 0.0 0 0 +101 0.0 1.0 0.0 0 0 +102 0.0 1.0 0.0 0 0 +101 0.0 1.0 0.0 0 0 +100 0.0 0.0 1.0 0 0 +103 0.0 0.0 1.0 0 0 +4 0.0 0.0 1.0 0 0 +11 0.0 0.0 1.0 0 0 +103 0.0 0.0 1.0 0 0 +11 0.0 0.0 1.0 0 0 +101 0.0 -1.0 -0.0 0 0 +18 0.0 -1.0 -0.0 0 0 +10 0.0 -1.0 -0.0 0 0 +9 -0.0 1.0 0.0 0 0 +63 -0.0 1.0 0.0 0 0 +80 -0.0 1.0 0.0 0 0 +81 -0.0 1.0 0.0 0 0 +63 -0.0 1.0 0.0 0 0 +81 -0.0 1.0 0.0 0 0 +64 1.0 -0.0 0.0 0 0 +63 1.0 -0.0 0.0 0 0 +44 1.0 -0.0 0.0 0 0 +17 1.0 0.0 -0.0 0 0 +42 1.0 0.0 -0.0 0 0 +44 1.0 0.0 -0.0 0 0 +63 1.0 0.0 -0.0 0 0 +63 1.0 0.0 -0.0 0 0 +17 1.0 0.0 -0.0 0 0 +80 0.0 0.70710676908493042 0.70710676908493042 0 0 +42 0.0 0.70710676908493042 0.70710676908493042 0 0 +63 0.0 0.70710676908493042 0.70710676908493042 0 0 +64 0.0 0.70710676908493042 0.70710676908493042 0 0 +42 0.0 0.70710676908493042 0.70710676908493042 0 0 +64 0.0 0.70710676908493042 0.70710676908493042 0 0 +62 -1.0 -0.0 0.0 0 0 +15 -1.0 -0.0 0.0 0 0 +22 -1.0 -0.0 0.0 0 0 +38 -1.0 -0.0 0.0 0 0 +15 -1.0 -0.0 0.0 0 0 +38 -1.0 -0.0 0.0 0 0 +87 0.0 -1.0 0.0 0 0 +87 0.0 -1.0 0.0 0 0 +38 0.0 -1.0 0.0 0 0 +62 0.0 -1.0 0.0 0 0 +87 0.0 -1.0 0.0 0 0 +62 0.0 -1.0 0.0 0 0 +86 0.0 -0.0 1.0 0 0 +101 0.0 -0.0 1.0 0 0 +11 0.0 -0.0 1.0 0 0 +12 0.70710676908493042 0.70710676908493042 0.0 0 0 +100 0.70710676908493042 0.70710676908493042 0.0 0 0 +101 0.70710676908493042 0.70710676908493042 0.0 0 0 +12 0.70710676908493042 0.70710676908493042 0.0 0 0 +100 0.70710676908493042 0.70710676908493042 0.0 0 0 +12 0.70710676908493042 0.70710676908493042 0.0 0 0 +7 -0.17378534376621246 0.0 -0.9847835898399353 0 0 +28 -0.17378534376621246 0.0 -0.9847835898399353 0 0 +29 -0.17378534376621246 0.0 -0.9847835898399353 0 0 +87 0.0 -0.17378534376621246 -0.9847835898399353 0 0 +28 0.0 -0.17378534376621246 -0.9847835898399353 0 0 +87 0.0 -0.17378534376621246 -0.9847835898399353 0 0 +92 0.0 0.17378534376621246 -0.9847835898399353 0 0 +28 0.0 0.17378534376621246 -0.9847835898399353 0 0 +91 0.0 0.17378534376621246 -0.9847835898399353 0 0 +100 0.17378534376621246 0.0 -0.9847835898399353 0 0 +7 0.17378534376621246 0.0 -0.9847835898399353 0 0 +31 0.17378534376621246 0.0 -0.9847835898399353 0 0 +28 0.090166963636875153 0.090166963636875153 -0.9918365478515625 0 0 +7 0.090166963636875153 0.090166963636875153 -0.9918365478515625 0 0 +28 0.090166963636875153 0.090166963636875153 -0.9918365478515625 0 0 +100 22 +4.0 4.0000019073486328 0.0 +1.9999985694885254 4.0 0.0 +-5.9999980926513672 -7.152557373046875e-07 0.0 +2.0000019073486328 1.9999995231628418 0.0 +-1.9999985694885254 -4.76837158203125e-07 0.0 +-3.9999980926513672 -4.76837158203125e-07 0.0 +-2.0000014305114746 4.0 0.0 +-1.430511474609375e-06 4.0 0.0 +-6.0 3.9999990463256836 0.0 +-4.0000009536743164 4.0 0.0 +-6.0 -4.0 0.0 +-4.0000009536743164 -4.0 0.0 +4.0 2.0 0.0 +4.0 4.76837158203125e-07 0.0 +4.0000009536743164 -3.9999990463256836 0.0 +0.0 -4.0000019073486328 0.0 +0.0 -1.9073486328125e-06 0.0 +4.0 -1.9999990463256836 0.0 +0.0 -2.0000019073486328 0.0 +-4.0000019073486328 -5.9999980926513672 0.0 +4.0000019073486328 -5.9999980926513672 0.0 +0.0 -6.0000019073486328 0.0 +24 0.0 0.0 1.0 0 0 -18 0.0 0.0 1.0 0 0 -7 0.0 0.0 1.0 0 0 -13 0.0 0.0 1.0 0 0 -18 0.0 0.0 1.0 0 0 -13 0.0 0.0 1.0 0 0 -17 0.0 0.0 1.0 0 0 -3 0.0 0.0 1.0 0 0 -5 -0.44718772172927856 0.0 0.89440596103668213 0 0 -14 0.0 0.0 1.0 0 0 -3 -0.44718772172927856 0.0 0.89440596103668213 0 0 -14 -0.70708334445953369 0.0 0.70708334445953369 0 0 -2 -0.44718772172927856 0.0 0.89440596103668213 0 0 -14 0.0 0.0 1.0 0 0 +16 0.0 0.0 1.0 0 0 5 0.0 0.0 1.0 0 0 -18 -0.44718772172927856 0.0 0.89440596103668213 0 0 -14 0.0 0.0 1.0 0 0 -18 0.0 0.0 1.0 0 0 -15 -1.0 0.0 0.0 0 0 -0 -0.70708334445953369 0.0 0.70708334445953369 0 0 -2 -0.44718772172927856 0.0 0.89440596103668213 0 0 -14 -1.0 0.0 0.0 0 0 -0 -0.44718772172927856 0.0 0.89440596103668213 0 0 -14 -1.0 0.0 0.0 0 0 -1 0.0 0.0 1.0 0 0 11 0.0 0.0 1.0 0 0 -10 0.0 0.0 1.0 0 0 -4 0.0 0.0 1.0 0 0 +16 0.0 0.0 1.0 0 0 11 0.0 0.0 1.0 0 0 -4 0.0 0.0 1.0 0 0 -7 0.0 0.0 1.0 0 0 +15 0.0 0.0 1.0 0 0 +12 0.0 0.0 1.0 0 0 +0 0.0 0.0 1.0 0 0 +1 0.0 0.0 1.0 0 0 +12 0.0 0.0 1.0 0 0 +1 0.0 0.0 1.0 0 0 +3 0.0 0.0 1.0 0 0 +12 0.0 0.0 1.0 0 0 +3 0.0 0.0 1.0 0 0 +16 0.0 0.0 1.0 0 0 +12 0.0 0.0 1.0 0 0 +16 0.0 0.0 1.0 0 0 13 0.0 0.0 1.0 0 0 -7 0.0 0.0 1.0 0 0 -4 0.0 0.0 1.0 0 0 -13 0.0 0.0 1.0 0 0 -4 0.0 0.0 1.0 0 0 -12 0.0 0.0 1.0 0 0 +9 0.0 0.0 1.0 0 0 8 0.0 0.0 1.0 0 0 +2 0.0 0.0 1.0 0 0 +9 0.0 0.0 1.0 0 0 +2 0.0 0.0 1.0 0 0 +5 0.0 0.0 1.0 0 0 11 0.0 0.0 1.0 0 0 -7 0.0 0.0 1.0 0 0 -8 0.0 0.0 1.0 0 0 -7 0.0 0.0 1.0 0 0 +5 0.0 0.0 1.0 0 0 +2 0.0 0.0 1.0 0 0 +11 0.0 0.0 1.0 0 0 +2 0.0 0.0 1.0 0 0 +10 0.0 0.0 1.0 0 0 6 0.0 0.0 1.0 0 0 9 0.0 0.0 1.0 0 0 -8 0.0 0.0 1.0 0 0 +5 0.0 0.0 1.0 0 0 6 0.0 0.0 1.0 0 0 -9 0.0 0.0 1.0 0 0 +5 0.0 0.0 1.0 0 0 +4 0.0 0.0 1.0 0 0 +7 0.0 0.0 1.0 0 0 6 0.0 0.0 1.0 0 0 -18 0.0 0.0 1.0 0 0 +4 0.0 0.0 1.0 0 0 +7 0.0 0.0 1.0 0 0 +4 0.0 0.0 1.0 0 0 +16 0.0 0.0 1.0 0 0 +1 0.0 0.0 1.0 0 0 +7 0.0 0.0 1.0 0 0 +16 0.0 0.0 1.0 0 0 +1 0.0 0.0 1.0 0 0 +16 0.0 0.0 1.0 0 0 3 0.0 0.0 1.0 0 0 -9 0.0 0.0 1.0 0 0 +19 0.0 0.0 1.0 0 0 +21 0.0 0.0 1.0 0 0 +15 0.0 0.0 1.0 0 0 +19 0.0 0.0 1.0 0 0 +15 0.0 0.0 1.0 0 0 +11 0.0 0.0 1.0 0 0 +20 0.0 0.0 1.0 0 0 +14 0.0 0.0 1.0 0 0 +15 0.0 0.0 1.0 0 0 +20 0.0 0.0 1.0 0 0 +15 0.0 0.0 1.0 0 0 +21 0.0 0.0 1.0 0 0 +14 0.0 0.0 1.0 0 0 +17 0.0 0.0 1.0 0 0 18 0.0 0.0 1.0 0 0 -3 0.0 0.0 1.0 0 0 +14 0.0 0.0 1.0 0 0 18 0.0 0.0 1.0 0 0 -5 0.0 0.0 1.0 0 0 -21 0.0 0.0 1.0 0 0 -23 0.0 0.0 1.0 0 0 +15 0.0 0.0 1.0 0 0 17 0.0 0.0 1.0 0 0 -21 0.0 0.0 1.0 0 0 -17 0.0 0.0 1.0 0 0 13 0.0 0.0 1.0 0 0 -22 0.0 0.0 1.0 0 0 16 0.0 0.0 1.0 0 0 17 0.0 0.0 1.0 0 0 -22 0.0 0.0 1.0 0 0 -17 0.0 0.0 1.0 0 0 -23 0.0 0.0 1.0 0 0 16 0.0 0.0 1.0 0 0 -19 0.0 0.0 1.0 0 0 -20 0.0 0.0 1.0 0 0 -16 0.0 0.0 1.0 0 0 -20 0.0 0.0 1.0 0 0 -17 0.0 0.0 1.0 0 0 -19 0.0 0.0 1.0 0 0 -15 0.0 0.0 1.0 0 0 -18 0.0 0.0 1.0 0 0 -19 0.0 0.0 1.0 0 0 -18 0.0 0.0 1.0 0 0 -20 1 8 right_90 2 0 0.0 -6.0 0.0 0.0 0.0 1.0 1.9470718370939721e-07 0 -6.0 0.0 0.0 0.0 0.0 0.7071068286895752 0.70710676908493042 1 24 data/theme1/straight.png 231 -0.0 4.0 -0.8125 -0.0 -4.0 -0.8125 --4.25 -4.0 -0.0625 -4.25 -4.0 -0.0625 --4.25 4.0 -0.0625 -4.25 4.0 -0.0625 -0.0 4.0 0.0625 -0.0 -4.0 0.0625 --4.0 -4.0 0.0625 -4.0 -4.0 0.0625 --4.0 4.0 0.0625 -4.0 4.0 0.0625 --4.0 4.0 0.25 -4.0 4.0 0.25 --4.0 -4.0 0.25 -4.0 -4.0 0.25 --4.25 4.0 0.5 -4.25 4.0 0.5 --4.25 -4.0 0.5 -4.25 -4.0 0.5 -0.0 0.0 -0.8125 --4.25 0.0 -0.0625 -4.25 0.0 -0.0625 -0.0 0.0 0.0625 --4.0 0.0 0.0625 -4.0 0.0 0.0625 --4.0 0.0 0.25 -4.0 0.0 0.25 --4.25 0.0 0.5 -4.25 0.0 0.5 -0.0 2.0 -0.8125 -0.0 -2.0 -0.8125 --4.25 -2.0 -0.0625 -4.25 -2.0 -0.0625 --4.25 2.0 -0.0625 -4.25 2.0 -0.0625 -0.0 2.0 0.0625 -0.0 -2.0 0.0625 --4.0 -2.0 0.0625 -4.0 -2.0 0.0625 --4.0 2.0 0.0625 -4.0 2.0 0.0625 --4.0 2.0 0.25 -4.0 2.0 0.25 --4.0 -2.0 0.25 -4.0 -2.0 0.25 --4.25 2.0 0.5 -4.25 2.0 0.5 --4.25 -2.0 0.5 -4.25 -2.0 0.5 --4.0 2.0 0.5 -4.0 2.0 0.5 --4.0 0.0 0.5 -4.0 0.0 0.5 --4.0 -2.0 0.5 -4.0 -2.0 0.5 --4.0 -4.0 0.5 -4.0 -4.0 0.5 --4.25 0.65625 0.5 -4.25 0.65625 0.5 --4.25 1.34375 0.5 -4.25 1.34375 0.5 --4.0 1.34375 0.5 -4.0 1.34375 0.5 --4.0 0.65625 0.5 -4.0 0.65625 0.5 --4.0 0.65625 1.5 -4.0 0.65625 1.5 --4.25 0.65625 1.75 -4.25 0.65625 1.75 --4.25 1.34375 1.75 -4.25 1.34375 1.75 --4.0 1.34375 1.5 -4.0 1.34375 1.5 --3.5 0.65625 1.75 -3.5 0.65625 1.75 --3.5 1.34375 1.75 -3.5 1.34375 1.75 --3.75 0.65625 1.5 -3.75 0.65625 1.5 --3.75 1.34375 1.5 -3.75 1.34375 1.5 --4.0 0.0 0.25 --4.0 0.0 0.25 --4.0 -2.0 0.25 --4.0 -2.0 0.25 --4.25 -2.0 0.5 --4.25 -2.0 0.5 --4.25 -2.0 0.5 --4.0 -2.0 0.5 --4.0 -2.0 0.5 --4.0 -4.0 0.5 --4.25 -4.0 0.5 --4.25 -4.0 0.5 --4.0 -4.0 0.5 --4.25 0.0 0.5 -4.0 0.0 0.25 -4.0 0.0 0.25 -4.0 -2.0 0.25 -4.0 -2.0 0.25 -4.25 -2.0 0.5 -4.25 -2.0 0.5 -4.25 -2.0 0.5 -4.0 -2.0 0.5 -4.0 -2.0 0.5 -4.0 -4.0 0.5 -4.25 -4.0 0.5 -4.25 -4.0 0.5 -4.0 -4.0 0.5 -4.25 0.0 0.5 -0.0 4.0 -0.8125 -0.0 2.0 -0.8125 -0.0 0.0 -0.8125 -0.0 -2.0 -0.8125 -0.0 -4.0 -0.8125 --4.25 -4.0 -0.0625 --4.25 -2.0 -0.0625 --4.25 0.0 -0.0625 --4.25 2.0 -0.0625 --4.25 4.0 -0.0625 -4.25 -4.0 -0.0625 -4.25 -2.0 -0.0625 -4.25 0.0 -0.0625 -4.25 2.0 -0.0625 -4.25 4.0 -0.0625 --4.0 -4.0 0.0625 --4.0 -2.0 0.0625 -4.0 -4.0 0.0625 -4.0 -2.0 0.0625 --4.0 0.0 0.0625 --4.0 0.0 0.0625 --4.0 2.0 0.0625 --4.0 -2.0 0.0625 -4.0 0.0 0.0625 -4.0 0.0 0.0625 -4.0 2.0 0.0625 -4.0 -2.0 0.0625 --4.0 4.0 0.0625 --4.0 2.0 0.0625 -4.0 4.0 0.0625 -4.0 2.0 0.0625 --4.0 4.0 0.25 --4.0 2.0 0.25 --4.0 2.0 0.25 --4.25 2.0 0.5 --4.25 2.0 0.5 --4.25 2.0 0.5 --4.0 2.0 0.5 --4.0 2.0 0.5 --4.0 0.65625 0.5 --4.0 0.65625 0.5 --4.0 0.65625 0.5 --4.0 0.65625 0.5 --4.0 0.0 0.5 --4.25 0.65625 0.5 --4.25 0.65625 0.5 --4.25 1.34375 0.5 --4.25 1.34375 0.5 --4.25 1.34375 0.5 --4.0 1.34375 0.5 --4.0 1.34375 0.5 --4.0 1.34375 1.5 --4.0 1.34375 1.5 --3.75 1.34375 1.5 --3.75 1.34375 1.5 --3.5 1.34375 1.75 --3.5 1.34375 1.75 --4.25 1.34375 1.75 --3.5 0.65625 1.75 --3.5 0.65625 1.75 --4.25 0.65625 1.75 --3.75 0.65625 1.5 --4.0 0.65625 1.5 --4.0 0.65625 1.5 --3.75 0.65625 1.5 --4.25 1.34375 1.75 --4.25 0.65625 1.75 --4.0 1.34375 0.5 --4.25 1.34375 0.5 --4.25 0.0 0.5 --4.25 4.0 0.5 -4.0 4.0 0.25 -4.0 2.0 0.25 -4.0 2.0 0.25 -4.25 2.0 0.5 -4.25 2.0 0.5 -4.25 2.0 0.5 -4.0 2.0 0.5 -4.0 2.0 0.5 -4.0 0.65625 0.5 -4.0 0.65625 0.5 -4.0 0.65625 0.5 -4.0 0.65625 0.5 -4.0 0.0 0.5 -4.25 0.65625 0.5 -4.25 0.65625 0.5 -4.25 1.34375 0.5 -4.25 1.34375 0.5 -4.25 1.34375 0.5 -4.0 1.34375 0.5 -4.0 1.34375 0.5 -4.0 1.34375 1.5 -4.0 1.34375 1.5 -3.75 1.34375 1.5 -3.75 1.34375 1.5 -3.5 1.34375 1.75 -3.5 1.34375 1.75 -4.25 1.34375 1.75 -3.5 0.65625 1.75 -3.5 0.65625 1.75 -4.25 0.65625 1.75 -3.75 0.65625 1.5 -4.0 0.65625 1.5 -4.0 0.65625 1.5 -3.75 0.65625 1.5 -4.25 1.34375 1.75 -4.25 0.65625 1.75 -4.0 1.34375 0.5 -4.25 1.34375 0.5 -4.25 0.0 0.5 -4.25 4.0 0.5 --4.25 0.0 0.5 --4.25 0.0 0.5 --4.25 0.65625 0.5 --4.0 0.0 0.5 -4.25 0.0 0.5 -4.25 0.0 0.5 -4.25 0.65625 0.5 -4.0 0.0 0.5 --4.0 2.0 0.5 -4.0 2.0 0.5 +18 1 8 right_90 2 0 0.0 -6.0 0.0 0.0 0.0 1.0 1.9470718370939721e-07 0 -6.0 0.0 0.0 0.0 0.0 0.7071068286895752 0.70710676908493042 1 24 data/theme1/straight.png 231 +0.0 4.0 -0.87449997663497925 +0.0 -4.0 -0.87449997663497925 +-4.25 -4.0 -0.12449999898672104 +4.25 -4.0 -0.12449999898672104 +-4.25 4.0 -0.12449999898672104 +4.25 4.0 -0.12449999898672104 +0.0 4.0 0.00050000101327896118 +0.0 -4.0 0.00050000101327896118 +-4.0 -4.0 0.00050000101327896118 +4.0 -4.0 0.00050000101327896118 +-4.0 4.0 0.00050000101327896118 +4.0 4.0 0.00050000101327896118 +-4.0 4.0 0.18799999356269836 +4.0 4.0 0.18799999356269836 +-4.0 -4.0 0.18799999356269836 +4.0 -4.0 0.18799999356269836 +-4.25 4.0 0.43799999356269836 +4.25 4.0 0.43799999356269836 +-4.25 -4.0 0.43799999356269836 +4.25 -4.0 0.43799999356269836 +0.0 0.0 -0.87449997663497925 +-4.25 0.0 -0.12449999898672104 +4.25 0.0 -0.12449999898672104 +0.0 0.0 0.0 +-4.0 0.0 0.00050000101327896118 +4.0 0.0 0.0 +-4.0 0.0 0.18799999356269836 +4.0 0.0 0.18799999356269836 +-4.25 0.0 0.43799999356269836 +4.25 0.0 0.43799999356269836 +0.0 2.0 -0.87449997663497925 +0.0 -2.0 -0.87449997663497925 +-4.25 -2.0 -0.12449999898672104 +4.25 -2.0 -0.12449999898672104 +-4.25 2.0 -0.12449999898672104 +4.25 2.0 -0.12449999898672104 +0.0 2.0 0.0 +0.0 -2.0 0.00050000101327896118 +-4.0 -2.0 0.00050000101327896118 +4.0 -2.0 0.00050000101327896118 +-4.0 2.0 0.00050000101327896118 +4.0 2.0 0.0 +-4.0 2.0 0.18799999356269836 +4.0 2.0 0.18799999356269836 +-4.0 -2.0 0.18799999356269836 +4.0 -2.0 0.18799999356269836 +-4.25 2.0 0.43799999356269836 +4.25 2.0 0.43799999356269836 +-4.25 -2.0 0.43799999356269836 +4.25 -2.0 0.43799999356269836 +-4.0 2.0 0.43799999356269836 +4.0 2.0 0.43799999356269836 +-4.0 0.0 0.43799999356269836 +4.0 0.0 0.43799999356269836 +-4.0 -2.0 0.43799999356269836 +4.0 -2.0 0.43799999356269836 +-4.0 -4.0 0.43799999356269836 +4.0 -4.0 0.43799999356269836 +-4.25 0.65625 0.43799999356269836 +4.25 0.65625 0.43799999356269836 +-4.25 1.34375 0.43799999356269836 +4.25 1.34375 0.43799999356269836 +-4.0 1.34375 0.43799999356269836 +4.0 1.34375 0.43799999356269836 +-4.0 0.65625 0.43799999356269836 +4.0 0.65625 0.43799999356269836 +-4.0 0.65625 1.437999963760376 +4.0 0.65625 1.437999963760376 +-4.25 0.65625 1.687999963760376 +4.25 0.65625 1.687999963760376 +-4.25 1.34375 1.687999963760376 +4.25 1.34375 1.687999963760376 +-4.0 1.34375 1.437999963760376 +4.0 1.34375 1.437999963760376 +-3.5 0.65625 1.687999963760376 +3.5 0.65625 1.687999963760376 +-3.5 1.34375 1.687999963760376 +3.5 1.34375 1.687999963760376 +-3.75 0.65625 1.437999963760376 +3.75 0.65625 1.437999963760376 +-3.75 1.34375 1.437999963760376 +3.75 1.34375 1.437999963760376 +-4.0 0.0 0.18799999356269836 +-4.0 0.0 0.18799999356269836 +-4.0 -2.0 0.18799999356269836 +-4.0 -2.0 0.18799999356269836 +-4.25 -2.0 0.43799999356269836 +-4.25 -2.0 0.43799999356269836 +-4.25 -2.0 0.43799999356269836 +-4.0 -2.0 0.43799999356269836 +-4.0 -2.0 0.437999993... [truncated message content] |
From: <jl...@us...> - 2010-06-21 00:25:03
|
Revision: 291 http://racer.svn.sourceforge.net/racer/?rev=291&view=rev Author: jlegg Date: 2010-06-21 00:24:57 +0000 (Mon, 21 Jun 2010) Log Message: ----------- Put StartMarkers on the included tracks. Modified Paths: -------------- trunk/racer/data/tracks/0 trunk/racer/data/tracks/1 trunk/racer/data/tracks/2 Modified: trunk/racer/data/tracks/0 =================================================================== --- trunk/racer/data/tracks/0 2010-06-21 00:24:09 UTC (rev 290) +++ trunk/racer/data/tracks/0 2010-06-21 00:24:57 UTC (rev 291) @@ -1,2 +1,2 @@ data/theme1/theme1 -3 2 14 1 242.349 348.544 0 -0.131667 0.991294 0 0 0 0.065977 0.997821 1 5 start 1 240.506 369.52 0.288168 0.0102455 0.997002 -0.0766907 -0.0383751 -0.000196386 -0.00511907 0.99925 1 8 straight 1 282.231 402.598 5.09369 0.294327 -0.922977 -0.247962 0.0194735 0.129395 -0.980362 0.147541 1 8 straight 1 246.8 394.624 0 0.663129 -0.748505 0 0 0 -0.935015 0.354609 1 7 left_90 1 236.31 405.867 0 -0.678711 -0.734405 0 0 0 0.931238 0.364414 1 8 right_90 1 286.622 384.716 0 0.229111 -0.933999 -0.274143 0.0164062 0.141315 -0.983224 0.114152 1 7 cap_end 1 287.284 380.905 -5.61317 0.149938 -0.950633 -0.271691 0.0104309 0.138348 -0.987526 0.0744549 1 9 cap_start 1 300.977 340.48 0.615364 0.323689 -0.946164 0 0 0 -0.986449 0.164068 1 8 straight 1 288.364 301.523 0 -0.99813 -0.0611304 0 0 0 0.728399 0.685153 1 8 straight 1 295.685 311.549 -2.43166 -0.997054 -0.0767041 0 0 0 0.733725 0.679447 1 8 straight 1 285.832 305.879 40.7492 0.999877 -0.00155222 -0.0156258 -0.70765 -0.706509 0.0027425 0.00830253 1 8 straight 1 254.972 304.206 19.835 -0.0312486 0.173293 0.984375 0.360878 0.619929 0.532091 0.449816 1 8 straight 1 318.273 305.507 16.6235 0.0227205 2.5034e-06 -0.999742 -0.506071 -0.505225 0.493853 0.494721 1 8 straight 1 247.399 436.615 0 0.771358 0.636401 0 0 0 -0.426379 0.904544 1 8 straight 14 0 1 2 1 8 straight 1 9.14893 0 1 5.68978 1 1 0 0 1 3 2 1 8 straight 1 6.51515 0 1 4.17903 1 1 0 0 3 4 2 1 8 straight 1 0.421524 0 1 0.183244 1 1 0 0 2 5 2 1 8 straight 1 4.45324 0 1 4.45324 0 1 0 0 6 7 2 1 8 straight 1 13.1022 0 1 13.1022 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 7 8 2 1 8 straight 1 12.4942 0 1 12.4942 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 9 0 2 1 8 straight 1 14.972 0 1 28.4819 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 1 11 10 2 1 8 straight 1 13.795 0 1 7.61324 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 8 11 2 1 8 straight 1 16.2304 0 1 7.52357 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 10 12 2 1 8 straight 1 14.4045 0 1 14.5983 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 12 9 2 1 8 straight 1 13.6558 0 1 13.4174 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 5 6 2 1 4 jump 1 3.16571 1 1 1.72685 1 1 0 0 4 13 2 1 8 straight 1 9.45196 0 1 9.45196 1 1 0 0 13 2 2 1 8 straight 1 25.3854 0 1 20.4407 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 1 1 0.003 0.521141 0.277836 0.15848 1.5259e-05 1 0.6 0.589364 0.543603 1 2 1 0 0.5 1 0 0.627451 0.525246 0.471031 1 1 0 0 -1 0 1 0 0 1 \ No newline at end of file +3 2 14 1 242.349 348.544 0 -0.131667 0.991294 0 0 0 0.065977 0.997821 1 5 start 1 240.506 369.52 0.288168 0.0102455 0.997002 -0.0766907 -0.0383751 -0.000196386 -0.00511907 0.99925 1 8 straight 1 282.231 402.598 5.09369 0.294327 -0.922977 -0.247962 0.0194735 0.129395 -0.980362 0.147541 1 8 straight 1 246.8 394.624 0 0.663129 -0.748505 0 0 0 -0.935015 0.354609 1 7 left_90 1 236.31 405.867 0 -0.678711 -0.734405 0 0 0 0.931238 0.364414 1 8 right_90 1 286.622 384.716 0 0.229111 -0.933999 -0.274143 0.0164062 0.141315 -0.983224 0.114152 1 7 cap_end 1 287.284 380.905 -5.61317 0.149938 -0.950633 -0.271691 0.0104309 0.138348 -0.987526 0.0744549 1 9 cap_start 1 300.977 340.48 0.615364 0.323689 -0.946164 0 0 0 -0.986449 0.164068 1 8 straight 1 288.364 301.523 0 -0.99813 -0.0611304 0 0 0 0.728399 0.685153 1 8 straight 1 295.685 311.549 -2.43166 -0.997054 -0.0767041 0 0 0 0.733725 0.679447 1 8 straight 1 285.832 305.879 40.7492 0.999877 -0.00155222 -0.0156258 -0.70765 -0.706509 0.0027425 0.00830253 1 8 straight 1 254.972 304.206 19.835 -0.0312486 0.173293 0.984375 0.360878 0.619929 0.532091 0.449816 1 8 straight 1 318.273 305.507 16.6235 0.0227205 2.5034e-06 -0.999742 -0.506071 -0.505225 0.493853 0.494721 1 8 straight 1 247.399 436.615 0 0.771358 0.636401 0 0 0 -0.426379 0.904544 1 8 straight 14 0 1 2 1 8 straight 1 9.14893 0 1 5.68978 1 1 0 0 1 3 2 1 8 straight 1 6.51515 0 1 4.17903 1 1 0 0 3 4 2 1 8 straight 1 0.421524 0 1 0.183244 1 1 0 0 2 5 2 1 8 straight 1 4.45324 0 1 4.45324 0 1 0 0 6 7 2 1 8 straight 1 13.1022 0 1 13.1022 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 7 8 2 1 8 straight 1 12.4942 0 1 12.4942 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 9 0 2 1 8 straight 1 14.972 0 1 28.4819 1 1 31 1 1 19 Track::TrackBooster 2 0.5 0 0 1 1 1 23 Track::StartingPosition 2 0.0625 -0.625 0 1 29 1 1 23 Track::StartingPosition 2 0.09375 0.625 0 1 28 1 1 23 Track::StartingPosition 2 0.125 -0.625 0 1 27 1 1 23 Track::StartingPosition 2 0.15625 0.625 0 1 26 1 1 23 Track::StartingPosition 2 0.1875 -0.625 0 1 25 1 1 23 Track::StartingPosition 2 0.21875 0.625 0 1 24 1 1 23 Track::StartingPosition 2 0.25 -0.625 0 1 23 1 1 23 Track::StartingPosition 2 0.28125 0.625 0 1 22 1 1 23 Track::StartingPosition 2 0.3125 -0.625 0 1 21 1 1 23 Track::StartingPosition 2 0.34375 0.625 0 1 20 1 1 23 Track::StartingPosition 2 0.375 -0.625 0 1 19 1 1 23 Track::StartingPosition 2 0.40625 0.625 0 1 18 1 1 23 Track::StartingPosition 2 0.4375 -0.625 0 1 17 1 1 23 Track::StartingPosition 2 0.46875 0.625 0 1 16 1 1 23 Track::StartingPosition 2 0.5 -0.625 0 1 15 1 1 23 Track::StartingPosition 2 0.53125 0.625 0 1 14 1 1 23 Track::StartingPosition 2 0.5625 -0.625 0 1 13 1 1 23 Track::StartingPosition 2 0.59375 0.625 0 1 12 1 1 23 Track::StartingPosition 2 0.625 -0.625 0 1 11 1 1 23 Track::StartingPosition 2 0.65625 0.625 0 1 10 1 1 23 Track::StartingPosition 2 0.6875 -0.625 0 1 9 1 1 23 Track::StartingPosition 2 0.71875 0.625 0 1 8 1 1 23 Track::StartingPosition 2 0.75 -0.625 0 1 7 1 1 23 Track::StartingPosition 2 0.78125 0.625 0 1 6 1 1 23 Track::StartingPosition 2 0.8125 -0.625 0 1 5 1 1 23 Track::StartingPosition 2 0.84375 0.625 0 1 4 1 1 23 Track::StartingPosition 2 0.875 -0.625 0 1 3 1 1 23 Track::StartingPosition 2 0.90625 0.625 0 1 2 1 1 23 Track::StartingPosition 2 0.9375 -0.625 0 1 1 1 1 23 Track::StartingPosition 2 0.96875 0.625 0 1 0 1 11 10 2 1 8 straight 1 13.795 0 1 7.61324 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 8 11 2 1 8 straight 1 16.2304 0 1 7.52357 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 10 12 2 1 8 straight 1 14.4045 0 1 14.5983 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 12 9 2 1 8 straight 1 13.6558 0 1 13.4174 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 5 6 2 1 4 jump 1 3.16571 1 1 1.72685 1 1 0 0 4 13 2 1 8 straight 1 9.45196 0 1 9.45196 1 1 0 0 13 2 2 1 8 straight 1 25.3854 0 1 20.4407 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 1 1 0.003 0.521141 0.277836 0.15848 1.5259e-05 1 0.6 0.589364 0.543603 1 2 1 0 0.5 1 0 0.627451 0.525246 0.471031 1 1 0 0 -1 0 1 0 0 1 \ No newline at end of file Modified: trunk/racer/data/tracks/1 =================================================================== --- trunk/racer/data/tracks/1 2010-06-21 00:24:09 UTC (rev 290) +++ trunk/racer/data/tracks/1 2010-06-21 00:24:57 UTC (rev 291) @@ -1,2 +1,2 @@ data/theme4/theme4 -3 2 34 1 -1.95822 7.12794 0 0.157095 0.987583 0 0 0 -0.0787925 0.996891 1 8 straight 1 31.7395 20.4761 0 0.999698 0.024587 0 0 0 -0.69836 0.715747 1 8 straight 1 52.2454 3.36814 0 0.635776 -0.735148 -0.235258 -0.178826 0.0584149 -0.914109 0.359185 1 9 quad-join 1 53.1766 -13.4447 0 -0.257835 -0.966189 0 0 0 0.991511 0.130021 1 4 quad 1 46.8401 -27.1291 0 -0.675568 -0.717415 0.170069 0.164233 0.0257082 0.911995 0.375009 1 10 quad-split 1 15.3982 -25.1239 0 -0.92494 0.380112 0 0 0 0.556726 0.830696 1 5 split 1 -1.25705 -26.3032 0 -0.987671 -0.156547 0 0 0 0.760443 0.649405 1 4 thin 1 -2.98956 -22.004 0 -0.943188 -0.33226 0 0 0 0.816168 0.577815 1 4 thin 1 -29.0549 -31.6291 0 -0.785491 -0.618873 0 0 0 0.899687 0.436536 1 4 join 1 -33.4625 -49.3728 0 -0.375326 -0.926893 0 0 0 0.981553 0.19119 1 7 left-90 1 13.9078 -51.1374 0 0.878711 0.477295 0.00755775 0.21752 0.35898 -0.462642 0.780885 1 8 straight 1 53.216 20.6275 2.96037 0.218119 0.899128 0.379464 0.213135 0.727123 0.0707777 0.648735 1 10 tube-entry 1 39.1799 7.08331 0 0.917421 -0.397918 8.9407e-08 0.496647 0.325938 -0.672533 0.441368 1 9 tube-exit 1 28.4216 -19.9022 0 -0.891098 0.406953 0.200831 -0.115522 0.353788 0.532145 0.760468 1 8 straight 1 21.6285 -9.10201 0 -0.511075 0.859536 0 0 0 0.265013 0.964245 1 8 straight 1 17.8216 -0.475689 -4.94982 0.0554699 0.99846 4.94765e-10 0.000216708 0.00780751 -0.0277448 0.999585 1 7 to-bare 1 23.6842 10.8688 -8.29988 0.939422 0.342762 0 0 0 -0.573253 0.819378 1 4 bare 1 43.5561 -2.37913 -8.37602 0.794566 -0.607178 0 0 0 -0.896431 0.443183 1 4 bare 1 69.7328 -6.66427 -10.2795 0.851171 -0.524889 0 0 0 -0.873181 0.487397 1 9 from-bare 1 77.3171 -47.2426 -5.95208 -0.643862 -0.765141 2.68221e-07 0.777909 -0.283754 0.526714 0.192127 1 8 straight 1 49.0595 -52.3804 -6.84699 -0.738141 0.674646 -2.23517e-07 -0.387924 0.880096 0.110417 0.250507 1 8 straight 1 27.746 24.946 -14.3669 -0.758847 0.650442 -0.0328077 -0.305969 0.637482 0.28489 0.647177 1 8 straight 1 9.60506 37.3137 0 -0.846088 0.533043 0 0 0 0.483196 0.875512 1 8 straight 1 -11.6368 44.1359 0 -0.990166 0.139897 0 0 0 0.655783 0.754949 1 8 straight 1 -28.2344 43.0505 0 -0.996639 -0.081916 0 0 0 0.735498 0.677526 1 8 straight 1 -39.4755 42.4303 0 -0.999666 -0.025844 0 0 0 0.716186 0.69791 1 7 end-cap 1 -42.6316 42.0427 -3.35836 -0.999568 -0.0293801 0 0 0 0.717419 0.696642 1 9 start-cap 1 -74.8045 42.6629 0 -0.99958 -0.0289841 0 0 0 0.717281 0.696784 1 7 left-90 1 -44.4147 -0.761831 0 1 0 0 0 0 0.707107 -0.707107 1 9 from-bare 1 -64.0285 4.89751 0 0.862244 -0.506493 0 0 0 -0.867898 0.496743 1 4 bare 1 -74.8045 22.4957 0 0.00675664 -0.999977 0 0 0 -0.999994 0.00337834 1 7 to-bare 1 -11.291 -5.07622 0 0.932266 0.361774 0 0 0 -0.564901 0.825159 1 5 start 1 38.8929 31.1956 13.1213 -0.944188 -0.326093 0.0466192 0.228218 -0.135014 0.781641 0.564557 1 4 tube 1 83.9228 -26.0188 -9.37725 -0.0671963 -0.966982 0.245828 0.499715 0.089985 0.856607 0.0917165 1 8 straight 38 4 5 2 1 8 straight 1 12.4203 4 1 12.4203 1 1 0 0 7 8 2 1 4 thin 1 10.914 1 1 10.914 0 1 0 0 6 8 2 1 4 thin 1 10.6596 1 1 10.6596 1 1 0 0 5 6 2 1 4 thin 1 6.04074 2 1 6.04074 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 8 9 2 1 8 straight 1 5.82388 2 1 5.82388 1 1 0 0 9 10 2 1 8 straight 1 17.4707 0 1 17.4707 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 10 4 2 1 8 straight 1 15.7184 1 1 15.7184 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 5 7 2 1 4 thin 1 7.25308 0 1 7.25308 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 12 2 2 1 8 straight 1 2.85085 0 1 2.73859 4 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 4 13 2 1 8 straight 1 5.41447 3 1 5.41447 0 1 0 0 13 14 2 1 8 straight 1 3.87168 1 1 3.87168 0 1 0 0 14 15 2 1 8 straight 1 3.83588 1 1 3.83588 0 1 0 0 16 15 2 1 4 bare 1 5.60161 1 1 2.45182 1 1 0 0 17 18 2 1 4 bare 1 9.09678 0 1 9.09678 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 27 26 2 1 8 straight 1 9.30823 1 1 9.30823 0 1 0 0 27 30 2 1 8 straight 1 6.76746 0 1 6.76746 0 1 0 0 29 30 2 1 4 bare 1 7.81683 1 1 7.81683 1 1 0 0 29 28 2 1 4 bare 1 7.68231 0 1 7.68231 1 1 0 0 11 32 2 1 4 tube 1 8.02723 0 1 8.02723 1 1 0 0 32 12 2 1 4 tube 1 10.3239 0 1 10.3239 1 1 0 0 1 2 2 1 8 straight 1 9.28834 1 1 7.66231 3 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 28 31 2 1 8 straight 1 12.9998 0 1 12.9998 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 1 0 1 2 1 8 straight 1 16.0782 1 1 16.3674 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 2 21 2 1 8 straight 1 12.8566 0 1 12.8566 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 2 11 2 1 8 straight 1 4.24427 1 1 4.24427 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 19 20 2 1 8 straight 1 10.1743 1 1 9.78491 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 20 4 2 1 8 straight 1 10.2903 1 1 11.0446 2 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 24 25 2 1 8 straight 1 4.10346 1 1 4.10346 0 1 0 0 23 24 2 1 8 straight 1 4.96524 1 1 4.62784 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 22 23 2 1 8 straight 1 7.15112 1 1 5.69815 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 21 22 2 1 8 straight 1 7.54109 1 1 7.02076 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 3 4 2 1 4 quad 1 5.63848 1 1 5.63848 0 1 0 0 2 3 2 1 4 quad 1 6.35648 2 1 6.35648 0 1 0 0 31 0 2 1 8 straight 1 5.40092 0 1 5.40092 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 16 17 2 1 4 bare 1 8.92245 0 1 8.92245 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 33 19 2 1 8 straight 1 5.31745 1 1 5.08188 0 1 0 0 18 33 2 1 8 straight 1 7.59989 0 1 8.70242 0 1 0 0 26 25 2 1 4 jump 1 0.897112 1 1 0.234087 1 1 0 0 1 1 0.004 0.348592 0.145022 0.265599 1.5259e-05 1 0.673198 0.619135 0.632456 1 2 1 -19.358 -58.494 33.224 0 1 0.837217 0.689921 1 1 0 -4 2.49252e-37 0 0.481376 0.246464 0.360494 1 \ No newline at end of file +3 2 34 1 -1.95822 7.12794 0 0.157095 0.987583 0 0 0 -0.0787925 0.996891 1 8 straight 1 31.7395 20.4761 0 0.999698 0.024587 0 0 0 -0.69836 0.715747 1 8 straight 1 52.2454 3.36814 0 0.635776 -0.735148 -0.235258 -0.178826 0.0584149 -0.914109 0.359185 1 9 quad-join 1 53.1766 -13.4447 0 -0.257835 -0.966189 0 0 0 0.991511 0.130021 1 4 quad 1 46.8401 -27.1291 0 -0.675568 -0.717415 0.170069 0.164233 0.0257082 0.911995 0.375009 1 10 quad-split 1 15.3982 -25.1239 0 -0.92494 0.380112 0 0 0 0.556726 0.830696 1 5 split 1 -1.25705 -26.3032 0 -0.987671 -0.156547 0 0 0 0.760443 0.649405 1 4 thin 1 -2.98956 -22.004 0 -0.943188 -0.33226 0 0 0 0.816168 0.577815 1 4 thin 1 -29.0549 -31.6291 0 -0.785491 -0.618873 0 0 0 0.899687 0.436536 1 4 join 1 -33.4625 -49.3728 0 -0.375326 -0.926893 0 0 0 0.981553 0.19119 1 7 left-90 1 13.9078 -51.1374 0 0.878711 0.477295 0.00755775 0.21752 0.35898 -0.462642 0.780885 1 8 straight 1 53.216 20.6275 2.96037 0.218119 0.899128 0.379464 0.213135 0.727123 0.0707777 0.648735 1 10 tube-entry 1 39.1799 7.08331 0 0.917421 -0.397918 8.9407e-08 0.496647 0.325938 -0.672533 0.441368 1 9 tube-exit 1 28.4216 -19.9022 0 -0.891098 0.406953 0.200831 -0.115522 0.353788 0.532145 0.760468 1 8 straight 1 21.6285 -9.10201 0 -0.511075 0.859536 0 0 0 0.265013 0.964245 1 8 straight 1 17.8216 -0.475689 -4.94982 0.0554699 0.99846 4.94765e-10 0.000216708 0.00780751 -0.0277448 0.999585 1 7 to-bare 1 23.6842 10.8688 -8.29988 0.939422 0.342762 0 0 0 -0.573253 0.819378 1 4 bare 1 43.5561 -2.37913 -8.37602 0.794566 -0.607178 0 0 0 -0.896431 0.443183 1 4 bare 1 69.7328 -6.66427 -10.2795 0.851171 -0.524889 0 0 0 -0.873181 0.487397 1 9 from-bare 1 77.3171 -47.2426 -5.95208 -0.643862 -0.765141 2.68221e-07 0.777909 -0.283754 0.526714 0.192127 1 8 straight 1 49.0595 -52.3804 -6.84699 -0.738141 0.674646 -2.23517e-07 -0.387924 0.880096 0.110417 0.250507 1 8 straight 1 27.746 24.946 -14.3669 -0.758847 0.650442 -0.0328077 -0.305969 0.637482 0.28489 0.647177 1 8 straight 1 9.60506 37.3137 0 -0.846088 0.533043 0 0 0 0.483196 0.875512 1 8 straight 1 -11.6368 44.1359 0 -0.990166 0.139897 0 0 0 0.655783 0.754949 1 8 straight 1 -28.2344 43.0505 0 -0.996639 -0.081916 0 0 0 0.735498 0.677526 1 8 straight 1 -39.4755 42.4303 0 -0.999666 -0.025844 0 0 0 0.716186 0.69791 1 7 end-cap 1 -42.6316 42.0427 -3.35836 -0.999568 -0.0293801 0 0 0 0.717419 0.696642 1 9 start-cap 1 -74.8045 42.6629 0 -0.99958 -0.0289841 0 0 0 0.717281 0.696784 1 7 left-90 1 -44.4147 -0.761831 0 1 0 0 0 0 0.707107 -0.707107 1 9 from-bare 1 -64.0285 4.89751 0 0.862244 -0.506493 0 0 0 -0.867898 0.496743 1 4 bare 1 -74.8045 22.4957 0 0.00675664 -0.999977 0 0 0 -0.999994 0.00337834 1 7 to-bare 1 -11.291 -5.07622 0 0.932266 0.361774 0 0 0 -0.564901 0.825159 1 5 start 1 38.8929 31.1956 13.1213 -0.944188 -0.326093 0.0466192 0.228218 -0.135014 0.781641 0.564557 1 4 tube 1 83.9228 -26.0188 -9.37725 -0.0671963 -0.966982 0.245828 0.499715 0.089985 0.856607 0.0917165 1 8 straight 38 4 5 2 1 8 straight 1 12.4203 4 1 12.4203 1 1 0 0 7 8 2 1 4 thin 1 10.914 1 1 10.914 0 1 0 0 6 8 2 1 4 thin 1 10.6596 1 1 10.6596 1 1 0 0 5 6 2 1 4 thin 1 6.04074 2 1 6.04074 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 8 9 2 1 8 straight 1 5.82388 2 1 5.82388 1 1 0 0 9 10 2 1 8 straight 1 17.4707 0 1 17.4707 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 10 4 2 1 8 straight 1 15.7184 1 1 15.7184 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 5 7 2 1 4 thin 1 7.25308 0 1 7.25308 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 12 2 2 1 8 straight 1 2.85085 0 1 2.73859 4 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 4 13 2 1 8 straight 1 5.41447 3 1 5.41447 0 1 0 0 13 14 2 1 8 straight 1 3.87168 1 1 3.87168 0 1 0 0 14 15 2 1 8 straight 1 3.83588 1 1 3.83588 0 1 0 0 16 15 2 1 4 bare 1 5.60161 1 1 2.45182 1 1 0 0 17 18 2 1 4 bare 1 9.09678 0 1 9.09678 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 27 26 2 1 8 straight 1 9.30823 1 1 9.30823 0 1 0 0 27 30 2 1 8 straight 1 6.76746 0 1 6.76746 0 1 0 0 29 30 2 1 4 bare 1 7.81683 1 1 7.81683 1 1 0 0 29 28 2 1 4 bare 1 7.68231 0 1 7.68231 1 1 0 0 11 32 2 1 4 tube 1 8.02723 0 1 8.02723 1 1 0 0 32 12 2 1 4 tube 1 10.3239 0 1 10.3239 1 1 0 0 1 2 2 1 8 straight 1 9.28834 1 1 7.66231 3 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 28 31 2 1 8 straight 1 12.9998 0 1 12.9998 1 1 31 1 1 19 Track::TrackBooster 2 0.5 0 0 1 1 1 23 Track::StartingPosition 2 0.0625 -0.625 0 1 29 1 1 23 Track::StartingPosition 2 0.09375 0.625 0 1 28 1 1 23 Track::StartingPosition 2 0.125 -0.625 0 1 27 1 1 23 Track::StartingPosition 2 0.15625 0.625 0 1 26 1 1 23 Track::StartingPosition 2 0.1875 -0.625 0 1 25 1 1 23 Track::StartingPosition 2 0.21875 0.625 0 1 24 1 1 23 Track::StartingPosition 2 0.25 -0.625 0 1 23 1 1 23 Track::StartingPosition 2 0.28125 0.625 0 1 22 1 1 23 Track::StartingPosition 2 0.3125 -0.625 0 1 21 1 1 23 Track::StartingPosition 2 0.34375 0.625 0 1 20 1 1 23 Track::StartingPosition 2 0.375 -0.625 0 1 19 1 1 23 Track::StartingPosition 2 0.40625 0.625 0 1 18 1 1 23 Track::StartingPosition 2 0.4375 -0.625 0 1 17 1 1 23 Track::StartingPosition 2 0.46875 0.625 0 1 16 1 1 23 Track::StartingPosition 2 0.5 -0.625 0 1 15 1 1 23 Track::StartingPosition 2 0.53125 0.625 0 1 14 1 1 23 Track::StartingPosition 2 0.5625 -0.625 0 1 13 1 1 23 Track::StartingPosition 2 0.59375 0.625 0 1 12 1 1 23 Track::StartingPosition 2 0.625 -0.625 0 1 11 1 1 23 Track::StartingPosition 2 0.65625 0.625 0 1 10 1 1 23 Track::StartingPosition 2 0.6875 -0.625 0 1 9 1 1 23 Track::StartingPosition 2 0.71875 0.625 0 1 8 1 1 23 Track::StartingPosition 2 0.75 -0.625 0 1 7 1 1 23 Track::StartingPosition 2 0.78125 0.625 0 1 6 1 1 23 Track::StartingPosition 2 0.8125 -0.625 0 1 5 1 1 23 Track::StartingPosition 2 0.84375 0.625 0 1 4 1 1 23 Track::StartingPosition 2 0.875 -0.625 0 1 3 1 1 23 Track::StartingPosition 2 0.90625 0.625 0 1 2 1 1 23 Track::StartingPosition 2 0.9375 -0.625 0 1 1 1 1 23 Track::StartingPosition 2 0.96875 0.625 0 1 0 1 0 1 2 1 8 straight 1 16.0782 1 1 16.3674 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 2 21 2 1 8 straight 1 12.8566 0 1 12.8566 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 2 11 2 1 8 straight 1 4.24427 1 1 4.24427 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 19 20 2 1 8 straight 1 10.1743 1 1 9.78491 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 20 4 2 1 8 straight 1 10.2903 1 1 11.0446 2 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 24 25 2 1 8 straight 1 4.10346 1 1 4.10346 0 1 0 0 23 24 2 1 8 straight 1 4.96524 1 1 4.62784 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 22 23 2 1 8 straight 1 7.15112 1 1 5.69815 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 21 22 2 1 8 straight 1 7.54109 1 1 7.02076 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 3 4 2 1 4 quad 1 5.63848 1 1 5.63848 0 1 0 0 2 3 2 1 4 quad 1 6.35648 2 1 6.35648 0 1 0 0 31 0 2 1 8 straight 1 5.40092 0 1 5.40092 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 16 17 2 1 4 bare 1 8.92245 0 1 8.92245 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 33 19 2 1 8 straight 1 5.31745 1 1 5.08188 0 1 0 0 18 33 2 1 8 straight 1 7.59989 0 1 8.70242 0 1 0 0 26 25 2 1 4 jump 1 0.897112 1 1 0.234087 1 1 0 0 1 1 0.004 0.348592 0.145022 0.265599 1.5259e-05 1 0.673198 0.619135 0.632456 1 2 1 -19.358 -58.494 33.224 0 1 0.837217 0.689921 1 1 0 -4 2.49252e-37 0 0.481376 0.246464 0.360494 1 \ No newline at end of file Modified: trunk/racer/data/tracks/2 =================================================================== --- trunk/racer/data/tracks/2 2010-06-21 00:24:09 UTC (rev 290) +++ trunk/racer/data/tracks/2 2010-06-21 00:24:57 UTC (rev 291) @@ -1,2 +1,2 @@ data/theme2/theme2 -3 2 27 1 0.320587 1.39555 -0.356787 0 1 0 0 0 0 1 1 12 Intersection 1 -0.136551 48.6476 0 0 1 0 0 0 0 1 1 7 To_tube 1 0 77.7435 15.7876 0.10814 0.205492 0.972666 0.628876 0.0341033 -0.0420609 0.775618 1 4 Tube 1 0 52.0217 39.366 7.00355e-07 -0.924678 0.380749 0.748178 0.125517 0.634484 0.148008 1 4 Tube 1 0 11.2955 23.5578 -0.0209744 -0.922145 -0.386276 -0.359175 0.187231 -0.912176 0.0622265 1 4 Tube 1 -5.92795 -22.1965 -19.8478 -0.381564 -0.924343 0 0 0 -0.980903 -0.194496 1 4 Tube 1 -18.585 -35.0971 -10.5031 -0.984498 -0.175397 0 0 0 0.766615 0.642107 1 4 Tube 1 -48.3862 -37.1725 -7.78405 -0.999935 0.0114224 0 0 0 -0.703057 -0.711134 1 9 From_tube 1 -82.889 -6.27461 0 0 1 0 0 0 0 1 1 15 Double_straight 1 -17.7812 24.0283 5.72029 0.967741 0.21875 0.125001 0.103708 0.0298497 -0.616336 0.780054 1 15 Double_straight 1 34.4662 8.48805 25.7013 0.743605 -0.668619 0 0 0 -0.913406 0.407051 1 15 Double_straight 1 63.782 -27.34 25.7013 0.58307 -0.812422 0 0 0 0.951952 -0.30625 1 11 From_double 1 0.782539 -55.8189 0 0 1 0 0 0 0 1 1 9 To_double 1 65.9297 -57.5639 21.1463 -0.396137 -0.918191 -5.81145e-07 0.855182 -0.176609 0.477243 0.0985581 1 8 Straight 1 23.9919 -91.3102 9.89305 -0.974131 0.225984 -4.47035e-07 0.31266 -0.393496 0.537821 0.67687 1 8 Straight 1 -0.308731 -107.404 -4.51578 0.0144463 0.999774 0.0156245 0.0106404 0.678842 0 0.734208 1 8 Straight 1 -0.642853 -140.983 -4.87373 0 1 0 0 0 0 1 1 8 Straight 1 31.8386 -147.739 0 -0.93759 -0.347742 0 0 0 0.820896 0.571077 1 8 Straight 1 40.8967 -116.51 1.92734 -0.0285597 -0.999592 0 0 0 0.999898 0.0142813 1 8 Straight 1 11.5211 -103.36 3.89608 0.947369 0.320144 0 0 0 -0.583033 0.812448 1 8 Straight 1 -26.6231 -113.562 6.56132 0.996616 -0.0821939 0 0 0 -0.735593 0.677424 1 8 Straight 1 -59.4166 -146.178 0 0 1 0 0 0 0 1 1 5 Start 1 20.5336 -164.255 0 -0.999826 -0.0186697 0 0 0 0.713677 0.700475 1 8 Straight 1 88.5674 -65.9227 29.4524 -0.351706 -0.936111 -3.94881e-07 0.125283 -0.0227586 0.975889 0.177276 1 8 Straight 1 79.3791 -87.6255 20.8784 -0.489638 -0.871926 -8.19564e-07 0.252056 -0.0659305 0.93404 0.244316 1 8 Straight 1 67.1543 -118.17 13.4108 -0.319916 -0.924885 -0.205529 0.017688 -0.107673 0.980882 0.161134 1 8 Straight 1 53.2217 -150.322 0 -0.606658 -0.794963 7.45058e-09 0.116883 -0.0395039 0.940117 0.317739 1 8 Straight 29 0 1 2 1 15 Double_straight 1 7.52984 1 1 7.52984 0 1 0 0 1 2 2 1 4 Tube 1 12.5226 1 1 7.09285 1 1 0 0 2 3 2 1 4 Tube 1 9.6741 0 1 15.0603 1 1 0 0 3 4 2 1 4 Tube 1 17.458 0 1 14.3187 1 1 0 0 4 0 2 1 4 Tube 1 12.3545 0 1 9.24984 2 1 0 0 12 0 2 1 15 Double_straight 1 6.88974 2 1 6.88974 0 1 0 0 13 14 2 1 8 Straight 1 16.228 0 1 19.8801 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 14 12 2 1 8 Straight 1 12.7492 0 1 8.03176 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 16 15 2 1 8 Straight 1 8.48371 0 1 8.48371 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 15 12 2 1 8 Straight 1 7.7946 0 1 7.7946 0 1 0 0 17 16 2 1 8 Straight 1 11.1757 0 1 15.7048 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 18 17 2 1 8 Straight 1 10.4582 0 1 10.4162 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 19 18 2 1 8 Straight 1 11.6971 0 1 10.4178 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 20 19 2 1 8 Straight 1 13.756 0 1 14.8249 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 21 20 2 1 8 Straight 1 12.8252 1 1 13.8647 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 22 21 2 1 8 Straight 1 34.4231 0 1 34.4231 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 1 11 13 2 1 8 Straight 1 8.08799 2 1 8.08799 1 1 0 0 6 7 2 1 4 Tube 1 8.43531 0 1 8.43531 0 1 0 0 7 8 2 1 15 Double_straight 1 11.8113 1 1 26.4887 0 1 0 0 23 24 2 1 8 Straight 1 7.11977 0 1 7.11977 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 24 25 2 1 8 Straight 1 10.3575 0 1 10.3575 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 11 23 2 1 8 Straight 1 14.2502 1 1 14.2502 1 1 0 0 10 11 2 1 15 Double_straight 1 10.5499 1 1 10.5499 0 1 0 0 25 26 2 1 8 Straight 1 12.0117 0 1 12.0117 1 1 0 0 26 22 2 1 8 Straight 1 11.3401 0 1 11.3401 1 1 0 0 9 10 2 1 15 Double_straight 1 24.5853 1 1 15.4768 0 1 0 0 8 9 2 1 15 Double_straight 1 25.6288 1 1 20.3607 0 1 0 0 5 6 2 1 4 Tube 1 7.5267 0 1 7.5267 1 1 0 0 0 5 2 1 4 Tube 1 11.9342 3 1 11.9342 1 1 0 0 1 1 0.0055 0.281559 0.435767 0.669978 1.5259e-05 1 0.394553 0.529427 0.607904 1 2 1 -1.414 1.414 2 0 0.876844 0.819776 0.345495 1 1 0 0 -1 0 0.444587 0.262745 0.131914 1 \ No newline at end of file +3 2 27 1 0.320587 1.39555 -0.356787 0 1 0 0 0 0 1 1 12 Intersection 1 -0.136551 48.6476 0 0 1 0 0 0 0 1 1 7 To_tube 1 0 77.7435 15.7876 0.10814 0.205492 0.972666 0.628876 0.0341033 -0.0420609 0.775618 1 4 Tube 1 0 52.0217 39.366 7.00355e-07 -0.924678 0.380749 0.748178 0.125517 0.634484 0.148008 1 4 Tube 1 0 11.2955 23.5578 -0.0209744 -0.922145 -0.386276 -0.359175 0.187231 -0.912176 0.0622265 1 4 Tube 1 -5.92795 -22.1965 -19.8478 -0.381564 -0.924343 0 0 0 -0.980903 -0.194496 1 4 Tube 1 -18.585 -35.0971 -10.5031 -0.984498 -0.175397 0 0 0 0.766615 0.642107 1 4 Tube 1 -48.3862 -37.1725 -7.78405 -0.999935 0.0114224 0 0 0 -0.703057 -0.711134 1 9 From_tube 1 -82.889 -6.27461 0 0 1 0 0 0 0 1 1 15 Double_straight 1 -17.7812 24.0283 5.72029 0.967741 0.21875 0.125001 0.103708 0.0298497 -0.616336 0.780054 1 15 Double_straight 1 34.4662 8.48805 25.7013 0.743605 -0.668619 0 0 0 -0.913406 0.407051 1 15 Double_straight 1 63.782 -27.34 25.7013 0.58307 -0.812422 0 0 0 0.951952 -0.30625 1 11 From_double 1 0.782539 -55.8189 0 0 1 0 0 0 0 1 1 9 To_double 1 65.9297 -57.5639 21.1463 -0.396137 -0.918191 -5.81145e-07 0.855182 -0.176609 0.477243 0.0985581 1 8 Straight 1 23.9919 -91.3102 9.89305 -0.974131 0.225984 -4.47035e-07 0.31266 -0.393496 0.537821 0.67687 1 8 Straight 1 -0.308731 -107.404 -4.51578 0.0144463 0.999774 0.0156245 0.0106404 0.678842 0 0.734208 1 8 Straight 1 -0.642853 -140.983 -4.87373 0 1 0 0 0 0 1 1 8 Straight 1 31.8386 -147.739 0 -0.93759 -0.347742 0 0 0 0.820896 0.571077 1 8 Straight 1 40.8967 -116.51 1.92734 -0.0285597 -0.999592 0 0 0 0.999898 0.0142813 1 8 Straight 1 11.5211 -103.36 3.89608 0.947369 0.320144 0 0 0 -0.583033 0.812448 1 8 Straight 1 -26.6231 -113.562 6.56132 0.996616 -0.0821939 0 0 0 -0.735593 0.677424 1 8 Straight 1 -59.4166 -146.178 0 0 1 0 0 0 0 1 1 5 Start 1 3.04163 -167.892 0 -0.999826 -0.0186697 0 0 0 0.713677 0.700475 1 8 Straight 1 88.5674 -65.9227 29.4524 -0.351706 -0.936111 -3.94881e-07 0.125283 -0.0227586 0.975889 0.177276 1 8 Straight 1 79.3791 -87.6255 20.8784 -0.489638 -0.871926 -8.19564e-07 0.252056 -0.0659305 0.93404 0.244316 1 8 Straight 1 67.1543 -118.17 13.4108 -0.319916 -0.924885 -0.205529 0.017688 -0.107673 0.980882 0.161134 1 8 Straight 1 53.2217 -150.322 0 -0.606658 -0.794963 7.45058e-09 0.116883 -0.0395039 0.940117 0.317739 1 8 Straight 29 0 1 2 1 15 Double_straight 1 7.52984 1 1 7.52984 0 1 0 0 1 2 2 1 4 Tube 1 12.5226 1 1 7.09285 1 1 0 0 2 3 2 1 4 Tube 1 9.6741 0 1 15.0603 1 1 0 0 3 4 2 1 4 Tube 1 17.458 0 1 14.3187 1 1 0 0 4 0 2 1 4 Tube 1 12.3545 0 1 9.24984 2 1 0 0 12 0 2 1 15 Double_straight 1 6.88974 2 1 6.88974 0 1 0 0 13 14 2 1 8 Straight 1 16.228 0 1 19.8801 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 14 12 2 1 8 Straight 1 12.7492 0 1 8.03176 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 16 15 2 1 8 Straight 1 8.48371 0 1 8.48371 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 15 12 2 1 8 Straight 1 7.7946 0 1 7.7946 0 1 0 0 17 16 2 1 8 Straight 1 11.1757 0 1 15.7048 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 18 17 2 1 8 Straight 1 10.4582 0 1 10.4162 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 19 18 2 1 8 Straight 1 11.6971 0 1 10.4178 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 20 19 2 1 8 Straight 1 13.756 0 1 14.8249 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 21 20 2 1 8 Straight 1 12.8252 1 1 13.8647 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 22 21 2 1 8 Straight 1 22.4033 0 1 34.4231 0 1 30 1 1 23 Track::StartingPosition 2 0.0625 -0.625 0 1 29 1 1 23 Track::StartingPosition 2 0.09375 0.625 0 1 28 1 1 23 Track::StartingPosition 2 0.125 -0.625 0 1 27 1 1 23 Track::StartingPosition 2 0.15625 0.625 0 1 26 1 1 23 Track::StartingPosition 2 0.1875 -0.625 0 1 25 1 1 23 Track::StartingPosition 2 0.21875 0.625 0 1 24 1 1 23 Track::StartingPosition 2 0.25 -0.625 0 1 23 1 1 23 Track::StartingPosition 2 0.28125 0.625 0 1 22 1 1 23 Track::StartingPosition 2 0.3125 -0.625 0 1 21 1 1 23 Track::StartingPosition 2 0.34375 0.625 0 1 20 1 1 23 Track::StartingPosition 2 0.375 -0.625 0 1 19 1 1 23 Track::StartingPosition 2 0.40625 0.625 0 1 18 1 1 23 Track::StartingPosition 2 0.4375 -0.625 0 1 17 1 1 23 Track::StartingPosition 2 0.46875 0.625 0 1 16 1 1 23 Track::StartingPosition 2 0.5 -0.625 0 1 15 1 1 23 Track::StartingPosition 2 0.53125 0.625 0 1 14 1 1 23 Track::StartingPosition 2 0.5625 -0.625 0 1 13 1 1 23 Track::StartingPosition 2 0.59375 0.625 0 1 12 1 1 23 Track::StartingPosition 2 0.625 -0.625 0 1 11 1 1 23 Track::StartingPosition 2 0.65625 0.625 0 1 10 1 1 23 Track::StartingPosition 2 0.6875 -0.625 0 1 9 1 1 23 Track::StartingPosition 2 0.71875 0.625 0 1 8 1 1 23 Track::StartingPosition 2 0.75 -0.625 0 1 7 1 1 23 Track::StartingPosition 2 0.78125 0.625 0 1 6 1 1 23 Track::StartingPosition 2 0.8125 -0.625 0 1 5 1 1 23 Track::StartingPosition 2 0.84375 0.625 0 1 4 1 1 23 Track::StartingPosition 2 0.875 -0.625 0 1 3 1 1 23 Track::StartingPosition 2 0.90625 0.625 0 1 2 1 1 23 Track::StartingPosition 2 0.9375 -0.625 0 1 1 1 1 23 Track::StartingPosition 2 0.96875 0.625 0 1 0 1 11 13 2 1 8 Straight 1 8.08799 2 1 8.08799 1 1 0 0 6 7 2 1 4 Tube 1 8.43531 0 1 8.43531 0 1 0 0 7 8 2 1 15 Double_straight 1 11.8113 1 1 26.4887 0 1 0 0 23 24 2 1 8 Straight 1 7.11977 0 1 7.11977 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 24 25 2 1 8 Straight 1 10.3575 0 1 10.3575 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 11 23 2 1 8 Straight 1 14.2502 1 1 14.2502 1 1 0 0 10 11 2 1 15 Double_straight 1 10.5499 1 1 10.5499 0 1 0 0 25 26 2 1 8 Straight 1 12.0117 0 1 12.0117 1 1 0 0 26 22 2 1 8 Straight 1 11.3401 0 1 11.3401 1 1 0 0 9 10 2 1 15 Double_straight 1 24.5853 1 1 15.4768 0 1 0 0 8 9 2 1 15 Double_straight 1 25.6288 1 1 20.3607 0 1 0 0 5 6 2 1 4 Tube 1 7.5267 0 1 7.5267 1 1 0 0 0 5 2 1 4 Tube 1 11.9342 3 1 11.9342 1 1 0 0 1 1 0.0055 0.281559 0.435767 0.669978 1.5259e-05 1 0.394553 0.529427 0.607904 1 2 1 -1.414 1.414 2 0 0.876844 0.819776 0.345495 1 1 0 0 -1 0 0.444587 0.262745 0.131914 1 \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-21 00:24:16
|
Revision: 290 http://racer.svn.sourceforge.net/racer/?rev=290&view=rev Author: jlegg Date: 2010-06-21 00:24:09 +0000 (Mon, 21 Jun 2010) Log Message: ----------- Fix bug where a StartMarker would not be moved when changing the start edge if the other edge had no other attachments. Modified Paths: -------------- trunk/libtrack/document/SetStartEdgeDelta.cpp Modified: trunk/libtrack/document/SetStartEdgeDelta.cpp =================================================================== --- trunk/libtrack/document/SetStartEdgeDelta.cpp 2010-06-20 23:52:42 UTC (rev 289) +++ trunk/libtrack/document/SetStartEdgeDelta.cpp 2010-06-21 00:24:09 UTC (rev 290) @@ -43,9 +43,8 @@ // deltas to delete the Track::StartMarkers on the current edge. unsigned int old_edge_name = track.get_path().get_starting_edge(); const Track::PathEdge &old_edge = track.get_path().get_edge(old_edge_name); - for (std::vector<boost::shared_ptr<Track::TrackAttachment> >::const_iterator it = old_edge.get_attachments().begin(); - it != old_edge.get_attachments().end(); - it++) + std::vector<boost::shared_ptr<Track::TrackAttachment> >::const_iterator it = old_edge.get_attachments().begin(); + while (it != old_edge.get_attachments().end()) { if (dynamic_cast<const Track::StartingPosition *>(&(**it))) { @@ -59,6 +58,8 @@ add_to_stack(delta, track); // Invalidates iterator, start again. it = old_edge.get_attachments().begin(); + } else { + it++; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-20 23:52:48
|
Revision: 289 http://racer.svn.sourceforge.net/racer/?rev=289&view=rev Author: jlegg Date: 2010-06-20 23:52:42 +0000 (Sun, 20 Jun 2010) Log Message: ----------- Combine changing start edge into one undo, clear StartMarkers on the previous start edge, and fix bug where StartMarkers and other TrackAttachments would not be level with the track. Modified Paths: -------------- trunk/libtrack/TrackAttachment.cpp trunk/libtrack/document/SetStartEdgeDelta.cpp trunk/libtrack/document/SetStartEdgeDelta.h trunk/racer_editor/View.cpp Modified: trunk/libtrack/TrackAttachment.cpp =================================================================== --- trunk/libtrack/TrackAttachment.cpp 2010-06-20 18:12:15 UTC (rev 288) +++ trunk/libtrack/TrackAttachment.cpp 2010-06-20 23:52:42 UTC (rev 289) @@ -49,6 +49,7 @@ TrackAttachment::TrackAttachment() : m_t_position(0) , m_lateral_position(0) + , m_vertical_position(0) { } Modified: trunk/libtrack/document/SetStartEdgeDelta.cpp =================================================================== --- trunk/libtrack/document/SetStartEdgeDelta.cpp 2010-06-20 18:12:15 UTC (rev 288) +++ trunk/libtrack/document/SetStartEdgeDelta.cpp 2010-06-20 23:52:42 UTC (rev 289) @@ -1,8 +1,9 @@ /** @file document/SetStartEdgeDelta.h - * @brief Declare the Document::SetStartEdgeDelta and Document::StartEdgeFinder classes. + * @brief Implement the Document::SetStartEdgeDelta, + * Document::StartEdgeFinder, and Document::SetStartPositionsDelta classes. * @author James Legg */ -/* Copyright © 2009 James Legg. +/* Copyright © 2009, 2010 James Legg. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -10,7 +11,10 @@ */ #include "SetStartEdgeDelta.h" + +#include "InsertTrackAttachmentDelta.h" #include "../Track.h" +#include "../StartingPosition.h" namespace Document { @@ -29,4 +33,55 @@ track.get_path().set_starting_edge(new_edge_name); } +SetStartPositionsDelta::SetStartPositionsDelta(const unsigned int edge_name) + : m_edge_name(edge_name) +{ +} + +void SetStartPositionsDelta::apply(Track::Track & track) +{ + // deltas to delete the Track::StartMarkers on the current edge. + unsigned int old_edge_name = track.get_path().get_starting_edge(); + const Track::PathEdge &old_edge = track.get_path().get_edge(old_edge_name); + for (std::vector<boost::shared_ptr<Track::TrackAttachment> >::const_iterator it = old_edge.get_attachments().begin(); + it != old_edge.get_attachments().end(); + it++) + { + if (dynamic_cast<const Track::StartingPosition *>(&(**it))) + { + boost::shared_ptr<Document::DocumentDelta> delta + ( + new Document::RemoveTrackAttachmentDelta + ( + InsertRemoveTrackAttachmentIdentifier(*it) + ) + ); + add_to_stack(delta, track); + // Invalidates iterator, start again. + it = old_edge.get_attachments().begin(); + } + } + + // delta to replace the starting edge + add_to_stack(boost::shared_ptr<DocumentDelta>( + new SetStartEdgeDelta(Document::StartEdgeFinder(), + m_edge_name) + ), track); + + // Deltas to add new start markers. + for (int i = 0; i < 30; i++) + { + boost::shared_ptr<Track::TrackAttachment> pos(new Track::StartingPosition(29-i)); + pos->set_lateral_position((i % 2 - 0.5) * 1.25); + pos->set_t_position(0.03125 * i + 0.0625); + pos->edge_name = m_edge_name; + + boost::shared_ptr<Document::DocumentDelta> delta + ( + new Document::InsertTrackAttachmentDelta(pos) + ); + add_to_stack(delta, track); + } +} + } // namespace Document Modified: trunk/libtrack/document/SetStartEdgeDelta.h =================================================================== --- trunk/libtrack/document/SetStartEdgeDelta.h 2010-06-20 18:12:15 UTC (rev 288) +++ trunk/libtrack/document/SetStartEdgeDelta.h 2010-06-20 23:52:42 UTC (rev 289) @@ -1,8 +1,9 @@ /** @file document/SetStartEdgeDelta.h - * @brief Declare the Document::SetStartEdgeDelta and Document::StartEdgeFinder classes. + * @brief Declare the Document::SetStartEdgeDelta, Document::StartEdgeFinder, + * and Document::SetStartPositionsDelta classes. * @author James Legg */ -/* Copyright © 2009 James Legg. +/* Copyright © 2009, 2010 James Legg. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -13,6 +14,7 @@ #define LIBTRACK_DOCUMENT_SET_START_EDGE_DELTA_H #include "ChangePropertyDelta.h" +#include "StackableDelta.h" namespace Document { @@ -31,6 +33,26 @@ */ typedef ChangePropertyDelta<StartEdgeFinder, unsigned long int> SetStartEdgeDelta; +/** Command for creating start positions and other related tasks. + * Changes the starting edge, removes old start markers, and adds new start + * markers. + */ +class SetStartPositionsDelta + : public StackableDelta +{ +public: + /** Create command to make the given edge contain the start positions + * @param edge_name The name of the edge you wish to make the start edge + * in the track's path. This edge will contain the Track::StartMarkers, + * and the edge's end controls the start/finish disk. + */ + SetStartPositionsDelta(const unsigned int edge_name); + virtual void apply(Track::Track & track); +protected: + /// The name + unsigned int m_edge_name; +}; + } // namespace Document #endif // LIBTRACK_DOCUMENT_SET_START_EDGE_DELTA_H Modified: trunk/racer_editor/View.cpp =================================================================== --- trunk/racer_editor/View.cpp 2010-06-20 18:12:15 UTC (rev 288) +++ trunk/racer_editor/View.cpp 2010-06-20 23:52:42 UTC (rev 289) @@ -879,26 +879,9 @@ assert(edge); boost::shared_ptr<Document::DocumentDelta> delta ( - new Document::SetStartEdgeDelta(Document::StartEdgeFinder(), edge->get_name()) + new Document::SetStartPositionsDelta(edge->get_name()) ); m_signal_command.emit(delta); - - // Add some starting positions to the edge. - /// @todo remove other starting positions. - /// @todo Make all these one document delta. - for (int i = 0; i < 30; i++) - { - boost::shared_ptr<Track::TrackAttachment> pos(new Track::StartingPosition(29-i)); - pos->set_lateral_position((i % 2 - 0.5) * 1.25); - pos->set_t_position(0.03125 * i + 0.0625); - pos->edge_name = edge->get_name(); - - boost::shared_ptr<Document::DocumentDelta> delta - ( - new Document::InsertTrackAttachmentDelta(pos) - ); - m_signal_command.emit(delta); - } } void View::on_add_booster() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-20 18:12:22
|
Revision: 288 http://racer.svn.sourceforge.net/racer/?rev=288&view=rev Author: jlegg Date: 2010-06-20 18:12:15 +0000 (Sun, 20 Jun 2010) Log Message: ----------- Mark the starting position of the cars on the track. Fixes bug where edge transformation had a left handed rotation matrix. This fixes inverting of track attachments and cars starting with no rotation. TrackAttachments now store their global to local transformation. Modified Paths: -------------- trunk/libtrack/ClassLoader.cpp trunk/libtrack/Makefile.am trunk/libtrack/TrackAttachment.cpp trunk/libtrack/TrackAttachment.h trunk/libtrack/path/Path.cpp trunk/libtrack/path/PathEdge.cpp trunk/racer/Engine/GameObjects/Car.cpp trunk/racer/Engine/GameObjects/Car.h trunk/racer/Engine/GameScene.cpp trunk/racer_editor/View.cpp Added Paths: ----------- trunk/libtrack/StartingPosition.cpp trunk/libtrack/StartingPosition.h trunk/racer/data/generic/start marker.blend trunk/racer/data/generic/start-marker trunk/racer/data/generic/start-marker.png Modified: trunk/libtrack/ClassLoader.cpp =================================================================== --- trunk/libtrack/ClassLoader.cpp 2010-06-18 16:36:33 UTC (rev 287) +++ trunk/libtrack/ClassLoader.cpp 2010-06-20 18:12:15 UTC (rev 288) @@ -2,7 +2,7 @@ * @brief Implement the Track::SaveableClassList classe. * @author James Legg */ -/* Copyright © 2009 James Legg. +/* Copyright © 2009, 2010 James Legg. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -12,6 +12,7 @@ #include "ClassLoader.h" #include "TrackAttachment.h" +#include "StartingPosition.h" #include "TrackBooster.h" namespace Track @@ -22,6 +23,7 @@ // I don't like having a big list here, but if these are declared in the // source file their class uses, then they might not be initalized ever. static ClassLoader<TrackAttachment> track_attachment(TrackAttachment().get_class_identifier()); + static ClassLoader<StartingPosition> starting_position(StartingPosition().get_class_identifier()); static ClassLoader<TrackBooster> track_booster(TrackBooster().get_class_identifier()); } Modified: trunk/libtrack/Makefile.am =================================================================== --- trunk/libtrack/Makefile.am 2010-06-18 16:36:33 UTC (rev 287) +++ trunk/libtrack/Makefile.am 2010-06-20 18:12:15 UTC (rev 288) @@ -15,6 +15,7 @@ SegmentConnection.cpp SegmentConnection.h\ Segment.cpp Segment.h\ Skybox.cpp Skybox.h\ + StartingPosition.cpp StartingPosition.h\ stream_loader.h stream_loader.cpp\ Texture.cpp Texture.h\ Theme.cpp Theme.h\ Added: trunk/libtrack/StartingPosition.cpp =================================================================== --- trunk/libtrack/StartingPosition.cpp (rev 0) +++ trunk/libtrack/StartingPosition.cpp 2010-06-20 18:12:15 UTC (rev 288) @@ -0,0 +1,80 @@ +/** @file libtrack/StartingPosition.cpp + * @brief Implement the Track::StartingPosition class. + * @author James Legg + */ +/* Copyright © 2010 James Legg. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. +*/ + +#include "StartingPosition.h" +#include "FormErrors.h" +#include "Mesh/DrawableMesh.h" +#include "Texture.h" + +#include <GL/gl.h> + +namespace Track +{ + +std::string StartingPosition::get_class_identifier() const +{ + return std::string("Track::StartingPosition"); +} + +const unsigned int latest_starting_position_version = 1; + +StartingPosition::StartingPosition(std::istream & source) + : TrackAttachment(source) +{ + unsigned int version; + source >> version; + if (version == 0) throw DepreciatedVersionError(); + if (version > latest_starting_position_version) throw NewVersionError(); + + source >> m_rank; +} + +StartingPosition::StartingPosition(unsigned int rank) + : m_rank(rank) +{ +} + +StartingPosition::StartingPosition() + : m_rank(0) +{ +} + +StartingPosition::~StartingPosition() +{ +} + +void StartingPosition::draw() const +{ + static DrawableMesh mesh("data/generic/start-marker"); + static Texture texture("data/generic/start-marker.png"); + texture.bind(); + mesh.draw(); +} + +void StartingPosition::add_data(std::ostream & stream) const +{ + TrackAttachment::add_data(stream); + stream << ' ' << (*this); +} + +unsigned int StartingPosition::get_rank() const +{ + return m_rank; +} + +std::ostream & operator<<(std::ostream & destination, StartingPosition starting_position) +{ + destination << latest_starting_position_version << ' ' + << starting_position.get_rank(); + return destination; +} + +} // namespace Track Added: trunk/libtrack/StartingPosition.h =================================================================== --- trunk/libtrack/StartingPosition.h (rev 0) +++ trunk/libtrack/StartingPosition.h 2010-06-20 18:12:15 UTC (rev 288) @@ -0,0 +1,58 @@ +/** @file libtrack/StartingPosition.h + * @brief Declare the Track::StartingPosition class. + * @author James Legg + */ +/* Copyright © 2010 James Legg. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. +*/ +#ifndef LIBTRACK_STARTING_POSITION_H_ +#define LIBTRACK_STARTING_POSITION_H_ + +#include "TrackAttachment.h" + +#include <LinearMath/btVector3.h> + +namespace Track +{ + +/** The marker where cars start the race from. + */ +class StartingPosition + : public TrackAttachment +{ +public: + StartingPosition(std::istream & source); + + /** Create starting position with rank 0. + */ + StartingPosition(); + + /** Create starting position for a rank. + * @param rank The starting rank. 0 is first infront of the line. + */ + StartingPosition(unsigned int rank); + + virtual ~StartingPosition(); + + virtual std::string get_class_identifier() const; + virtual void draw() const; + virtual void add_data(std::ostream & stream) const; + + /// Return the rank of this starting position. + unsigned int get_rank() const; +protected: + /** rank from 0 of the starting position. + * 0 is the rank for the starting position closest to the start line. + */ + unsigned int m_rank; +}; + +std::ostream & operator<<(std::ostream & destination, StartingPosition starting_position); + +} // namespace Track + + +#endif // LIBTRACK_STARTING_POSITION_H_ Modified: trunk/libtrack/TrackAttachment.cpp =================================================================== --- trunk/libtrack/TrackAttachment.cpp 2010-06-18 16:36:33 UTC (rev 287) +++ trunk/libtrack/TrackAttachment.cpp 2010-06-20 18:12:15 UTC (rev 288) @@ -98,14 +98,14 @@ { } -void TrackAttachment::set_global_position(btVector3 pos) +void TrackAttachment::set_global_transform(btTransform tansform) { - m_global_position = pos; + m_global_transform = tansform; } -btVector3 TrackAttachment::get_global_position() const +const btTransform & TrackAttachment::get_global_transform() const { - return m_global_position; + return m_global_transform; } std::ostream & operator<<(std::ostream & destination, const TrackAttachment & attachment) Modified: trunk/libtrack/TrackAttachment.h =================================================================== --- trunk/libtrack/TrackAttachment.h 2010-06-18 16:36:33 UTC (rev 287) +++ trunk/libtrack/TrackAttachment.h 2010-06-20 18:12:15 UTC (rev 288) @@ -13,6 +13,7 @@ #include <iostream> #include <LinearMath/btScalar.h> +#include <LinearMath/btTransform.h> #include "UniqueIdentifier.h" #include "ClassLoader.h" #include "NearTrack.h" @@ -60,10 +61,17 @@ * and the associated edge is the origin of the modelview matrix. */ virtual void draw() const; - void set_global_position(btVector3 pos); - btVector3 get_global_position() const; + /** Set the transformation from world space to the attachment's space. + * This will be used to draw the attachment and locate its handles in the + * editor. + * @param pos the new global transformation. + */ + void set_global_transform(btTransform pos); + /// Get the transformation from world space to the attachment's space. + const btTransform & get_global_transform() const; protected: - btVector3 m_global_position; + /// The transformation from world space to the attachment's space. + btTransform m_global_transform; /** How far down the path the object is. * Parameter to path's curve, between 0 and 1. */ Modified: trunk/libtrack/path/Path.cpp =================================================================== --- trunk/libtrack/path/Path.cpp 2010-06-18 16:36:33 UTC (rev 287) +++ trunk/libtrack/path/Path.cpp 2010-06-20 18:12:15 UTC (rev 288) @@ -401,7 +401,7 @@ btTransform transform = edge.get_transform(1.0); // plane goes through origin btVector3 origin = transform.getOrigin(); - normal = origin - transform(btVector3(0.0, 1.0, 0.0)); + normal = transform(btVector3(0.0, 1.0, 0.0)) - origin; distance = -normal.dot(origin); } Modified: trunk/libtrack/path/PathEdge.cpp =================================================================== --- trunk/libtrack/path/PathEdge.cpp 2010-06-18 16:36:33 UTC (rev 287) +++ trunk/libtrack/path/PathEdge.cpp 2010-06-20 18:12:15 UTC (rev 288) @@ -198,9 +198,9 @@ /* The tangent's control points should be tripled, but this cancels since we * immediately normalise. */ - const btVector3 tangent = ( -rposition_squared * start_tangent - - 2.0 * rposition * position * (p2 - p1) - - position_squared * end_tangent) + const btVector3 tangent = ( rposition_squared * start_tangent + + 2.0 * rposition * position * (p2 - p1) + + position_squared * end_tangent) .normalize(); // roatation is such that the xz plane is perpendicular to the tangent. // rotation around the tangent is specified by an up vector. @@ -212,12 +212,13 @@ /*const btVector3 up = btTransform(source->get_angle().slerp(target->get_angle(), position)) (btVector3(0.0, 0.0, 1.0));*/ // Find the cross product of tangent and up to make the other axis. - const btVector3 cross_axis = up.cross(tangent).normalize(); + const btVector3 cross_axis = tangent.cross(up).normalize(); // up might not be orthoganal to the other directions, improve it: - const btVector3 better_up = tangent.cross(cross_axis); + const btVector3 better_up = cross_axis.cross(tangent); btMatrix3x3 rotation(cross_axis.x(), tangent.x(), better_up.x(), cross_axis.y(), tangent.y(), better_up.y(), cross_axis.z(), tangent.z(), better_up.z()); + return btTransform(rotation, translation); } @@ -449,15 +450,10 @@ it++) { glPushMatrix(); - /// @todo claculate the matrix beforehand, then use that. - btTransform transform = get_transform((**it).get_t_position()); - transform.setOrigin((**it).get_global_position()); btScalar mat[16]; mat[15] = 1.0; - transform.getOpenGLMatrix(mat); + (**it).get_global_transform().getOpenGLMatrix(mat); glMultMatrixf(mat); - // Something funny is going on with the matrix multiplication :-/ - glScalef(1.0, -1.0, 1.0); (**it).draw(); glPopMatrix(); } @@ -529,8 +525,9 @@ 0.0, attachment.get_vertical_position())); m_attachment_handles[index]->set_position(pos); - // set attachment's global position. - (**attach_it).set_global_position(pos); + // set attachment's global to local transformation. + transform.setOrigin(pos); + (**attach_it).set_global_transform(transform); } @@ -550,8 +547,10 @@ 0.0, attachment.get_vertical_position())); handle.set_position(pos); - // also tell the attachment its global position. - m_attachments[i]->set_global_position(pos); + // also tell the attachment its global transform, since if the handle + // is off the transform will be too. + transform.setOrigin(pos); + m_attachments[i]->set_global_transform(transform); } } Modified: trunk/racer/Engine/GameObjects/Car.cpp =================================================================== --- trunk/racer/Engine/GameObjects/Car.cpp 2010-06-18 16:36:33 UTC (rev 287) +++ trunk/racer/Engine/GameObjects/Car.cpp 2010-06-20 18:12:15 UTC (rev 288) @@ -149,16 +149,16 @@ btScalar mass(500.0); btVector3 inertia(0,0,0); shape->calculateLocalInertia(mass, inertia); - motion_state = new btDefaultMotionState(start); btRigidBody::btRigidBodyConstructionInfo rigid_body_CI(mass, - motion_state, + 0, shape, inertia); rigid_body_CI.m_linearDamping = btScalar(0.1); rigid_body_CI.m_angularDamping = btScalar(0.9992); rigid_body_CI.m_friction = btScalar(0.4); rigid_body_CI.m_restitution = 0.25; + rigid_body_CI.m_startWorldTransform = start; rigid_body = new btRigidBody(rigid_body_CI); rigid_body->setSleepingThresholds(btScalar(0.0), btScalar(0.0)); @@ -193,8 +193,7 @@ * the axis aligned bounding box of a transformed axis aligned bounding * box. */ - btTransform transform; - rigid_body->getMotionState()->getWorldTransform(transform); + btTransform transform = rigid_body->getCenterOfMassTransform(); return mesh->get_bounds().transform(transform); } @@ -205,8 +204,7 @@ texture->bind(); glPushMatrix(); // get the position and angle from the physics engine. - btTransform transform; - rigid_body->getMotionState()->getWorldTransform(transform); + btTransform transform = rigid_body->getCenterOfMassTransform(); btScalar transform_matrix[16]; transform.getOpenGLMatrix(transform_matrix); glMultMatrixf(transform_matrix); @@ -343,8 +341,7 @@ void Car::posttick() { - btTransform transform; - rigid_body->getMotionState()->getWorldTransform(transform); + btTransform transform = rigid_body->getCenterOfMassTransform(); btTransform rotation_transform(transform); rotation_transform.setOrigin(btVector3(0, 0, 0)); @@ -416,7 +413,8 @@ const Track::TrackBooster * booster = dynamic_cast<const Track::TrackBooster*>(&(**it)); if (booster) { - btScalar distance2 = booster->get_global_position().distance2(transform.getOrigin()); + btScalar distance2 = booster->get_global_transform(). + getOrigin().distance2(transform.getOrigin()); if (distance2 < 1.0) { // boost @@ -629,7 +627,7 @@ transform = m_last_transform; return; } - rigid_body->getMotionState()->getWorldTransform(transform); + transform = rigid_body->getCenterOfMassTransform(); } signed int Car::get_lap() @@ -673,12 +671,11 @@ void Car::remove() { - rigid_body->getMotionState()->getWorldTransform(m_last_transform); + m_last_transform = rigid_body->getCenterOfMassTransform(); m_removed = true; world.get_dynamics_world().removeRigidBody(rigid_body); world.remove_tick_observer(this); delete rigid_body; - delete motion_state; m_course_complete_time = world.get_tick_number(); } @@ -710,8 +707,7 @@ btScalar current_lap_position = face_u_interpolation(face, current_coords); // find point 0.25 meters infront of the car's centre. - btTransform transform; - rigid_body->getMotionState()->getWorldTransform(transform); + btTransform transform = rigid_body->getCenterOfMassTransform(); btVector3 facing_coords = transform(btVector3(0, 0.25, 0)); Track::NearTrack front(*this); front.move_towards(facing_coords); Modified: trunk/racer/Engine/GameObjects/Car.h =================================================================== --- trunk/racer/Engine/GameObjects/Car.h 2010-06-18 16:36:33 UTC (rev 287) +++ trunk/racer/Engine/GameObjects/Car.h 2010-06-20 18:12:15 UTC (rev 288) @@ -109,8 +109,6 @@ Track::BulletMesh *flame_mesh; // physical representation Physics::World & world; - // btCollisionShape* shape; - btDefaultMotionState *motion_state; btRigidBody * rigid_body; InputDevice * input_device; btVector3 force, torque, local_force, local_torque; Modified: trunk/racer/Engine/GameScene.cpp =================================================================== --- trunk/racer/Engine/GameScene.cpp 2010-06-18 16:36:33 UTC (rev 287) +++ trunk/racer/Engine/GameScene.cpp 2010-06-20 18:12:15 UTC (rev 288) @@ -18,6 +18,7 @@ #include "../MainLoop.h" #include <libtrack/Texture.h> +#include <libtrack/StartingPosition.h> #include <GL/glu.h> #include <cmath> @@ -91,11 +92,28 @@ car_cameras.reserve(number_of_cars); for(unsigned int i = 0; i< number_of_cars; i++) { - btScalar position = btScalar(i) / btScalar(number_of_cars); - btTransform transform = edge.get_transform(position); - transform.setOrigin(transform(btVector3(0.0, 0.0, 1.0))); + // Find the starting position for this car. + btTransform initial_transform = + // guess transformation when starting position cannot be found. + edge.get_transform(float(i) / float(number_of_cars)); + // find the starting position track attachment for this car's rank. + for (std::vector<boost::shared_ptr<Track::TrackAttachment> >::const_iterator it = edge.get_attachments().begin(); + it != edge.get_attachments().end(); + it++) + { + const Track::StartingPosition * pos = dynamic_cast<const Track::StartingPosition *>(&(**it)); + if (pos) + { + if (pos->get_rank() == i) + { + initial_transform = pos->get_global_transform(); + } + } + } + // raise the car above the track slightly. + initial_transform.setOrigin(initial_transform(btVector3(0.0, 0.0, 1.0))); cars.push_back(new GameObjects::Car(world, - transform, + initial_transform, *(input_devices[i].first), input_devices[i].second, start_plane_normal, Added: trunk/racer/data/generic/start marker.blend =================================================================== (Binary files differ) Property changes on: trunk/racer/data/generic/start marker.blend ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/racer/data/generic/start-marker =================================================================== --- trunk/racer/data/generic/start-marker (rev 0) +++ trunk/racer/data/generic/start-marker 2010-06-20 18:12:15 UTC (rev 288) @@ -0,0 +1,343 @@ +76 +0.5 0.5 0.0 +0.25 0.25 0.03125 +-0.25000002980232239 0.25000005960464478 0.03125 +-0.49999991059303284 0.50000011920928955 0.0 +0.50000011920928955 0.49999988079071045 0.0625 +0.24999983608722687 0.24999985098838806 0.0625 +-0.25000008940696716 0.25000011920928955 0.0625 +-0.5 0.5 0.0625 +-0.49999997019767761 1.1920928955078125e-07 -1.0430811414607888e-07 +-0.50000005960464478 0.0 0.062499895691871643 +-0.25000008940696716 5.9604644775390625e-08 0.031249895691871643 +-0.25000014901161194 1.1920928955078125e-07 0.062499895691871643 +0.49999994039535522 0.0 -1.0430811414607888e-07 +0.50000005960464478 -1.1920928955078125e-07 0.062499895691871643 +0.24999994039535522 0.0 0.031249895691871643 +0.24999977648258209 -1.4901161193847656e-07 0.062499895691871643 +-0.49999997019767761 -0.49999988079071045 -1.0430811414607888e-07 +-0.25000008940696716 -0.49999994039535522 0.031249895691871643 +0.49999994039535522 -0.5 -1.0430811414607888e-07 +0.24999994039535522 -0.5 0.031249895691871643 +-0.15625001490116119 -0.5 0.0 +-0.15625001490116119 -0.640625 0.0 +-0.21875001490116119 -0.640625 0.0 +-0.21875 -0.5 0.0 +-0.15625 -0.5 0.015625 +-0.15625002980232239 -0.625 0.015625 +-0.21875002980232239 -0.625 0.015625 +-0.21875001490116119 -0.5 0.015625 +0.15624998509883881 -0.5 0.015625 +0.15624997019767761 -0.625 0.015625 +0.21874997019767761 -0.625 0.015625 +0.21875 -0.5 0.015625 +0.15625 -0.5 0.0 +0.15624998509883881 -0.640625 0.0 +0.21874998509883881 -0.640625 0.0 +0.21874998509883881 -0.5 0.0 +0.031249985098838806 -0.5 0.0 +0.031249985098838806 -0.640625 0.0 +-0.031250014901161194 -0.640625 0.0 +-0.03125 -0.5 0.0 +0.03125 -0.5 0.015625 +0.031249970197677612 -0.625 0.015625 +-0.031250029802322388 -0.625 0.015625 +-0.031250014901161194 -0.5 0.015625 +0.5 0.34375 0.0 +0.640625 0.34374994039535522 0.0 +0.640625 0.28124994039535522 0.0 +0.5 0.28125 0.0 +0.5 0.34375 0.015625 +0.625 0.34374994039535522 0.015625 +0.625 0.28124994039535522 0.015625 +0.5 0.28125 0.015625 +-0.5 0.34375 0.015625 +-0.625 0.34375011920928955 0.015625 +-0.625 0.28125017881393433 0.015625 +-0.5 0.28125 0.015625 +-0.5 0.34375 0.0 +-0.640625 0.34375011920928955 0.0 +-0.640625 0.28125017881393433 0.0 +-0.5 0.28125 0.0 +-0.5 0.15625 0.0 +-0.640625 0.15625017881393433 0.0 +-0.640625 0.21875011920928955 0.0 +-0.5 0.21875 0.0 +-0.5 0.15625 0.015625 +-0.625 0.15625017881393433 0.015625 +-0.625 0.21875011920928955 0.015625 +-0.5 0.21875 0.015625 +0.5 0.15625 0.015625 +0.625 0.15624994039535522 0.015625 +0.625 0.21874994039535522 0.015625 +0.5 0.21875 0.015625 +0.5 0.15625 0.0 +0.640625 0.15624994039535522 0.0 +0.640625 0.21874994039535522 0.0 +0.5 0.21875 0.0 +88 +0.0 -0.0 1.0 0.75 0.099609375 +4 0.0 -0.0 1.0 0.048828125 0.099609375 +7 0.0 -0.0 1.0 0.224609375 0.275390625 +6 0.0 -0.0 1.0 0.75 0.099609375 +4 0.0 -0.0 1.0 0.224609375 0.275390625 +6 0.0 -0.0 1.0 0.57421875 0.275390625 +5 -3.2782554626464844e-07 -1.0 -1.4305128388514277e-06 0.541015625 0.48828125 +1 -3.2782554626464844e-07 -1.0 -1.4305128388514277e-06 0.541015625 0.451171875 +5 -3.2782554626464844e-07 -1.0 -1.4305128388514277e-06 0.25 0.451171875 +6 -3.2782554626464844e-07 -1.0 -1.4305128388514277e-06 0.541015625 0.48828125 +1 -3.2782554626464844e-07 -1.0 -1.4305128388514277e-06 0.25 0.451171875 +6 -3.2782554626464844e-07 -1.0 -1.4305128388514277e-06 0.25 0.48828125 +2 1.1920928955078125e-07 1.0 1.9073486328125e-06 0.75 0.099609375 +4 1.1920928955078125e-07 1.0 1.9073486328125e-06 0.75 0.0078125 +0 1.1920928955078125e-07 1.0 1.9073486328125e-06 0.048828125 0.0078125 +3 1.1920928955078125e-07 1.0 1.9073486328125e-06 0.75 0.099609375 +4 1.1920928955078125e-07 1.0 1.9073486328125e-06 0.048828125 0.0078125 +3 1.1920928955078125e-07 1.0 1.9073486328125e-06 0.048828125 0.099609375 +7 -1.0 1.1920960218958498e-07 -1.4305112472356996e-06 0.048828125 0.099609375 +7 -1.0 1.1920960218958498e-07 -1.4305112472356996e-06 0.001953125 0.099609375 +3 -1.0 1.1920960218958498e-07 -1.4305112472356996e-06 0.001953125 0.44921875 +8 -1.0 1.1920960218958498e-07 -1.4305112472356996e-06 0.048828125 0.099609375 +7 -1.0 1.1920960218958498e-07 -1.4305112472356996e-06 0.001953125 0.44921875 +8 -1.0 1.1920960218958498e-07 -1.4305112472356996e-06 0.048828125 0.44921875 +9 1.0 -2.3841937490942655e-07 1.9073490875598509e-06 0.25 0.48828125 +2 1.0 -2.3841937490942655e-07 1.9073490875598509e-06 0.23046875 0.48828125 +6 1.0 -2.3841937490942655e-07 1.9073490875598509e-06 0.23046875 0.634765625 +11 1.0 -2.3841937490942655e-07 1.9073490875598509e-06 0.25 0.48828125 +2 1.0 -2.3841937490942655e-07 1.9073490875598509e-06 0.23046875 0.634765625 +11 1.0 -2.3841937490942655e-07 1.9073490875598509e-06 0.25 0.634765625 +10 1.0 -1.1920889164684922e-07 -1.9073488601861754e-06 0.796875 0.099609375 +0 1.0 -1.1920889164684922e-07 -1.9073488601861754e-06 0.75 0.099609375 +4 1.0 -1.1920889164684922e-07 -1.9073488601861754e-06 0.75 0.44921875 +13 1.0 -1.1920889164684922e-07 -1.9073488601861754e-06 0.796875 0.099609375 +0 1.0 -1.1920889164684922e-07 -1.9073488601861754e-06 0.75 0.44921875 +13 1.0 -1.1920889164684922e-07 -1.9073488601861754e-06 0.796875 0.44921875 +12 -1.0 2.3842073915147921e-07 -5.2452078307396732e-06 0.560546875 0.48828125 +5 -1.0 2.3842073915147921e-07 -5.2452078307396732e-06 0.541015625 0.48828125 +1 -1.0 2.3842073915147921e-07 -5.2452078307396732e-06 0.541015625 0.634765625 +14 -1.0 2.3842073915147921e-07 -5.2452078307396732e-06 0.560546875 0.48828125 +5 -1.0 2.3842073915147921e-07 -5.2452078307396732e-06 0.541015625 0.634765625 +14 -1.0 2.3842073915147921e-07 -5.2452078307396732e-06 0.560546875 0.634765625 +15 -1.3907740026297688e-07 -2.7815497105621034e-07 1.0 0.224609375 0.275390625 +6 -1.3907740026297688e-07 -2.7815497105621034e-07 1.0 0.048828125 0.099609375 +7 -1.3907740026297688e-07 -2.7815497105621034e-07 1.0 0.048828125 0.44921875 +9 -1.3907740026297688e-07 -2.7815497105621034e-07 1.0 0.224609375 0.275390625 +6 -1.3907740026297688e-07 -2.7815497105621034e-07 1.0 0.048828125 0.44921875 +9 -1.3907740026297688e-07 -2.7815497105621034e-07 1.0 0.224609375 0.44921875 +11 1.3907737184126745e-07 -2.781550278996292e-07 1.0 0.75 0.099609375 +4 1.3907737184126745e-07 -2.781550278996292e-07 1.0 0.57421875 0.275390625 +5 1.3907737184126745e-07 -2.781550278996292e-07 1.0 0.57421875 0.44921875 +15 1.3907737184126745e-07 -2.781550278996292e-07 1.0 0.75 0.099609375 +4 1.3907737184126745e-07 -2.781550278996292e-07 1.0 0.57421875 0.44921875 +15 1.3907737184126745e-07 -2.781550278996292e-07 1.0 0.75 0.44921875 +13 1.5894576677055738e-07 -1.0 -6.3578261233487865e-07 0.224609375 0.47265625 +10 1.5894576677055738e-07 -1.0 -6.3578261233487865e-07 0.224609375 0.44921875 +11 1.5894576677055738e-07 -1.0 -6.3578261233487865e-07 0.048828125 0.44921875 +9 1.5894576677055738e-07 -1.0 -6.3578261233487865e-07 0.224609375 0.47265625 +10 1.5894576677055738e-07 -1.0 -6.3578261233487865e-07 0.048828125 0.44921875 +9 1.5894576677055738e-07 -1.0 -6.3578261233487865e-07 0.048828125 0.494140625 +8 -1.1920922560193503e-07 -1.0 -2.8610231765924254e-06 0.75 0.494140625 +12 -1.1920922560193503e-07 -1.0 -2.8610231765924254e-06 0.75 0.44921875 +13 -1.1920922560193503e-07 -1.0 -2.8610231765924254e-06 0.57421875 0.44921875 +15 -1.1920922560193503e-07 -1.0 -2.8610231765924254e-06 0.75 0.494140625 +12 -1.1920922560193503e-07 -1.0 -2.8610231765924254e-06 0.57421875 0.44921875 +15 -1.1920922560193503e-07 -1.0 -2.8610231765924254e-06 0.57421875 0.47265625 +14 -0.12403479218482971 0.0 0.99227786064147949 0.25 0.634765625 +10 -0.12403479218482971 0.0 0.99227786064147949 0.103515625 0.634765625 +8 -0.12403479218482971 0.0 0.99227786064147949 0.103515625 0.92578125 +16 -0.12403479218482971 0.0 0.99227786064147949 0.25 0.634765625 +10 -0.12403479218482971 0.0 0.99227786064147949 0.103515625 0.92578125 +16 -0.12403479218482971 0.0 0.99227786064147949 0.25 0.92578125 +17 0.12403473258018494 0.0 0.99227786064147949 0.6875 0.634765625 +12 0.12403473258018494 0.0 0.99227786064147949 0.541015625 0.634765625 +14 0.12403473258018494 0.0 0.99227786064147949 0.541015625 0.92578125 +19 0.12403473258018494 0.0 0.99227786064147949 0.6875 0.634765625 +12 0.12403473258018494 0.0 0.99227786064147949 0.541015625 0.92578125 +19 0.12403473258018494 0.0 0.99227786064147949 0.6875 0.92578125 +18 -1.1920930376163597e-07 -1.0 -9.5367454377992544e-07 0.1015625 0.962890625 +16 -1.1920930376163597e-07 -1.0 -9.5367454377992544e-07 0.689453125 0.962890625 +18 -1.1920930376163597e-07 -1.0 -9.5367454377992544e-07 0.541015625 0.92578125 +19 -1.1920930376163597e-07 -1.0 -9.5367454377992544e-07 0.1015625 0.962890625 +16 -1.1920930376163597e-07 -1.0 -9.5367454377992544e-07 0.541015625 0.92578125 +19 -1.1920930376163597e-07 -1.0 -9.5367454377992544e-07 0.25 0.92578125 +17 0.0 -0.0 1.0 0.990234375 0.40234375 +24 0.0 -0.0 1.0 0.990234375 0.32421875 +27 0.0 -0.0 1.0 0.833984375 0.32421875 +26 0.0 -0.0 1.0 0.990234375 0.40234375 +24 0.0 -0.0 1.0 0.833984375 0.32421875 +26 0.0 -0.0 1.0 0.833984375 0.40234375 +25 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.990234375 0.421875 +20 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.990234375 0.40234375 +24 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.833984375 0.40234375 +25 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.990234375 0.421875 +20 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.833984375 0.40234375 +25 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.814453125 0.421875 +21 0.0 -0.70710676908493042 0.70710676908493042 0.806640625 0.40234375 +21 0.0 -0.70710676908493042 0.70710676908493042 0.833984375 0.40234375 +25 0.0 -0.70710676908493042 0.70710676908493042 0.833984375 0.32421875 +26 0.0 -0.70710676908493042 0.70710676908493042 0.806640625 0.40234375 +21 0.0 -0.70710676908493042 0.70710676908493042 0.833984375 0.32421875 +26 0.0 -0.70710676908493042 0.70710676908493042 0.806640625 0.32421875 +22 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.814453125 0.3046875 +22 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.833984375 0.32421875 +26 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.990234375 0.32421875 +27 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.814453125 0.3046875 +22 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.990234375 0.32421875 +27 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.990234375 0.3046875 +23 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.814453125 0.71484375 +33 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.833984375 0.734375 +29 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.990234375 0.734375 +28 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.814453125 0.71484375 +33 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.990234375 0.734375 +28 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.990234375 0.71484375 +32 0.0 -0.70710676908493042 0.70710676908493042 0.806640625 0.8125 +34 0.0 -0.70710676908493042 0.70710676908493042 0.833984375 0.8125 +30 0.0 -0.70710676908493042 0.70710676908493042 0.833984375 0.734375 +29 0.0 -0.70710676908493042 0.70710676908493042 0.806640625 0.8125 +34 0.0 -0.70710676908493042 0.70710676908493042 0.833984375 0.734375 +29 0.0 -0.70710676908493042 0.70710676908493042 0.806640625 0.734375 +33 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.990234375 0.83203125 +35 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.990234375 0.8125 +31 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.833984375 0.8125 +30 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.990234375 0.83203125 +35 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.833984375 0.8125 +30 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.814453125 0.83203125 +34 0.0 -0.0 1.0 0.990234375 0.8125 +31 0.0 -0.0 1.0 0.990234375 0.734375 +28 0.0 -0.0 1.0 0.833984375 0.734375 +29 0.0 -0.0 1.0 0.990234375 0.8125 +31 0.0 -0.0 1.0 0.833984375 0.734375 +29 0.0 -0.0 1.0 0.833984375 0.8125 +30 0.0 -0.0 1.0 0.990234375 0.265625 +40 0.0 -0.0 1.0 0.990234375 0.1875 +43 0.0 -0.0 1.0 0.833984375 0.1875 +42 0.0 -0.0 1.0 0.990234375 0.265625 +40 0.0 -0.0 1.0 0.833984375 0.1875 +42 0.0 -0.0 1.0 0.833984375 0.265625 +41 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.990234375 0.28515625 +36 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.990234375 0.265625 +40 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.833984375 0.265625 +41 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.990234375 0.28515625 +36 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.833984375 0.265625 +41 1.0 -1.1219697881870161e-07 5.6098489409350805e-08 0.814453125 0.28515625 +37 0.0 -0.70710676908493042 0.70710676908493042 0.806640625 0.265625 +37 0.0 -0.70710676908493042 0.70710676908493042 0.833984375 0.265625 +41 0.0 -0.70710676908493042 0.70710676908493042 0.833984375 0.1875 +42 0.0 -0.70710676908493042 0.70710676908493042 0.806640625 0.265625 +37 0.0 -0.70710676908493042 0.70710676908493042 0.833984375 0.1875 +42 0.0 -0.70710676908493042 0.70710676908493042 0.806640625 0.1875 +38 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.814453125 0.16796875 +38 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.833984375 0.1875 +42 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.990234375 0.1875 +43 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.814453125 0.16796875 +38 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.990234375 0.1875 +43 -1.0 1.1219697881870161e-07 -1.009772859106306e-06 0.990234375 0.16796875 +39 0.0 0.0 1.0 0.990234375 0.94921875 +48 0.0 0.0 1.0 0.990234375 0.87109375 +51 0.0 0.0 1.0 0.833984375 0.87109375 +50 0.0 0.0 1.0 0.990234375 0.94921875 +48 0.0 0.0 1.0 0.833984375 0.87109375 +50 0.0 0.0 1.0 0.833984375 0.94921875 +49 4.4878791527480644e-07 1.0 2.2439395763740322e-07 0.990234375 0.96875 +44 4.4878791527480644e-07 1.0 2.2439395763740322e-07 0.990234375 0.94921875 +48 4.4878791527480644e-07 1.0 2.2439395763740322e-07 0.833984375 0.94921875 +49 4.4878791527480644e-07 1.0 2.2439395763740322e-07 0.990234375 0.96875 +44 4.4878791527480644e-07 1.0 2.2439395763740322e-07 0.833984375 0.94921875 +49 4.4878791527480644e-07 1.0 2.2439395763740322e-07 0.814453125 0.96875 +45 0.70710676908493042 0.0 0.70710676908493042 0.806640625 0.94921875 +45 0.70710676908493042 0.0 0.70710676908493042 0.833984375 0.94921875 +49 0.70710676908493042 0.0 0.70710676908493042 0.833984375 0.87109375 +50 0.70710676908493042 0.0 0.70710676908493042 0.806640625 0.94921875 +45 0.70710676908493042 0.0 0.70710676908493042 0.833984375 0.87109375 +50 0.70710676908493042 0.0 0.70710676908493042 0.806640625 0.87109375 +46 -4.4878791527480644e-07 -1.0 -2.2439395763740322e-07 0.814453125 0.8515625 +46 -4.4878791527480644e-07 -1.0 -2.2439395763740322e-07 0.833984375 0.87109375 +50 -4.4878791527480644e-07 -1.0 -2.2439395763740322e-07 0.990234375 0.87109375 +51 -4.4878791527480644e-07 -1.0 -2.2439395763740322e-07 0.814453125 0.8515625 +46 -4.4878791527480644e-07 -1.0 -2.2439395763740322e-07 0.990234375 0.87109375 +51 -4.4878791527480644e-07 -1.0 -2.2439395763740322e-07 0.990234375 0.8515625 +47 8.9757583054961287e-07 1.0 -4.4878791527480644e-07 0.814453125 0.578125 +57 8.9757583054961287e-07 1.0 -4.4878791527480644e-07 0.833984375 0.59765625 +53 8.9757583054961287e-07 1.0 -4.4878791527480644e-07 0.990234375 0.59765625 +52 8.9757583054961287e-07 1.0 -4.4878791527480644e-07 0.814453125 0.578125 +57 8.9757583054961287e-07 1.0 -4.4878791527480644e-07 0.990234375 0.59765625 +52 8.9757583054961287e-07 1.0 -4.4878791527480644e-07 0.990234375 0.578125 +56 -0.70710676908493042 0.0 0.70710676908493042 0.806640625 0.67578125 +58 -0.70710676908493042 0.0 0.70710676908493042 0.833984375 0.67578125 +54 -0.70710676908493042 0.0 0.70710676908493042 0.833984375 0.59765625 +53 -0.70710676908493042 0.0 0.70710676908493042 0.806640625 0.67578125 +58 -0.70710676908493042 0.0 0.70710676908493042 0.833984375 0.59765625 +53 -0.70710676908493042 0.0 0.70710676908493042 0.806640625 0.59765625 +57 -1.3463637742461287e-06 -1.0 6.7318188712306437e-07 0.990234375 0.6953125 +59 -1.3463637742461287e-06 -1.0 6.7318188712306437e-07 0.990234375 0.67578125 +55 -1.3463637742461287e-06 -1.0 6.7318188712306437e-07 0.833984375 0.67578125 +54 -1.3463637742461287e-06 -1.0 6.7318188712306437e-07 0.990234375 0.6953125 +59 -1.3463637742461287e-06 -1.0 6.7318188712306437e-07 0.833984375 0.67578125 +54 -1.3463637742461287e-06 -1.0 6.7318188712306437e-07 0.814453125 0.6953125 +58 -0.0 0.0 1.0 0.990234375 0.67578125 +55 -0.0 0.0 1.0 0.990234375 0.59765625 +52 -0.0 0.0 1.0 0.833984375 0.59765625 +53 -0.0 0.0 1.0 0.990234375 0.67578125 +55 -0.0 0.0 1.0 0.833984375 0.59765625 +53 -0.0 0.0 1.0 0.833984375 0.67578125 +54 -0.0 0.0 1.0 0.990234375 0.5390625 +64 -0.0 0.0 1.0 0.990234375 0.4609375 +67 -0.0 0.0 1.0 0.833984375 0.4609375 +66 -0.0 0.0 1.0 0.990234375 0.5390625 +64 -0.0 0.0 1.0 0.833984375 0.4609375 +66 -0.0 0.0 1.0 0.833984375 0.5390625 +65 -1.3463637742461287e-06 -1.0 6.7318188712306437e-07 0.990234375 0.55859375 +60 -1.3463637742461287e-06 -1.0 6.7318188712306437e-07 0.990234375 0.5390625 +64 -1.3463637742461287e-06 -1.0 6.7318188712306437e-07 0.833984375 0.5390625 +65 -1.3463637742461287e-06 -1.0 6.7318188712306437e-07 0.990234375 0.55859375 +60 -1.3463637742461287e-06 -1.0 6.7318188712306437e-07 0.833984375 0.5390625 +65 -1.3463637742461287e-06 -1.0 6.7318188712306437e-07 0.814453125 0.55859375 +61 -0.70710676908493042 0.0 0.70710676908493042 0.806640625 0.5390625 +61 -0.70710676908493042 0.0 0.70710676908493042 0.833984375 0.5390625 +65 -0.70710676908493042 0.0 0.70710676908493042 0.833984375 0.4609375 +66 -0.70710676908493042 0.0 0.70710676908493042 0.806640625 0.5390625 +61 -0.70710676908493042 0.0 0.70710676908493042 0.833984375 0.4609375 +66 -0.70710676908493042 0.0 0.70710676908493042 0.806640625 0.4609375 +62 8.9757583054961287e-07 1.0 -4.4878791527480644e-07 0.814453125 0.44140625 +62 8.9757583054961287e-07 1.0 -4.4878791527480644e-07 0.833984375 0.4609375 +66 8.9757583054961287e-07 1.0 -4.4878791527480644e-07 0.990234375 0.4609375 +67 8.9757583054961287e-07 1.0 -4.4878791527480644e-07 0.814453125 0.44140625 +62 8.9757583054961287e-07 1.0 -4.4878791527480644e-07 0.990234375 0.4609375 +67 8.9757583054961287e-07 1.0 -4.4878791527480644e-07 0.990234375 0.44140625 +63 -4.4878791527480644e-07 -1.0 -2.2439395763740322e-07 0.814453125 0.03125 +73 -4.4878791527480644e-07 -1.0 -2.2439395763740322e-07 0.833984375 0.05078125 +69 -4.4878791527480644e-07 -1.0 -2.2439395763740322e-07 0.990234375 0.05078125 +68 -4.4878791527480644e-07 -1.0 -2.2439395763740322e-07 0.814453125 0.03125 +73 -4.4878791527480644e-07 -1.0 -2.2439395763740322e-07 0.990234375 0.05078125 +68 -4.4878791527480644e-07 -1.0 -2.2439395763740322e-07 0.990234375 0.03125 +72 0.70710676908493042 0.0 0.70710676908493042 0.806640625 0.12890625 +74 0.70710676908493042 0.0 0.70710676908493042 0.833984375 0.12890625 +70 0.70710676908493042 0.0 0.70710676908493042 0.833984375 0.05078125 +69 0.70710676908493042 0.0 0.70710676908493042 0.806640625 0.12890625 +74 0.70710676908493042 0.0 0.70710676908493042 0.833984375 0.05078125 +69 0.70710676908493042 0.0 0.70710676908493042 0.806640625 0.05078125 +73 4.4878791527480644e-07 1.0 2.2439395763740322e-07 0.990234375 0.1484375 +75 4.4878791527480644e-07 1.0 2.2439395763740322e-07 0.990234375 0.12890625 +71 4.4878791527480644e-07 1.0 2.2439395763740322e-07 0.833984375 0.12890625 +70 4.4878791527480644e-07 1.0 2.2439395763740322e-07 0.990234375 0.1484375 +75 4.4878791527480644e-07 1.0 2.2439395763740322e-07 0.833984375 0.12890625 +70 4.4878791527480644e-07 1.0 2.2439395763740322e-07 0.814453125 0.1484375 +74 0.0 0.0 1.0 0.990234375 0.12890625 +71 0.0 0.0 1.0 0.990234375 0.05078125 +68 0.0 0.0 1.0 0.833984375 0.05078125 +69 0.0 0.0 1.0 0.990234375 0.12890625 +71 0.0 0.0 1.0 0.833984375 0.05078125 +69 0.0 0.0 1.0 0.833984375 0.12890625 +70 -5.6843412084544437e-14 -4.1723251342773438e-07 1.0 0.541015625 0.48828125 +1 -5.6843412084544437e-14 -4.1723251342773438e-07 1.0 0.25 0.48828125 +2 -5.6843412084544437e-14 -4.1723251342773438e-07 1.0 0.25 0.634765625 +10 -5.6843412084544437e-14 -4.1723251342773438e-07 1.0 0.541015625 0.48828125 +1 -5.6843412084544437e-14 -4.1723251342773438e-07 1.0 0.25 0.634765625 +10 -5.6843412084544437e-14 -4.1723251342773438e-07 1.0 0.541015625 0.634765625 +14 0.0 0.0 1.0 0.25 0.634765625 +10 0.0 0.0 1.0 0.25 0.92578125 +17 0.0 0.0 1.0 0.541015625 0.92578125 +19 0.0 0.0 1.0 0.25 0.634765625 +10 0.0 0.0 1.0 0.541015625 0.92578125 +19 0.0 0.0 1.0 0.541015625 0.634765625 +14 \ No newline at end of file Added: trunk/racer/data/generic/start-marker.png =================================================================== (Binary files differ) Property changes on: trunk/racer/data/generic/start-marker.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/racer_editor/View.cpp =================================================================== --- trunk/racer_editor/View.cpp 2010-06-18 16:36:33 UTC (rev 287) +++ trunk/racer_editor/View.cpp 2010-06-20 18:12:15 UTC (rev 288) @@ -28,6 +28,7 @@ #include <libtrack/document/InsertTrackAttachmentDelta.h> #include <libtrack/edit_base/TrackAttachmentHandle.h> #include <libtrack/TrackBooster.h> +#include <libtrack/StartingPosition.h> const btScalar back_depth = 5000.0; const btScalar front_depth = -5000.0; @@ -881,6 +882,23 @@ new Document::SetStartEdgeDelta(Document::StartEdgeFinder(), edge->get_name()) ); m_signal_command.emit(delta); + + // Add some starting positions to the edge. + /// @todo remove other starting positions. + /// @todo Make all these one document delta. + for (int i = 0; i < 30; i++) + { + boost::shared_ptr<Track::TrackAttachment> pos(new Track::StartingPosition(29-i)); + pos->set_lateral_position((i % 2 - 0.5) * 1.25); + pos->set_t_position(0.03125 * i + 0.0625); + pos->edge_name = edge->get_name(); + + boost::shared_ptr<Document::DocumentDelta> delta + ( + new Document::InsertTrackAttachmentDelta(pos) + ); + m_signal_command.emit(delta); + } } void View::on_add_booster() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-18 16:36:39
|
Revision: 287 http://racer.svn.sourceforge.net/racer/?rev=287&view=rev Author: jlegg Date: 2010-06-18 16:36:33 +0000 (Fri, 18 Jun 2010) Log Message: ----------- Fix include filename. Modified Paths: -------------- trunk/libtrack/document/MoveTrackAttachmentDelta.cpp Modified: trunk/libtrack/document/MoveTrackAttachmentDelta.cpp =================================================================== --- trunk/libtrack/document/MoveTrackAttachmentDelta.cpp 2010-06-18 04:10:37 UTC (rev 286) +++ trunk/libtrack/document/MoveTrackAttachmentDelta.cpp 2010-06-18 16:36:33 UTC (rev 287) @@ -9,7 +9,7 @@ (at your option) any later version. */ -#include "MoveTrackAttachment.h" +#include "MoveTrackAttachmentDelta.h" #include <vector> #include <boost/shared_ptr.hpp> #include "../Track.h" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-18 04:10:43
|
Revision: 286 http://racer.svn.sourceforge.net/racer/?rev=286&view=rev Author: jlegg Date: 2010-06-18 04:10:37 +0000 (Fri, 18 Jun 2010) Log Message: ----------- Give theme1 a higher contrast sky box. Modified Paths: -------------- trunk/racer/data/theme1/sky.blend trunk/racer/data/theme1/sky.png.+x trunk/racer/data/theme1/sky.png.+y trunk/racer/data/theme1/sky.png.+z trunk/racer/data/theme1/sky.png.-x trunk/racer/data/theme1/sky.png.-y trunk/racer/data/theme1/sky.png.-z Modified: trunk/racer/data/theme1/sky.blend =================================================================== (Binary files differ) Modified: trunk/racer/data/theme1/sky.png.+x =================================================================== (Binary files differ) Modified: trunk/racer/data/theme1/sky.png.+y =================================================================== (Binary files differ) Modified: trunk/racer/data/theme1/sky.png.+z =================================================================== (Binary files differ) Modified: trunk/racer/data/theme1/sky.png.-x =================================================================== (Binary files differ) Modified: trunk/racer/data/theme1/sky.png.-y =================================================================== (Binary files differ) Modified: trunk/racer/data/theme1/sky.png.-z =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-17 19:53:19
|
Revision: 285 http://racer.svn.sourceforge.net/racer/?rev=285&view=rev Author: jlegg Date: 2010-06-17 19:53:12 +0000 (Thu, 17 Jun 2010) Log Message: ----------- Make flames appear behind the thrusters on the cars when accelerating. Modified Paths: -------------- trunk/racer/Engine/GameObjects/Car.cpp trunk/racer/Engine/GameObjects/Car.h trunk/racer/Engine/GameScene.cpp trunk/racer/Engine/GameScene.h Added Paths: ----------- trunk/racer/data/generic/engine_flame trunk/racer/data/generic/engine_flame.blend trunk/racer/data/generic/flame_grad.png trunk/racer/data/generic/flame_grad.svg Modified: trunk/racer/Engine/GameObjects/Car.cpp =================================================================== --- trunk/racer/Engine/GameObjects/Car.cpp 2010-06-15 23:13:26 UTC (rev 284) +++ trunk/racer/Engine/GameObjects/Car.cpp 2010-06-17 19:53:12 UTC (rev 285) @@ -133,7 +133,17 @@ std::make_pair("data/cars/2/mesh", mesh_generator_bits)); } + TextureStore::get_instance().check_load(-1, "data/generic/flame_grad.png"); + flame_texture = TextureStore::get_instance().get(-1); + flame_texture->bind(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); + + MeshStore::get_instance().check_load(-1, + std::make_pair("data/generic/engine_flame", + 0)); + flame_mesh = MeshStore::get_instance().get(-1); mesh = MeshStore::get_instance().get(car_model); + texture = TextureStore::get_instance().get(car_model); btConvexHullShape* shape = mesh->get_convex_hull_shape(); shape->setMargin(btScalar(0.04)); btScalar mass(500.0); @@ -192,8 +202,7 @@ void Car::draw() const { if (m_removed) return; - ResourceHandler<Track::Texture, int, std::string>::get_instance() - .get(car_model)->bind(); + texture->bind(); glPushMatrix(); // get the position and angle from the physics engine. btTransform transform; @@ -218,6 +227,63 @@ glColor3ub(255, 255, 255); glEnable(GL_LIGHTING); } + // engine flames + // The flame is not affected by lighting, double sided, doesn't + // change the depth buffer, doesn't darken the scene behind + // when blended over, and reflects the textures alpha value. + glDisable(GL_LIGHTING); + glEnable(GL_BLEND); + glDisable(GL_CULL_FACE); + glBlendFunc(GL_SRC_ALPHA, GL_ONE); + glDepthMask(GL_FALSE); + glMatrixMode(GL_TEXTURE); + glPushMatrix(); + // Move the flame effect randomly to make it flicker. + glTranslatef(0.0, float(std::rand()%256) * 0.0004, 0.0); + // intensity is dependant on how hard you are accelerating. + // there is no flame if not accelerating, breaking, or going + // backwards. + // The flame is brighter just after a boost. + glColor4f(1.0, 1.0, 1.0, ((100.0 - boost_timer) / 200.0 + 0.5) * (force.getY() / 32768.0)); + flame_texture->bind(); + + glMatrixMode(GL_MODELVIEW); + float b_scale = (100.0 - boost_timer) * 0.05 + 1.0; + switch (car_model) + { + case 0: + glPushMatrix(); + glTranslatef(0.046, -0.231, 0.032); + glScalef(0.03, 0.03*b_scale, 0.03); + flame_mesh->draw(); + glPopMatrix(); + glPushMatrix(); + glTranslatef(-0.046, -0.231, 0.032); + glScalef(0.03, 0.03*b_scale, 0.03); + flame_mesh->draw(); + glPopMatrix(); + break; + case 1: + glPushMatrix(); + glTranslatef(0.151, -0.295, 0.0); + glScalef(0.047, 0.047*b_scale, 0.047); + flame_mesh->draw(); + glPopMatrix(); + glPushMatrix(); + glTranslatef(-0.151, -0.295, 0.0); + glScalef(0.047, 0.047*b_scale, 0.047); + flame_mesh->draw(); + glPopMatrix(); + break; + } + // reset OpenGL settings. + glMatrixMode(GL_TEXTURE); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glEnable(GL_LIGHTING); + glEnable(GL_CULL_FACE); + glDepthMask(GL_TRUE); + glDisable(GL_BLEND); glPopMatrix(); #ifndef NDEBUG glDisable(GL_TEXTURE_2D); Modified: trunk/racer/Engine/GameObjects/Car.h =================================================================== --- trunk/racer/Engine/GameObjects/Car.h 2010-06-15 23:13:26 UTC (rev 284) +++ trunk/racer/Engine/GameObjects/Car.h 2010-06-17 19:53:12 UTC (rev 285) @@ -101,8 +101,12 @@ int get_facing_backwards() const; private: // graphical representation - // Graphics::Texture *texture; + Track::Texture *texture; Track::BulletMesh *mesh; + /// The texture used for the engine flame effect. + Track::Texture *flame_texture; + /// The mesh used for the engine flame effect. + Track::BulletMesh *flame_mesh; // physical representation Physics::World & world; // btCollisionShape* shape; Modified: trunk/racer/Engine/GameScene.cpp =================================================================== --- trunk/racer/Engine/GameScene.cpp 2010-06-15 23:13:26 UTC (rev 284) +++ trunk/racer/Engine/GameScene.cpp 2010-06-17 19:53:12 UTC (rev 285) @@ -501,19 +501,10 @@ glLoadIdentity(); gluPerspective(65.0, aspect, 0.03, 1000.0); glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - car_cameras[player]->full_transform(); - car_cameras[player]->update_occlusion_tester(occlusion_tester, aspect); glClear(GL_DEPTH_BUFFER_BIT); - draw_world(); + draw_world(player, aspect); - glLoadIdentity(); - // draw the sky box with just camera rotation - car_cameras[player]->rotation_transform(); - glDisable(GL_FOG); - sky.draw(); - glMatrixMode(GL_PROJECTION); glLoadIdentity(); if (aspect > 1.0) @@ -530,21 +521,41 @@ draw_hud(player); } -void GameScene::draw_world() +void GameScene::draw_world(unsigned int player, float aspect) { - track.get_lighting().prepare_render(); + glLoadIdentity(); + car_cameras[player]->full_transform(); + car_cameras[player]->update_occlusion_tester(occlusion_tester, aspect); - // cars - for (unsigned int i = 0; i < cars.size(); i++) - { - cars[i]->conditional_draw(occlusion_tester); - } + // set up light and fog + track.get_lighting().prepare_render(); + if (!show_debug) { const Track::Path & path = track.get_path(); path.conditional_draw(occlusion_tester); } + + // draw sky box using only the camera rotation + // (no translation to fake infinite distance) + glDisable(GL_FOG); glDisable(GL_LIGHTING); + glPushMatrix(); + glLoadIdentity(); + car_cameras[player]->rotation_transform(); + sky.draw(); + glPopMatrix(); + if (track.get_lighting().get_fog().enabled) glEnable(GL_FOG); + glEnable(GL_LIGHTING); + + // Cars + // Need to be drawn over track & sky because of the blended engine flame. + for (unsigned int i = 0; i < cars.size(); i++) + { + cars[i]->conditional_draw(occlusion_tester); + } + glDisable(GL_LIGHTING); + glDisable(GL_FOG); // (Debug) draw the ai navigation graph. #ifndef NDEBUG if (show_debug) Modified: trunk/racer/Engine/GameScene.h =================================================================== --- trunk/racer/Engine/GameScene.h 2010-06-15 23:13:26 UTC (rev 284) +++ trunk/racer/Engine/GameScene.h 2010-06-17 19:53:12 UTC (rev 285) @@ -110,7 +110,7 @@ * viewport. */ void draw_for_player(unsigned int player, float aspect); - void draw_world(); + void draw_world(unsigned int player, float aspect); void draw_hud(unsigned int player); void draw_speedometer(unsigned int player); void draw_lap_info(unsigned int player); Added: trunk/racer/data/generic/engine_flame =================================================================== --- trunk/racer/data/generic/engine_flame (rev 0) +++ trunk/racer/data/generic/engine_flame 2010-06-17 19:53:12 UTC (rev 285) @@ -0,0 +1,1533 @@ +240 +0.70710676908493042 -5.9604644775390625e-08 0.70710676908493042 +0.92387950420379639 -2.9802322387695312e-08 0.38268342614173889 +1.0 0.0 7.5497901264043321e-08 +0.92387956380844116 2.9802322387695312e-08 -0.38268327713012695 +0.70710676908493042 5.9604644775390625e-08 -0.70710676908493042 +0.38268327713012695 5.9604644775390625e-08 -0.92387962341308594 +-3.2584136988589307e-07 0.0 -1.0 +-0.38268387317657471 5.9604644775390625e-08 -0.92387932538986206 +-0.70710724592208862 5.9604644775390625e-08 -0.70710635185241699 +-0.92387986183166504 2.9802322387695312e-08 -0.3826826810836792 +-1.0 0.0 9.6559915618854575e-07 +-0.92387908697128296 -2.9802322387695312e-08 0.38268446922302246 +-0.70710587501525879 -5.9604644775390625e-08 0.70710766315460205 +-0.38268208503723145 -5.9604644775390625e-08 0.92388010025024414 +1.6053570561780361e-06 0.0 1.0 +0.38268506526947021 -5.9604644775390625e-08 0.92387884855270386 +0.088387370109558105 -4.0 0.088386774063110352 +0.11548388004302979 -4.0 0.047833681106567383 +0.12499880790710449 -4.0 -1.9073486328125e-06 +0.11548370122909546 -4.0 -0.047837257385253906 +0.088387072086334229 -4.0 -0.088389873504638672 +0.047834247350692749 -4.0 -0.11548614501953125 +-1.0670171377569204e-06 -4.0 -0.12500143051147461 +-0.047836422920227051 -4.0 -0.11548662185668945 +-0.088389337062835693 -4.0 -0.088389873504638672 +-0.11548596620559692 -4.0 -0.047837257385253906 +-0.12500119209289551 -4.0 -1.9073486328125e-06 +-0.11548638343811035 -3.9999997615814209 0.047833442687988281 +-0.088390052318572998 -4.0 0.088386297225952148 +-0.047837376594543457 -4.0 0.11548328399658203 +-2.0932079678459559e-06 -4.0 0.12499856948852539 +0.04783332347869873 -4.0 0.11548399925231934 +0.71025484800338745 -0.16679924726486206 0.71025454998016357 +0.72944295406341553 -0.37785530090332031 0.72944247722625732 +0.76020908355712891 -0.61540663242340088 0.76020848751068115 +0.77524751424789429 -0.86117172241210938 0.77524656057357788 +0.74631369113922119 -1.1000480651855469 0.74631243944168091 +0.66321039199829102 -1.3201124668121338 0.66320914030075073 +0.52827239036560059 -1.6228703260421753 0.52827119827270508 +0.35225185751914978 -2.097109317779541 0.35225093364715576 +0.23452046513557434 -2.6371185779571533 0.23451972007751465 +0.1297917366027832 -3.5691490173339844 0.1297910213470459 +0.099347293376922607 -3.8517215251922607 0.099346637725830078 +0.92799258232116699 -0.16679924726486206 0.38438695669174194 +0.95306301116943359 -0.37785536050796509 0.39477124810218811 +0.99326086044311523 -0.61540663242340088 0.4114215075969696 +1.0129092931747437 -0.86117172241210938 0.41955992579460144 +0.9751054048538208 -1.1000480651855469 0.40390080213546753 +0.86652576923370361 -1.3201124668121338 0.358925461769104 +0.69022095203399658 -1.6228702068328857 0.28589749336242676 +0.4602392315864563 -2.097109317779541 0.1906360387802124 +0.30641579627990723 -2.6371188163757324 0.12692022323608398 +0.16958129405975342 -3.5691490173339844 0.070241689682006836 +0.12980365753173828 -3.8517215251922607 0.053765296936035156 +1.0044519901275635 -0.16679921746253967 -1.0430812835693359e-07 +1.0315878391265869 -0.37785530090332031 -2.9802322387695312e-07 +1.0750976800918579 -0.61540663242340088 -5.3644180297851562e-07 +1.0963649749755859 -0.8611716628074646 -7.7486038208007812e-07 +1.0554461479187012 -1.1000480651855469 -1.0728836059570312e-06 +0.93792045116424561 -1.3201124668121338 -1.3113021850585938e-06 +0.74708938598632812 -1.6228703260421753 -1.5497207641601562e-06 +0.49815911054611206 -2.0971095561981201 -1.6689300537109375e-06 +0.33166193962097168 -2.6371190547943115 -1.6689300537109375e-06 +0.18355339765548706 -3.5691490173339844 -1.6689300537109375e-06 +0.14049851894378662 -3.8517212867736816 -1.6689300537109375e-06 +0.92799258232116699 -0.16679920256137848 -0.38438710570335388 +0.95306283235549927 -0.37785527110099792 -0.39477169513702393 +0.99326062202453613 -0.61540663242340088 -0.41142237186431885 +1.012908935546875 -0.8611716628074646 -0.41956108808517456 +0.97510480880737305 -1.1000480651855469 -0.40390253067016602 +0.86652523279190063 -1.3201124668121338 -0.35892772674560547 +0.6902204155921936 -1.6228704452514648 -0.28590011596679688 +0.46023872494697571 -2.0971097946166992 -0.19063878059387207 +0.30641543865203857 -2.6371192932128906 -0.1269233226776123 +0.16958105564117432 -3.5691494941711426 -0.070244789123535156 +0.12980353832244873 -3.8517215251922607 -0.053768396377563477 +0.7102547287940979 -0.16679918766021729 -0.71025490760803223 +0.72944271564483643 -0.37785527110099792 -0.72944283485412598 +0.76020872592926025 -0.6154065728187561 -0.76020896434783936 +0.77524691820144653 -0.86117160320281982 -0.77524739503860474 +0.74631297588348389 -1.1000480651855469 -0.74631369113922119 +0.66320955753326416 -1.3201124668121338 -0.66321086883544922 +0.52827167510986328 -1.6228706836700439 -0.52827310562133789 +0.35225123167037964 -2.0971102714538574 -0.35225319862365723 +0.23452001810073853 -2.6371197700500488 -0.23452234268188477 +0.1297914981842041 -3.5691490173339844 -0.12979412078857422 +0.099347054958343506 -3.8517212867736816 -0.099349737167358398 +0.38438701629638672 -0.16679918766021729 -0.92799282073974609 +0.39477148652076721 -0.37785524129867554 -0.95306301116943359 +0.41142195463180542 -0.6154065728187561 -0.99326086044311523 +0.41956064105033875 -0.86117160320281982 -1.0129091739654541 +0.403901606798172 -1.1000480651855469 -0.97510552406311035 +0.35892641544342041 -1.3201124668121338 -0.86652636528015137 +0.28589841723442078 -1.622870922088623 -0.69022178649902344 +0.19063670933246613 -2.0971105098724365 -0.46024036407470703 +0.12692096829414368 -2.637120246887207 -0.30641746520996094 +0.070242166519165039 -3.5691494941711426 -0.16958355903625488 +0.053765743970870972 -3.8517215251922607 -0.1298060417175293 +-2.3046898434131435e-07 -0.16679918766021729 -1.0044519901275635 +-1.3515953867226926e-07 -0.37785524129867554 -1.0315879583358765 +-4.1967027186728956e-08 -0.6154065728187561 -1.0750976800918579 +1.7413171349289769e-08 -0.86117160320281982 -1.0963649749755859 +2.100847495967173e-09 -1.1000480651855469 -1.0554466247558594 +-1.0742365930127562e-07 -1.3201124668121338 -0.93792128562927246 +-3.036861357941234e-07 -1.6228711605072021 -0.74709057807922363 +-5.4663001947119483e-07 -2.0971107482910156 -0.49816060066223145 +-7.2353179803030798e-07 -2.637120246887207 -0.33166408538818359 +-9.688486670711427e-07 -3.5691494941711426 -0.18355584144592285 +-1.0452162086949102e-06 -3.8517215251922607 -0.14050102233886719 +-0.38438743352890015 -0.16679918766021729 -0.92799258232116699 +-0.39477178454399109 -0.37785530090332031 -0.95306289196014404 +-0.41142210364341736 -0.6154065728187561 -0.99326074123382568 +-0.41956058144569397 -0.86117160320281982 -1.0129091739654541 +-0.40390169620513916 -1.1000480651855469 -0.97510576248168945 +-0.35892662405967712 -1.3201124668121338 -0.86652636528015137 +-0.28589901328086853 -1.6228712797164917 -0.69022190570831299 +-0.19063779711723328 -2.0971109867095947 -0.46024060249328613 +-0.12692245841026306 -2.637120246887207 -0.30641770362854004 +-0.070244133472442627 -3.5691494941711426 -0.16958379745483398 +-0.053767859935760498 -3.8517212867736816 -0.1298062801361084 +-0.71025514602661133 -0.16679918766021729 -0.71025466918945312 +-0.72944295406341553 -0.37785527110099792 -0.72944271564483643 +-0.7602088451385498 -0.6154065728187561 -0.76020896434783936 +-0.77524685859680176 -0.86117160320281982 -0.77524763345718384 +-0.74631297588348389 -1.1000480651855469 -0.74631404876708984 +-0.66320997476577759 -1.3201124668121338 -0.66321110725402832 +-0.52827239036560059 -1.6228713989257812 -0.52827370166778564 +-0.35225236415863037 -2.0971109867095947 -0.35225343704223633 +-0.23452156782150269 -2.6371204853057861 -0.23452258110046387 +-0.12979346513748169 -3.5691494941711426 -0.12979435920715332 +-0.09934920072555542 -3.8517215251922607 -0.0993499755859375 +-0.92799288034439087 -0.16679920256137848 -0.38438668847084045 +-0.95306313037872314 -0.37785527110099792 -0.3947715163230896 +-0.99326080083847046 -0.61540663242340088 -0.4114222526550293 +-1.0129091739654541 -0.8611716628074646 -0.41956132650375366 +-0.9751051664352417 -1.1000480651855469 -0.40390276908874512 +-0.86652582883834839 -1.3201124668121338 -0.35892808437347412 +-0.69022130966186523 -1.6228712797164917 -0.28590059280395508 +-0.46023985743522644 -2.0971109867095947 -0.19063925743103027 +-0.30641710758209229 -2.6371204853057861 -0.12692356109619141 +-0.16958314180374146 -3.5691499710083008 -0.070245027542114258 +-0.12980574369430542 -3.8517215251922607 -0.053768634796142578 +-1.0044519901275635 -0.16679921746253967 5.6624412536621094e-07 +-1.0315879583358765 -0.37785530090332031 1.7881393432617188e-07 +-1.0750977993011475 -0.61540663242340088 -2.384185791015625e-07 +-1.0963650941848755 -0.8611716628074646 -7.152557373046875e-07 +-1.0554466247558594 -1.1000480651855469 -1.3113021850585938e-06 +-0.93792116641998291 -1.3201124668121338 -1.6689300537109375e-06 +-0.74709045886993408 -1.6228711605072021 -2.0265579223632812e-06 +-0.49816042184829712 -2.0971107482910156 -1.9073486328125e-06 +-0.33166372776031494 -2.637120246887207 -1.9073486328125e-06 +-0.18355560302734375 -3.5691494941711426 -1.9073486328125e-06 +-0.14050084352493286 -3.8517215251922607 -1.9073486328125e-06 +-0.92799240350723267 -0.16679921746253967 0.38438776135444641 +-0.95306289196014404 -0.3778553307056427 0.3947717547416687 +-0.99326086044311523 -0.61540663242340088 0.41142177581787109 +-1.0129095315933228 -0.86117172241210938 0.41955992579460144 +-0.97510600090026855 -1.1000480651855469 0.40390044450759888 +-0.86652672290802002 -1.3201124668121338 0.35892486572265625 +-0.69022232294082642 -1.622870922088623 0.28589677810668945 +-0.46024087071418762 -2.0971105098724365 0.1906353235244751 +-0.30641776323318481 -2.637120246887207 0.12691974639892578 +-0.16958367824554443 -3.5691494941711426 0.070241212844848633 +-0.12980616092681885 -3.8517215251922607 0.053764820098876953 +-0.7102542519569397 -0.16679924726486206 0.71025526523590088 +-0.72944265604019165 -0.37785536050796509 0.72944289445877075 +-0.76020914316177368 -0.61540675163269043 0.7602086067199707 +-0.77524787187576294 -0.86117172241210938 0.77524632215499878 +-0.74631458520889282 -1.1000480651855469 0.74631196260452271 +-0.66321182250976562 -1.3201124668121338 0.6632084846496582 +-0.5282742977142334 -1.6228706836700439 0.52827048301696777 +-0.35225397348403931 -2.0971102714538574 0.35225009918212891 +-0.23452273011207581 -2.6371197700500488 0.23451900482177734 +-0.12979435920715332 -3.5691494941711426 0.1297907829284668 +-0.0993499755859375 -3.8517215251922607 0.099346399307250977 +-0.3843863308429718 -0.16679924726486206 0.92799282073974609 +-0.39477136731147766 -0.37785530090332031 0.95306301116943359 +-0.41142246127128601 -0.61540675163269043 0.99326062202453613 +-0.41956177353858948 -0.86117172241210938 1.0129086971282959 +-0.4039035439491272 -1.1000479459762573 0.97510439157485962 +-0.35892900824546814 -1.3201124668121338 0.86652457714080811 +-0.28590145707130432 -1.6228704452514648 0.69021975994110107 +-0.19063986837863922 -2.0971097946166992 0.46023809909820557 +-0.12692400813102722 -2.6371192932128906 0.30641484260559082 +-0.070245265960693359 -3.5691490173339844 0.16958045959472656 +-0.053768813610076904 -3.8517212867736816 0.12980318069458008 +9.2579836064032861e-07 -0.16679930686950684 1.0044519901275635 +2.476488987213088e-07 -0.37785530090332031 1.0315878391265869 +-4.8164889676627354e-07 -0.61540663242340088 1.0750976800918579 +-1.2861924005846959e-06 -0.86117172241210938 1.0963649749755859 +-2.0761583527928451e-06 -1.1000480651855469 1.0554461479187012 +-2.6858958790398901e-06 -1.3201123476028442 0.93792039155960083 +-2.9403111057035858e-06 -1.6228703260421753 0.7470894455909729 +-2.6933246317639714e-06 -2.0971097946166992 0.49815893173217773 +-2.4114647203532513e-06 -2.6371192932128906 0.33166170120239258 +-2.1893788471061271e-06 -3.5691490173339844 0.18355321884155273 +-2.0890547602903098e-06 -3.8517212867736816 0.14049816131591797 +0.38438805937767029 -0.16679924726486206 0.92799210548400879 +0.39477178454399109 -0.37785530090332031 0.95306277275085449 +0.41142153739929199 -0.61540669202804565 0.99326092004776001 +0.41955935955047607 -0.86117172241210938 1.0129096508026123 +0.40389969944953918 -1.1000480651855469 0.97510594129562378 +0.35892400145530701 -1.3201124668121338 0.86652636528015137 +0.28589600324630737 -1.6228702068328857 0.69022154808044434 +0.19063478708267212 -2.097109317779541 0.46023964881896973 +0.12691941857337952 -2.6371185779571533 0.30641603469848633 +0.070241063833236694 -3.5691490173339844 0.16958141326904297 +0.053764760494232178 -3.8517215251922607 0.12980365753173828 +0.038268506526947021 0.625 0.092387855052947998 +1.6053570561780361e-07 0.625 0.10000002384185791 +-0.038268208503723145 0.625 0.092388033866882324 +-0.070710599422454834 0.625 0.07071077823638916 +-0.092387914657592773 0.625 0.038268446922302246 +-0.10000002384185791 0.625 9.6559915618854575e-08 +-0.092387974262237549 0.625 -0.03826826810836792 +-0.070710718631744385 0.625 -0.070710659027099609 +-0.038268387317657471 0.625 -0.092387914657592773 +-3.2584125619905535e-08 0.625 -0.10000002384185791 +0.038268327713012695 0.625 -0.092387974262237549 +0.070710659027099609 0.625 -0.070710659027099609 +0.092387974262237549 0.625 -0.038268327713012695 +0.10000002384185791 0.625 7.5497936791180109e-09 +0.092387974262237549 0.625 0.038268357515335083 +0.070710659027099609 0.625 0.070710659027099609 +2.4000005722045898 -1.0 1.8119504829883226e-07 +2.2173113822937012 -1.0000001192092896 0.91844058036804199 +2.2173113822937012 -0.99999994039535522 -0.91843986511230469 +-2.2173113822937012 -0.99999994039535522 -0.91843843460083008 +-2.4000005722045898 -1.0 2.3174379748525098e-06 +-2.2173099517822266 -1.0000001192092896 0.91844272613525391 +-1.697054386138916 -1.0000001192092896 1.6970586776733398 +-0.91843700408935547 -1.0000001192092896 2.2173128128051758 +3.8528569348272868e-06 -1.0 2.4000005722045898 +0.91844415664672852 -1.0000001192092896 2.217308521270752 +1.6970558166503906 -1.0000001192092896 1.6970558166503906 +1.6970558166503906 -0.99999988079071045 -1.6970558166503906 +0.91843986511230469 -0.99999988079071045 -2.2173113822937012 +-7.8201901487773284e-07 -1.0 -2.4000005722045898 +-1.6970572471618652 -0.99999988079071045 -1.6970558166503906 +-0.9184412956237793 -0.99999988079071045 -2.2173099517822266 +430 +0.70683920383453369 0.026673177257180214 0.70683920383453369 14.0 1.0 +0 0.70497757196426392 0.077181309461593628 0.70497757196426392 13.999999046325684 0.95830023288726807 +32 0.92110967636108398 0.077181309461593628 0.38151189684867859 13.0 0.95830023288726807 +43 0.70683920383453369 0.026673177257180214 0.70683920383453369 14.0 1.0 +0 0.92110967636108398 0.077181309461593628 0.38151189684867859 13.0 0.95830023288726807 +43 0.92352062463760376 0.026673177257180214 0.38251900672912598 13.0 1.0 +1 0.70497757196426392 0.077181309461593628 0.70497757196426392 13.999999046325684 0.95830023288726807 +32 0.69866025447845459 0.15387432277202606 0.69866025447845459 13.999999046325684 0.90553617477416992 +33 0.91286963224411011 0.15387432277202606 0.37809380888938904 12.999999046325684 0.90553617477416992 +44 0.70497757196426392 0.077181309461593628 0.70497757196426392 13.999999046325684 0.95830023288726807 +32 0.91286963224411011 0.15387432277202606 0.37809380888938904 12.999999046325684 0.90553617477416992 +44 0.92110967636108398 0.077181309461593628 0.38151189684867859 13.0 0.95830023288726807 +43 0.69866025447845459 0.15387432277202606 0.69866025447845459 13.999999046325684 0.90553617477416992 +33 0.70076602697372437 0.13333536684513092 0.70076602697372437 13.999999046325684 0.84614837169647217 +34 0.91561633348464966 0.13333536684513092 0.37925350666046143 12.999998092651367 0.84614837169647217 +45 0.69866025447845459 0.15387432277202606 0.69866025447845459 13.999999046325684 0.90553617477416992 +33 0.91561633348464966 0.13333536684513092 0.37925350666046143 12.999998092651367 0.84614837169647217 +45 0.91286963224411011 0.15387432277202606 0.37809380888938904 12.999999046325684 0.90553617477416992 +44 0.70076602697372437 0.13333536684513092 0.70076602697372437 13.999999046325684 0.84614837169647217 +34 0.70647299289703369 -0.041657764464616776 0.70647299289703369 13.999998092651367 0.78470706939697266 +35 0.92306286096572876 -0.041657764464616776 0.38233590126037598 12.999998092651367 0.78470706939697266 +46 0.70076602697372437 0.13333536684513092 0.70076602697372437 13.999999046325684 0.84614837169647217 +34 0.92306286096572876 -0.041657764464616776 0.38233590126037598 12.999998092651367 0.78470706939697266 +46 0.91561633348464966 0.13333536684513092 0.37925350666046143 12.999998092651367 0.84614837169647217 +45 0.70647299289703369 -0.041657764464616776 0.70647299289703369 13.999998092651367 0.78470706939697266 +35 0.66884362697601318 -0.32438123226165771 0.66884362697601318 13.999997138977051 0.72498798370361328 +36 0.8738974928855896 -0.32438123226165771 0.36198005080223083 12.999997138977051 0.72498798370361328 +47 0.70647299289703369 -0.041657764464616776 0.70647299289703369 13.999998092651367 0.78470706939697266 +35 0.8738974928855896 -0.32438123226165771 0.36198005080223083 12.999997138977051 0.72498798370361328 +47 0.92306286096572876 -0.041657764464616776 0.38233590126037598 12.999998092651367 0.78470706939697266 +46 0.66884362697601318 -0.32438123226165771 0.66884362697601318 13.999997138977051 0.72498798370361328 +36 0.6113467812538147 -0.50248724222183228 0.6113467812538147 13.999997138977051 0.66997194290161133 +37 0.79876095056533813 -0.50248724222183228 0.33085116744041443 12.999996185302734 0.66997194290161133 +48 0.66884362697601318 -0.32438123226165771 0.66884362697601318 13.999997138977051 0.72498798370361328 +36 0.79876095056533813 -0.50248724222183228 0.33085116744041443 12.999996185302734 0.66997194290161133 +48 0.8738974928855896 -0.32438123226165771 0.36198005080223083 12.999997138977051 0.72498798370361328 +47 0.6113467812538147 -0.50248724222183228 0.6113467812538147 13.999997138977051 0.66997194290161133 +37 0.61259806156158447 -0.49940487742424011 0.61259806156158447 13.999997138977051 0.59428250789642334 +38 0.80040895938873291 -0.49940487742424011 0.33152255415916443 12.999995231628418 0.59428250789642334 +49 0.6113467812538147 -0.50248724222183228 0.6113467812538147 13.999997138977051 0.66997194290161133 +37 0.80040895938873291 -0.49940487742424011 0.33152255415916443 12.999995231628418 0.59428250789642334 +49 0.79876095056533813 -0.50248724222183228 0.33085116744041443 12.999996185302734 0.66997194290161133 +48 0.61259806156158447 -0.49940487742424011 0.61259806156158447 13.999997138977051 0.59428250789642334 +38 0.65364545583724976 -0.38142034411430359 0.65364545583724976 13.999995231628418 0.4757227897644043 +39 0.85402995347976685 -0.38142034411430359 0.35374003648757935 12.999993324279785 0.4757227897644043 +50 0.61259806156158447 -0.49940487742424011 0.61259806156158447 13.999997138977051 0.59428250789642334 +38 0.85402995347976685 -0.38142034411430359 0.35374003648757935 12.999993324279785 0.4757227897644043 +50 0.80040895938873291 -0.49940487742424011 0.33152255415916443 12.999995231628418 0.59428250789642334 +49 0.65364545583724976 -0.38142034411430359 0.65364545583724976 13.999995231628418 0.4757227897644043 +39 0.68874174356460571 -0.22638630867004395 0.68874174356460571 13.999993324279785 0.34072041511535645 +40 0.89986878633499146 -0.22638630867004395 0.3727225661277771 12.99998950958252 0.34072041511535645 +51 0.65364545583724976 -0.38142034411430359 0.65364545583724976 13.999995231628418 0.4757227897644043 +39 0.89986878633499146 -0.22638630867004395 0.3727225661277771 12.99998950958252 0.34072041511535645 +51 0.85402995347976685 -0.38142034411430359 0.35374003648757935 12.999993324279785 0.4757227897644043 +50 0.68874174356460571 -0.22638630867004395 0.68874174356460571 13.999993324279785 0.34072041511535645 +40 0.69869077205657959 -0.15378277003765106 0.69869077205657959 13.999988555908203 0.10771274566650391 +41 0.91286963224411011 -0.15378277003765106 0.37812432646751404 12.999980926513672 0.10771274566650391 +52 0.68874174356460571 -0.22638630867004395 0.68874174356460571 13.999993324279785 0.34072041511535645 +40 0.91286963224411011 -0.15378277003765106 0.37812432646751404 12.999980926513672 0.10771274566650391 +52 0.89986878633499146 -0.22638630867004395 0.3727225661277771 12.99998950958252 0.34072041511535645 +51 0.69869077205657959 -0.15378277003765106 0.69869077205657959 13.999988555908203 0.10771274566650391 +41 0.70134586095809937 -0.12732322514057159 0.70134586095809937 13.999985694885254 0.03706967830657959 +42 0.91634875535964966 -0.12732322514057159 0.37955871224403381 12.999975204467773 0.03706967830657959 +53 0.69869077205657959 -0.15378277003765106 0.69869077205657959 13.999988555908203 0.10771274566650391 +41 0.91634875535964966 -0.12732322514057159 0.37955871224403381 12.999975204467773 0.03706967830657959 +53 0.91286963224411011 -0.15378277003765106 0.37812432646751404 12.999980926513672 0.10771274566650391 +52 0.70134586095809937 -0.12732322514057159 0.70134586095809937 13.999985694885254 0.03706967830657959 +42 0.36777856945991516 -0.85406047105789185 0.36777856945991516 13.999983787536621 0.0 +16 0.48054444789886475 -0.85406047105789185 0.19904172420501709 12.999971389770508 0.0 +17 0.70134586095809937 -0.12732322514057159 0.70134586095809937 13.999985694885254 0.03706967830657959 +42 0.48054444789886475 -0.85406047105789185 0.19904172420501709 12.999971389770508 0.0 +17 0.91634875535964966 -0.12732322514057159 0.37955871224403381 12.999975204467773 0.03706967830657959 +53 0.92352062463760376 0.026673177257180214 0.38251900672912598 13.0 1.0 +1 0.92110967636108398 0.077181309461593628 0.38151189684867859 13.0 0.95830023288726807 +43 0.99700915813446045 0.077181309461593628 0.0 12.0 0.95830023288726807 +54 0.92352062463760376 0.026673177257180214 0.38251900672912598 13.0 1.0 +1 0.99700915813446045 0.077181309461593628 0.0 12.0 0.95830023288726807 +54 0.9996337890625 0.026673177257180214 0.0 12.0 1.0 +2 0.92110967636108398 0.077181309461593628 0.38151189684867859 13.0 0.95830023288726807 +43 0.91286963224411011 0.15387432277202606 0.37809380888938904 12.999999046325684 0.90553617477416992 +44 0.98806726932525635 0.15387432277202606 0.0 11.999999046325684 0.90553617477416992 +55 0.92110967636108398 0.077181309461593628 0.38151189684867859 13.0 0.95830023288726807 +43 0.98806726932525635 0.15387432277202606 0.0 11.999999046325684 0.90553617477416992 +55 0.99700915813446045 0.077181309461593628 0.0 12.0 0.95830023288726807 +54 0.91286963224411011 0.15387432277202606 0.37809380888938904 12.999999046325684 0.90553617477416992 +44 0.91561633348464966 0.13333536684513092 0.37925350666046143 12.999998092651367 0.84614837169647217 +45 0.99105805158615112 0.13333536684513092 0.0 11.999999046325684 0.84614837169647217 +56 0.91286963224411011 0.15387432277202606 0.37809380888938904 12.999999046325684 0.90553617477416992 +44 0.99105805158615112 0.13333536684513092 0.0 11.999999046325684 0.84614837169647217 +56 0.98806726932525635 0.15387432277202606 0.0 11.999999046325684 0.90553617477416992 +55 0.91561633348464966 0.13333536684513092 0.37925350666046143 12.999998092651367 0.84614837169647217 +45 0.92306286096572876 -0.041657764464616776 0.38233590126037598 12.999998092651367 0.78470706939697266 +46 0.999114990234375 -0.041657764464616776 0.0 11.999998092651367 0.78470706939697266 +57 0.91561633348464966 0.13333536684513092 0.37925350666046143 12.999998092651367 0.84614837169647217 +45 0.999114990234375 -0.041657764464616776 0.0 11.999998092651367 0.78470706939697266 +57 0.99105805158615112 0.13333536684513092 0.0 11.999999046325684 0.84614837169647217 +56 0.92306286096572876 -0.041657764464616776 0.38233590126037598 12.999998092651367 0.78470706939697266 +46 0.8738974928855896 -0.32438123226165771 0.36198005080223083 12.999997138977051 0.72498798370361328 +47 0.94589066505432129 -0.32438123226165771 0.0 11.999997138977051 0.72498798370361328 +58 0.92306286096572876 -0.041657764464616776 0.38233590126037598 12.999998092651367 0.78470706939697266 +46 0.94589066505432129 -0.32438123226165771 0.0 11.999997138977051 0.72498798370361328 +58 0.999114990234375 -0.041657764464616776 0.0 11.999998092651367 0.78470706939697266 +57 0.8738974928855896 -0.32438123226165771 0.36198005080223083 12.999997138977051 0.72498798370361328 +47 0.79876095056533813 -0.50248724222183228 0.33085116744041443 12.999996185302734 0.66997194290161133 +48 0.8645588755607605 -0.50248724222183228 0.0 11.999996185302734 0.66997194290161133 +59 0.8738974928855896 -0.32438123226165771 0.36198005080223083 12.999997138977051 0.72498798370361328 +47 0.8645588755607605 -0.50248724222183228 0.0 11.999996185302734 0.66997194290161133 +59 0.94589066505432129 -0.32438123226165771 0.0 11.999997138977051 0.72498798370361328 +58 0.79876095056533813 -0.50248724222183228 0.33085116744041443 12.999996185302734 0.66997194290161133 +48 0.80040895938873291 -0.49940487742424011 0.33152255415916443 12.999995231628418 0.59428250789642334 +49 0.86635947227478027 -0.49940487742424011 0.0 11.999994277954102 0.59428250789642334 +60 0.79876095056533813 -0.50248724222183228 0.33085116744041443 12.999996185302734 0.66997194290161133 +48 0.86635947227478027 -0.49940487742424011 0.0 11.999994277954102 0.59428250789642334 +60 0.8645588755607605 -0.50248724222183228 0.0 11.999996185302734 0.66997194290161133 +59 0.80040895938873291 -0.49940487742424011 0.33152255415916443 12.999995231628418 0.59428250789642334 +49 0.85402995347976685 -0.38142034411430359 0.35374003648757935 12.999993324279785 0.4757227897644043 +50 0.92437511682510376 -0.38142034411430359 0.0 11.999991416931152 0.47572267055511475 +61 0.80040895938873291 -0.49940487742424011 0.33152255415916443 12.999995231628418 0.59428250789642334 +49 0.92437511682510376 -0.38142034411430359 0.0 11.999991416931152 0.47572267055511475 +61 0.86635947227478027 -0.49940487742424011 0.0 11.999994277954102 0.59428250789642334 +60 0.85402995347976685 -0.38142034411430359 0.35374003648757935 12.999993324279785 0.4757227897644043 +50 0.89986878633499146 -0.22638630867004395 0.3727225661277771 12.99998950958252 0.34072041511535645 +51 0.97402876615524292 -0.22638630867004395 0.0 11.99998664855957 0.34072029590606689 +62 0.85402995347976685 -0.38142034411430359 0.35374003648757935 12.999993324279785 0.4757227897644043 +50 0.97402876615524292 -0.22638630867004395 0.0 11.99998664855957 0.34072029590606689 +62 0.92437511682510376 -0.38142034411430359 0.0 11.999991416931152 0.47572267055511475 +61 0.89986878633499146 -0.22638630867004395 0.3727225661277771 12.99998950958252 0.34072041511535645 +51 0.91286963224411011 -0.15378277003765106 0.37812432646751404 12.999980926513672 0.10771274566650391 +52 0.98809778690338135 -0.15378277003765106 0.0 11.999975204467773 0.10771274566650391 +63 0.89986878633499146 -0.22638630867004395 0.3727225661277771 12.99998950958252 0.34072041511535645 +51 0.98809778690338135 -0.15378277003765106 0.0 11.999975204467773 0.10771274566650391 +63 0.97402876615524292 -0.22638630867004395 0.0 11.99998664855957 0.34072029590606689 +62 0.91286963224411011 -0.15378277003765106 0.37812432646751404 12.999980926513672 0.10771274566650391 +52 0.91634875535964966 -0.12732322514057159 0.37955871224403381 12.999975204467773 0.03706967830657959 +53 0.9918515682220459 -0.12732322514057159 0.0 11.999966621398926 0.037069797515869141 +64 0.91286963224411011 -0.15378277003765106 0.37812432646751404 12.999980926513672 0.10771274566650391 +52 0.9918515682220459 -0.12732322514057159 0.0 11.999966621398926 0.037069797515869141 +64 0.98809778690338135 -0.15378277003765106 0.0 11.999975204467773 0.10771274566650391 +63 0.91634875535964966 -0.12732322514057159 0.37955871224403381 12.999975204467773 0.03706967830657959 +53 0.48054444789886475 -0.85406047105789185 0.19904172420501709 12.999971389770508 0.0 +17 0.4210028350353241 -0.90704059600830078 0.0 11.999961853027344 0.0 +18 0.91634875535964966 -0.12732322514057159 0.37955871224403381 12.999975204467773 0.03706967830657959 +53 0.4210028350353241 -0.90704059600830078 0.0 11.999961853027344 0.0 +18 0.9918515682220459 -0.12732322514057159 0.0 11.999966621398926 0.037069797515869141 +64 0.9996337890625 0.026673177257180214 0.0 12.0 1.0 +2 0.99700915813446045 0.077181309461593628 0.0 12.0 0.95830023288726807 +54 0.92110967636108398 0.077181309461593628 -0.38151189684867859 11.0 0.95830023288726807 +65 0.9996337890625 0.026673177257180214 0.0 12.0 1.0 +2 0.92110967636108398 0.077181309461593628 -0.38151189684867859 11.0 0.95830023288726807 +65 0.92352062463760376 0.026673177257180214 -0.38251900672912598 11.0 1.0 +3 0.99700915813446045 0.077181309461593628 0.0 12.0 0.95830023288726807 +54 0.98806726932525635 0.15387432277202606 0.0 11.999999046325684 0.90553617477416992 +55 0.91286963224411011 0.15387432277202606 -0.37812432646751404 11.0 0.90553617477416992 +66 0.99700915813446045 0.077181309461593628 0.0 12.0 0.95830023288726807 +54 0.91286963224411011 0.15387432277202606 -0.37812432646751404 11.0 0.90553617477416992 +66 0.92110967636108398 0.077181309461593628 -0.38151189684867859 11.0 0.95830023288726807 +65 0.98806726932525635 0.15387432277202606 0.0 11.999999046325684 0.90553617477416992 +55 0.99105805158615112 0.13333536684513092 0.0 11.999999046325684 0.84614837169647217 +56 0.91561633348464966 0.13333536684513092 -0.37925350666046143 10.999999046325684 0.84614837169647217 +67 0.98806726932525635 0.15387432277202606 0.0 11.999999046325684 0.90553617477416992 +55 0.91561633348464966 0.13333536684513092 -0.37925350666046143 10.999999046325684 0.84614837169647217 +67 0.91286963224411011 0.15387432277202606 -0.37812432646751404 11.0 0.90553617477416992 +66 0.99105805158615112 0.13333536684513092 0.0 11.999999046325684 0.84614837169647217 +56 0.999114990234375 -0.041657764464616776 0.0 11.999998092651367 0.78470706939697266 +57 0.92306286096572876 -0.041657764464616776 -0.38233590126037598 10.999999046325684 0.78470706939697266 +68 0.99105805158615112 0.13333536684513092 0.0 11.999999046325684 0.84614837169647217 +56 0.92306286096572876 -0.041657764464616776 -0.38233590126037598 10.999999046325684 0.78470706939697266 +68 0.91561633348464966 0.13333536684513092 -0.37925350666046143 10.999999046325684 0.84614837169647217 +67 0.999114990234375 -0.041657764464616776 0.0 11.999998092651367 0.78470706939697266 +57 0.94589066505432129 -0.32438123226165771 0.0 11.999997138977051 0.72498798370361328 +58 0.8738974928855896 -0.32438123226165771 -0.36198005080223083 10.999998092651367 0.72498798370361328 +69 0.999114990234375 -0.041657764464616776 0.0 11.999998092651367 0.78470706939697266 +57 0.8738974928855896 -0.32438123226165771 -0.36198005080223083 10.999998092651367 0.72498798370361328 +69 0.92306286096572876 -0.041657764464616776 -0.38233590126037598 10.999999046325684 0.78470706939697266 +68 0.94589066505432129 -0.32438123226165771 0.0 11.999997138977051 0.72498798370361328 +58 0.8645588755607605 -0.50248724222183228 0.0 11.999996185302734 0.66997194290161133 +59 0.79876095056533813 -0.50248724222183228 -0.33085116744041443 10.999997138977051 0.66997194290161133 +70 0.94589066505432129 -0.32438123226165771 0.0 11.999997138977051 0.72498798370361328 +58 0.79876095056533813 -0.50248724222183228 -0.33085116744041443 10.999997138977051 0.66997194290161133 +70 0.8738974928855896 -0.32438123226165771 -0.36198005080223083 10.999998092651367 0.72498798370361328 +69 0.8645588755607605 -0.50248724222183228 0.0 11.999996185302734 0.66997194290161133 +59 0.86635947227478027 -0.49940487742424011 0.0 11.999994277954102 0.59428250789642334 +60 0.80040895938873291 -0.49940487742424011 -0.33152255415916443 10.999995231628418 0.59428238868713379 +71 0.8645588755607605 -0.50248724222183228 0.0 11.999996185302734 0.66997194290161133 +59 0.80040895938873291 -0.49940487742424011 -0.33152255415916443 10.999995231628418 0.59428238868713379 +71 0.79876095056533813 -0.50248724222183228 -0.33085116744041443 10.999997138977051 0.66997194290161133 +70 0.86635947227478027 -0.49940487742424011 0.0 11.999994277954102 0.59428250789642334 +60 0.92437511682510376 -0.38142034411430359 0.0 11.999991416931152 0.47572267055511475 +61 0.85402995347976685 -0.38142034411430359 -0.35374003648757935 10.999992370605469 0.4757225513458252 +72 0.86635947227478027 -0.49940487742424011 0.0 11.999994277954102 0.59428250789642334 +60 0.85402995347976685 -0.38142034411430359 -0.35374003648757935 10.999992370605469 0.4757225513458252 +72 0.80040895938873291 -0.49940487742424011 -0.33152255415916443 10.999995231628418 0.59428238868713379 +71 0.92437511682510376 -0.38142034411430359 0.0 11.999991416931152 0.47572267055511475 +61 0.97402876615524292 -0.22638630867004395 0.0 11.99998664855957 0.34072029590606689 +62 0.89986878633499146 -0.22638630867004395 -0.3727225661277771 10.99998664855957 0.34072017669677734 +73 0.92437511682510376 -0.38142034411430359 0.0 11.999991416931152 0.47572267055511475 +61 0.89986878633499146 -0.22638630867004395 -0.3727225661277771 10.99998664855957 0.34072017669677734 +73 0.85402995347976685 -0.38142034411430359 -0.35374003648757935 10.999992370605469 0.4757225513458252 +72 0.97402876615524292 -0.22638630867004395 0.0 11.99998664855957 0.34072029590606689 +62 0.98809778690338135 -0.15378277003765106 0.0 11.999975204467773 0.10771274566650391 +63 0.91286963224411011 -0.15378277003765106 -0.37812432646751404 10.999974250793457 0.10771274566650391 +74 0.97402876615524292 -0.22638630867004395 0.0 11.99998664855957 0.34072029590606689 +62 0.91286963224411011 -0.15378277003765106 -0.37812432646751404 10.999974250793457 0.10771274566650391 +74 0.89986878633499146 -0.22638630867004395 -0.3727225661277771 10.99998664855957 0.34072017669677734 +73 0.98809778690338135 -0.15378277003765106 0.0 11.999975204467773 0.10771274566650391 +63 0.9918515682220459 -0.12732322514057159 0.0 11.999966621398926 0.037069797515869141 +64 0.91634875535964966 -0.12732322514057159 -0.37955871224403381 10.999965667724609 0.03706967830657959 +75 0.98809778690338135 -0.15378277003765106 0.0 11.999975204467773 0.10771274566650391 +63 0.91634875535964966 -0.12732322514057159 -0.37955871224403381 10.999965667724609 0.03706967830657959 +75 0.91286963224411011 -0.15378277003765106 -0.37812432646751404 10.999974250793457 0.10771274566650391 +74 0.9918515682220459 -0.12732322514057159 0.0 11.999966621398926 0.037069797515869141 +64 0.4210028350353241 -0.90704059600830078 0.0 11.999961853027344 0.0 +18 0.48054444789886475 -0.85406047105789185 -0.19904172420501709 10.999959945678711 0.0 +19 0.9918515682220459 -0.12732322514057159 0.0 11.999966621398926 0.037069797515869141 +64 0.48054444789886475 -0.85406047105789185 -0.19904172420501709 10.999959945678711 0.0 +19 0.91634875535964966 -0.12732322514057159 -0.37955871224403381 10.999965667724609 0.03706967830657959 +75 0.92352062463760376 0.026673177257180214 -0.38251900672912598 11.0 1.0 +3 0.92110967636108398 0.077181309461593628 -0.38151189684867859 11.0 0.95830023288726807 +65 0.70497757196426392 0.077181309461593628 -0.70497757196426392 10.0 0.95830023288726807 +76 0.92352062463760376 0.026673177257180214 -0.38251900672912598 11.0 1.0 +3 0.70497757196426392 0.077181309461593628 -0.70497757196426392 10.0 0.95830023288726807 +76 0.70683920383453369 0.026673177257180214 -0.70683920383453369 10.0 1.0 +4 0.92110967636108398 0.077181309461593628 -0.38151189684867859 11.0 0.95830023288726807 +65 0.91286963224411011 0.15387432277202606 -0.37812432646751404 11.0 0.90553617477416992 +66 0.69866025447845459 0.15387432277202606 -0.69866025447845459 10.0 0.90553617477416992 +77 0.92110967636108398 0.077181309461593628 -0.38151189684867859 11.0 0.95830023288726807 +65 0.69866025447845459 0.15387432277202606 -0.69866025447845459 10.0 0.90553617477416992 +77 0.70497757196426392 0.077181309461593628 -0.70497757196426392 10.0 0.95830023288726807 +76 0.91286963224411011 0.15387432277202606 -0.37812432646751404 11.0 0.90553617477416992 +66 0.91561633348464966 0.13333536684513092 -0.37925350666046143 10.999999046325684 0.84614837169647217 +67 0.70076602697372437 0.13333536684513092 -0.70076602697372437 10.0 0.84614837169647217 +78 0.91286963224411011 0.15387432277202606 -0.37812432646751404 11.0 0.90553617477416992 +66 0.70076602697372437 0.13333536684513092 -0.70076602697372437 10.0 0.84614837169647217 +78 0.69866025447845459 0.15387432277202606 -0.69866025447845459 10.0 0.90553617477416992 +77 0.91561633348464966 0.13333536684513092 -0.37925350666046143 10.999999046325684 0.84614837169647217 +67 0.92306286096572876 -0.041657764464616776 -0.38233590126037598 10.999999046325684 0.78470706939697266 +68 0.70647299289703369 -0.041657764464616776 -0.70647299289703369 9.9999990463256836 0.78470706939697266 +79 0.91561633348464966 0.13333536684513092 -0.37925350666046143 10.999999046325684 0.84614837169647217 +67 0.70647299289703369 -0.041657764464616776 -0.70647299289703369 9.9999990463256836 0.78470706939697266 +79 0.70076602697372437 0.13333536684513092 -0.70076602697372437 10.0 0.84614837169647217 +78 0.92306286096572876 -0.041657764464616776 -0.38233590126037598 10.999999046325684 0.78470706939697266 +68 0.8738974928855896 -0.32438123226165771 -0.36198005080223083 10.999998092651367 0.72498798370361328 +69 0.66884362697601318 -0.32438123226165771 -0.66884362697601318 9.9999990463256836 0.72498798370361328 +80 0.92306286096572876 -0.041657764464616776 -0.38233590126037598 10.999999046325684 0.78470706939697266 +68 0.66884362697601318 -0.32438123226165771 -0.66884362697601318 9.9999990463256836 0.72498798370361328 +80 0.70647299289703369 -0.041657764464616776 -0.70647299289703369 9.9999990463256836 0.78470706939697266 +79 0.8738974928855896 -0.32438123226165771 -0.36198005080223083 10.999998092651367 0.72498798370361328 +69 0.79876095056533813 -0.50248724222183228 -0.33085116744041443 10.999997138977051 0.66997194290161133 +70 0.6113467812538147 -0.50248724222183228 -0.6113467812538147 9.9999980926513672 0.66997194290161133 +81 0.8738974928855896 -0.32438123226165771 -0.36198005080223083 10.999998092651367 0.72498798370361328 +69 0.6113467812538147 -0.50248724222183228 -0.6113467812538147 9.9999980926513672 0.66997194290161133 +81 0.66884362697601318 -0.32438123226165771 -0.66884362697601318 9.9999990463256836 0.72498798370361328 +80 0.79876095056533813 -0.50248724222183228 -0.33085116744041443 10.999997138977051 0.66997194290161133 +70 0.80040895938873291 -0.49940487742424011 -0.33152255415916443 10.999995231628418 0.59428238868713379 +71 0.61259806156158447 -0.49940487742424011 -0.61259806156158447 9.9999971389770508 0.59428238868713379 +82 0.79876095056533813 -0.50248724222183228 -0.33085116744041443 10.999997138977051 0.66997194290161133 +70 0.61259806156158447 -0.49940487742424011 -0.61259806156158447 9.9999971389770508 0.59428238868713379 +82 0.6113467812538147 -0.50248724222183228 -0.6113467812538147 9.9999980926513672 0.66997194290161133 +81 0.80040895938873291 -0.49940487742424011 -0.33152255415916443 10.999995231628418 0.59428238868713379 +71 0.85402995347976685 -0.38142034411430359 -0.35374003648757935 10.999992370605469 0.4757225513458252 +72 0.65364545583724976 -0.38142034411430359 -0.65364545583724976 9.9999933242797852 0.4757225513458252 +83 0.80040895938873291 -0.49940487742424011 -0.33152255415916443 10.999995231628418 0.59428238868713379 +71 0.65364545583724976 -0.38142034411430359 -0.65364545583724976 9.9999933242797852 0.4757225513458252 +83 0.61259806156158447 -0.49940487742424011 -0.61259806156158447 9.9999971389770508 0.59428238868713379 +82 0.85402995347976685 -0.38142034411430359 -0.35374003648757935 10.999992370605469 0.4757225513458252 +72 0.89986878633499146 -0.22638630867004395 -0.3727225661277771 10.99998664855957 0.34072017669677734 +73 0.68874174356460571 -0.22638630867004395 -0.68874174356460571 9.9999885559082031 0.34072017669677734 +84 0.85402995347976685 -0.38142034411430359 -0.35374003648757935 10.999992370605469 0.4757225513458252 +72 0.68874174356460571 -0.22638630867004395 -0.68874174356460571 9.9999885559082031 0.34072017669677734 +84 0.65364545583724976 -0.38142034411430359 -0.65364545583724976 9.9999933242797852 0.4757225513458252 +83 0.89986878633499146 -0.22638630867004395 -0.3727225661277771 10.99998664855957 0.34072017669677734 +73 0.91286963224411011 -0.15378277003765106 -0.37812432646751404 10.999974250793457 0.10771274566650391 +74 0.69869077205657959 -0.15378277003765106 -0.69869077205657959 9.9999761581420898 0.10771274566650391 +85 0.89986878633499146 -0.22638630867004395 -0.3727225661277771 10.99998664855957 0.34072017669677734 +73 0.69869077205657959 -0.15378277003765106 -0.69869077205657959 9.9999761581420898 0.10771274566650391 +85 0.68874174356460571 -0.22638630867004395 -0.68874174356460571 9.9999885559082031 0.34072017669677734 +84 0.91286963224411011 -0.15378277003765106 -0.37812432646751404 10.999974250793457 0.10771274566650391 +74 0.91634875535964966 -0.12732322514057159 -0.37955871224403381 10.999965667724609 0.03706967830657959 +75 0.70134586095809937 -0.12732322514057159 -0.70134586095809937 9.9999675750732422 0.037069797515869141 +86 0.91286963224411011 -0.15378277003765106 -0.37812432646751404 10.999974250793457 0.10771274566650391 +74 0.70134586095809937 -0.12732322514057159 -0.70134586095809937 9.9999675750732422 0.037069797515869141 +86 0.69869077205657959 -0.15378277003765106 -0.69869077205657959 9.9999761581420898 0.10771274566650391 +85 0.91634875535964966 -0.12732322514057159 -0.37955871224403381 10.999965667724609 0.03706967830657959 +75 0.48054444789886475 -0.85406047105789185 -0.19904172420501709 10.999959945678711 0.0 +19 0.36777856945991516 -0.85406047105789185 -0.36780908703804016 9.9999628067016602 0.0 +20 0.91634875535964966 -0.12732322514057159 -0.37955871224403381 10.999965667724609 0.03706967830657959 +75 0.36777856945991516 -0.85406047105789185 -0.36780908703804016 9.9999628067016602 0.0 +20 0.70134586095809937 -0.12732322514057159 -0.70134586095809937 9.9999675750732422 0.037069797515869141 +86 0.70683920383453369 0.026673177257180214 -0.70683920383453369 10.0 1.0 +4 0.70497757196426392 0.077181309461593628 -0.70497757196426392 10.0 0.95830023288726807 +76 0.38151189684867859 0.077181309461593628 -0.92110967636108398 9.0 0.95830023288726807 +87 0.70683920383453369 0.026673177257180214 -0.70683920383453369 10.0 1.0 +4 0.38151189684867859 0.077181309461593628 -0.92110967636108398 9.0 0.95830023288726807 +87 0.38251900672912598 0.026673177257180214 -0.92352062463760376 9.0 1.0 +5 0.70497757196426392 0.077181309461593628 -0.70497757196426392 10.0 0.95830023288726807 +76 0.69866025447845459 0.15387432277202606 -0.69866025447845459 10.0 0.90553617477416992 +77 0.37809380888938904 0.15387432277202606 -0.91286963224411011 9.0 0.90553617477416992 +88 0.70497757196426392 0.077181309461593628 -0.70497757196426392 10.0 0.95830023288726807 +76 0.37809380888938904 0.15387432277202606 -0.91286963224411011 9.0 0.90553617477416992 +88 0.38151189684867859 0.077181309461593628 -0.92110967636108398 9.0 0.95830023288726807 +87 0.69866025447845459 0.15387432277202606 -0.69866025447845459 10.0 0.90553617477416992 +77 0.70076602697372437 0.13333536684513092 -0.70076602697372437 10.0 0.84614837169647217 +78 0.37925350666046143 0.13333536684513092 -0.91561633348464966 9.0 0.84614837169647217 +89 0.69866025447845459 0.15387432277202606 -0.69866025447845459 10.0 0.90553617477416992 +77 0.37925350666046143 0.13333536684513092 -0.91561633348464966 9.0 0.84614837169647217 +89 0.37809380888938904 0.15387432277202606 -0.91286963224411011 9.0 0.90553617477416992 +88 0.70076602697372437 0.13333536684513092 -0.70076602697372437 10.0 0.84614837169647217 +78 0.70647299289703369 -0.041657764464616776 -0.70647299289703369 9.9999990463256836 0.78470706939697266 +79 0.38233590126037598 -0.041657764464616776 -0.92306286096572876 9.0 0.78470706939697266 +90 0.70076602697372437 0.13333536684513092 -0.70076602697372437 10.0 0.84614837169647217 +78 0.38233590126037598 -0.041657764464616776 -0.92306286096572876 9.0 0.78470706939697266 +90 0.37925350666046143 0.13333536684513092 -0.91561633348464966 9.0 0.84614837169647217 +89 0.70647299289703369 -0.041657764464616776 -0.70647299289703369 9.9999990463256836 0.78470706939697266 +79 0.66884362697601318 -0.32438123226165771 -0.66884362697601318 9.9999990463256836 0.72498798370361328 +80 0.36198005080223083 -0.32438123226165771 -0.8738974928855896 8.9999990463256836 0.72498798370361328 +91 0.70647299289703369 -0.041657764464616776 -0.70647299289703369 9.9999990463256836 0.78470706939697266 +79 0.36198005080223083 -0.32438123226165771 -0.8738974928855896 8.9999990463256836 0.72498798370361328 +91 0.38233590126037598 -0.041657764464616776 -0.92306286096572876 9.0 0.78470706939697266 +90 0.66884362697601318 -0.32438123226165771 -0.66884362697601318 9.9999990463256836 0.72498798370361328 +80 0.6113467812538147 -0.50248724222183228 -0.6113467812538147 9.9999980926513672 0.66997194290161133 +81 0.33085116744041443 -0.50248724222183228 -0.79876095056533813 8.9999990463256836 0.66997194290161133 +92 0.66884362697601318 -0.32438123226165771 -0.66884362697601318 9.9999990463256836 0.72498798370361328 +80 0.33085116744041443 -0.50248724222183228 -0.79876095056533813 8.9999990463256836 0.66997194290161133 +92 0.36198005080223083 -0.32438123226165771 -0.8738974928855896 8.9999990463256836 0.72498798370361328 +91 0.6113467812538147 -0.50248724222183228 -0.6113467812538147 9.9999980926513672 0.66997194290161133 +81 0.61259806156158447 -0.49940487742424011 -0.61259806156158447 9.9999971389770508 0.59428238868713379 +82 0.33152255415916443 -0.49940487742424011 -0.80040895938873291 8.9999980926513672 0.59428238868713379 +93 0.6113467812538147 -0.50248724222183228 -0.6113467812538147 9.9999980926513672 0.66997194290161133 +81 0.33152255415916443 -0.49940487742424011 -0.80040895938873291 8.9999980926513672 0.59428238868713379 +93 0.33085116744041443 -0.50248724222183228 -0.79876095056533813 8.9999990463256836 0.66997194290161133 +92 0.61259806156158447 -0.49940487742424011 -0.61259806156158447 9.9999971389770508 0.59428238868713379 +82 0.65364545583724976 -0.38142034411430359 -0.65364545583724976 9.9999933242797852 0.4757225513458252 +83 0.35374003648757935 -0.38142034411430359 -0.85402995347976685 8.999995231628418 0.47572243213653564 +94 0.61259806156158447 -0.49940487742424011 -0.61259806156158447 9.9999971389770508 0.59428238868713379 +82 0.35374003648757935 -0.38142034411430359 -0.85402995347976685 8.999995231628418 0.47572243213653564 +94 0.33152255415916443 -0.49940487742424011 -0.80040895938873291 8.9999980926513672 0.59428238868713379 +93 0.65364545583724976 -0.38142034411430359 -0.65364545583724976 9.9999933242797852 0.4757225513458252 +83 0.68874174356460571 -0.22638630867004395 -0.68874174356460571 9.9999885559082031 0.34072017669677734 +84 0.3727225661277771 -0.22638630867004395 -0.89986878633499146 8.9999914169311523 0.34071993827819824 +95 0.65364545583724976 -0.38142034411430359 -0.65364545583724976 9.9999933242797852 0.4757225513458252 +83 0.3727225661277771 -0.22638630867004395 -0.89986878633499146 8.9999914169311523 0.34071993827819824 +95 0.35374003648757935 -0.38142034411430359 -0.85402995347976685 8.999995231628418 0.47572243213653564 +94 0.68874174356460571 -0.22638630867004395 -0.68874174356460571 9.9999885559082031 0.34072017669677734 +84 0.69869077205657959 -0.15378277003765106 -0.69869077205657959 9.9999761581420898 0.10771274566650391 +85 0.37812432646751404 -0.15378277003765106 -0.91286963224411011 8.9999818801879883 0.10771274566650391 +96 0.68874174356460571 -0.22638630867004395 -0.68874174356460571 9.9999885559082031 0.34072017669677734 +84 0.37812432646751404 -0.15378277003765106 -0.91286963224411011 8.9999818801879883 0.10771274566650391 +96 0.3727225661277771 -0.22638630867004395 -0.89986878633499146 8.9999914169311523 0.34071993827819824 +95 0.69869077205657959 -0.15378277003765106 -0.69869077205657959 9.9999761581420898 0.10771274566650391 +85 0.70134586095809937 -0.12732322514057159 -0.70134586095809937 9.9999675750732422 0.037069797515869141 +86 0.37955871224403381 -0.12732322514057159 -0.91634875535964966 8.9999761581420898 0.03706967830657959 +97 0.69869077205657959 -0.15378277003765106 -0.69869077205657959 9.9999761581420898 0.10771274566650391 +85 0.37955871224403381 -0.12732322514057159 -0.91634875535964966 8.9999761581420898 0.03706967830657959 +97 0.37812432646751404 -0.15378277003765106 -0.91286963224411011 8.9999818801879883 0.10771274566650391 +96 0.70134586095809937 -0.12732322514057159 -0.70134586095809937 9.9999675750732422 0.037069797515869141 +86 0.36777856945991516 -0.85406047105789185 -0.36780908703804016 9.9999628067016602 0.0 +20 0.2536698579788208 -0.74871057271957397 -0.61241495609283447 8.9999723434448242 0.0 +21 0.70134586095809937 -0.12732322514057159 -0.70134586095809937 9.9999675750732422 0.037069797515869141 +86 0.2536698579788208 -0.74871057271957397 -0.61241495609283447 8.9999723434448242 0.0 +21 0.37955871224403381 -0.12732322514057159 -0.91634875535964966 8.9999761581420898 0.03706967830657959 +97 0.38251900672912598 0.026673177257180214 -0.92352062463760376 9.0 1.0 +5 0.38151189684867859 0.077181309461593628 -0.92110967636108398 9.0 0.95830023288726807 +87 0.0 0.077181309461593628 -0.99700915813446045 7.9999995231628418 0.95830023288726807 +98 0.38251900672912598 0.026673177257180214 -0.92352062463760376 9.0 1.0 +5 0.0 0.077181309461593628 -0.99700915813446045 7.9999995231628418 0.95830023288726807 +98 0.0 0.026673177257180214 -0.9996337890625 7.9999990463256836 1.0 +6 0.38151189684867859 0.077181309461593628 -0.92110967636108398 9.0 0.95830023288726807 +87 0.37809380888938904 0.15387432277202606 -0.91286963224411011 9.0 0.90553617477416992 +88 0.0 0.15387432277202606 -0.98806726932525635 7.9999995231628418 0.90553617477416992 +99 0.38151189684867859 0.077181309461593628 -0.92110967636108398 9.0 0.95830023288726807 +87 0.0 0.15387432277202606 -0.98806726932525635 7.9999995231628418 0.90553617477416992 +99 0.0 0.077181309461593628 -0.99700915813446045 7.9999995231628418 0.95830023288726807 +98 0.37809380888938904 0.15387432277202606 -0.91286963224411011 9.0 0.90553617477416992 +88 0.37925350666046143 0.13333536684513092 -0.91561633348464966 9.0 0.84614837169647217 +89 0.0 0.13333536684513092 -0.99105805158615112 8.0 0.84614837169647217 +100 0.37809380888938904 0.15387432277202606 -0.91286963224411011 9.0 0.90553617477416992 +88 0.0 0.13333536684513092 -0.99105805158615112 8.0 0.84614837169647217 +100 0.0 0.15387432277202606 -0.98806726932525635 7.9999995231628418 0.90553617477416992 +99 0.37925350666046143 0.13333536684513092 -0.91561633348464966 9.0 0.84614837169647217 +89 0.38233590126037598 -0.041657764464616776 -0.92306286096572876 9.0 0.78470706939697266 +90 0.0 -0.041657764464616776 -0.999114990234375 8.0 0.78470706939697266 +101 0.37925350666046143 0.13333536684513092 -0.91561633348464966 9.0 0.84614837169647217 +89 0.0 -0.041657764464616776 -0.999114990234375 8.0 0.78470706939697266 +101 0.0 0.13333536684513092 -0.99105805158615112 8.0 0.84614837169647217 +100 0.38233590126037598 -0.041657764464616776 -0.92306286096572876 9.0 0.78470706939697266 +90 0.36198005080223083 -0.32438123226165771 -0.8738974928855896 8.9999990463256836 0.72498798370361328 +91 0.0 -0.32438123226165771 -0.94589066505432129 8.0 0.72498798370361328 +102 0.38233590126037598 -0.041657764464616776 -0.92306286096572876 9.0 0.78470706939697266 +90 0.0 -0.32438123226165771 -0.94589066505432129 8.0 0.72498798370361328 +102 0.0 -0.041657764464616776 -0.999114990234375 8.0 0.78470706939697266 +101 0.36198005080223083 -0.32438123226165771 -0.8738974928855896 8.9999990463256836 0.72498798370361328 +91 0.... [truncated message content] |
From: <jl...@us...> - 2010-06-15 23:13:32
|
Revision: 284 http://racer.svn.sourceforge.net/racer/?rev=284&view=rev Author: jlegg Date: 2010-06-15 23:13:26 +0000 (Tue, 15 Jun 2010) Log Message: ----------- Change tracks so they have lighting and fog consistent with their theme. Modified Paths: -------------- trunk/racer/data/tracks/0 trunk/racer/data/tracks/1 trunk/racer/data/tracks/2 Modified: trunk/racer/data/tracks/0 =================================================================== --- trunk/racer/data/tracks/0 2010-06-15 22:30:54 UTC (rev 283) +++ trunk/racer/data/tracks/0 2010-06-15 23:13:26 UTC (rev 284) @@ -1,2 +1,2 @@ data/theme1/theme1 -2 2 14 1 242.349 348.544 0 -0.131667 0.991294 0 0 0 0.065977 0.997821 1 5 start 1 240.506 369.52 0.288168 0.0102455 0.997002 -0.0766907 -0.0383751 -0.000196386 -0.00511907 0.99925 1 8 straight 1 282.231 402.598 5.09369 0.294327 -0.922977 -0.247962 0.0194735 0.129395 -0.980362 0.147541 1 8 straight 1 246.8 394.624 0 0.663129 -0.748505 0 0 0 -0.935015 0.354609 1 7 left_90 1 236.31 405.867 0 -0.678711 -0.734405 0 0 0 0.931238 0.364414 1 8 right_90 1 286.622 384.716 0 0.229112 -0.933998 -0.274144 0.0164062 0.141315 -0.983224 0.114152 1 7 cap_end 1 287.284 380.905 -5.61317 0.149938 -0.950633 -0.271691 0.0104309 0.138348 -0.987526 0.0744549 1 9 cap_start 1 300.977 340.48 0.615364 0.323689 -0.946164 0 0 0 -0.986449 0.164068 1 8 straight 1 288.364 301.523 0 -0.99813 -0.0611304 0 0 0 0.728399 0.685153 1 8 straight 1 295.685 311.549 -2.43166 -0.997054 -0.0767041 0 0 0 0.733725 0.679447 1 8 straight 1 285.832 305.879 40.7492 0.999877 -0.00155222 -0.0156258 -0.70765 -0.706509 0.0027425 0.00830253 1 8 straight 1 254.972 304.206 19.835 -0.0312486 0.173293 0.984375 0.360878 0.619929 0.532091 0.449816 1 8 straight 1 318.273 305.507 16.6235 0.0227205 2.5034e-06 -0.999742 -0.506071 -0.505225 0.493853 0.494721 1 8 straight 1 247.399 436.615 0 0.771358 0.636401 0 0 0 -0.426379 0.904544 1 8 straight 14 0 1 2 1 8 straight 1 9.14893 0 1 5.68978 1 1 0 0 1 3 2 1 8 straight 1 6.51515 0 1 4.17903 1 1 0 0 3 4 2 1 8 straight 1 0.421524 0 1 0.183244 1 1 0 0 2 5 2 1 8 straight 1 4.45324 0 1 4.45324 0 1 0 0 6 7 2 1 8 straight 1 13.1022 0 1 13.1022 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 7 8 2 1 8 straight 1 12.4942 0 1 12.4942 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 9 0 2 1 8 straight 1 14.972 0 1 28.4819 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 1 11 10 2 1 8 straight 1 13.795 0 1 7.61324 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 8 11 2 1 8 straight 1 16.2304 0 1 7.52357 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 10 12 2 1 8 straight 1 14.4045 0 1 14.5983 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 12 9 2 1 8 straight 1 13.6558 0 1 13.4174 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 5 6 2 1 4 jump 1 3.16571 1 1 1.72685 1 1 0 0 4 13 2 1 8 straight 1 9.45196 0 1 9.45196 1 1 0 0 13 2 2 1 8 straight 1 25.3854 0 1 20.4407 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 \ No newline at end of file +3 2 14 1 242.349 348.544 0 -0.131667 0.991294 0 0 0 0.065977 0.997821 1 5 start 1 240.506 369.52 0.288168 0.0102455 0.997002 -0.0766907 -0.0383751 -0.000196386 -0.00511907 0.99925 1 8 straight 1 282.231 402.598 5.09369 0.294327 -0.922977 -0.247962 0.0194735 0.129395 -0.980362 0.147541 1 8 straight 1 246.8 394.624 0 0.663129 -0.748505 0 0 0 -0.935015 0.354609 1 7 left_90 1 236.31 405.867 0 -0.678711 -0.734405 0 0 0 0.931238 0.364414 1 8 right_90 1 286.622 384.716 0 0.229111 -0.933999 -0.274143 0.0164062 0.141315 -0.983224 0.114152 1 7 cap_end 1 287.284 380.905 -5.61317 0.149938 -0.950633 -0.271691 0.0104309 0.138348 -0.987526 0.0744549 1 9 cap_start 1 300.977 340.48 0.615364 0.323689 -0.946164 0 0 0 -0.986449 0.164068 1 8 straight 1 288.364 301.523 0 -0.99813 -0.0611304 0 0 0 0.728399 0.685153 1 8 straight 1 295.685 311.549 -2.43166 -0.997054 -0.0767041 0 0 0 0.733725 0.679447 1 8 straight 1 285.832 305.879 40.7492 0.999877 -0.00155222 -0.0156258 -0.70765 -0.706509 0.0027425 0.00830253 1 8 straight 1 254.972 304.206 19.835 -0.0312486 0.173293 0.984375 0.360878 0.619929 0.532091 0.449816 1 8 straight 1 318.273 305.507 16.6235 0.0227205 2.5034e-06 -0.999742 -0.506071 -0.505225 0.493853 0.494721 1 8 straight 1 247.399 436.615 0 0.771358 0.636401 0 0 0 -0.426379 0.904544 1 8 straight 14 0 1 2 1 8 straight 1 9.14893 0 1 5.68978 1 1 0 0 1 3 2 1 8 straight 1 6.51515 0 1 4.17903 1 1 0 0 3 4 2 1 8 straight 1 0.421524 0 1 0.183244 1 1 0 0 2 5 2 1 8 straight 1 4.45324 0 1 4.45324 0 1 0 0 6 7 2 1 8 straight 1 13.1022 0 1 13.1022 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 7 8 2 1 8 straight 1 12.4942 0 1 12.4942 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 9 0 2 1 8 straight 1 14.972 0 1 28.4819 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 1 11 10 2 1 8 straight 1 13.795 0 1 7.61324 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 8 11 2 1 8 straight 1 16.2304 0 1 7.52357 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 10 12 2 1 8 straight 1 14.4045 0 1 14.5983 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 12 9 2 1 8 straight 1 13.6558 0 1 13.4174 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 5 6 2 1 4 jump 1 3.16571 1 1 1.72685 1 1 0 0 4 13 2 1 8 straight 1 9.45196 0 1 9.45196 1 1 0 0 13 2 2 1 8 straight 1 25.3854 0 1 20.4407 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 1 1 0.003 0.521141 0.277836 0.15848 1.5259e-05 1 0.6 0.589364 0.543603 1 2 1 0 0.5 1 0 0.627451 0.525246 0.471031 1 1 0 0 -1 0 1 0 0 1 \ No newline at end of file Modified: trunk/racer/data/tracks/1 =================================================================== --- trunk/racer/data/tracks/1 2010-06-15 22:30:54 UTC (rev 283) +++ trunk/racer/data/tracks/1 2010-06-15 23:13:26 UTC (rev 284) @@ -1,2 +1,2 @@ data/theme4/theme4 -2 2 34 1 -1.95822 7.12794 0 0.157095 0.987583 0 0 0 -0.0787925 0.996891 1 8 straight 1 31.7395 20.4761 0 0.999698 0.024587 0 0 0 -0.69836 0.715747 1 8 straight 1 52.2454 3.36814 0 0.635776 -0.735148 -0.235258 -0.178826 0.0584149 -0.914109 0.359185 1 9 quad-join 1 53.1766 -13.4447 0 -0.257835 -0.966189 0 0 0 0.991511 0.130021 1 4 quad 1 46.8401 -27.1291 0 -0.675568 -0.717415 0.170069 0.164233 0.0257082 0.911995 0.375009 1 10 quad-split 1 15.3982 -25.1239 0 -0.92494 0.380112 0 0 0 0.556726 0.830696 1 5 split 1 -1.25705 -26.3032 0 -0.987671 -0.156547 0 0 0 0.760443 0.649405 1 4 thin 1 -2.98956 -22.004 0 -0.943188 -0.33226 0 0 0 0.816168 0.577815 1 4 thin 1 -29.0549 -31.6291 0 -0.785491 -0.618873 0 0 0 0.899687 0.436536 1 4 join 1 -33.4625 -49.3728 0 -0.375326 -0.926893 0 0 0 0.981553 0.19119 1 7 left-90 1 13.9078 -51.1374 0 0.878711 0.477295 0.00755775 0.21752 0.35898 -0.462642 0.780885 1 8 straight 1 53.216 20.6275 2.96037 0.218119 0.899128 0.379464 0.213135 0.727123 0.0707777 0.648735 1 10 tube-entry 1 39.1799 7.08331 0 0.917421 -0.397918 8.9407e-08 0.496647 0.325938 -0.672533 0.441368 1 9 tube-exit 1 28.4216 -19.9022 0 -0.891098 0.406953 0.200831 -0.115522 0.353788 0.532145 0.760468 1 8 straight 1 21.6285 -9.10201 0 -0.511075 0.859536 0 0 0 0.265013 0.964245 1 8 straight 1 17.8216 -0.475689 -4.94982 0.0554699 0.99846 4.94765e-10 0.000216708 0.00780751 -0.0277448 0.999585 1 7 to-bare 1 23.6842 10.8688 -8.29988 0.939422 0.342762 0 0 0 -0.573253 0.819378 1 4 bare 1 43.5561 -2.37913 -8.37602 0.794566 -0.607178 0 0 0 -0.896431 0.443183 1 4 bare 1 69.7328 -6.66427 -10.2795 0.851171 -0.524889 0 0 0 -0.873181 0.487397 1 9 from-bare 1 77.3171 -47.2426 -5.95208 -0.643862 -0.765141 2.68221e-07 0.777909 -0.283754 0.526714 0.192127 1 8 straight 1 49.0595 -52.3804 -6.84699 -0.738141 0.674646 -2.23517e-07 -0.387924 0.880096 0.110417 0.250507 1 8 straight 1 27.746 24.946 -14.3669 -0.758847 0.650442 -0.0328077 -0.305969 0.637482 0.28489 0.647177 1 8 straight 1 9.60506 37.3137 0 -0.846088 0.533043 0 0 0 0.483196 0.875512 1 8 straight 1 -11.6368 44.1359 0 -0.990166 0.139897 0 0 0 0.655783 0.754949 1 8 straight 1 -28.2344 43.0505 0 -0.996639 -0.081916 0 0 0 0.735498 0.677526 1 8 straight 1 -39.4755 42.4303 0 -0.999666 -0.025844 0 0 0 0.716186 0.69791 1 7 end-cap 1 -42.6316 42.0427 -3.35836 -0.999568 -0.0293801 0 0 0 0.717419 0.696642 1 9 start-cap 1 -74.8045 42.6629 0 -0.99958 -0.0289841 0 0 0 0.717281 0.696784 1 7 left-90 1 -44.4147 -0.761831 0 1 0 0 0 0 0.707107 -0.707107 1 9 from-bare 1 -64.0285 4.89751 0 0.862244 -0.506493 0 0 0 -0.867898 0.496743 1 4 bare 1 -74.8045 22.4957 0 0.00675664 -0.999977 0 0 0 -0.999994 0.00337834 1 7 to-bare 1 -11.291 -5.07622 0 0.932266 0.361774 0 0 0 -0.564901 0.825159 1 5 start 1 38.8929 31.1956 13.1213 -0.944188 -0.326093 0.0466192 0.228218 -0.135014 0.781641 0.564557 1 4 tube 1 83.9228 -26.0188 -9.37725 -0.0671963 -0.966982 0.245828 0.499715 0.089985 0.856607 0.0917165 1 8 straight 38 4 5 2 1 8 straight 1 12.4203 4 1 12.4203 1 1 0 0 7 8 2 1 4 thin 1 10.914 1 1 10.914 0 1 0 0 6 8 2 1 4 thin 1 10.6596 1 1 10.6596 1 1 0 0 5 6 2 1 4 thin 1 6.04074 2 1 6.04074 0 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 8 9 2 1 8 straight 1 5.82388 2 1 5.82388 1 1 0 0 9 10 2 1 8 straight 1 17.4707 0 1 17.4707 0 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 10 4 2 1 8 straight 1 15.7184 1 1 15.7184 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 5 7 2 1 4 thin 1 7.25308 0 1 7.25308 0 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 12 2 2 1 8 straight 1 2.85085 0 1 2.73859 4 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 4 13 2 1 8 straight 1 5.41447 3 1 5.41447 0 1 0 0 13 14 2 1 8 straight 1 3.87168 1 1 3.87168 0 1 0 0 14 15 2 1 8 straight 1 3.83588 1 1 3.83588 0 1 0 0 16 15 2 1 4 bare 1 5.60161 1 1 2.45182 1 1 0 0 17 18 2 1 4 bare 1 9.09678 0 1 9.09678 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 27 26 2 1 8 straight 1 9.30823 1 1 9.30823 0 1 0 0 27 30 2 1 8 straight 1 6.76746 0 1 6.76746 0 1 0 0 29 30 2 1 4 bare 1 7.81683 1 1 7.81683 1 1 0 0 29 28 2 1 4 bare 1 7.68231 0 1 7.68231 1 1 0 0 11 32 2 1 4 tube 1 8.02723 0 1 8.02723 1 1 0 0 32 12 2 1 4 tube 1 10.3239 0 1 10.3239 1 1 0 0 1 2 2 1 8 straight 1 9.28834 1 1 7.66231 3 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 28 31 2 1 8 straight 1 12.9998 0 1 12.9998 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 1 0 1 2 1 8 straight 1 16.0782 1 1 16.3674 0 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 2 21 2 1 8 straight 1 12.8566 0 1 12.8566 0 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 2 11 2 1 8 straight 1 4.24427 1 1 4.24427 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 19 20 2 1 8 straight 1 10.1743 1 1 9.78491 0 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 20 4 2 1 8 straight 1 10.2903 1 1 11.0446 2 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 24 25 2 1 8 straight 1 4.10346 1 1 4.10346 0 1 0 0 23 24 2 1 8 straight 1 4.96524 1 1 4.62784 0 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 22 23 2 1 8 straight 1 7.15112 1 1 5.69815 0 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 21 22 2 1 8 straight 1 7.54109 1 1 7.02076 0 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 3 4 2 1 4 quad 1 5.63848 1 1 5.63848 0 1 0 0 2 3 2 1 4 quad 1 6.35648 2 1 6.35648 0 1 0 0 31 0 2 1 8 straight 1 5.40092 0 1 5.40092 0 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 16 17 2 1 4 bare 1 8.92245 0 1 8.92245 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 33 19 2 1 8 straight 1 5.31745 1 1 5.08188 0 1 0 0 18 33 2 1 8 straight 1 7.59989 0 1 8.70242 0 1 0 0 26 25 2 1 4 jump 1 0.897112 1 1 0.234087 1 1 0 0 \ No newline at end of file +3 2 34 1 -1.95822 7.12794 0 0.157095 0.987583 0 0 0 -0.0787925 0.996891 1 8 straight 1 31.7395 20.4761 0 0.999698 0.024587 0 0 0 -0.69836 0.715747 1 8 straight 1 52.2454 3.36814 0 0.635776 -0.735148 -0.235258 -0.178826 0.0584149 -0.914109 0.359185 1 9 quad-join 1 53.1766 -13.4447 0 -0.257835 -0.966189 0 0 0 0.991511 0.130021 1 4 quad 1 46.8401 -27.1291 0 -0.675568 -0.717415 0.170069 0.164233 0.0257082 0.911995 0.375009 1 10 quad-split 1 15.3982 -25.1239 0 -0.92494 0.380112 0 0 0 0.556726 0.830696 1 5 split 1 -1.25705 -26.3032 0 -0.987671 -0.156547 0 0 0 0.760443 0.649405 1 4 thin 1 -2.98956 -22.004 0 -0.943188 -0.33226 0 0 0 0.816168 0.577815 1 4 thin 1 -29.0549 -31.6291 0 -0.785491 -0.618873 0 0 0 0.899687 0.436536 1 4 join 1 -33.4625 -49.3728 0 -0.375326 -0.926893 0 0 0 0.981553 0.19119 1 7 left-90 1 13.9078 -51.1374 0 0.878711 0.477295 0.00755775 0.21752 0.35898 -0.462642 0.780885 1 8 straight 1 53.216 20.6275 2.96037 0.218119 0.899128 0.379464 0.213135 0.727123 0.0707777 0.648735 1 10 tube-entry 1 39.1799 7.08331 0 0.917421 -0.397918 8.9407e-08 0.496647 0.325938 -0.672533 0.441368 1 9 tube-exit 1 28.4216 -19.9022 0 -0.891098 0.406953 0.200831 -0.115522 0.353788 0.532145 0.760468 1 8 straight 1 21.6285 -9.10201 0 -0.511075 0.859536 0 0 0 0.265013 0.964245 1 8 straight 1 17.8216 -0.475689 -4.94982 0.0554699 0.99846 4.94765e-10 0.000216708 0.00780751 -0.0277448 0.999585 1 7 to-bare 1 23.6842 10.8688 -8.29988 0.939422 0.342762 0 0 0 -0.573253 0.819378 1 4 bare 1 43.5561 -2.37913 -8.37602 0.794566 -0.607178 0 0 0 -0.896431 0.443183 1 4 bare 1 69.7328 -6.66427 -10.2795 0.851171 -0.524889 0 0 0 -0.873181 0.487397 1 9 from-bare 1 77.3171 -47.2426 -5.95208 -0.643862 -0.765141 2.68221e-07 0.777909 -0.283754 0.526714 0.192127 1 8 straight 1 49.0595 -52.3804 -6.84699 -0.738141 0.674646 -2.23517e-07 -0.387924 0.880096 0.110417 0.250507 1 8 straight 1 27.746 24.946 -14.3669 -0.758847 0.650442 -0.0328077 -0.305969 0.637482 0.28489 0.647177 1 8 straight 1 9.60506 37.3137 0 -0.846088 0.533043 0 0 0 0.483196 0.875512 1 8 straight 1 -11.6368 44.1359 0 -0.990166 0.139897 0 0 0 0.655783 0.754949 1 8 straight 1 -28.2344 43.0505 0 -0.996639 -0.081916 0 0 0 0.735498 0.677526 1 8 straight 1 -39.4755 42.4303 0 -0.999666 -0.025844 0 0 0 0.716186 0.69791 1 7 end-cap 1 -42.6316 42.0427 -3.35836 -0.999568 -0.0293801 0 0 0 0.717419 0.696642 1 9 start-cap 1 -74.8045 42.6629 0 -0.99958 -0.0289841 0 0 0 0.717281 0.696784 1 7 left-90 1 -44.4147 -0.761831 0 1 0 0 0 0 0.707107 -0.707107 1 9 from-bare 1 -64.0285 4.89751 0 0.862244 -0.506493 0 0 0 -0.867898 0.496743 1 4 bare 1 -74.8045 22.4957 0 0.00675664 -0.999977 0 0 0 -0.999994 0.00337834 1 7 to-bare 1 -11.291 -5.07622 0 0.932266 0.361774 0 0 0 -0.564901 0.825159 1 5 start 1 38.8929 31.1956 13.1213 -0.944188 -0.326093 0.0466192 0.228218 -0.135014 0.781641 0.564557 1 4 tube 1 83.9228 -26.0188 -9.37725 -0.0671963 -0.966982 0.245828 0.499715 0.089985 0.856607 0.0917165 1 8 straight 38 4 5 2 1 8 straight 1 12.4203 4 1 12.4203 1 1 0 0 7 8 2 1 4 thin 1 10.914 1 1 10.914 0 1 0 0 6 8 2 1 4 thin 1 10.6596 1 1 10.6596 1 1 0 0 5 6 2 1 4 thin 1 6.04074 2 1 6.04074 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 8 9 2 1 8 straight 1 5.82388 2 1 5.82388 1 1 0 0 9 10 2 1 8 straight 1 17.4707 0 1 17.4707 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 10 4 2 1 8 straight 1 15.7184 1 1 15.7184 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 5 7 2 1 4 thin 1 7.25308 0 1 7.25308 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 12 2 2 1 8 straight 1 2.85085 0 1 2.73859 4 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 4 13 2 1 8 straight 1 5.41447 3 1 5.41447 0 1 0 0 13 14 2 1 8 straight 1 3.87168 1 1 3.87168 0 1 0 0 14 15 2 1 8 straight 1 3.83588 1 1 3.83588 0 1 0 0 16 15 2 1 4 bare 1 5.60161 1 1 2.45182 1 1 0 0 17 18 2 1 4 bare 1 9.09678 0 1 9.09678 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 27 26 2 1 8 straight 1 9.30823 1 1 9.30823 0 1 0 0 27 30 2 1 8 straight 1 6.76746 0 1 6.76746 0 1 0 0 29 30 2 1 4 bare 1 7.81683 1 1 7.81683 1 1 0 0 29 28 2 1 4 bare 1 7.68231 0 1 7.68231 1 1 0 0 11 32 2 1 4 tube 1 8.02723 0 1 8.02723 1 1 0 0 32 12 2 1 4 tube 1 10.3239 0 1 10.3239 1 1 0 0 1 2 2 1 8 straight 1 9.28834 1 1 7.66231 3 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 28 31 2 1 8 straight 1 12.9998 0 1 12.9998 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 1 0 1 2 1 8 straight 1 16.0782 1 1 16.3674 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 2 21 2 1 8 straight 1 12.8566 0 1 12.8566 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 2 11 2 1 8 straight 1 4.24427 1 1 4.24427 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 19 20 2 1 8 straight 1 10.1743 1 1 9.78491 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 20 4 2 1 8 straight 1 10.2903 1 1 11.0446 2 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 24 25 2 1 8 straight 1 4.10346 1 1 4.10346 0 1 0 0 23 24 2 1 8 straight 1 4.96524 1 1 4.62784 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 22 23 2 1 8 straight 1 7.15112 1 1 5.69815 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 21 22 2 1 8 straight 1 7.54109 1 1 7.02076 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 3 4 2 1 4 quad 1 5.63848 1 1 5.63848 0 1 0 0 2 3 2 1 4 quad 1 6.35648 2 1 6.35648 0 1 0 0 31 0 2 1 8 straight 1 5.40092 0 1 5.40092 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 16 17 2 1 4 bare 1 8.92245 0 1 8.92245 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 33 19 2 1 8 straight 1 5.31745 1 1 5.08188 0 1 0 0 18 33 2 1 8 straight 1 7.59989 0 1 8.70242 0 1 0 0 26 25 2 1 4 jump 1 0.897112 1 1 0.234087 1 1 0 0 1 1 0.004 0.348592 0.145022 0.265599 1.5259e-05 1 0.673198 0.619135 0.632456 1 2 1 -19.358 -58.494 33.224 0 1 0.837217 0.689921 1 1 0 -4 2.49252e-37 0 0.481376 0.246464 0.360494 1 \ No newline at end of file Modified: trunk/racer/data/tracks/2 =================================================================== --- trunk/racer/data/tracks/2 2010-06-15 22:30:54 UTC (rev 283) +++ trunk/racer/data/tracks/2 2010-06-15 23:13:26 UTC (rev 284) @@ -1,2 +1,2 @@ data/theme2/theme2 -2 2 27 1 0.320587 1.39555 -0.356787 0 1 0 0 0 0 1 1 12 Intersection 1 -0.136551 48.6476 0 0 1 0 0 0 0 1 1 7 To_tube 1 0 77.7435 15.7876 0.10814 0.205492 0.972666 0.628876 0.0341033 -0.0420609 0.775618 1 4 Tube 1 0 52.0217 39.366 7.00355e-07 -0.924678 0.380749 0.748178 0.125517 0.634484 0.148008 1 4 Tube 1 0 11.2955 23.5578 -0.0209744 -0.922145 -0.386276 -0.359175 0.187231 -0.912176 0.0622265 1 4 Tube 1 -5.92795 -22.1965 -19.8478 -0.381563 -0.924343 0 0 0 -0.980903 -0.194496 1 4 Tube 1 -18.585 -35.0971 -10.5031 -0.984498 -0.175397 0 0 0 0.766615 0.642107 1 4 Tube 1 -48.3862 -37.1725 -7.78405 -0.999935 0.0114224 0 0 0 -0.703057 -0.711134 1 9 From_tube 1 -82.889 -6.27461 0 0 1 0 0 0 0 1 1 15 Double_straight 1 -17.7812 24.0283 5.72029 0.967741 0.21875 0.125001 0.103708 0.0298497 -0.616336 0.780054 1 15 Double_straight 1 34.4662 8.48805 25.7013 0.743605 -0.668619 0 0 0 -0.913406 0.407051 1 15 Double_straight 1 63.782 -27.34 25.7013 0.58307 -0.812422 0 0 0 0.951952 -0.30625 1 11 From_double 1 0.782539 -55.8189 0 0 1 0 0 0 0 1 1 9 To_double 1 65.9297 -57.5639 21.1463 -0.396137 -0.918191 -5.81145e-07 0.855182 -0.176609 0.477243 0.0985581 1 8 Straight 1 23.9919 -91.3102 9.89305 -0.974131 0.225984 -4.47035e-07 0.31266 -0.393496 0.537821 0.67687 1 8 Straight 1 -0.308731 -107.404 -4.51578 0.0144463 0.999774 0.0156245 0.0106404 0.678842 0 0.734208 1 8 Straight 1 -0.642853 -140.983 -4.87373 0 1 0 0 0 0 1 1 8 Straight 1 31.8386 -147.739 0 -0.93759 -0.347742 0 0 0 0.820896 0.571077 1 8 Straight 1 40.8967 -116.51 1.92734 -0.0285597 -0.999592 0 0 0 0.999898 0.0142813 1 8 Straight 1 11.5211 -103.36 3.89608 0.947369 0.320144 0 0 0 -0.583033 0.812448 1 8 Straight 1 -26.6231 -113.562 6.56132 0.996616 -0.0821939 0 0 0 -0.735593 0.677424 1 8 Straight 1 -59.4166 -146.178 0 0 1 0 0 0 0 1 1 5 Start 1 20.5336 -164.255 0 -0.999826 -0.0186697 0 0 0 0.713677 0.700475 1 8 Straight 1 88.5674 -65.9227 29.4524 -0.351707 -0.93611 -1.3411e-07 0.125283 -0.0227586 0.975889 0.177276 1 8 Straight 1 79.3791 -87.6255 20.8784 -0.489637 -0.871926 -1.13994e-06 0.252056 -0.0659305 0.93404 0.244316 1 8 Straight 1 67.1543 -118.17 13.4108 -0.319916 -0.924885 -0.205529 0.017688 -0.107673 0.980882 0.161134 1 8 Straight 1 53.2217 -150.322 0 -0.606657 -0.794963 -3.72529e-08 0.116883 -0.0395039 0.940117 0.317739 1 8 Straight 29 0 1 2 1 15 Double_straight 1 7.52984 1 1 7.52984 0 1 0 0 1 2 2 1 4 Tube 1 12.5226 1 1 7.09285 1 1 0 0 2 3 2 1 4 Tube 1 9.6741 0 1 15.0603 1 1 0 0 3 4 2 1 4 Tube 1 17.458 0 1 14.3187 1 1 0 0 4 0 2 1 4 Tube 1 12.3545 0 1 9.24984 2 1 0 0 12 0 2 1 15 Double_straight 1 6.88974 2 1 6.88974 0 1 0 0 13 14 2 1 8 Straight 1 16.228 0 1 19.8801 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 14 12 2 1 8 Straight 1 12.7492 0 1 8.03176 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 16 15 2 1 8 Straight 1 8.48371 0 1 8.48371 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 15 12 2 1 8 Straight 1 7.7946 0 1 7.7946 0 1 0 0 17 16 2 1 8 Straight 1 11.1757 0 1 15.7048 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 18 17 2 1 8 Straight 1 10.4582 0 1 10.4162 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 19 18 2 1 8 Straight 1 11.6971 0 1 10.4178 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 20 19 2 1 8 Straight 1 13.756 0 1 14.8249 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 21 20 2 1 8 Straight 1 12.8252 1 1 13.8647 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 22 21 2 1 8 Straight 1 34.4231 0 1 34.4231 0 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 1 11 13 2 1 8 Straight 1 8.08799 2 1 8.08799 1 1 0 0 6 7 2 1 4 Tube 1 8.43531 0 1 8.43531 0 1 0 0 7 8 2 1 15 Double_straight 1 11.8113 1 1 26.4887 0 1 0 0 23 24 2 1 8 Straight 1 7.11977 0 1 7.11977 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 24 25 2 1 8 Straight 1 10.3575 0 1 10.3575 1 1 1 1 1 19 Track::TrackBooster 1 0.5 0 1 0 11 23 2 1 8 Straight 1 14.2502 1 1 14.2502 1 1 0 0 10 11 2 1 15 Double_straight 1 10.5499 1 1 10.5499 0 1 0 0 25 26 2 1 8 Straight 1 12.0117 0 1 12.0117 1 1 0 0 26 22 2 1 8 Straight 1 11.3401 0 1 11.3401 1 1 0 0 9 10 2 1 15 Double_straight 1 24.5853 1 1 15.4768 0 1 0 0 8 9 2 1 15 Double_straight 1 25.6288 1 1 20.3607 0 1 0 0 5 6 2 1 4 Tube 1 7.5267 0 1 7.5267 1 1 0 0 0 5 2 1 4 Tube 1 11.9342 3 1 11.9342 1 1 0 0 \ No newline at end of file +3 2 27 1 0.320587 1.39555 -0.356787 0 1 0 0 0 0 1 1 12 Intersection 1 -0.136551 48.6476 0 0 1 0 0 0 0 1 1 7 To_tube 1 0 77.7435 15.7876 0.10814 0.205492 0.972666 0.628876 0.0341033 -0.0420609 0.775618 1 4 Tube 1 0 52.0217 39.366 7.00355e-07 -0.924678 0.380749 0.748178 0.125517 0.634484 0.148008 1 4 Tube 1 0 11.2955 23.5578 -0.0209744 -0.922145 -0.386276 -0.359175 0.187231 -0.912176 0.0622265 1 4 Tube 1 -5.92795 -22.1965 -19.8478 -0.381564 -0.924343 0 0 0 -0.980903 -0.194496 1 4 Tube 1 -18.585 -35.0971 -10.5031 -0.984498 -0.175397 0 0 0 0.766615 0.642107 1 4 Tube 1 -48.3862 -37.1725 -7.78405 -0.999935 0.0114224 0 0 0 -0.703057 -0.711134 1 9 From_tube 1 -82.889 -6.27461 0 0 1 0 0 0 0 1 1 15 Double_straight 1 -17.7812 24.0283 5.72029 0.967741 0.21875 0.125001 0.103708 0.0298497 -0.616336 0.780054 1 15 Double_straight 1 34.4662 8.48805 25.7013 0.743605 -0.668619 0 0 0 -0.913406 0.407051 1 15 Double_straight 1 63.782 -27.34 25.7013 0.58307 -0.812422 0 0 0 0.951952 -0.30625 1 11 From_double 1 0.782539 -55.8189 0 0 1 0 0 0 0 1 1 9 To_double 1 65.9297 -57.5639 21.1463 -0.396137 -0.918191 -5.81145e-07 0.855182 -0.176609 0.477243 0.0985581 1 8 Straight 1 23.9919 -91.3102 9.89305 -0.974131 0.225984 -4.47035e-07 0.31266 -0.393496 0.537821 0.67687 1 8 Straight 1 -0.308731 -107.404 -4.51578 0.0144463 0.999774 0.0156245 0.0106404 0.678842 0 0.734208 1 8 Straight 1 -0.642853 -140.983 -4.87373 0 1 0 0 0 0 1 1 8 Straight 1 31.8386 -147.739 0 -0.93759 -0.347742 0 0 0 0.820896 0.571077 1 8 Straight 1 40.8967 -116.51 1.92734 -0.0285597 -0.999592 0 0 0 0.999898 0.0142813 1 8 Straight 1 11.5211 -103.36 3.89608 0.947369 0.320144 0 0 0 -0.583033 0.812448 1 8 Straight 1 -26.6231 -113.562 6.56132 0.996616 -0.0821939 0 0 0 -0.735593 0.677424 1 8 Straight 1 -59.4166 -146.178 0 0 1 0 0 0 0 1 1 5 Start 1 20.5336 -164.255 0 -0.999826 -0.0186697 0 0 0 0.713677 0.700475 1 8 Straight 1 88.5674 -65.9227 29.4524 -0.351706 -0.936111 -3.94881e-07 0.125283 -0.0227586 0.975889 0.177276 1 8 Straight 1 79.3791 -87.6255 20.8784 -0.489638 -0.871926 -8.19564e-07 0.252056 -0.0659305 0.93404 0.244316 1 8 Straight 1 67.1543 -118.17 13.4108 -0.319916 -0.924885 -0.205529 0.017688 -0.107673 0.980882 0.161134 1 8 Straight 1 53.2217 -150.322 0 -0.606658 -0.794963 7.45058e-09 0.116883 -0.0395039 0.940117 0.317739 1 8 Straight 29 0 1 2 1 15 Double_straight 1 7.52984 1 1 7.52984 0 1 0 0 1 2 2 1 4 Tube 1 12.5226 1 1 7.09285 1 1 0 0 2 3 2 1 4 Tube 1 9.6741 0 1 15.0603 1 1 0 0 3 4 2 1 4 Tube 1 17.458 0 1 14.3187 1 1 0 0 4 0 2 1 4 Tube 1 12.3545 0 1 9.24984 2 1 0 0 12 0 2 1 15 Double_straight 1 6.88974 2 1 6.88974 0 1 0 0 13 14 2 1 8 Straight 1 16.228 0 1 19.8801 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 14 12 2 1 8 Straight 1 12.7492 0 1 8.03176 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 16 15 2 1 8 Straight 1 8.48371 0 1 8.48371 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 15 12 2 1 8 Straight 1 7.7946 0 1 7.7946 0 1 0 0 17 16 2 1 8 Straight 1 11.1757 0 1 15.7048 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 18 17 2 1 8 Straight 1 10.4582 0 1 10.4162 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 19 18 2 1 8 Straight 1 11.6971 0 1 10.4178 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 20 19 2 1 8 Straight 1 13.756 0 1 14.8249 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 21 20 2 1 8 Straight 1 12.8252 1 1 13.8647 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 22 21 2 1 8 Straight 1 34.4231 0 1 34.4231 0 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 1 11 13 2 1 8 Straight 1 8.08799 2 1 8.08799 1 1 0 0 6 7 2 1 4 Tube 1 8.43531 0 1 8.43531 0 1 0 0 7 8 2 1 15 Double_straight 1 11.8113 1 1 26.4887 0 1 0 0 23 24 2 1 8 Straight 1 7.11977 0 1 7.11977 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 24 25 2 1 8 Straight 1 10.3575 0 1 10.3575 1 1 1 1 1 19 Track::TrackBooster 2 0.5 0 0 1 0 11 23 2 1 8 Straight 1 14.2502 1 1 14.2502 1 1 0 0 10 11 2 1 15 Double_straight 1 10.5499 1 1 10.5499 0 1 0 0 25 26 2 1 8 Straight 1 12.0117 0 1 12.0117 1 1 0 0 26 22 2 1 8 Straight 1 11.3401 0 1 11.3401 1 1 0 0 9 10 2 1 15 Double_straight 1 24.5853 1 1 15.4768 0 1 0 0 8 9 2 1 15 Double_straight 1 25.6288 1 1 20.3607 0 1 0 0 5 6 2 1 4 Tube 1 7.5267 0 1 7.5267 1 1 0 0 0 5 2 1 4 Tube 1 11.9342 3 1 11.9342 1 1 0 0 1 1 0.0055 0.281559 0.435767 0.669978 1.5259e-05 1 0.394553 0.529427 0.607904 1 2 1 -1.414 1.414 2 0 0.876844 0.819776 0.345495 1 1 0 0 -1 0 0.444587 0.262745 0.131914 1 \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-15 22:31:00
|
Revision: 283 http://racer.svn.sourceforge.net/racer/?rev=283&view=rev Author: jlegg Date: 2010-06-15 22:30:54 +0000 (Tue, 15 Jun 2010) Log Message: ----------- Fix update of track attachments' position when being dragged in the editor. Modified Paths: -------------- trunk/libtrack/path/PathEdge.cpp Modified: trunk/libtrack/path/PathEdge.cpp =================================================================== --- trunk/libtrack/path/PathEdge.cpp 2010-06-15 22:00:35 UTC (rev 282) +++ trunk/libtrack/path/PathEdge.cpp 2010-06-15 22:30:54 UTC (rev 283) @@ -525,10 +525,12 @@ (**attach_it) = attachment; // Set correct handle position. btTransform transform = get_transform(attachment.get_t_position()); - m_attachment_handles[index]->set_position( - transform(btVector3(attachment.get_lateral_position(), - 0.0, - attachment.get_vertical_position()))); + btVector3 pos = transform(btVector3(attachment.get_lateral_position(), + 0.0, + attachment.get_vertical_position())); + m_attachment_handles[index]->set_position(pos); + // set attachment's global position. + (**attach_it).set_global_position(pos); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-15 22:00:43
|
Revision: 282 http://racer.svn.sourceforge.net/racer/?rev=282&view=rev Author: jlegg Date: 2010-06-15 22:00:35 +0000 (Tue, 15 Jun 2010) Log Message: ----------- Use per track configurable lighting and fog. Modified Paths: -------------- trunk/libtrack/Makefile.am trunk/libtrack/Track.cpp trunk/libtrack/Track.h trunk/libtrack/document/Makefile.am trunk/racer/Engine/GameScene.cpp trunk/racer_editor/EditorWindow.cpp trunk/racer_editor/EditorWindow.h trunk/racer_editor/Makefile.am Added Paths: ----------- trunk/libtrack/Lighting.cpp trunk/libtrack/Lighting.h trunk/libtrack/document/ChangeLightingDelta.cpp trunk/libtrack/document/ChangeLightingDelta.h trunk/racer_editor/LightingWindow.cpp trunk/racer_editor/LightingWindow.h Added: trunk/libtrack/Lighting.cpp =================================================================== --- trunk/libtrack/Lighting.cpp (rev 0) +++ trunk/libtrack/Lighting.cpp 2010-06-15 22:00:35 UTC (rev 282) @@ -0,0 +1,239 @@ +/** @file libtrack/Lighting.cpp + * @brief Implement the Track::Lighting, Track::LightSettings, and Track::FogSettings classes. + * @author James Legg + */ +/* Copyright © 2010 James Legg. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. +*/ + +#include "Lighting.h" + +#include <GL/gl.h> + +#include "stream_loader.h" +#include "FormErrors.h" + +namespace Track +{ + +const unsigned int lighting_newest_version = 1; +const unsigned int fog_settings_newest_version = 1; +const unsigned int light_settings_newest_version = 1; + +FogSettings::FogSettings() + : density(0.004) + , enabled(true) +{ + const float default_fog_colour[4] = {0.3, 0.0, 0.1, 1.0}; + for (int i = 0; i < 4; i++) + { + colour[i] = default_fog_colour[i]; + } +} + +FogSettings::FogSettings(std::istream & in) +{ + unsigned int file_version; + in >> file_version; + if (file_version == 0) throw CorruptedError(); + if (file_version > fog_settings_newest_version) throw NewVersionError(); + in >> density >> + colour[0] >> colour[1] >> colour[2] >> colour[3] >> + enabled; +} + +bool FogSettings::operator != (const FogSettings & other) const +{ + if (enabled != other.enabled) return true; + if (density != other.density) return true; + for (int i = 0; i < 4; i++) + { + if (colour[i] != other.colour[i]) return true; + } + return false; +} + +std::ostream & operator<<(std::ostream & dest, const FogSettings & fog) +{ + dest << fog_settings_newest_version << ' ' << + fog.density << ' ' << + fog.colour[0] << ' ' << fog.colour[1] << ' ' << + fog.colour[2] << ' ' << fog.colour[3] << ' ' << + fog.enabled; + return dest; +} + +LightSettings::LightSettings() +{ +} + +LightSettings::LightSettings(std::istream & in) +{ + unsigned int file_version; + in >> file_version; + if (file_version == 0) throw CorruptedError(); + if (file_version > light_settings_newest_version) throw NewVersionError(); + in >> position[0] >> position[1] >> position[2] >> position[3] >> + colour[0] >> colour[1] >> colour[2] >> colour[3]; +} + +bool LightSettings::operator == (const LightSettings & other) const +{ + for (int i = 0; i < 4; i++) + { + if (position[i] != other.position[i]) return false; + if (colour[i] != other.colour[i]) return false; + } + return true; +} + +std::ostream & operator<<(std::ostream & dest, const LightSettings & ls) +{ + dest << light_settings_newest_version << ' ' << + ls.position[0] << ' ' << ls.position[1] << ' ' << + ls.position[2] << ' ' << ls.position[3] << ' ' << + ls.colour[0] << ' ' << ls.colour[1] << ' ' << + ls.colour[2] << ' ' << ls.colour[3]; + return dest; +} + +Lighting::Lighting() +{ + m_lights.resize(2); + const float l0p[4] = {0.0, 0.0, 1.0, 0.0}; + const float l0c[4] = {0.4, 0.4, 0.4, 1.0}; + const float l1p[4] = {1.0, 0.0, 0.0, 0.0}; + const float l1c[4] = {0.4, 0.2, 0.1, 1.0}; + const float amb[4] = {0.6, 0.6, 0.6, 1.0}; + for (int i = 0; i < 4; i++) + { + m_lights[0].position[i] = l0p[i]; + m_lights[0].colour[i] = l0c[i]; + m_lights[1].position[i] = l1p[i]; + m_lights[1].colour[i] = l1c[i]; + m_ambient_light[i] = amb[i]; + } + +} + +Lighting::Lighting(std::istream & in) +{ + unsigned int file_version; + in >> file_version; + if (file_version == 0) throw CorruptedError(); + if (file_version > lighting_newest_version) throw NewVersionError(); + m_fog = FogSettings(in); + in >> m_ambient_light[0] >> m_ambient_light[1] >> + m_ambient_light[2] >> m_ambient_light[3]; + unsigned int m_num_lights; + in >> m_num_lights; + if (m_num_lights > 8) throw CorruptedError(); + m_lights.resize(m_num_lights); + for (int i = 0; i < m_num_lights; i++) + { + m_lights[i]= LightSettings(in); + } +} + +void Lighting::initalise() const +{ + // lights + for (unsigned int i = 0; i < m_lights.size(); i++) + { + glEnable(GL_LIGHT0 + i); + glLightfv(GL_LIGHT0 + i, GL_DIFFUSE, m_lights[i].colour); + } + // disable unused lights that could have activated from a previous game. + for (unsigned int i = m_lights.size(); i < 8; i++) + { + glDisable(GL_LIGHT0+i); + } + // ambient light + glLightModelfv(GL_LIGHT_MODEL_AMBIENT, m_ambient_light); + // only reflects a fith of the ambient light and 4 fiths of diffuse light + // by default. Use all light. + GLfloat light_scale[4] = {1.0, 1.0, 1.0, 1.0}; + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, light_scale); + + // fog + glFogf(GL_FOG_MODE, GL_EXP2); + glFogf(GL_FOG_DENSITY, m_fog.density); + glFogfv(GL_FOG_COLOR, m_fog.colour); + if (m_fog.enabled) glEnable(GL_FOG); else + glDisable(GL_FOG); +} + +void Lighting::prepare_render() const +{ + glEnable(GL_LIGHTING); + if (m_fog.enabled) glEnable(GL_FOG); else + glDisable(GL_FOG); + for (unsigned int i = 0; i < m_lights.size(); i++) + { + glLightfv(GL_LIGHT0 + i, GL_POSITION, m_lights[i].position); + } +} + +void Lighting::set_lights(const std::vector<LightSettings> & lights) +{ + m_lights = lights; +} + +const std::vector<LightSettings> & Lighting::get_lights() const +{ + return m_lights; +} + +void Lighting::set_ambient(float colour[4]) +{ + for (int i = 0; i < 4; i++) + { + m_ambient_light[i] = colour[i]; + } +} + +const float * Lighting::get_ambient_light() const +{ + return m_ambient_light; +} + +void Lighting::set_fog(const FogSettings & fog) +{ + m_fog = fog; +} + +const FogSettings & Lighting::get_fog() const +{ + return m_fog; +} + +bool Lighting::operator!=(const Lighting & other) const +{ + if (m_lights != other.m_lights) return true; + if (m_fog != other.m_fog) return true; + for (int i = 0; i < 4; i++) + { + if (m_ambient_light[i] != other.m_ambient_light[i]) return true; + } + return false; +} + +std::ostream & operator<<(std::ostream & dest, const Lighting & lighting) +{ + const float * amb = lighting.get_ambient_light(); + dest << lighting_newest_version << ' ' << + lighting.get_fog() << ' ' << + amb[0] << ' ' << amb[1] << ' ' << amb[2] << ' ' << amb[3] << ' '; + const std::vector<LightSettings> & lights = lighting.get_lights(); + dest << lights.size(); + for (int i = 0; i < lights.size(); i++) + { + dest << ' ' << lights[i]; + } + return dest; +} + +} // namespace Track. Added: trunk/libtrack/Lighting.h =================================================================== --- trunk/libtrack/Lighting.h (rev 0) +++ trunk/libtrack/Lighting.h 2010-06-15 22:00:35 UTC (rev 282) @@ -0,0 +1,117 @@ +/** @file libtrack/Lighting.h + * @brief Declare the Track::Lighting, Track::LightSettings, and Track::FogSettings classes. + * @author James Legg + */ +/* Copyright © 2010 James Legg. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. +*/ + +#ifndef LIBTRACK_LIGHTING_H_ +#define LIBTRACK_LIGHTING_H_ + +#include <istream> +#include <ostream> +#include <vector> + +namespace Track +{ + +/** A light that illuminates the track and cars on it. + * Configure these through Track::Lighting. + */ +struct LightSettings +{ + LightSettings(); + LightSettings(std::istream & in); + /** Global xyzw position of light. + * w=0 sets the light infinetly far away. + */ + float position[4]; + /// RGBA colour of the light + float colour[4]; + bool operator == (const LightSettings & other) const; +}; + +/// Serialize a Track::LightSettings. +std::ostream & operator<<(std::ostream & destination, const LightSettings & light_settings); + +/** A graphical effect that blends distant objects to a colour. + * Configure through Track::Lighting. + */ +struct FogSettings +{ + FogSettings(); + FogSettings(std::istream & in); + /// RGBA colour of the fog + float colour[4]; + /** Fog thickness. + * Must be > 0. + * The fog is blended with a factor of e^(-density*distance^2). + */ + float density; + /// true iff the fog is used at all. + bool enabled; + bool operator != (const FogSettings & other) const; +}; + +/// Serialize a Track::FogSettings. +std::ostream & operator<<(std::ostream & destination, const FogSettings & fog_settings); + +/** Defines lighting and atmospheric effects for a track. + */ +class Lighting +{ + public: + // Initalise to sensible defaults. + Lighting(); + + /// Create from a serialised record. + Lighting(std::istream & in); + + /** Set up lighting and fog for a render. + * Should be called for each render, between setting the matrices and + * drawing geometry. + */ + void prepare_render() const; + + /** Initalise lighting and fog in OpenGL. + * Should be called before rendering any frame. + */ + void initalise() const; + + /** Set the lights' settings. + */ + void set_lights(const std::vector<LightSettings> & lights); + /** Get the lights' settings. + */ + const std::vector<LightSettings> & get_lights() const; + + /** Set the ambient light colour. + */ + void set_ambient(float colour[4]); + /** Get the ambient light colour. + */ + const float * get_ambient_light() const; + + /** Set the fog settings. + */ + void set_fog(const FogSettings & fog); + /** Get the fog settings + */ + const FogSettings & get_fog() const; + + bool operator!=(const Lighting & other) const; + private: + std::vector<LightSettings> m_lights; + FogSettings m_fog; + float m_ambient_light[4]; +}; + +std::ostream & operator<<(std::ostream & destination, const Lighting & lighting); + +} // Track namespace + +#endif // LIBTRACK_LIGHTING_H_ Modified: trunk/libtrack/Makefile.am =================================================================== --- trunk/libtrack/Makefile.am 2010-06-13 16:25:34 UTC (rev 281) +++ trunk/libtrack/Makefile.am 2010-06-15 22:00:35 UTC (rev 282) @@ -8,6 +8,7 @@ Drawable.cpp Drawable.h\ FormErrors.h\ Geometry.h\ + Lighting.cpp Lighting.h\ NearTrack.cpp NearTrack.h\ OcclusionTester.cpp OcclusionTester.h\ PieceDistortion.cpp PieceDistortion.h\ Modified: trunk/libtrack/Track.cpp =================================================================== --- trunk/libtrack/Track.cpp 2010-06-13 16:25:34 UTC (rev 281) +++ trunk/libtrack/Track.cpp 2010-06-15 22:00:35 UTC (rev 282) @@ -26,7 +26,7 @@ #include <cmath> -const unsigned int track_newest_version = 2; +const unsigned int track_newest_version = 3; namespace Track { @@ -38,6 +38,7 @@ , editor(editor_in) { if (file_version == 0) throw CorruptedError(); + if (file_version == 3) m_lighting = Lighting(source); if (file_version > track_newest_version) throw NewVersionError(); // version 1 contained some extra information, but we can ignore it // since it would have been at the end of the file. @@ -72,7 +73,9 @@ std::ostream & operator<<(std::ostream & destination, const Track & track) { destination << track_newest_version << ' '; - destination << track.path; + destination << track.path << ' ' << track.get_lighting() << ' '; + // the space at the end of the file prevents an error reading the last + // number. end of file is not end of number, apparently. return destination; } @@ -398,4 +401,14 @@ } } +const Lighting & Track::get_lighting() const +{ + return m_lighting; +} + +void Track::set_lighting(const Lighting & lighting) +{ + m_lighting = lighting; +} + }; Modified: trunk/libtrack/Track.h =================================================================== --- trunk/libtrack/Track.h 2010-06-13 16:25:34 UTC (rev 281) +++ trunk/libtrack/Track.h 2010-06-15 22:00:35 UTC (rev 282) @@ -17,6 +17,7 @@ #include "Theme.h" #include "path/Path.h" +#include "Lighting.h" #include <BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h> @@ -95,6 +96,9 @@ void set_filename(std::string filename); /// Get the filename previously set by set_filename. std::string get_filename() const; + + const Lighting & get_lighting() const; + void set_lighting(const Lighting & lighting); protected: /// The vesion used to load the file. const unsigned int file_version; @@ -128,6 +132,8 @@ MeshFaces::Graph m_ai_graph; /// Length of shortest path around the track btScalar m_lap_length; + /// The lighting setup of the track. + Lighting m_lighting; }; /** write a track to a stream, so it can be loaded with Track(stream) Added: trunk/libtrack/document/ChangeLightingDelta.cpp =================================================================== --- trunk/libtrack/document/ChangeLightingDelta.cpp (rev 0) +++ trunk/libtrack/document/ChangeLightingDelta.cpp 2010-06-15 22:00:35 UTC (rev 282) @@ -0,0 +1,34 @@ +/** @file libtrack/document/ChangeLightingDelta.cpp + * @brief Implement the Document::ChangeLightingDelta class. + * @author James Legg + */ +/* Copyright © 2010 James Legg. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. +*/ + +#include "ChangeLightingDelta.h" +#include "../Track.h" + +namespace Document +{ + +ChangeLightingDelta::ChangeLightingDelta(Track::Lighting new_lighting) + : m_new_lighting(new_lighting) +{ +} + +void ChangeLightingDelta::apply(Track::Track & track) +{ + m_old_lighting = track.get_lighting(); + track.set_lighting(m_new_lighting); +} + +void ChangeLightingDelta::unapply(Track::Track & track) +{ + track.set_lighting(m_old_lighting); +} + +} // namespace Document Added: trunk/libtrack/document/ChangeLightingDelta.h =================================================================== --- trunk/libtrack/document/ChangeLightingDelta.h (rev 0) +++ trunk/libtrack/document/ChangeLightingDelta.h 2010-06-15 22:00:35 UTC (rev 282) @@ -0,0 +1,48 @@ +/** @file libtrack/document/ChangeLightingDelta.h + * @brief Declare the Document::ChangeLightingDelta class. + * @author James Legg + */ +/* Copyright © 2010 James Legg. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. +*/ + +#ifndef LIBTRACK_DOCUMENT_CHANGE_LIGHTING_DELTA_H_ +#define LIBTRACK_DOCUMENT_CHANGE_LIGHTING_DELTA_H_ + +#include "DocumentDelta.h" +#include "../Lighting.h" + +namespace Document +{ + +/** A DocumentDelta to change a Track::Track's Track::Lighting object to another one. + */ +class ChangeLightingDelta + : public DocumentDelta +{ +public: + /** Construct using specified replacement lighting. + * @param new_lighting The Track::Lighting that will replace the current + * track's lighting when the delta is applied. + */ + ChangeLightingDelta(Track::Lighting new_lighting); + /** Change the lighting to the one specified in the constructor. + * @param track The track to apply the changes to. + */ + virtual void apply(Track::Track & track); + + /** Revert to the original lighting. + * @param track The track to apply the changes to. + */ + virtual void unapply(Track::Track & track); +protected: + Track::Lighting m_new_lighting; + Track::Lighting m_old_lighting; +}; + +} // namespace Document + +#endif // LIBTRACK_DOCUMENT_CHANGE_LIGHTING_DELTA_H_ Modified: trunk/libtrack/document/Makefile.am =================================================================== --- trunk/libtrack/document/Makefile.am 2010-06-13 16:25:34 UTC (rev 281) +++ trunk/libtrack/document/Makefile.am 2010-06-15 22:00:35 UTC (rev 282) @@ -1,5 +1,6 @@ noinst_LTLIBRARIES = libdocument.la libdocument_la_SOURCES = ChangeEdgeSegmentDelta.cpp ChangeEdgeSegmentDelta.h\ + ChangeLightingDelta.cpp ChangeLightingDelta.h\ ChangePropertyDelta.h\ ChangeVertexSegmentDelta.cpp ChangeVertexSegmentDelta.h\ ClearVertexDelta.h ClearVertexDelta.cpp\ Modified: trunk/racer/Engine/GameScene.cpp =================================================================== --- trunk/racer/Engine/GameScene.cpp 2010-06-13 16:25:34 UTC (rev 281) +++ trunk/racer/Engine/GameScene.cpp 2010-06-15 22:00:35 UTC (rev 282) @@ -129,28 +129,8 @@ world.get_floor_world().addCollisionObject(floor_body); /// @todo stage or theme specific light and fog. - glFogf(GL_FOG_MODE, GL_EXP2); - glFogf(GL_FOG_DENSITY, 0.004); - GLfloat fog_col[4] = {0.3, 0.0, 0.1, 1.0}; - glFogfv(GL_FOG_COLOR, fog_col); + track.get_lighting().initalise(); - // set up lighting in OpenGL. - glEnable(GL_LIGHT0); - glEnable(GL_LIGHT1); - glEnable(GL_RESCALE_NORMAL); - // remove light0's default specular component, and tone down the brightness. - const float d[4]={0,0,0,1}; - glLightfv(GL_LIGHT0, GL_SPECULAR, d); - const float l0col[4]={0.4, 0.4, 0.4, 1.0}; - glLightfv(GL_LIGHT0, GL_DIFFUSE, l0col); - // give light1 a redish tinge. It shines in the -x direction. - const float l1col[4]={0.4, 0.2, 0.1, 1.0}; - glLightfv(GL_LIGHT1, GL_DIFFUSE, l1col); - // bright ambient lighting to cover most of the scene. - // The default ambient material reflectance is 0.2, so 3 comes out as 0.6. - const float amb[4]={3.0, 3.0, 3.0, 1.0}; - glLightModelfv(GL_LIGHT_MODEL_AMBIENT, amb); - #ifndef NDEBUG // Create a display list to show the debug version of the track. // This shows the navigation mesh, textured by lap position, with the @@ -552,12 +532,7 @@ void GameScene::draw_world() { - glEnable(GL_FOG); - glEnable(GL_LIGHTING); - const float p0[4]={0.0, 0.0, 1.0, 0.0}; - const float p1[4]={1.0, 0.0, 0.0, 0.0}; - glLightfv(GL_LIGHT0, GL_POSITION, p0); - glLightfv(GL_LIGHT1, GL_POSITION, p1); + track.get_lighting().prepare_render(); // cars for (unsigned int i = 0; i < cars.size(); i++) Modified: trunk/racer_editor/EditorWindow.cpp =================================================================== --- trunk/racer_editor/EditorWindow.cpp 2010-06-13 16:25:34 UTC (rev 281) +++ trunk/racer_editor/EditorWindow.cpp 2010-06-15 22:00:35 UTC (rev 282) @@ -26,6 +26,7 @@ #include <sstream> #include <libtrack/FormErrors.h> +#include <libtrack/document/ChangeLightingDelta.h> EditorWindow::EditorWindow(bool show_guide, std::string filename) : m_ref_action_group(Gtk::ActionGroup::create()) @@ -97,6 +98,9 @@ sigc::mem_fun(*this, &EditorWindow::on_action_edit_delete) ); m_ref_action_group->add( Gtk::Action::create("SelectAll", Gtk::Stock::SELECT_ALL), sigc::mem_fun(*this, &EditorWindow::on_action_edit_select_all) ); + m_ref_action_group->add( Gtk::Action::create("Lighting", Gtk::Stock::COLOR_PICKER, "Lighting..."), + Gtk::AccelKey("F2", "<racer-editor-track>/Edit/Lighting"), + sigc::mem_fun(*this, &EditorWindow::on_action_edit_lighting) ); // view menu stuff m_ref_action_group->add(Gtk::Action::create("MenuView", "_View")); @@ -158,6 +162,8 @@ " <menu action='MenuEdit'>" " <menuitem action='Undo'/>" " <menuitem action='Redo'/>" + " <separator/>" + " <menuitem action='Lighting'/>" // " <separator/>" // " <menuitem action='Cut'/>" // " <menuitem action='Copy'/>" @@ -245,6 +251,9 @@ m_new_form.signal_theme_picked().connect( sigc::mem_fun(*this, &EditorWindow::on_theme_picked)); + m_lighting_window.signal_changed().connect( + sigc::mem_fun(*this, &EditorWindow::on_lighting_changed)); + m_box.show(); set_default_size(640, 480); @@ -317,6 +326,7 @@ m_ref_action_group->get_action("Paste")->set_sensitive(false); m_ref_action_group->get_action("Delete")->set_sensitive(false); m_ref_action_group->get_action("SelectAll")->set_sensitive(false); + m_ref_action_group->get_action("Lighting")->set_sensitive(false); m_ref_action_group->get_action("ZoomIn")->set_sensitive(false); m_ref_action_group->get_action("ZoomOut")->set_sensitive(false); m_ref_action_group->get_action("ZoomToFit")->set_sensitive(false); @@ -564,6 +574,13 @@ PRINT_STUB_MESSAGE; } +void EditorWindow::on_action_edit_lighting() +{ + /// @todo Provide timestamp of event to present. + m_lighting_window.present(); + m_lighting_window.raise(); +} + void EditorWindow::on_action_view_zoom_in() { m_viewport_top.zoom_in(); @@ -675,6 +692,17 @@ m_status_bar.pop(); } +void EditorWindow::on_lighting_changed() +{ + if (m_lighting_window.get_lighting() != m_document->get_track().get_lighting()) + { + boost::shared_ptr<Document::DocumentDelta> delta( + new Document::ChangeLightingDelta( + m_lighting_window.get_lighting())); + m_document->do_command(delta); + } +} + void EditorWindow::on_command_run() { // check undo/redo state @@ -682,7 +710,9 @@ m_document->get_undo_avaliable()); m_ref_action_group->get_action("Redo")->set_sensitive( m_document->get_redo_avaliable()); + // update displayed data m_viewport_top.update(); + m_lighting_window.set_lighting(m_document->get_track().get_lighting()); } void EditorWindow::on_view_command(boost::shared_ptr<Document::DocumentDelta> delta) @@ -781,6 +811,7 @@ m_ref_action_group->get_action("SaveAs")->set_sensitive(true); m_ref_action_group->get_action("Test")->set_sensitive(true); m_ref_action_group->get_action("SelectAll")->set_sensitive(true); + m_ref_action_group->get_action("Lighting")->set_sensitive(true); m_ref_action_group->get_action("ZoomIn")->set_sensitive(true); m_ref_action_group->get_action("ZoomOut")->set_sensitive(true); m_ref_action_group->get_action("ZoomToFit")->set_sensitive(true); Modified: trunk/racer_editor/EditorWindow.h =================================================================== --- trunk/racer_editor/EditorWindow.h 2010-06-13 16:25:34 UTC (rev 281) +++ trunk/racer_editor/EditorWindow.h 2010-06-15 22:00:35 UTC (rev 282) @@ -26,6 +26,7 @@ #include "NewForm.h" #include "Viewport.h" #include "EditorGuide.h" +#include "LightingWindow.h" #include <libtrack/document/Document.h> /** A big window for editing tracks in. @@ -68,6 +69,9 @@ /// The bar that displays usage tips. EditorGuide m_guide; + /// Extra window for displaying the light settings. + LightingWindow m_lighting_window; + Viewport m_viewport_top; // do commands when activated (through toolbar, menu, or keyboard shortcut). @@ -86,6 +90,7 @@ void on_action_edit_paste(); void on_action_edit_select_all(); void on_action_edit_delete(); + void on_action_edit_lighting(); // view commands void on_action_view_zoom_in(); void on_action_view_zoom_out(); @@ -103,6 +108,9 @@ /// theme picked void on_theme_picked(std::string filename); + /// Change from m_lighting_window + void on_lighting_changed(); + /// Update after a change in the document. void on_command_run(); Added: trunk/racer_editor/LightingWindow.cpp =================================================================== --- trunk/racer_editor/LightingWindow.cpp (rev 0) +++ trunk/racer_editor/LightingWindow.cpp 2010-06-15 22:00:35 UTC (rev 282) @@ -0,0 +1,285 @@ +/** @file LightingWindow.cpp + * @brief Implement the LightingWindow class. + * @author James Legg + */ +/* Copyright © 2010 James Legg. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. +*/ + +#include "LightingWindow.h" +#include <Debug.h> + +LightSettingWidget::LightSettingWidget() + : Gtk::HBox(false, 6) + , m_x_label("x") + , m_x_adjustment(0.5, -128, 128, 0.05, 0.2) + , m_x_spin(m_x_adjustment, 0, 3) + , m_y_label("y") + , m_y_adjustment(0.5, -128, 128, 0.05, 0.2) + , m_y_spin(m_y_adjustment, 0, 3) + , m_z_label("z") + , m_z_adjustment(0.5, -128, 128, 0.05, 0.2) + , m_z_spin(m_z_adjustment, 0, 3) + , m_w_label("w") + , m_w_adjustment(0.5, -128, 128, 0.05, 0.2) + , m_w_spin(m_w_adjustment, 0, 3) + , m_colour_label("colour") +{ + pack_start(m_x_label); + pack_start(m_x_spin); + m_x_spin.signal_value_changed().connect( + sigc::mem_fun(*this, &LightSettingWidget::on_x_change)); + pack_start(m_y_label); + pack_start(m_y_spin); + m_y_spin.signal_value_changed().connect( + sigc::mem_fun(*this, &LightSettingWidget::on_y_change)); + pack_start(m_z_label); + pack_start(m_z_spin); + m_z_spin.signal_value_changed().connect( + sigc::mem_fun(*this, &LightSettingWidget::on_z_change)); + pack_start(m_w_label); + pack_start(m_w_spin); + m_w_spin.signal_value_changed().connect( + sigc::mem_fun(*this, &LightSettingWidget::on_w_change)); + pack_start(m_colour_label); + pack_start(m_colour_button); + m_colour_button.signal_color_set().connect( + sigc::mem_fun(*this, &LightSettingWidget::on_colour_change)); +} + +Track::LightSettings LightSettingWidget::get_light_settings() const +{ + return m_light_settings; +} + +void LightSettingWidget::set_light_settings(Track::LightSettings settings) +{ + m_light_settings = settings; + m_x_spin.set_value(m_light_settings.position[0]); + m_y_spin.set_value(m_light_settings.position[1]); + m_z_spin.set_value(m_light_settings.position[2]); + m_w_spin.set_value(m_light_settings.position[3]); + Gdk::Color colour; + colour.set_rgb(m_light_settings.colour[0]*65535, + m_light_settings.colour[1]*65535, + m_light_settings.colour[2]*65535); + m_colour_button.set_color(colour); + m_colour_button.set_alpha(m_light_settings.colour[3]*65535); +} + +sigc::signal<void> LightSettingWidget::signal_changed() +{ + return m_signal_changed; +} + +void LightSettingWidget::on_x_change() +{ + m_x_spin.update(); + m_light_settings.position[0] = m_x_spin.get_value(); + m_signal_changed.emit(); +} + +void LightSettingWidget::on_y_change() +{ + m_y_spin.update(); + m_light_settings.position[1] = m_y_spin.get_value(); + m_signal_changed.emit(); +} + +void LightSettingWidget::on_z_change() +{ + m_z_spin.update(); + m_light_settings.position[2] = m_z_spin.get_value(); + m_signal_changed.emit(); +} + +void LightSettingWidget::on_w_change() +{ + m_w_spin.update(); + m_light_settings.position[3] = m_w_spin.get_value(); + m_signal_changed.emit(); +} + +void LightSettingWidget::on_colour_change() +{ + Gdk::Color c = m_colour_button.get_color(); + m_light_settings.colour[0] = float(c.get_red()) / 65535.0; + m_light_settings.colour[1] = float(c.get_green()) / 65535.0; + m_light_settings.colour[2] = float(c.get_blue()) / 65535.0; + m_light_settings.colour[3] = float(m_colour_button.get_alpha()) / 65535.0; + m_signal_changed.emit(); +} + +LightingWindow::LightingWindow() + : m_box(false, 12) + , m_fog_frame() + , m_fog_frame_label("<b>Fog</b>") + , m_fog_table(3, 2) + , m_fog_enabled_button("Enable fog") + , m_fog_colour_label("Fog colour") + , m_fog_density_label("Fog density") + , m_fog_density_adjustment(0.004, 0.00001, 1.0, 0.0005, 0.001) + , m_fog_density_spin(m_fog_density_adjustment, 0.0, 5) + , m_light_frame() + , m_light_frame_label("<b>Lights</b>") + , m_light_table(2, 2) + , m_ambient_light_label("ambient light colour") + , m_num_lights_label("number of lights") + , m_num_lights_adjustment(2, 0, 8, 1, 2) + , m_num_lights_spin(m_num_lights_adjustment) +{ + set_type_hint(Gdk::WINDOW_TYPE_HINT_DIALOG); + set_title("Lighting"); + + m_fog_table.attach(m_fog_enabled_button, 0, 2, 0, 1); + m_fog_table.attach(m_fog_colour_label, 0, 1, 1, 2); + m_fog_table.attach(m_fog_colour_button, 1, 2, 1, 2); + m_fog_table.attach(m_fog_density_label, 0, 1, 2, 3); + m_fog_table.attach(m_fog_density_spin, 1, 2, 2, 3); + m_fog_table.set_spacings(6); + m_fog_table.set_border_width(4); + m_fog_frame.add(m_fog_table); + m_fog_frame.set_label_widget(m_fog_frame_label); + m_fog_frame_label.set_use_markup(); + m_fog_frame.set_shadow_type(Gtk::SHADOW_NONE); + + m_light_table.attach(m_ambient_light_label, 0, 1, 0, 1); + m_light_table.attach(m_ambient_light_button, 1, 2, 0, 1); + m_light_table.attach(m_num_lights_label, 0, 1, 1, 2); + m_light_table.attach(m_num_lights_spin, 1, 2, 1, 2); + m_light_table.set_spacings(6); + m_light_table.set_border_width(4); + m_light_frame.add(m_light_table); + m_light_frame.set_label_widget(m_light_frame_label); + m_light_frame_label.set_use_markup(); + m_light_frame.set_shadow_type(Gtk::SHADOW_NONE); + + m_box.pack_start(m_fog_frame); + m_box.pack_start(m_light_frame); + add(m_box); + m_box.show_all(); + + m_fog_enabled_button.signal_clicked().connect( + sigc::mem_fun(*this, &LightingWindow::on_fog_enabled_change)); + m_fog_colour_button.signal_color_set().connect( + sigc::mem_fun(*this, &LightingWindow::on_fog_colour_change)); + m_fog_density_spin.signal_value_changed().connect( + sigc::mem_fun(*this, &LightingWindow::on_fog_density_change)); + m_ambient_light_button.signal_color_set().connect( + sigc::mem_fun(*this, &LightingWindow::on_ambient_light_change)); + m_num_lights_spin.signal_value_changed().connect( + sigc::mem_fun(*this, &LightingWindow::on_num_lights_change)); +} + +const Track::Lighting & LightingWindow::get_lighting() const +{ + return m_lighting; +} + +void LightingWindow::set_lighting(const Track::Lighting & settings) +{ + m_lighting = settings; + /// @todo set widgets + m_fog_density_adjustment.set_value(m_lighting.get_fog().density); + m_fog_enabled_button.set_active(m_lighting.get_fog().enabled); + Gdk::Color c; + c.set_rgb(m_lighting.get_ambient_light()[0] * 65535, + m_lighting.get_ambient_light()[1] * 65535, + m_lighting.get_ambient_light()[2] * 65535); + m_ambient_light_button.set_color(c); + m_ambient_light_button.set_alpha(m_lighting.get_ambient_light()[3]); + c.set_rgb(m_lighting.get_fog().colour[0] * 65535, + m_lighting.get_fog().colour[1] * 65535, + m_lighting.get_fog().colour[2] * 65535); + m_fog_colour_button.set_color(c); + m_fog_colour_button.set_alpha(m_lighting.get_fog().colour[3]); + m_num_lights_spin.set_value(m_lighting.get_lights().size()); + update_light_widgets(); +} + +sigc::signal<void> LightingWindow::signal_changed() +{ + return m_signal_changed; +} + +void LightingWindow::on_fog_colour_change() +{ + Track::FogSettings fog = m_lighting.get_fog(); + Gdk::Color c = m_fog_colour_button.get_color(); + fog.colour[0] = float(c.get_red())/ 65535.0; + fog.colour[1] = float(c.get_green())/ 65535.0; + fog.colour[2] = float(c.get_blue())/ 65535.0; + fog.colour[3] = float(m_ambient_light_button.get_alpha()) / 65535.0; + m_lighting.set_fog(fog); + m_signal_changed.emit(); +} + +void LightingWindow::on_fog_density_change() +{ + Track::FogSettings fog = m_lighting.get_fog(); + m_fog_density_spin.update(); + fog.density = m_fog_density_spin.get_value(); + m_lighting.set_fog(fog); + m_signal_changed.emit(); +} + +void LightingWindow::on_fog_enabled_change() +{ + Track::FogSettings fog = m_lighting.get_fog(); + fog.enabled = m_fog_enabled_button.get_active(); + m_fog_density_spin.set_sensitive(fog.enabled); + m_fog_colour_button.set_sensitive(fog.enabled); + m_lighting.set_fog(fog); + m_signal_changed.emit(); +} + +void LightingWindow::on_ambient_light_change() +{ + float a[4]; + Gdk::Color c(m_ambient_light_button.get_color()); + a[0] = float (c.get_red()) / 65535.0; + a[1] = float (c.get_green()) / 65535.0; + a[2] = float (c.get_blue()) / 65535.0; + a[3] = float (m_ambient_light_button.get_alpha()) / 65535.0; + m_lighting.set_ambient(a); + m_signal_changed.emit(); +} + +void LightingWindow::on_num_lights_change() +{ + int num_lights = m_num_lights_spin.get_value_as_int(); + std::vector<Track::LightSettings> lights = m_lighting.get_lights(); + lights.resize(num_lights); + m_lighting.set_lights(lights); + update_light_widgets(); + m_signal_changed.emit(); +} + +void LightingWindow::on_light_setting_changed(int index) +{ + std::vector<Track::LightSettings> settings = m_lighting.get_lights(); + settings[index] = m_light_setting_widgets[index]->get_light_settings(); + m_lighting.set_lights(settings); + m_signal_changed.emit(); +} + +void LightingWindow::update_light_widgets() +{ + int num_lights = m_lighting.get_lights().size(); + m_light_setting_widgets.resize(num_lights); + m_light_table.resize(num_lights+2, 2); + for (int i = 0; i < num_lights; i++) + { + m_light_setting_widgets[i] = boost::shared_ptr<LightSettingWidget>(new LightSettingWidget); + m_light_setting_widgets[i]->set_light_settings(m_lighting.get_lights()[i]); + m_light_setting_widgets[i]->show_all(); + m_light_setting_widgets[i]->signal_changed().connect( + sigc::bind(sigc::mem_fun(*this, + &LightingWindow::on_light_setting_changed), + i)); + m_light_table.attach(*m_light_setting_widgets[i], 0, 2, i+2, i+3); + } +} Added: trunk/racer_editor/LightingWindow.h =================================================================== --- trunk/racer_editor/LightingWindow.h (rev 0) +++ trunk/racer_editor/LightingWindow.h 2010-06-15 22:00:35 UTC (rev 282) @@ -0,0 +1,119 @@ +/** @file LightingWindow.h + * @brief Declare the LightingWindow class. + * @author James Legg + */ +/* Copyright © 2010 James Legg. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. +*/ + +#ifndef LIGHTING_WINDOW_H_ +#define LIGHTING_WINDOW_H_ + +#include <vector> + +#include <boost/shared_ptr.hpp> + +#include <gtkmm/window.h> +#include <gtkmm/box.h> +#include <gtkmm/frame.h> +#include <gtkmm/table.h> +#include <gtkmm/label.h> +#include <gtkmm/colorbutton.h> +#include <gtkmm/spinbutton.h> +#include <gtkmm/checkbutton.h> + +#include <libtrack/Lighting.h> + +/// Widget to set the properties of a Track::LightSettings object. +class LightSettingWidget + : public Gtk::HBox +{ + public: + LightSettingWidget(); + Track::LightSettings get_light_settings() const; + void set_light_settings(Track::LightSettings settings); + sigc::signal<void> signal_changed(); + protected: + Gtk::Label m_x_label; + Gtk::Adjustment m_x_adjustment; + Gtk::SpinButton m_x_spin; + Gtk::Label m_y_label; + Gtk::Adjustment m_y_adjustment; + Gtk::SpinButton m_y_spin; + Gtk::Label m_z_label; + Gtk::Adjustment m_z_adjustment; + Gtk::SpinButton m_z_spin; + Gtk::Label m_w_label; + Gtk::Adjustment m_w_adjustment; + Gtk::SpinButton m_w_spin; + Gtk::Label m_colour_label; + Gtk::ColorButton m_colour_button; + + Track::LightSettings m_light_settings; + + sigc::signal<void> m_signal_changed; + + void on_x_change(); + void on_y_change(); + void on_z_change(); + void on_w_change(); + void on_colour_change(); +}; + +/// Window to set properties of a Track::Lighting object. +class LightingWindow + : public Gtk::Window +{ + public: + LightingWindow(); + const Track::Lighting & get_lighting() const; + void set_lighting(const Track::Lighting & lighting); + sigc::signal<void> signal_changed(); + protected: + Gtk::VBox m_box; + + /// Frame surrounding fog settings + Gtk::Frame m_fog_frame; + /// Label in the title of m_fog_frame + Gtk::Label m_fog_frame_label; + /// Table in m_fog_frame that contains fog setting widgets. + Gtk::Table m_fog_table; + Gtk::CheckButton m_fog_enabled_button; + Gtk::Label m_fog_colour_label; + Gtk::ColorButton m_fog_colour_button; + Gtk::Label m_fog_density_label; + Gtk::Adjustment m_fog_density_adjustment; + Gtk::SpinButton m_fog_density_spin; + + /// Frame surrounding light settings + Gtk::Frame m_light_frame; + /// Label in the title of m_light_frame + Gtk::Label m_light_frame_label; + /// Table in m_light_frame that contains LightSettingWidgets. + Gtk::Table m_light_table; + Gtk::Label m_ambient_light_label; + Gtk::ColorButton m_ambient_light_button; + Gtk::Label m_num_lights_label; + Gtk::Adjustment m_num_lights_adjustment; + Gtk::SpinButton m_num_lights_spin; + std::vector<boost::shared_ptr<LightSettingWidget> > m_light_setting_widgets; + + sigc::signal<void> m_signal_changed; + + Track::Lighting m_lighting; + + void on_fog_colour_change(); + void on_fog_density_change(); + void on_fog_enabled_change(); + void on_ambient_light_change(); + void on_num_lights_change(); + void on_light_setting_changed(int index); + + /// Make m_light_table and its LightSettingWidgets reflect m_lighting. + void update_light_widgets(); +}; + +#endif // LIGHTING_WINDOW_H_ Modified: trunk/racer_editor/Makefile.am =================================================================== --- trunk/racer_editor/Makefile.am 2010-06-13 16:25:34 UTC (rev 281) +++ trunk/racer_editor/Makefile.am 2010-06-15 22:00:35 UTC (rev 282) @@ -2,6 +2,7 @@ racer_editor_SOURCES = \ EditorGuide.cpp EditorGuide.h\ EditorWindow.cpp EditorWindow.h\ +LightingWindow.cpp LightingWindow.h\ NewForm.cpp NewForm.h\ RacerEditorApp.cpp RacerEditorApp.h\ View.cpp View.h\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-13 16:25:40
|
Revision: 281 http://racer.svn.sourceforge.net/racer/?rev=281&view=rev Author: jlegg Date: 2010-06-13 16:25:34 +0000 (Sun, 13 Jun 2010) Log Message: ----------- Don't include compiler arguments twice for files in racer/UI. Modified Paths: -------------- trunk/racer/UI/Makefile.am Modified: trunk/racer/UI/Makefile.am =================================================================== --- trunk/racer/UI/Makefile.am 2010-06-10 23:58:53 UTC (rev 280) +++ trunk/racer/UI/Makefile.am 2010-06-13 16:25:34 UTC (rev 281) @@ -9,4 +9,4 @@ SubMenuItem.cpp SubMenuItem.h\ TitleScene.cpp TitleScene.h\ UITextures.cpp UITextures.h -libui_la_CPPFLAGS = $(racer_CFLAGS) -I@top_srcdir@ $(racer_CFLAGS) +libui_la_CPPFLAGS = $(racer_CFLAGS) -I@top_srcdir@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-10 23:59:00
|
Revision: 280 http://racer.svn.sourceforge.net/racer/?rev=280&view=rev Author: jlegg Date: 2010-06-10 23:58:53 +0000 (Thu, 10 Jun 2010) Log Message: ----------- Add some simple lighting. Modified Paths: -------------- trunk/libtrack/Mesh/MeshFaces.cpp trunk/racer/Engine/GameObjects/Car.cpp trunk/racer/Engine/GameScene.cpp Modified: trunk/libtrack/Mesh/MeshFaces.cpp =================================================================== --- trunk/libtrack/Mesh/MeshFaces.cpp 2010-06-10 17:28:13 UTC (rev 279) +++ trunk/libtrack/Mesh/MeshFaces.cpp 2010-06-10 23:58:53 UTC (rev 280) @@ -361,6 +361,19 @@ void MeshFaces::copy_faces(const MeshFaces & other) { faces = other.faces; + // Set normals for each face vertex. + for (std::vector<Face>::iterator it = faces.begin(); it != faces.end(); it++) + { + // solid shading: face normals are consistant across a face + btVector3 & v1 = vertices_position[it->fv1.vertex_index]; + btVector3 & v2 = vertices_position[it->fv2.vertex_index]; + btVector3 & v3 = vertices_position[it->fv3.vertex_index]; + btVector3 n = (v2-v1).cross(v3-v1).normalize(); + it->fv1.normal = n; + it->fv2.normal = n; + it->fv3.normal = n; + /// @todo smooth shading: calculate and use vertex normals for curved objects. + } } void MeshFaces::add_faces(btTriangleMesh & shape) const Modified: trunk/racer/Engine/GameObjects/Car.cpp =================================================================== --- trunk/racer/Engine/GameObjects/Car.cpp 2010-06-10 17:28:13 UTC (rev 279) +++ trunk/racer/Engine/GameObjects/Car.cpp 2010-06-10 23:58:53 UTC (rev 280) @@ -205,6 +205,7 @@ if (used_energy_boost > 0) { // show released energy by making the car glow. + glDisable(GL_LIGHTING); glBlendFunc(GL_SRC_ALPHA, GL_ONE); glEnable(GL_BLEND); glDepthFunc(GL_LEQUAL); @@ -215,6 +216,7 @@ glDisable(GL_BLEND); glDepthFunc(GL_LESS); glColor3ub(255, 255, 255); + glEnable(GL_LIGHTING); } glPopMatrix(); #ifndef NDEBUG Modified: trunk/racer/Engine/GameScene.cpp =================================================================== --- trunk/racer/Engine/GameScene.cpp 2010-06-10 17:28:13 UTC (rev 279) +++ trunk/racer/Engine/GameScene.cpp 2010-06-10 23:58:53 UTC (rev 280) @@ -128,11 +128,29 @@ floor_body = new btRigidBody(rigid_body_CI); world.get_floor_world().addCollisionObject(floor_body); + /// @todo stage or theme specific light and fog. glFogf(GL_FOG_MODE, GL_EXP2); glFogf(GL_FOG_DENSITY, 0.004); GLfloat fog_col[4] = {0.3, 0.0, 0.1, 1.0}; glFogfv(GL_FOG_COLOR, fog_col); + // set up lighting in OpenGL. + glEnable(GL_LIGHT0); + glEnable(GL_LIGHT1); + glEnable(GL_RESCALE_NORMAL); + // remove light0's default specular component, and tone down the brightness. + const float d[4]={0,0,0,1}; + glLightfv(GL_LIGHT0, GL_SPECULAR, d); + const float l0col[4]={0.4, 0.4, 0.4, 1.0}; + glLightfv(GL_LIGHT0, GL_DIFFUSE, l0col); + // give light1 a redish tinge. It shines in the -x direction. + const float l1col[4]={0.4, 0.2, 0.1, 1.0}; + glLightfv(GL_LIGHT1, GL_DIFFUSE, l1col); + // bright ambient lighting to cover most of the scene. + // The default ambient material reflectance is 0.2, so 3 comes out as 0.6. + const float amb[4]={3.0, 3.0, 3.0, 1.0}; + glLightModelfv(GL_LIGHT_MODEL_AMBIENT, amb); + #ifndef NDEBUG // Create a display list to show the debug version of the track. // This shows the navigation mesh, textured by lap position, with the @@ -535,6 +553,12 @@ void GameScene::draw_world() { glEnable(GL_FOG); + glEnable(GL_LIGHTING); + const float p0[4]={0.0, 0.0, 1.0, 0.0}; + const float p1[4]={1.0, 0.0, 0.0, 0.0}; + glLightfv(GL_LIGHT0, GL_POSITION, p0); + glLightfv(GL_LIGHT1, GL_POSITION, p1); + // cars for (unsigned int i = 0; i < cars.size(); i++) { @@ -545,6 +569,7 @@ const Track::Path & path = track.get_path(); path.conditional_draw(occlusion_tester); } + glDisable(GL_LIGHTING); // (Debug) draw the ai navigation graph. #ifndef NDEBUG if (show_debug) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-06-10 17:28:20
|
Revision: 279 http://racer.svn.sourceforge.net/racer/?rev=279&view=rev Author: jlegg Date: 2010-06-10 17:28:13 +0000 (Thu, 10 Jun 2010) Log Message: ----------- Calculate attachment positions and vertex connection transformations once before they are needed, instead of every time they are needed. Modified Paths: -------------- trunk/libtrack/TrackAttachment.cpp trunk/libtrack/TrackAttachment.h trunk/libtrack/path/PathEdge.cpp trunk/libtrack/path/PathVertex.cpp trunk/libtrack/path/PathVertex.h trunk/racer/Engine/GameObjects/Car.cpp Modified: trunk/libtrack/TrackAttachment.cpp =================================================================== --- trunk/libtrack/TrackAttachment.cpp 2010-04-23 16:58:22 UTC (rev 278) +++ trunk/libtrack/TrackAttachment.cpp 2010-06-10 17:28:13 UTC (rev 279) @@ -98,6 +98,16 @@ { } +void TrackAttachment::set_global_position(btVector3 pos) +{ + m_global_position = pos; +} + +btVector3 TrackAttachment::get_global_position() const +{ + return m_global_position; +} + std::ostream & operator<<(std::ostream & destination, const TrackAttachment & attachment) { attachment.add_data(destination); Modified: trunk/libtrack/TrackAttachment.h =================================================================== --- trunk/libtrack/TrackAttachment.h 2010-04-23 16:58:22 UTC (rev 278) +++ trunk/libtrack/TrackAttachment.h 2010-06-10 17:28:13 UTC (rev 279) @@ -60,7 +60,10 @@ * and the associated edge is the origin of the modelview matrix. */ virtual void draw() const; + void set_global_position(btVector3 pos); + btVector3 get_global_position() const; protected: + btVector3 m_global_position; /** How far down the path the object is. * Parameter to path's curve, between 0 and 1. */ Modified: trunk/libtrack/path/PathEdge.cpp =================================================================== --- trunk/libtrack/path/PathEdge.cpp 2010-04-23 16:58:22 UTC (rev 278) +++ trunk/libtrack/path/PathEdge.cpp 2010-06-10 17:28:13 UTC (rev 279) @@ -451,9 +451,7 @@ glPushMatrix(); /// @todo claculate the matrix beforehand, then use that. btTransform transform = get_transform((**it).get_t_position()); - transform.setOrigin(transform(btVector3((**it).get_lateral_position(), - 0.0, - (**it).get_vertical_position()))); + transform.setOrigin((**it).get_global_position()); btScalar mat[16]; mat[15] = 1.0; transform.getOpenGLMatrix(mat); @@ -546,9 +544,12 @@ const TrackAttachment & attachment = *(m_attachments[i]); btTransform transform = get_transform(attachment.get_t_position()); - handle.set_position(transform(btVector3(attachment.get_lateral_position(), - 0.0, - attachment.get_vertical_position()))); + btVector3 pos = transform(btVector3(attachment.get_lateral_position(), + 0.0, + attachment.get_vertical_position())); + handle.set_position(pos); + // also tell the attachment its global position. + m_attachments[i]->set_global_position(pos); } } Modified: trunk/libtrack/path/PathVertex.cpp =================================================================== --- trunk/libtrack/path/PathVertex.cpp 2010-04-23 16:58:22 UTC (rev 278) +++ trunk/libtrack/path/PathVertex.cpp 2010-06-10 17:28:13 UTC (rev 279) @@ -94,11 +94,15 @@ if (segment) { + connection_angles.resize(segment->get_number_of_connections()); for (std::size_t index = 0; index < segment->get_number_of_connections(); index++) { connection_handles[index]->set_position(get_position(index)); + // find angles of connections. + btTransform segment_connection_transform(segment->get_connection(index).get_transform()); + connection_angles[index] = (btTransform(angle) * segment_connection_transform).getRotation(); } } } @@ -143,8 +147,7 @@ btQuaternion PathVertex::get_angle(std::size_t index) const { - btTransform segment_connection_transform(segment->get_connection(index).get_transform()); - return (btTransform(angle) * segment_connection_transform).getRotation(); + return connection_angles[index]; } std::size_t PathVertex::get_segment_index() const Modified: trunk/libtrack/path/PathVertex.h =================================================================== --- trunk/libtrack/path/PathVertex.h 2010-04-23 16:58:22 UTC (rev 278) +++ trunk/libtrack/path/PathVertex.h 2010-06-10 17:28:13 UTC (rev 279) @@ -173,6 +173,9 @@ /// The rotation from gradient (0, 1, 0) and up (0, 0, 1). btQuaternion angle; + /// Rotation of each of the connections. + std::vector<btQuaternion> connection_angles; + /// control point used to change the up direction in the editor. EditAssist::VertexRotationHandle up_handle; /// control point used to change the forward direction in the editor. Modified: trunk/racer/Engine/GameObjects/Car.cpp =================================================================== --- trunk/racer/Engine/GameObjects/Car.cpp 2010-04-23 16:58:22 UTC (rev 278) +++ trunk/racer/Engine/GameObjects/Car.cpp 2010-06-10 17:28:13 UTC (rev 279) @@ -348,8 +348,7 @@ const Track::TrackBooster * booster = dynamic_cast<const Track::TrackBooster*>(&(**it)); if (booster) { - btVector3 booster_pos = edge.get_transform(booster->get_t_position())(btVector3(booster->get_lateral_position(), 0, 0)); - btScalar distance2 = booster_pos.distance2(transform.getOrigin()); + btScalar distance2 = booster->get_global_position().distance2(transform.getOrigin()); if (distance2 < 1.0) { // boost This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-04-23 16:58:29
|
Revision: 278 http://racer.svn.sourceforge.net/racer/?rev=278&view=rev Author: jlegg Date: 2010-04-23 16:58:22 +0000 (Fri, 23 Apr 2010) Log Message: ----------- Better behaved camera control. Zoom in and out now works from the centre of the window not a corner. Also resizing the window keeps the middle of the view in the middle. Not so great when the track is drawn smaller than the window, however. Modified Paths: -------------- trunk/racer_editor/View.cpp trunk/racer_editor/Viewport.cpp Modified: trunk/racer_editor/View.cpp =================================================================== --- trunk/racer_editor/View.cpp 2010-04-11 17:24:07 UTC (rev 277) +++ trunk/racer_editor/View.cpp 2010-04-23 16:58:22 UTC (rev 278) @@ -197,10 +197,15 @@ void View::set_centre(const btVector3 centre_in) { - centre = centre_in; - needs_recentre = true; - queue_draw(); - DEBUG_MESSAGE("Queued draw."); + // ignore request if dragging, since it will be confusing to have the + // scene move while placing something on it. + if (!drag_object) + { + centre = centre_in; + needs_recentre = true; + queue_draw(); + DEBUG_MESSAGE("Queued draw."); + } } btVector3 View::get_centre() const @@ -254,6 +259,9 @@ void View::recentre_view() { glLoadIdentity(); + // translate half screen width, so we can deal with the centre rather + // than the corner. + glTranslatef(get_width() / 2, get_height() / 2, 0); glScalef(scale, scale, scale); // rotations switch (view_angle) @@ -273,7 +281,13 @@ break; } glTranslatef(-centre.x(), -centre.y(), -centre.z()); - set_relative_depth(new_position, back_depth); + // The depth into the screen will be snapped while dragging an object, + // so leave it alone while dragging. + // Otherwise, use a fixed depth. + if (!drag_object) + { + set_relative_depth(new_position, back_depth); + } needs_recentre = false; } @@ -630,8 +644,9 @@ btVector3 View::mouse_to_scene(btScalar x, btScalar y) const { - btScalar screen_x = x / scale; - btScalar screen_y = (btScalar(get_height()) - y) / scale; + btScalar screen_x = (x - get_width() / 2) / scale; + btScalar screen_y = (btScalar(get_height() / 2) - y) / scale; + // coordinates are from the corner of the window, but we keep the centre. switch (view_angle) { case VIEW_TOP: Modified: trunk/racer_editor/Viewport.cpp =================================================================== --- trunk/racer_editor/Viewport.cpp 2010-04-11 17:24:07 UTC (rev 277) +++ trunk/racer_editor/Viewport.cpp 2010-04-23 16:58:22 UTC (rev 278) @@ -2,7 +2,7 @@ * @brief Implement the Viewport class. * @author James Legg */ -/* Copyright © 2009 James Legg. +/* Copyright © 2009, 2010 James Legg. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -110,10 +110,19 @@ } resize_adjustments(); - // move scrollbars to the edge so that they show the scene in the middle. - m_h_scroll_adjustment.set_value(m_h_scroll_adjustment.get_lower()); + // move scrollbars to the middle. + double lower = m_h_scroll_adjustment.get_lower(); + double upper = m_h_scroll_adjustment.get_upper(); + double size = m_h_scroll_adjustment.get_page_size(); + double pos = lower + (upper - lower - size) / 2.0; + m_h_scroll_adjustment.set_value(pos); on_h_scrollbar_change_value(Gtk::SCROLL_NONE, m_h_scroll_adjustment.get_value()); - m_v_scroll_adjustment.set_value(m_v_scroll_adjustment.get_lower()); + + lower = m_v_scroll_adjustment.get_lower(); + upper = m_v_scroll_adjustment.get_upper(); + size = m_v_scroll_adjustment.get_page_size(); + pos = lower + (upper - lower - size) / 2.0; + m_v_scroll_adjustment.set_value(pos); on_v_scrollbar_change_value(Gtk::SCROLL_NONE, m_v_scroll_adjustment.get_value()); } @@ -126,6 +135,16 @@ return; } const Track::AxisAlignedBoundingBox box(document->get_track().get_path().get_bounding_box()); + const float scale = m_view.get_scale(); + // Find the half the distance across the screen. + double h_offset = double(m_view.get_width()) / scale / 2.0; + double v_offset = double(m_view.get_height()) / scale / 2.0; + // set the page size of the adjustments to the amount shown on the screen + m_h_scroll_adjustment.set_page_size(h_offset * 2.0); + m_v_scroll_adjustment.set_page_size(v_offset * 2.0); + // adjust step size to reflect the scale. + m_h_scroll_adjustment.set_step_increment(20.0 / scale); + m_v_scroll_adjustment.set_step_increment(20.0 / scale); if (box.valid()) { switch (m_view.get_angle()) @@ -135,24 +154,26 @@ m_h_scroll_adjustment.set_upper(box.get_max_x()); m_v_scroll_adjustment.set_lower(box.get_min_y()); m_v_scroll_adjustment.set_upper(box.get_max_y()); - m_h_scroll_adjustment.set_value(m_view.get_centre().x()); - m_v_scroll_adjustment.set_value(m_view.get_centre().y()); + // scroll bar's value is the begining of the page, + // so it is half the page size lower than the centre. + m_h_scroll_adjustment.set_value(m_view.get_centre().x() - h_offset); + m_v_scroll_adjustment.set_value(m_view.get_centre().y() - v_offset); break; case View::VIEW_SIDE: m_h_scroll_adjustment.set_lower(box.get_min_y()); m_h_scroll_adjustment.set_upper(box.get_max_y()); m_v_scroll_adjustment.set_lower(box.get_min_z()); m_v_scroll_adjustment.set_upper(box.get_max_z()); - m_h_scroll_adjustment.set_value(m_view.get_centre().y()); - m_v_scroll_adjustment.set_value(m_view.get_centre().z()); + m_h_scroll_adjustment.set_value(m_view.get_centre().y() - h_offset); + m_v_scroll_adjustment.set_value(m_view.get_centre().z() - v_offset); break; case View::VIEW_FRONT: m_h_scroll_adjustment.set_lower(box.get_min_x()); m_h_scroll_adjustment.set_upper(box.get_max_x()); m_v_scroll_adjustment.set_lower(box.get_min_z()); m_v_scroll_adjustment.set_upper(box.get_max_z()); - m_h_scroll_adjustment.set_value(m_view.get_centre().x()); - m_v_scroll_adjustment.set_value(m_view.get_centre().z()); + m_h_scroll_adjustment.set_value(m_view.get_centre().x() - h_offset); + m_v_scroll_adjustment.set_value(m_view.get_centre().z() - v_offset); break; } } else { @@ -162,38 +183,30 @@ m_v_scroll_adjustment.set_upper(30.0); DEBUG_MESSAGE(" No valid bounding box for track!"); } - const float scale = m_view.get_scale(); - // set the page size of the adjustments to the amount shown on the screen. - m_h_scroll_adjustment.set_page_size(double(m_view.get_width()) / scale); - m_v_scroll_adjustment.set_page_size(double(m_view.get_height()) / scale); - /// @todo adjust step size to reflect the scale. - // gtk expects the value to be the lower bound of the visible range, but - // we've given it the middle. Correct fot this: - /*m_h_scroll_adjustment.set_value(m_h_scroll_adjustment.get_value() - - double(m_view.get_width()) / scale / 2.0); - m_v_scroll_adjustment.set_value(m_v_scroll_adjustment.get_value() - - double(m_view.get_height()) / scale / 2.0);*/ // now Update the scrollbar for the display and to emit notify signals. m_h_scroll_bar.set_adjustment(m_h_scroll_adjustment); m_v_scroll_bar.set_adjustment(m_v_scroll_adjustment); + on_h_scrollbar_change_value(Gtk::SCROLL_NONE, m_h_scroll_adjustment.get_value()); + on_v_scrollbar_change_value(Gtk::SCROLL_NONE, m_v_scroll_adjustment.get_value()); } bool Viewport::on_h_scrollbar_change_value(Gtk::ScrollType scroll, double new_value) { DEBUG_MESSAGE("Horizontal scrollbar's value changed."); btVector3 centre = m_view.get_centre(); - // new_value is the left edge. We want the centre. - //new_value += double(m_view.get_width()) / m_view.get_scale() / 2.0; + double h_offset = m_h_scroll_adjustment.get_page_size() / 2.0; switch (m_view.get_angle()) { case View::VIEW_TOP: - centre.setX(new_value); + // the value of the scrollbar is the position of the left edge, + // so the position of the centre is half the screen width more. + centre.setX(new_value + h_offset); break; case View::VIEW_SIDE: - centre.setY(new_value); + centre.setY(new_value + h_offset); break; case View::VIEW_FRONT: - centre.setX(new_value); + centre.setX(new_value + h_offset); break; } m_view.set_centre(centre); @@ -203,18 +216,17 @@ bool Viewport::on_v_scrollbar_change_value(Gtk::ScrollType scroll, double new_value) { btVector3 centre = m_view.get_centre(); - // new_value is the left edge. We want the centre. - //new_value += double(m_view.get_width()) / m_view.get_scale() / 2.0; + double v_offset = m_v_scroll_adjustment.get_page_size() / 2.0; switch (m_view.get_angle()) { case View::VIEW_TOP: - centre.setY(new_value); + centre.setY(new_value + v_offset); break; case View::VIEW_SIDE: - centre.setZ(new_value); + centre.setZ(new_value + v_offset); break; case View::VIEW_FRONT: - centre.setZ(new_value); + centre.setZ(new_value + v_offset); break; } m_view.set_centre(centre); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-04-11 17:24:15
|
Revision: 277 http://racer.svn.sourceforge.net/racer/?rev=277&view=rev Author: jlegg Date: 2010-04-11 17:24:07 +0000 (Sun, 11 Apr 2010) Log Message: ----------- Show grid lines in the editor. Modified Paths: -------------- trunk/racer_editor/View.cpp Modified: trunk/racer_editor/View.cpp =================================================================== --- trunk/racer_editor/View.cpp 2010-03-26 22:20:48 UTC (rev 276) +++ trunk/racer_editor/View.cpp 2010-04-11 17:24:07 UTC (rev 277) @@ -295,6 +295,47 @@ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + // draw grid lines + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glPushMatrix(); + // rotate so the xy plane is on the screen. + switch (view_angle) + { + case VIEW_TOP: + // nothing needed + break; + case VIEW_SIDE: + glRotatef(90.0, 0.0, 1.0, 0.0); + break; + case VIEW_FRONT: + glRotatef(90.0, 1.0, 0.0, 0.0); + break; + } + // draw grid lines in xy plane. + glBegin(GL_LINES); + for (int i = -256; i <= 256; i += 8) + { + // vary intensity to make minor grid lines less distinct. + unsigned int l = (i + 256); + unsigned char s; + if (l % 16) s = 29; + else if (l % 32) s = 40; + else if (l % 64) s = 53; + else if (l % 128) s = 71; + else if (l % 256) s = 95; + else s = 127; + glColor4ub(255, 255, 255, s); + // draw lines + glVertex2d(i, -256); + glVertex2d(i, 256); + glVertex2d(-256, i); + glVertex2d( 256, i); + } + glEnd(); + glPopMatrix(); + glDisable(GL_BLEND); + // get the track to draw. const Track::Track & track = document->get_track(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-03-26 22:20:55
|
Revision: 276 http://racer.svn.sourceforge.net/racer/?rev=276&view=rev Author: jlegg Date: 2010-03-26 22:20:48 +0000 (Fri, 26 Mar 2010) Log Message: ----------- Give controls for managing boosters on the guide. Modified Paths: -------------- trunk/racer_editor/EditorGuide.cpp Modified: trunk/racer_editor/EditorGuide.cpp =================================================================== --- trunk/racer_editor/EditorGuide.cpp 2010-03-26 21:31:52 UTC (rev 275) +++ trunk/racer_editor/EditorGuide.cpp 2010-03-26 22:20:48 UTC (rev 276) @@ -29,6 +29,8 @@ "Right click a white line and press 'Delete edge' to remove an edge.", "Use Front and side view to change the height of vertices (drag yellow cursors up and down). It can also make setting the up direction easier (drag red dots).", "Right click a white line and press 'Add booster' to add a booster in the middle of an edge.", + "You can move a booster along an edge by dragging its base.", + "To delete a booster, right click the base and press 'Delete Attachment'.", "Once you have made a complete loop, use Test on the File menu or tool bar to race on your track.", }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jl...@us...> - 2010-03-26 21:31:58
|
Revision: 275 http://racer.svn.sourceforge.net/racer/?rev=275&view=rev Author: jlegg Date: 2010-03-26 21:31:52 +0000 (Fri, 26 Mar 2010) Log Message: ----------- Allow deleting boosters via the popup menu on their base. Modified Paths: -------------- trunk/libtrack/edit_base/TrackAttachmentHandle.cpp trunk/libtrack/edit_base/TrackAttachmentHandle.h trunk/racer_editor/View.cpp trunk/racer_editor/View.h Modified: trunk/libtrack/edit_base/TrackAttachmentHandle.cpp =================================================================== --- trunk/libtrack/edit_base/TrackAttachmentHandle.cpp 2010-03-26 02:03:27 UTC (rev 274) +++ trunk/libtrack/edit_base/TrackAttachmentHandle.cpp 2010-03-26 21:31:52 UTC (rev 275) @@ -12,6 +12,7 @@ #include "TrackAttachmentHandle.h" #include "../document/MoveTrackAttachmentDelta.h" #include "../path/PathEdge.h" +#include "../document/InsertTrackAttachmentDelta.h" namespace Track { @@ -59,6 +60,16 @@ new_pos)); } +boost::shared_ptr<Document::DocumentDelta> TrackAttachmentHandle::make_remove_delta() const +{ + TrackAttachment & attachment = *(m_edge.get_attachments()[m_attachment_index]); + return boost::shared_ptr<Document::DocumentDelta>(new + Document::RemoveTrackAttachmentDelta( + Document::InsertRemoveTrackAttachmentIdentifier( + attachment.get_name(), + m_edge.get_name()))); +} + } // namespace EditAssist } // namespace Track Modified: trunk/libtrack/edit_base/TrackAttachmentHandle.h =================================================================== --- trunk/libtrack/edit_base/TrackAttachmentHandle.h 2010-03-26 02:03:27 UTC (rev 274) +++ trunk/libtrack/edit_base/TrackAttachmentHandle.h 2010-03-26 21:31:52 UTC (rev 275) @@ -33,6 +33,8 @@ virtual void snap(btVector3 & position, btVector3 normal) const; virtual boost::shared_ptr<Document::DocumentDelta> make_delta(btVector3 position) const; + /// Make a delta which will remove the TrackAttachment from the edge. + boost::shared_ptr<Document::DocumentDelta> make_remove_delta() const; protected: const PathEdge & m_edge; std::size_t m_attachment_index; Modified: trunk/racer_editor/View.cpp =================================================================== --- trunk/racer_editor/View.cpp 2010-03-26 02:03:27 UTC (rev 274) +++ trunk/racer_editor/View.cpp 2010-03-26 21:31:52 UTC (rev 275) @@ -26,6 +26,7 @@ #include <libtrack/document/FlipEdgeDelta.h> #include <libtrack/document/SetStartEdgeDelta.h> #include <libtrack/document/InsertTrackAttachmentDelta.h> +#include <libtrack/edit_base/TrackAttachmentHandle.h> #include <libtrack/TrackBooster.h> const btScalar back_depth = 5000.0; @@ -147,9 +148,14 @@ " <popup name='empty-menu' action='empty-menu'>" " <menuitem name='insert-vertex' action='insert-vertex'/>" " </popup>" + " <popup name='attachment-menu' action='attachment-menu'>" + " <menuitem name='delete-attachment' action='delete-attachment'/>" + " </popup>" "</ui>"; m_action_group->add(Gtk::Action::create("insert-vertex", Gtk::Stock::ADD, "Insert Vertex"), sigc::mem_fun(*this, &View::on_insert_vertex)); + m_action_group->add(Gtk::Action::create("delete-attachment", Gtk::Stock::DELETE, "Delete Attachment"), + sigc::mem_fun(*this, &View::on_delete_attachment)); m_ui_manager->insert_action_group(m_action_group); m_menu_id = m_ui_manager->add_ui_from_string(ui_buffer); @@ -157,6 +163,8 @@ assert(m_popup_menu); m_empty_menu = (Gtk::Menu *)m_ui_manager->get_widget("/empty-menu"); assert(m_empty_menu); + m_attachment_menu = (Gtk::Menu *)m_ui_manager->get_widget("/attachment-menu"); + assert(m_attachment_menu); set_scale(1.0); } @@ -432,6 +440,11 @@ // Does the select object have a segment? bool has_segment = false; std::size_t segment_index; + /** @todo I don't like this big chain of dynamic_casts. + * It should use polymorphism, but we don't want to mix editor UI + * stuff with the game components so they should be separated + * better first. + */ const Track::PathVertex * vertex = dynamic_cast<const Track::PathVertex *>(found_object); if (vertex) { @@ -478,6 +491,17 @@ menu_item->set_sensitive(segment.edges_allowed()); } } + else + { + const Track::EditAssist::TrackAttachmentHandle * attachment = + dynamic_cast<const Track::EditAssist::TrackAttachmentHandle *>(found_object); + if (attachment) + { + popup_object = found_object; + m_attachment_menu->popup(event->button, event->time); + return true; + } + } } if (has_segment) { @@ -739,6 +763,18 @@ m_signal_command.emit(delta); } +void View::on_delete_attachment() +{ + const Track::EditAssist::TrackAttachmentHandle * attachment_handle = + dynamic_cast<const Track::EditAssist::TrackAttachmentHandle *>(popup_object); + assert(attachment_handle); + boost::shared_ptr<Document::DocumentDelta> delta + ( + attachment_handle->make_remove_delta() + ); + m_signal_command.emit(delta); +} + void View::on_flip_edge() { const Track::PathEdge * edge = dynamic_cast<const Track::PathEdge *>(popup_object); Modified: trunk/racer_editor/View.h =================================================================== --- trunk/racer_editor/View.h 2010-03-26 02:03:27 UTC (rev 274) +++ trunk/racer_editor/View.h 2010-03-26 21:31:52 UTC (rev 275) @@ -2,7 +2,7 @@ * @brief Declare the View class. * @author James Legg */ -/* Copyright © 2009 James Legg. +/* Copyright © 2009, 2010 James Legg. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -142,6 +142,7 @@ // actions void on_delete_vertex(); void on_delete_edge(); + void on_delete_attachment(); void on_flip_edge(); void on_insert_vertex(); void on_set_start_edge(); @@ -220,6 +221,8 @@ Gtk::Menu * m_popup_menu; /// popup menu shown when an empty space is right clicked. Gtk::Menu * m_empty_menu; + /// popup menu shown when an Track::TrackAttachment is right clicked. + Gtk::Menu * m_attachment_menu; void pick_segment(std::size_t index); }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |