You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
(11) |
Apr
(47) |
May
(14) |
Jun
|
Jul
(73) |
Aug
(4) |
Sep
(2) |
Oct
(60) |
Nov
(48) |
Dec
(66) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
|
Feb
(1) |
Mar
(27) |
Apr
(82) |
May
(89) |
Jun
(91) |
Jul
(44) |
Aug
(53) |
Sep
(113) |
Oct
(20) |
Nov
(37) |
Dec
(10) |
2008 |
Jan
|
Feb
(2) |
Mar
|
Apr
(2) |
May
(21) |
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2009 |
Jan
(76) |
Feb
(89) |
Mar
(52) |
Apr
(11) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(27) |
2010 |
Jan
(11) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(9) |
Sep
|
Oct
|
Nov
|
Dec
(14) |
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(2) |
Sep
(11) |
Oct
(3) |
Nov
|
Dec
|
2013 |
Jan
(4) |
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ult...@us...> - 2007-04-04 20:22:17
|
Revision: 352 http://svn.sourceforge.net/opengate/?rev=352&view=rev Author: ultrasick Date: 2007-04-04 13:22:16 -0700 (Wed, 04 Apr 2007) Log Message: ----------- uppercase -> lowercase Added Paths: ----------- trunk/data/ships/conflux/ trunk/data/ships/octavius/ trunk/data/ships/octavius/apteryx/ trunk/data/ships/octavius/apteryx/apteryx.mesh trunk/data/ships/octavius/apteryx/apteryx.mesh.xml trunk/data/ships/octavius/apteryx/apteryx.wings trunk/data/ships/octavius/apteryx/apteryx.xml trunk/data/ships/octavius/apteryx/apteryx_auv.png trunk/data/ships/octavius/apteryx/apteryx_auv.svg trunk/data/ships/octavius/apteryx/apteryx_auv_org.png trunk/data/ships/octavius/condor/ trunk/data/ships/octavius/condor/condor.wings trunk/data/ships/octavius/condor/condor.xml trunk/data/ships/octavius/phoenix/ trunk/data/ships/octavius/phoenix/phoenix.wings trunk/data/ships/octavius/phoenix/phoenix.xml trunk/data/ships/quantar/ trunk/data/ships/quantar/storm/ trunk/data/ships/quantar/storm/storm.mesh trunk/data/ships/quantar/storm/storm.mesh.xml trunk/data/ships/quantar/storm/storm.wings trunk/data/ships/quantar/storm/storm.xml trunk/data/ships/quantar/storm/storm_auv.png trunk/data/ships/quantar/storm/storm_auv.svg trunk/data/ships/quantar/storm/storm_auv_org.png trunk/data/ships/quantar/thunder/ trunk/data/ships/quantar/thunder/thunder.wings trunk/data/ships/quantar/typhoon/ trunk/data/ships/quantar/typhoon/typhoon.wings trunk/data/ships/quantar/typhoon/typhoon.xml Added: trunk/data/ships/octavius/apteryx/apteryx.mesh =================================================================== (Binary files differ) Property changes on: trunk/data/ships/octavius/apteryx/apteryx.mesh ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/data/ships/octavius/apteryx/apteryx.mesh.xml =================================================================== --- trunk/data/ships/octavius/apteryx/apteryx.mesh.xml (rev 0) +++ trunk/data/ships/octavius/apteryx/apteryx.mesh.xml 2007-04-04 20:22:16 UTC (rev 352) @@ -0,0 +1,1247 @@ +<?xml version="1.0"?> +<mesh> + <materials> + <material name="octavius_apteryx_auv"> + <ambient green="1.000000" alpha="1.000000" blue="1.000000" red="1.000000"/> + <diffuse green="1.000000" alpha="1.000000" blue="1.000000" red="1.000000"/> + <specular green="1.000000" alpha="1.000000" blue="1.000000" red="1.000000"/> + <shininess value="1.000000"/> + <texturelayers> + <texturelayer texture="octavius_apteryx_auv.png"/> + </texturelayers> + </material> + </materials> + <sharedgeometry vertexcount="0"/> + <submeshes> + <submesh use32bitindexes="false" operationtype="triangle_list" usesharedvertices="false" material="octavius_apteryx_auv"> + <faces count="232"> + <face v1="48" v2="45" v3="55"/> + <face v1="55" v2="52" v3="48"/> + <face v1="16" v2="7" v3="34"/> + <face v1="34" v2="38" v3="16"/> + <face v1="19" v2="56" v3="57"/> + <face v1="57" v2="43" v3="19"/> + <face v1="37" v2="36" v3="41"/> + <face v1="42" v2="37" v3="41"/> + <face v1="109" v2="108" v3="37"/> + <face v1="109" v2="37" v3="42"/> + <face v1="43" v2="4" v3="1"/> + <face v1="19" v2="43" v3="1"/> + <face v1="40" v2="54" v3="53"/> + <face v1="53" v2="47" v3="40"/> + <face v1="54" v2="24" v3="27"/> + <face v1="44" v2="42" v3="41"/> + <face v1="46" v2="44" v3="41"/> + <face v1="55" v2="53" v3="31"/> + <face v1="55" v2="31" v3="30"/> + <face v1="49" v2="109" v3="42"/> + <face v1="49" v2="42" v3="44"/> + <face v1="50" v2="9" v3="10"/> + <face v1="51" v2="50" v3="10"/> + <face v1="14" v2="51" v3="10"/> + <face v1="52" v2="50" v3="38"/> + <face v1="52" v2="38" v3="48"/> + <face v1="52" v2="55" v3="30"/> + <face v1="30" v2="3" v3="52"/> + <face v1="31" v2="53" v3="54"/> + <face v1="54" v2="27" v3="31"/> + <face v1="47" v2="53" v3="55"/> + <face v1="55" v2="45" v3="47"/> + <face v1="50" v2="51" v3="16"/> + <face v1="50" v2="16" v3="38"/> + <face v1="50" v2="52" v3="3"/> + <face v1="50" v2="3" v3="9"/> + <face v1="56" v2="54" v3="40"/> + <face v1="51" v2="14" v3="16"/> + <face v1="56" v2="19" v3="24"/> + <face v1="54" v2="56" v3="24"/> + <face v1="56" v2="40" v3="35"/> + <face v1="57" v2="56" v3="35"/> + <face v1="28" v2="69" v3="67"/> + <face v1="28" v2="67" v3="32"/> + <face v1="61" v2="20" v3="22"/> + <face v1="61" v2="22" v3="59"/> + <face v1="70" v2="23" v3="58"/> + <face v1="21" v2="70" v3="58"/> + <face v1="26" v2="18" v3="61"/> + <face v1="61" v2="60" v3="26"/> + <face v1="18" v2="81" v3="20"/> + <face v1="20" v2="61" v3="18"/> + <face v1="29" v2="62" v3="64"/> + <face v1="64" v2="2" v3="29"/> + <face v1="32" v2="67" v3="62"/> + <face v1="62" v2="29" v3="32"/> + <face v1="72" v2="69" v3="28"/> + <face v1="25" v2="72" v3="28"/> + <face v1="0" v2="5" v3="86"/> + <face v1="86" v2="84" v3="0"/> + <face v1="2" v2="64" v3="73"/> + <face v1="73" v2="8" v3="2"/> + <face v1="73" v2="75" v3="11"/> + <face v1="11" v2="8" v3="73"/> + <face v1="76" v2="78" v3="13"/> + <face v1="13" v2="12" v3="76"/> + <face v1="82" v2="17" v3="0"/> + <face v1="84" v2="82" v3="0"/> + <face v1="102" v2="98" v3="97"/> + <face v1="103" v2="102" v3="97"/> + <face v1="15" v2="13" v3="78"/> + <face v1="88" v2="15" v3="78"/> + <face v1="89" v2="6" v3="15"/> + <face v1="89" v2="15" v3="88"/> + <face v1="80" v2="93" v3="94"/> + <face v1="94" v2="95" v3="80"/> + <face v1="20" v2="81" v3="70"/> + <face v1="70" v2="21" v3="20"/> + <face v1="91" v2="92" v3="90"/> + <face v1="91" v2="90" v3="87"/> + <face v1="85" v2="93" v3="80"/> + <face v1="80" v2="83" v3="85"/> + <face v1="107" v2="106" v3="97"/> + <face v1="97" v2="98" v3="107"/> + <face v1="103" v2="101" v3="65"/> + <face v1="103" v2="65" v3="63"/> + <face v1="102" v2="104" v3="95"/> + <face v1="102" v2="95" v3="98"/> + <face v1="101" v2="100" v3="74"/> + <face v1="101" v2="74" v3="65"/> + <face v1="79" v2="99" v3="87"/> + <face v1="77" v2="74" v3="100"/> + <face v1="100" v2="99" v3="77"/> + <face v1="66" v2="102" v3="103"/> + <face v1="103" v2="63" v3="66"/> + <face v1="96" v2="101" v3="103"/> + <face v1="103" v2="97" v3="96"/> + <face v1="96" v2="91" v3="100"/> + <face v1="100" v2="101" v3="96"/> + <face v1="87" v2="99" v3="100"/> + <face v1="100" v2="91" v3="87"/> + <face v1="71" v2="104" v3="68"/> + <face v1="68" v2="104" v3="102"/> + <face v1="102" v2="66" v3="68"/> + <face v1="99" v2="79" v3="77"/> + <face v1="95" v2="94" v3="107"/> + <face v1="107" v2="98" v3="95"/> + <face v1="97" v2="106" v3="105"/> + <face v1="105" v2="96" v3="97"/> + <face v1="105" v2="92" v3="91"/> + <face v1="96" v2="105" v3="91"/> + <face v1="71" v2="80" v3="95"/> + <face v1="104" v2="71" v3="95"/> + <face v1="33" v2="108" v3="109"/> + <face v1="109" v2="39" v3="33"/> + <face v1="109" v2="49" v3="39"/> + <face v1="155" v2="145" v3="149"/> + <face v1="152" v2="155" v3="149"/> + <face v1="140" v2="34" v3="7"/> + <face v1="140" v2="7" v3="122"/> + <face v1="57" v2="156" v3="123"/> + <face v1="57" v2="123" v3="43"/> + <face v1="142" v2="36" v3="37"/> + <face v1="37" v2="143" v3="142"/> + <face v1="143" v2="37" v3="108"/> + <face v1="108" v2="197" v3="143"/> + <face v1="110" v2="4" v3="43"/> + <face v1="43" v2="123" v3="110"/> + <face v1="154" v2="141" v3="147"/> + <face v1="153" v2="154" v3="147"/> + <face v1="129" v2="154" v3="134"/> + <face v1="142" v2="143" v3="144"/> + <face v1="144" v2="146" v3="142"/> + <face v1="138" v2="153" v3="155"/> + <face v1="155" v2="136" v3="138"/> + <face v1="197" v2="148" v3="144"/> + <face v1="197" v2="144" v3="143"/> + <face v1="151" v2="116" v3="115"/> + <face v1="150" v2="151" v3="115"/> + <face v1="151" v2="119" v3="116"/> + <face v1="140" v2="150" v3="152"/> + <face v1="152" v2="149" v3="140"/> + <face v1="155" v2="152" v3="113"/> + <face v1="113" v2="136" v3="155"/> + <face v1="154" v2="153" v3="138"/> + <face v1="154" v2="138" v3="134"/> + <face v1="155" v2="153" v3="147"/> + <face v1="155" v2="147" v3="145"/> + <face v1="122" v2="151" v3="150"/> + <face v1="150" v2="140" v3="122"/> + <face v1="113" v2="152" v3="150"/> + <face v1="150" v2="115" v3="113"/> + <face v1="154" v2="156" v3="141"/> + <face v1="119" v2="151" v3="122"/> + <face v1="129" v2="123" v3="156"/> + <face v1="156" v2="154" v3="129"/> + <face v1="35" v2="141" v3="156"/> + <face v1="156" v2="57" v3="35"/> + <face v1="166" v2="167" v3="133"/> + <face v1="133" v2="137" v3="166"/> + <face v1="128" v2="126" v3="160"/> + <face v1="160" v2="159" v3="128"/> + <face v1="131" v2="170" v3="127"/> + <face v1="127" v2="157" v3="131"/> + <face v1="160" v2="124" v3="132"/> + <face v1="160" v2="132" v3="158"/> + <face v1="126" v2="181" v3="124"/> + <face v1="126" v2="124" v3="160"/> + <face v1="112" v2="163" v3="161"/> + <face v1="112" v2="161" v3="135"/> + <face v1="161" v2="166" v3="137"/> + <face v1="161" v2="137" v3="135"/> + <face v1="133" v2="167" v3="169"/> + <face v1="169" v2="130" v3="133"/> + <face v1="86" v2="5" v3="111"/> + <face v1="183" v2="86" v3="111"/> + <face v1="172" v2="163" v3="112"/> + <face v1="114" v2="172" v3="112"/> + <face v1="117" v2="174" v3="172"/> + <face v1="117" v2="172" v3="114"/> + <face v1="120" v2="178" v3="176"/> + <face v1="120" v2="176" v3="118"/> + <face v1="111" v2="125" v3="180"/> + <face v1="180" v2="183" v3="111"/> + <face v1="189" v2="190" v3="194"/> + <face v1="194" v2="195" v3="189"/> + <face v1="178" v2="120" v3="121"/> + <face v1="121" v2="185" v3="178"/> + <face v1="6" v2="89" v3="185"/> + <face v1="185" v2="121" v3="6"/> + <face v1="187" v2="94" v3="93"/> + <face v1="187" v2="93" v3="179"/> + <face v1="170" v2="181" v3="126"/> + <face v1="170" v2="126" v3="127"/> + <face v1="90" v2="92" v3="186"/> + <face v1="186" v2="184" v3="90"/> + <face v1="179" v2="93" v3="85"/> + <face v1="179" v2="85" v3="182"/> + <face v1="189" v2="106" v3="107"/> + <face v1="189" v2="107" v3="190"/> + <face v1="164" v2="193" v3="195"/> + <face v1="195" v2="162" v3="164"/> + <face v1="190" v2="187" v3="196"/> + <face v1="196" v2="194" v3="190"/> + <face v1="173" v2="192" v3="193"/> + <face v1="193" v2="164" v3="173"/> + <face v1="191" v2="177" v3="184"/> + <face v1="192" v2="173" v3="175"/> + <face v1="191" v2="192" v3="175"/> + <face v1="195" v2="194" v3="165"/> + <face v1="195" v2="165" v3="162"/> + <face v1="195" v2="193" v3="188"/> + <face v1="195" v2="188" v3="189"/> + <face v1="192" v2="186" v3="188"/> + <face v1="193" v2="192" v3="188"/> + <face v1="191" v2="184" v3="186"/> + <face v1="192" v2="191" v3="186"/> + <face v1="196" v2="171" v3="168"/> + <face v1="194" v2="196" v3="168"/> + <face v1="194" v2="168" v3="165"/> + <face v1="177" v2="191" v3="175"/> + <face v1="107" v2="94" v3="187"/> + <face v1="190" v2="107" v3="187"/> + <face v1="105" v2="106" v3="189"/> + <face v1="188" v2="105" v3="189"/> + <face v1="186" v2="92" v3="105"/> + <face v1="105" v2="188" v3="186"/> + <face v1="187" v2="179" v3="171"/> + <face v1="171" v2="196" v3="187"/> + <face v1="197" v2="108" v3="33"/> + <face v1="197" v2="33" v3="139"/> + <face v1="148" v2="197" v3="139"/> + </faces> + <geometry vertexcount="198"> + <vertexbuffer normals="true" colours_diffuse="false" texture_coord_dimensions_0="2" positions="true" texture_coords="1"> + <vertex> + <position y="0.626787" x="-8.985925" z="0.676926"/> + <normal y="0.242887" x="-0.862227" z="0.444489"/> + <texcoord u="0.892077" v="0.050693"/> + </vertex> + <vertex> + <position y="0.626787" x="-8.985925" z="0.676926"/> + <normal y="0.242887" x="-0.862227" z="0.444489"/> + <texcoord u="0.915236" v="0.125134"/> + </vertex> + <vertex> + <position y="-2.900711" x="2.815779" z="10.885320"/> + <normal y="0.416505" x="-0.004394" z="0.909123"/> + <texcoord u="0.336625" v="0.947344"/> + </vertex> + <vertex> + <position y="-2.900711" x="2.815779" z="10.885320"/> + <normal y="0.416505" x="-0.004394" z="0.909123"/> + <texcoord u="0.483717" v="0.558810"/> + </vertex> + <vertex> + <position y="0.626787" x="-8.985925" z="-0.000121"/> + <normal y="0.444212" x="-0.895922" z="-0.000000"/> + <texcoord u="0.939793" v="0.124796"/> + </vertex> + <vertex> + <position y="0.626787" x="-8.985925" z="-0.000121"/> + <normal y="0.444212" x="-0.895922" z="-0.000000"/> + <texcoord u="0.870397" v="0.063053"/> + </vertex> + <vertex> + <position y="2.458172" x="12.649132" z="-0.000121"/> + <normal y="0.776067" x="0.630650" z="-0.000000"/> + <texcoord u="0.851139" v="0.051437"/> + </vertex> + <vertex> + <position y="2.458172" x="12.649132" z="-0.000121"/> + <normal y="0.776067" x="0.630650" z="-0.000000"/> + <texcoord u="0.933370" v="0.949252"/> + </vertex> + <vertex> + <position y="-1.649501" x="9.032329" z="9.648228"/> + <normal y="0.432299" x="0.180045" z="0.883573"/> + <texcoord u="0.481860" v="0.950392"/> + </vertex> + <vertex> + <position y="-1.649501" x="9.032329" z="9.648228"/> + <normal y="0.432299" x="0.180045" z="0.883573"/> + <texcoord u="0.537993" v="0.792215"/> + </vertex> + <vertex> + <position y="-0.463032" x="13.228780" z="7.771864"/> + <normal y="0.458115" x="0.408566" z="0.789433"/> + <texcoord u="0.611671" v="0.951961"/> + </vertex> + <vertex> + <position y="-0.463032" x="13.228780" z="7.771864"/> + <normal y="0.458115" x="0.408566" z="0.789433"/> + <texcoord u="0.588611" v="0.956403"/> + </vertex> + <vertex> + <position y="-0.463032" x="13.228780" z="7.771864"/> + <normal y="0.458115" x="0.408566" z="0.789433"/> + <texcoord u="0.544984" v="0.179350"/> + </vertex> + <vertex> + <position y="1.384049" x="14.254442" z="5.639791"/> + <normal y="0.647362" x="0.662584" z="0.376702"/> + <texcoord u="0.627203" v="0.101915"/> + </vertex> + <vertex> + <position y="1.384049" x="14.254442" z="5.639791"/> + <normal y="0.647362" x="0.662584" z="0.376702"/> + <texcoord u="0.713995" v="0.995251"/> + </vertex> + <vertex> + <position y="2.458172" x="12.656326" z="2.860729"/> + <normal y="0.856673" x="0.512599" z="0.057909"/> + <texcoord u="0.743496" v="0.050336"/> + </vertex> + <vertex> + <position y="2.458172" x="12.656326" z="2.860729"/> + <normal y="0.856673" x="0.512599" z="0.057909"/> + <texcoord u="0.827485" v="0.942344"/> + </vertex> + <vertex> + <position y="1.051610" x="-6.904983" z="1.808935"/> + <normal y="0.934589" x="-0.354774" z="-0.026055"/> + <texcoord u="0.976829" v="0.024487"/> + </vertex> + <vertex> + <position y="1.051610" x="-6.904983" z="1.808935"/> + <normal y="0.934589" x="-0.354774" z="-0.026055"/> + <texcoord u="0.466258" v="0.010438"/> + </vertex> + <vertex> + <position y="1.051610" x="-6.904983" z="1.808935"/> + <normal y="0.934589" x="-0.354774" z="-0.026055"/> + <texcoord u="0.875234" v="0.202728"/> + </vertex> + <vertex> + <position y="-0.905670" x="-14.693949" z="2.895462"/> + <normal y="-0.272696" x="-0.708114" z="-0.651315"/> + <texcoord u="0.475824" v="0.204685"/> + </vertex> + <vertex> + <position y="-0.905670" x="-14.693536" z="4.321519"/> + <normal y="-0.205699" x="-0.720778" z="0.661942"/> + <texcoord u="0.445009" v="0.219570"/> + </vertex> + <vertex> + <position y="-0.905670" x="-14.693536" z="4.321519"/> + <normal y="-0.205699" x="-0.720778" z="0.661942"/> + <texcoord u="0.503976" v="0.224142"/> + </vertex> + <vertex> + <position y="1.051610" x="-6.648792" z="5.386738"/> + <normal y="0.821994" x="-0.282504" z="0.494486"/> + <texcoord u="0.292600" v="0.089296"/> + </vertex> + <vertex> + <position y="1.051610" x="-6.648792" z="5.386738"/> + <normal y="0.821994" x="-0.282504" z="0.494486"/> + <texcoord u="0.744245" v="0.212145"/> + </vertex> + <vertex> + <position y="1.051610" x="-6.648792" z="5.386738"/> + <normal y="0.821994" x="-0.282504" z="0.494486"/> + <texcoord u="0.020979" v="0.940013"/> + </vertex> + <vertex> + <position y="1.051610" x="-6.648792" z="5.386738"/> + <normal y="0.821994" x="-0.282504" z="0.494486"/> + <texcoord u="0.552230" v="0.006162"/> + </vertex> + <vertex> + <position y="-0.235792" x="-5.033788" z="7.561788"/> + <normal y="0.627230" x="-0.335300" z="0.702962"/> + <texcoord u="0.651395" v="0.271757"/> + </vertex> + <vertex> + <position y="-0.235792" x="-5.033788" z="7.561788"/> + <normal y="0.627230" x="-0.335300" z="0.702962"/> + <texcoord u="0.101206" v="0.938647"/> + </vertex> + <vertex> + <position y="-2.894624" x="-0.359815" z="10.386533"/> + <normal y="0.418904" x="-0.215231" z="0.882154"/> + <texcoord u="0.259691" v="0.950972"/> + </vertex> + <vertex> + <position y="-2.894624" x="-0.359815" z="10.386533"/> + <normal y="0.418904" x="-0.215231" z="0.882154"/> + <texcoord u="0.503086" v="0.441213"/> + </vertex> + <vertex> + <position y="-1.545918" x="-3.394943" z="8.894669"/> + <normal y="0.498475" x="-0.305724" z="0.811206"/> + <texcoord u="0.581318" v="0.330903"/> + </vertex> + <vertex> + <position y="-1.545918" x="-3.394943" z="8.894669"/> + <normal y="0.498475" x="-0.305724" z="0.811206"/> + <texcoord u="0.167826" v="0.945690"/> + </vertex> + <vertex> + <position y="2.818449" x="4.399825" z="-0.000121"/> + <normal y="0.987364" x="0.158466" z="-0.000000"/> + <texcoord u="0.960972" v="0.615165"/> + </vertex> + <vertex> + <position y="2.818449" x="4.399825" z="-0.000121"/> + <normal y="0.987364" x="0.158466" z="-0.000000"/> + <texcoord u="0.954115" v="0.643701"/> + </vertex> + <vertex> + <position y="1.606481" x="-4.374999" z="-0.000121"/> + <normal y="0.937069" x="-0.349145" z="0.000000"/> + <texcoord u="0.942056" v="0.295582"/> + </vertex> + <vertex> + <position y="1.606481" x="-4.374999" z="-0.000121"/> + <normal y="0.937069" x="-0.349145" z="0.000000"/> + <texcoord u="0.956819" v="0.305634"/> + </vertex> + <vertex> + <position y="3.565721" x="-1.070097" z="-0.000121"/> + <normal y="0.971116" x="-0.238609" z="0.000000"/> + <texcoord u="0.965629" v="0.431512"/> + </vertex> + <vertex> + <position y="2.879257" x="4.398788" z="1.807774"/> + <normal y="0.972255" x="0.152720" z="0.177192"/> + <texcoord u="0.887184" v="0.639022"/> + </vertex> + <vertex> + <position y="2.879257" x="4.398788" z="1.807774"/> + <normal y="0.972255" x="0.152720" z="0.177192"/> + <texcoord u="0.901091" v="0.612148"/> + </vertex> + <vertex> + <position y="1.606481" x="-4.368584" z="1.806649"/> + <normal y="0.937800" x="-0.318105" z="0.139068"/> + <texcoord u="0.876854" v="0.296815"/> + </vertex> + <vertex> + <position y="1.606481" x="-4.368584" z="1.806649"/> + <normal y="0.937800" x="-0.318105" z="0.139068"/> + <texcoord u="0.897639" v="0.309841"/> + </vertex> + <vertex> + <position y="3.468952" x="-1.074552" z="2.218575"/> + <normal y="0.944523" x="-0.241639" z="0.222458"/> + <texcoord u="0.893990" v="0.432495"/> + </vertex> + <vertex> + <position y="1.051610" x="-6.917842" z="-0.000121"/> + <normal y="0.976652" x="-0.214827" z="-0.000000"/> + <texcoord u="0.940797" v="0.201395"/> + </vertex> + <vertex> + <position y="2.712690" x="-0.702242" z="3.759976"/> + <normal y="0.868910" x="-0.204986" z="0.450529"/> + <texcoord u="0.837991" v="0.440663"/> + </vertex> + <vertex> + <position y="2.712690" x="-0.702242" z="3.759976"/> + <normal y="0.868910" x="-0.204986" z="0.450529"/> + <texcoord u="0.825011" v="0.442708"/> + </vertex> + <vertex> + <position y="2.060508" x="-2.388349" z="3.275107"/> + <normal y="0.866647" x="-0.331047" z="0.373272"/> + <texcoord u="0.849723" v="0.377177"/> + </vertex> + <vertex> + <position y="2.060508" x="-2.388349" z="3.275107"/> + <normal y="0.866647" x="-0.331047" z="0.373272"/> + <texcoord u="0.830014" v="0.374971"/> + </vertex> + <vertex> + <position y="3.021154" x="2.600186" z="3.349899"/> + <normal y="0.929720" x="0.098334" z="0.354895"/> + <texcoord u="0.840669" v="0.564759"/> + </vertex> + <vertex> + <position y="3.021154" x="2.600186" z="3.349899"/> + <normal y="0.929720" x="0.098334" z="0.354895"/> + <texcoord u="0.852199" v="0.550263"/> + </vertex> + <vertex> + <position y="1.833362" x="5.565812" z="5.026063"/> + <normal y="0.869820" x="0.056558" z="0.490116"/> + <texcoord u="0.759156" v="0.674445"/> + </vertex> + <vertex> + <position y="1.315936" x="11.673458" z="5.771516"/> + <normal y="0.865900" x="0.011018" z="0.500095"/> + <texcoord u="0.713735" v="0.899320"/> + </vertex> + <vertex> + <position y="1.707294" x="2.839030" z="5.682980"/> + <normal y="0.834686" x="0.018268" z="0.550424"/> + <texcoord u="0.741432" v="0.571509"/> + </vertex> + <vertex> + <position y="1.277396" x="-3.018296" z="4.806324"/> + <normal y="0.878153" x="-0.157557" z="0.451690"/> + <texcoord u="0.766062" v="0.350803"/> + </vertex> + <vertex> + <position y="1.432154" x="-5.152852" z="3.472360"/> + <normal y="0.971810" x="-0.079682" z="0.221894"/> + <texcoord u="0.814639" v="0.269517"/> + </vertex> + <vertex> + <position y="1.434233" x="-0.351700" z="5.748981"/> + <normal y="0.806994" x="-0.133369" z="0.575303"/> + <texcoord u="0.738102" v="0.452849"/> + </vertex> + <vertex> + <position y="1.432154" x="-5.287349" z="1.807477"/> + <normal y="0.978248" x="-0.207265" z="0.008543"/> + <texcoord u="0.875993" v="0.263112"/> + </vertex> + <vertex> + <position y="1.432154" x="-5.296098" z="-0.000121"/> + <normal y="0.978235" x="-0.207502" z="0.000000"/> + <texcoord u="0.941534" v="0.261749"/> + </vertex> + <vertex> + <position y="-0.022163" x="-14.194227" z="4.053202"/> + <normal y="0.738513" x="-0.522413" z="0.426243"/> + <texcoord u="0.420237" v="0.224142"/> + </vertex> + <vertex> + <position y="-0.022163" x="-14.194227" z="4.053202"/> + <normal y="0.738513" x="-0.522413" z="0.426243"/> + <texcoord u="0.512529" v="0.200448"/> + </vertex> + <vertex> + <position y="-0.022163" x="-14.194227" z="4.053202"/> + <normal y="0.738513" x="-0.522413" z="0.426243"/> + <texcoord u="0.516385" v="0.188342"/> + </vertex> + <vertex> + <position y="-0.022163" x="-14.199970" z="3.138235"/> + <normal y="0.720331" x="-0.535439" z="-0.440940"/> + <texcoord u="0.494430" v="0.188017"/> + </vertex> + <vertex> + <position y="-3.802771" x="-0.357053" z="10.395116"/> + <normal y="-0.846779" x="-0.261013" z="0.463505"/> + <texcoord u="0.264416" v="0.971986"/> + </vertex> + <vertex> + <position y="-3.802771" x="-0.357053" z="10.395116"/> + <normal y="-0.846779" x="-0.261013" z="0.463505"/> + <texcoord u="0.453084" v="0.370693"/> + </vertex> + <vertex> + <position y="-3.793255" x="2.823228" z="10.876877"/> + <normal y="-0.860119" x="0.075320" z="0.504502"/> + <texcoord u="0.334474" v="0.967127"/> + </vertex> + <vertex> + <position y="-3.793255" x="2.823228" z="10.876877"/> + <normal y="-0.860119" x="0.075320" z="0.504502"/> + <texcoord u="0.469402" v="0.492076"/> + </vertex> + <vertex> + <position y="-2.832112" x="-3.389394" z="8.897550"/> + <normal y="-0.769463" x="-0.475620" z="0.426277"/> + <texcoord u="0.385394" v="0.254748"/> + </vertex> + <vertex> + <position y="-2.832112" x="-3.389394" z="8.897550"/> + <normal y="-0.769463" x="-0.475620" z="0.426277"/> + <texcoord u="0.179655" v="0.975658"/> + </vertex> + <vertex> + <position y="-1.902075" x="-5.590593" z="7.567440"/> + <normal y="-0.654681" x="-0.682538" z="0.324860"/> + <texcoord u="0.325781" v="0.170191"/> + </vertex> + <vertex> + <position y="-1.902075" x="-5.590593" z="7.567440"/> + <normal y="-0.654681" x="-0.682538" z="0.324860"/> + <texcoord u="0.111772" v="0.983561"/> + </vertex> + <vertex> + <position y="-0.992026" x="-6.592994" z="5.663315"/> + <normal y="-0.823338" x="-0.405159" z="0.397443"/> + <texcoord u="0.331410" v="0.058559"/> + </vertex> + <vertex> + <position y="-0.992026" x="-6.592994" z="5.663315"/> + <normal y="-0.823338" x="-0.405159" z="0.397443"/> + <texcoord u="0.247583" v="0.129540"/> + </vertex> + <vertex> + <position y="-0.992026" x="-6.592994" z="5.663315"/> + <normal y="-0.823338" x="-0.405159" z="0.397443"/> + <texcoord u="0.050252" v="0.985830"/> + </vertex> + <vertex> + <position y="-2.749834" x="9.014091" z="9.632089"/> + <normal y="-0.831228" x="0.306730" z="0.463656"/> + <texcoord u="0.475325" v="0.974061"/> + </vertex> + <vertex> + <position y="-2.749834" x="9.014091" z="9.632089"/> + <normal y="-0.831228" x="0.306730" z="0.463656"/> + <texcoord u="0.410195" v="0.728597"/> + </vertex> + <vertex> + <position y="-1.834187" x="13.217674" z="7.762546"/> + <normal y="-0.795337" x="0.570827" z="0.203950"/> + <texcoord u="0.579224" v="0.985830"/> + </vertex> + <vertex> + <position y="-1.834187" x="13.217674" z="7.762546"/> + <normal y="-0.795337" x="0.570827" z="0.203950"/> + <texcoord u="0.549889" v="0.230713"/> + </vertex> + <vertex> + <position y="-1.834187" x="13.217674" z="7.762546"/> + <normal y="-0.795337" x="0.570827" z="0.203950"/> + <texcoord u="0.331136" v="0.889002"/> + </vertex> + <vertex> + <position y="-0.774939" x="14.254298" z="5.541114"/> + <normal y="-0.652150" x="0.683047" z="-0.328857"/> + <texcoord u="0.638056" v="0.182510"/> + </vertex> + <vertex> + <position y="-0.774939" x="14.254298" z="5.541114"/> + <normal y="-0.652150" x="0.683047" z="-0.328857"/> + <texcoord u="0.237598" v="0.928740"/> + </vertex> + <vertex> + <position y="-1.054964" x="-6.903826" z="1.812509"/> + <normal y="-0.962913" x="-0.177452" z="-0.203248"/> + <texcoord u="0.100780" v="0.119386"/> + </vertex> + <vertex> + <position y="-1.054964" x="-6.903826" z="1.812509"/> + <normal y="-0.962913" x="-0.177452" z="-0.203248"/> + <texcoord u="0.417857" v="0.025031"/> + </vertex> + <vertex> + <position y="-1.054964" x="-6.903826" z="1.812509"/> + <normal y="-0.962913" x="-0.177452" z="-0.203248"/> + <texcoord u="0.987504" v="0.101398"/> + </vertex> + <vertex> + <position y="-0.450138" x="-8.470729" z="0.670670"/> + <normal y="-0.687867" x="-0.679846" z="0.254260"/> + <texcoord u="0.050074" v="0.061108"/> + </vertex> + <vertex> + <position y="-0.450138" x="-8.470729" z="0.670670"/> + <normal y="-0.687867" x="-0.679846" z="0.254260"/> + <texcoord u="0.913671" v="0.089035"/> + </vertex> + <vertex> + <position y="-0.451642" x="-8.465400" z="-0.000121"/> + <normal y="-0.831459" x="-0.555586" z="0.000000"/> + <texcoord u="0.024595" v="0.061902"/> + </vertex> + <vertex> + <position y="-0.451642" x="-8.465400" z="-0.000121"/> + <normal y="-0.831459" x="-0.555586" z="0.000000"/> + <texcoord u="0.892258" v="0.101398"/> + </vertex> + <vertex> + <position y="0.216233" x="13.455312" z="3.526704"/> + <normal y="-0.725482" x="0.581297" z="-0.368470"/> + <texcoord u="0.151833" v="0.899561"/> + </vertex> + <vertex> + <position y="0.216233" x="13.455312" z="3.526704"/> + <normal y="-0.725482" x="0.581297" z="-0.368470"/> + <texcoord u="0.716668" v="0.139379"/> + </vertex> + <vertex> + <position y="0.212457" x="13.052222" z="-0.000121"/> + <normal y="-0.589170" x="0.808009" z="-0.000000"/> + <texcoord u="0.850223" v="0.137284"/> + </vertex> + <vertex> + <position y="0.212457" x="13.052222" z="-0.000121"/> + <normal y="-0.589170" x="0.808009" z="-0.000000"/> + <texcoord u="0.017964" v="0.880308"/> + </vertex> + <vertex> + <position y="-0.419366" x="4.351016" z="2.199768"/> + <normal y="-0.981266" x="0.047525" z="-0.186702"/> + <texcoord u="0.111623" v="0.550171"/> + </vertex> + <vertex> + <position y="-0.119592" x="4.344222" z="-0.000121"/> + <normal y="-0.999441" x="0.033424" z="-0.000000"/> + <texcoord u="0.026956" v="0.548379"/> + </vertex> + <vertex> + <position y="-0.285617" x="-6.910962" z="-0.000121"/> + <normal y="-0.999993" x="0.003744" z="0.000000"/> + <texcoord u="0.025920" v="0.121308"/> + </vertex> + <vertex> + <position y="-0.245439" x="-4.187208" z="-0.000121"/> + <normal y="-0.997105" x="0.076039" z="-0.000000"/> + <texcoord u="0.028302" v="0.224880"/> + </vertex> + <vertex> + <position y="-0.901150" x="-4.165207" z="1.816542"/> + <normal y="-0.978338" x="0.043431" z="-0.202405"/> + <texcoord u="0.101947" v="0.224074"/> + </vertex> + <vertex> + <position y="-0.539812" x="2.558921" z="3.118590"/> + <normal y="-0.976984" x="0.019138" z="-0.212453"/> + <texcoord u="0.147206" v="0.481777"/> + </vertex> + <vertex> + <position y="-0.660258" x="-0.326426" z="3.827747"/> + <normal y="-0.971991" x="0.038636" z="-0.231819"/> + <texcoord u="0.174975" v="0.372244"/> + </vertex> + <vertex> + <position y="-0.780704" x="-2.396499" z="3.034885"/> + <normal y="-0.973477" x="0.071078" z="-0.217463"/> + <texcoord u="0.146719" v="0.292920"/> + </vertex> + <vertex> + <position y="-0.808977" x="13.336493" z="5.644625"/> + <normal y="-0.916011" x="0.014536" z="-0.400890"/> + <texcoord u="0.241420" v="0.893734"/> + </vertex> + <vertex> + <position y="-1.076600" x="6.682553" z="5.915929"/> + <normal y="-0.931948" x="0.046983" z="-0.359535"/> + <texcoord u="0.254798" v="0.640132"/> + </vertex> + <vertex> + <position y="-1.773012" x="2.691075" z="6.997733"/> + <normal y="-0.923898" x="0.041648" z="-0.380365"/> + <texcoord u="0.302531" v="0.487618"/> + </vertex> + <vertex> + <position y="-1.570295" x="-2.892947" z="5.966217"/> + <normal y="-0.947322" x="0.002184" z="-0.320274"/> + <texcoord u="0.263156" v="0.273393"/> + </vertex> + <vertex> + <position y="-1.995402" x="-0.341739" z="7.111432"/> + <normal y="-0.918680" x="0.031383" z="-0.393754"/> + <texcoord u="0.309932" v="0.371463"/> + </vertex> + <vertex> + <position y="-1.165500" x="-4.877900" z="4.691991"/> + <normal y="-0.973526" x="-0.081648" z="-0.213497"/> + <texcoord u="0.212394" v="0.196401"/> + </vertex> + <vertex> + <position y="-0.151054" x="2.211365" z="-0.000121"/> + <normal y="-0.999945" x="0.010464" z="-0.000000"/> + <texcoord u="0.027928" v="0.467647"/> + </vertex> + <vertex> + <position y="-0.182516" x="0.078507" z="-0.000121"/> + <normal y="-0.999277" x="0.038017" z="-0.000000"/> + <texcoord u="0.028574" v="0.386657"/> + </vertex> + <vertex> + <position y="-0.213977" x="-2.054350" z="-0.000121"/> + <normal y="-0.996054" x="0.088748" z="-0.000000"/> + <texcoord u="0.029316" v="0.305716"/> + </vertex> + <vertex> + <position y="3.398701" x="2.545521" z="-0.000121"/> + <normal y="0.987653" x="0.156659" z="0.000000"/> + <texcoord u="0.963532" v="0.550815"/> + </vertex> + <vertex> + <position y="3.325759" x="2.543326" z="1.947035"/> + <normal y="0.978686" x="0.143584" z="0.146824"/> + <texcoord u="0.899493" v="0.549229"/> + </vertex> + <vertex> + <position y="0.626787" x="-8.985925" z="-0.677168"/> + <normal y="0.242887" x="-0.862227" z="-0.444489"/> + <texcoord u="0.915236" v="0.125134"/> + </vertex> + <vertex> + <position y="0.626787" x="-8.985925" z="-0.677168"/> + <normal y="0.242887" x="-0.862227" z="-0.444489"/> + <texcoord u="0.892077" v="0.050693"/> + </vertex> + <vertex> + <position y="-2.900711" x="2.815779" z="-10.885563"/> + <normal y="0.416505" x="-0.004394" z="-0.909123"/> + <texcoord u="0.336625" v="0.947344"/> + </vertex> + <vertex> + <position y="-2.900711" x="2.815779" z="-10.885563"/> + <normal y="0.416505" x="-0.004394" z="-0.909123"/> + <texcoord u="0.483717" v="0.558810"/> + </vertex> + <vertex> + <position y="-1.649501" x="9.032329" z="-9.648471"/> + <normal y="0.432299" x="0.180045" z="-0.883573"/> + <texcoord u="0.481860" v="0.950392"/> + </vertex> + <vertex> + <position y="-1.649501" x="9.032329" z="-9.648471"/> + <normal y="0.432299" x="0.180045" z="-0.883573"/> + <texcoord u="0.537993" v="0.792215"/> + </vertex> + <vertex> + <position y="-0.463032" x="13.228780" z="-7.772107"/> + <normal y="0.458115" x="0.408566" z="-0.789433"/> + <texcoord u="0.611671" v="0.951961"/> + </vertex> + <vertex> + <position y="-0.463032" x="13.228780" z="-7.772107"/> + <normal y="0.458115" x="0.408566" z="-0.789433"/> + <texcoord u="0.588611" v="0.956403"/> + </vertex> + <vertex> + <position y="-0.463032" x="13.228780" z="-7.772107"/> + <normal y="0.458115" x="0.408566" z="-0.789433"/> + <texcoord u="0.544984" v="0.179350"/> + </vertex> + <vertex> + <position y="1.384049" x="14.254442" z="-5.640034"/> + <normal y="0.647362" x="0.662584" z="-0.376702"/> + <texcoord u="0.713995" v="0.995251"/> + </vertex> + <vertex> + <position y="1.384049" x="14.254442" z="-5.640034"/> + <normal y="0.647362" x="0.662584" z="-0.376702"/> + <texcoord u="0.627203" v="0.101915"/> + </vertex> + <vertex> + <position y="2.458172" x="12.656326" z="-2.860972"/> + <normal y="0.856673" x="0.512599" z="-0.057909"/> + <texcoord u="0.743496" v="0.050336"/> + </vertex> + <vertex> + <position y="2.458172" x="12.656326" z="-2.860972"/> + <normal y="0.856673" x="0.512599" z="-0.057909"/> + <texcoord u="0.827485" v="0.942344"/> + </vertex> + <vertex> + <position y="1.051610" x="-6.904983" z="-1.809178"/> + <normal y="0.934589" x="-0.354774" z="0.026055"/> + <texcoord u="0.875234" v="0.202728"/> + </vertex> + <vertex> + <position y="1.051610" x="-6.904983" z="-1.809178"/> + <normal y="0.934589" x="-0.354774" z="0.026055"/> + <texcoord u="0.466258" v="0.010438"/> + </vertex> + <vertex> + <position y="1.051610" x="-6.904983" z="-1.809178"/> + <normal y="0.934589" x="-0.354774" z="0.026055"/> + <texcoord u="0.976829" v="0.024487"/> + </vertex> + <vertex> + <position y="-0.905670" x="-14.693949" z="-2.895705"/> + <normal y="-0.272696" x="-0.708114" z="0.651315"/> + <texcoord u="0.475824" v="0.204685"/> + </vertex> + <vertex> + <position y="-0.905670" x="-14.693536" z="-4.321761"/> + <normal y="-0.205699" x="-0.720778" z="-0.661942"/> + <texcoord u="0.445009" v="0.219570"/> + </vertex> + <vertex> + <position y="-0.905670" x="-14.693536" z="-4.321761"/> + <normal y="-0.205699" x="-0.720778" z="-0.661942"/> + <texcoord u="0.503976" v="0.224142"/> + </vertex> + <vertex> + <position y="1.051610" x="-6.648792" z="-5.386980"/> + <normal y="0.821994" x="-0.282504" z="-0.494486"/> + <texcoord u="0.744245" v="0.212145"/> + </vertex> + <vertex> + <position y="1.051610" x="-6.648792" z="-5.386980"/> + <normal y="0.821994" x="-0.282504" z="-0.494486"/> + <texcoord u="0.020979" v="0.940013"/> + </vertex> + <vertex> + <position y="1.051610" x="-6.648792" z="-5.386980"/> + <normal y="0.821994" x="-0.282504" z="-0.494486"/> + <texcoord u="0.292600" v="0.089296"/> + </vertex> + <vertex> + <position y="1.051610" x="-6.648792" z="-5.386980"/> + <normal y="0.821994" x="-0.282504" z="-0.494486"/> + <texcoord u="0.552230" v="0.006162"/> + </vertex> + <vertex> + <position y="-0.235792" x="-5.033788" z="-7.562031"/> + <normal y="0.627230" x="-0.335300" z="-0.702962"/> + <texcoord u="0.101206" v="0.938647"/> + </vertex> + <vertex> + <position y="-0.235792" x="-5.033788" z="-7.562031"/> + <normal y="0.627230" x="-0.335300" z="-0.702962"/> + <texcoord u="0.651395" v="0.271757"/> + </vertex> + <vertex> + <position y="-2.894624" x="-0.359815" z="-10.386775"/> + <normal y="0.418904" x="-0.215231" z="-0.882154"/> + <texcoord u="0.259691" v="0.950972"/> + </vertex> + <vertex> + <position y="-2.894624" x="-0.359815" z="-10.386775"/> + <normal y="0.418904" x="-0.215231" z="-0.882154"/> + <texcoord u="0.503086" v="0.441213"/> + </vertex> + <vertex> + <position y="-1.545918" x="-3.394943" z="-8.894912"/> + <normal y="0.498475" x="-0.305724" z="-0.811206"/> + <texcoord u="0.167826" v="0.945690"/> + </vertex> + <vertex> + <position y="-1.545918" x="-3.394943" z="-8.894912"/> + <normal y="0.498475" x="-0.305724" z="-0.811206"/> + <texcoord u="0.581318" v="0.330903"/> + </vertex> + <vertex> + <position y="2.879257" x="4.398788" z="-1.808017"/> + <normal y="0.972255" x="0.152720" z="-0.177192"/> + <texcoord u="0.901091" v="0.612148"/> + </vertex> + <vertex> + <position y="2.879257" x="4.398788" z="-1.808017"/> + <normal y="0.972255" x="0.152720" z="-0.177192"/> + <texcoord u="0.887184" v="0.639022"/> + </vertex> + <vertex> + <position y="1.606481" x="-4.368584" z="-1.806892"/> + <normal y="0.937800" x="-0.318105" z="-0.139068"/> + <texcoord u="0.876854" v="0.296815"/> + </vertex> + <vertex> + <position y="1.606481" x="-4.368584" z="-1.806892"/> + <normal y="0.937800" x="-0.318105" z="-0.139068"/> + <texcoord u="0.897639" v="0.309841"/> + </vertex> + <vertex> + <position y="3.468952" x="-1.074552" z="-2.218817"/> + <normal y="0.944523" x="-0.241639" z="-0.222458"/> + <texcoord u="0.893990" v="0.432495"/> + </vertex> + <vertex> + <position y="2.712690" x="-0.702242" z="-3.760219"/> + <normal y="0.868910" x="-0.204986" z="-0.450529"/> + <texcoord u="0.837991" v="0.440663"/> + </vertex> + <vertex> + <position y="2.712690" x="-0.702242" z="-3.760219"/> + <normal y="0.868910" x="-0.204986" z="-0.450529"/> + <texcoord u="0.825011" v="0.442708"/> + </vertex> + <vertex> + <position y="2.060508" x="-2.388349" z="-3.275349"/> + <normal y="0.866647" x="-0.331047" z="-0.373272"/> + <texcoord u="0.849723" v="0.377177"/> + </vertex> + <vertex> + <position y="2.060508" x="-2.388349" z="-3.275349"/> + <normal y="0.866647" x="-0.331047" z="-0.373272"/> + <texcoord u="0.830014" v="0.374971"/> + </vertex> + <vertex> + <position y="3.021154" x="2.600186" z="-3.350141"/> + <normal y="0.929720" x="0.098334" z="-0.354895"/> + <texcoord u="0.852199" v="0.550263"/> + </vertex> + <vertex> + <position y="3.021154" x="2.600186" z="-3.350141"/> + <normal y="0.929720" x="0.098334" z="-0.354895"/> + <texcoord u="0.840669" v="0.564759"/> + </vertex> + <vertex> + <position y="1.833362" x="5.565812" z="-5.026306"/> + <normal y="0.869820" x="0.056558" z="-0.490116"/> + <texcoord u="0.759156" v="0.674445"/> + </vertex> + <vertex> + <position y="1.315936" x="11.673458" z="-5.771758"/> + <normal y="0.865900" x="0.011018" z="-0.500095"/> + <texcoord u="0.713735" v="0.899320"/> + </vertex> + <vertex> + <position y="1.707294" x="2.839030" z="-5.683223"/> + <normal y="0.834686" x="0.018268" z="-0.550424"/> + <texcoord u="0.741432" v="0.571509"/> + </vertex> + <vertex> + <position y="1.277396" x="-3.018296" z="-4.806566"/> + <normal y="0.878153" x="-0.157557" z="-0.451690"/> + <texcoord u="0.766062" v="0.350803"/> + </vertex> + <vertex> + <position y="1.432154" x="-5.152852" z="-3.472603"/> + <normal y="0.971810" x="-0.079682" z="-0.221894"/> + <texcoord u="0.814639" v="0.269517"/> + </vertex> + <vertex> + <position y="1.434233" x="-0.351700" z="-5.749224"/> + <normal y="0.806994" x="-0.133369" z="-0.575303"/> + <texcoord u="0.738102" v="0.452849"/> + </vertex> + <vertex> + <position y="1.432154" x="-5.287349" z="-1.807720"/> + <normal y="0.978248" x="-0.207265" z="-0.008543"/> + <texcoord u="0.875993" v="0.263112"/> + </vertex> + <vertex> + <position y="-0.022163" x="-14.194227" z="-4.053445"/> + <normal y="0.738513" x="-0.522413" z="-0.426243"/> + <texcoord u="0.420237" v="0.224142"/> + </vertex> + <vertex> + <position y="-0.022163" x="-14.194227" z="-4.053445"/> + <normal y="0.738513" x="-0.522413" z="-0.426243"/> + <texcoord u="0.516385" v="0.188342"/> + </vertex> + <vertex> + <position y="-0.022163" x="-14.194227" z="-4.053445"/> + <normal y="0.738513" x="-0.522413" z="-0.426243"/> + <texcoord u="0.512529" v="0.200448"/> + </vertex> + <vertex> + <position y="-0.022163" x="-14.199970" z="-3.138477"/> + <normal y="0.720331" x="-0.535439" z="0.440940"/> + <texcoord u="0.494430" v="0.188017"/> + </vertex> + <vertex> + <position y="-3.802771" x="-0.357053" z="-10.395359"/> + <normal y="-0.846779" x="-0.261013" z="-0.463505"/> + <texcoord u="0.264416" v="0.971986"/> + </vertex> + <vertex> + <position y="-3.802771" x="-0.357053" z="-10.395359"/> + <normal y="-0.846779" x="-0.261013" z="-0.463505"/> + <texcoord u="0.453084" v="0.370693"/> + </vertex> + <vertex> + <position y="-3.793255" x="2.823228" z="-10.877119"/> + <normal y="-0.860119" x="0.075320" z="-0.504502"/> + <texcoord u="0.334474" v="0.967127"/> + </vertex> + <vertex> + <position y="-3.793255" x="2.823228" z="-10.877119"/> + <normal y="-0.860119" x="0.075320" z="-0.504502"/> + <texcoord u="0.469402" v="0.492076"/> + </vertex> + <vertex> + <position y="-2.832112" x="-3.389394" z="-8.897792"/> + <normal y="-0.769463" x="-0.475620" z="-0.426277"/> + <texcoord u="0.385394" v="0.254748"/> + </vertex> + <vertex> + <position y="-2.832112" x="-3.389394" z="-8.897792"/> + <normal y="-0.769463" x="-0.475620" z="-0.426277"/> + <texcoord u="0.179655" v="0.975658"/> + </vertex> + <vertex> + <position y="-1.902075" x="-5.590593" z="-7.567683"/> + <normal y="-0.654681" x="-0.682538" z="-0.324860"/> + <texcoord u="0.111772" v="0.983561"/> + </vertex> + <vertex> + <position y="-1.902075" x="-5.590593" z="-7.567683"/> + <normal y="-0.654681" x="-0.682538" z="-0.324860"/> + <texcoord u="0.325781" v="0.170191"/> + </vertex> + <vertex> + <position y="-0.992026" x="-6.592994" z="-5.663558"/> + <normal y="-0.823338" x="-0.405159" z="-0.397443"/> + <texcoord u="0.050252" v="0.985830"/> + </vertex> + <vertex> + <position y="-0.992026" x="-6.592994" z="-5.663558"/> + <normal y="-0.823338" x="-0.405159" z="-0.397443"/> + <texcoord u="0.331410" v="0.058559"/> + </vertex> + <vertex> + <position y="-0.992026" x="-6.592994" z="-5.663558"/> + <normal y="-0.823338" x="-0.405159" z="-0.397443"/> + <texcoord u="0.247583" v="0.129540"/> + </vertex> + <vertex> + <position y="-2.749834" x="9.014091" z="-9.632332"/> + <normal y="-0.831228" x="0.306730" z="-0.463656"/> + <texcoord u="0.475325" v="0.974061"/> + </vertex> + <vertex> + <position y="-2.749834" x="9.014091" z="-9.632332"/> + <normal y="-0.831228" x="0.306730" z="-0.463656"/> + <texcoord u="0.410195" v="0.728597"/> + </vertex> + <vertex> + <position y="-1.834187" x="13.217674" z="-7.762789"/> + <normal y="-0.795337" x="0.570827" z="-0.203950"/> + <texcoord u="0.579224" v="0.985830"/> + </vertex> + <vertex> + <position y="-1.834187" x="13.217674" z="-7.762789"/> + <normal y="-0.795337" x="0.570827" z="-0.203950"/> + <texcoord u="0.331136" v="0.889002"/> + </vertex> + <vertex> + <position y="-1.834187" x="13.217674" z="-7.762789"/> + <normal y="-0.795337" x="0.570827" z="-0.203950"/> + <texcoord u="0.549889" v="0.230713"/> + </vertex> + <vertex> + <position y="-0.774939" x="14.254298" z="-5.541356"/> + <normal y="-0.652150" x="0.683047" z="0.328857"/> + <texcoord u="0.237598" v="0.928740"/> + </vertex> + <vertex> + <position y="-0.774939" x="14.254298" z="-5.541356"/> + <normal y="-0.652150" x="0.683047" z="0.328857"/> + <texcoord u="0.638056" v="0.182510"/> + </vertex> + <vertex> + <position y="-1.054964" x="-6.903826" z="-1.812751"/> + <normal y="-0.962913" x="-0.177452" z="0.203248"/> + <texcoord u="0.100780" v="0.119386"/> + </vertex> + <vertex> + <position y="-1.054964" x="-6.903826" z="-1.812751"/> + <normal y="-0.962913" x="-0.177452" z="0.203248"/> + <texcoord u="0.987504" v="0.101398"/> + </vertex> + <vertex> + <position y="-1.054964" x="-6.903826" z="-1.812751"/> + <normal y="-0.962913" x="-0.177452" z="0.203248"/> + <texcoord u="0.417857" v="0.025031"/> + </vertex> + <vertex> + <position y="-0.450138" x="-8.470729" z="-0.670912"/> + <normal y="-0.687867" x="-0.679846" z="-0.254260"/> + <texcoord u="0.050074" v="0.061108"/> + </vertex> + <vertex> + <position y="-0.450138" x="-8.470729" z="-0.670912"/> + <normal y="-0.687867" x="-0.679846" z="-0.254260"/> + <texcoord u="0.913671" v="0.089035"/> + </vertex> + <vertex> + <position y="0.216233" x="13.455312" z="-3.526947"/> + <normal y="-0.725482" x="0.581297" z="0.368470"/> + <texcoord u="0.151833" v="0.899561"/> + </vertex> + <vertex> + <position y="0.216233" x="13.455312" z="-3.526947"/> + <normal y="-0.725482" x="0.581297" z="0.368470"/> + <texcoord u="0.716668" v="0.139379"/> + </vertex> + <vertex> + <position y="-0.419366" x="4.351016" z="-2.200011"/> + <normal y="-0.981266" x="0.047525" z="0.186702"/> + <texcoord u="0.111623" v="0.550171"/> + </vertex> + <vertex> + <position y="-0.901150" x="-4.165207" z="-1.816785"/> + <normal y="-0.978338" x="0.043431" z="0.202405"/> + <texcoord u="0.101947" v="0.224074"/> + </vertex> + <vertex> + <position y="-0.539812" x="2.558921" z="-3.118833"/> + <normal y="-0.976984" x="0.019138" z="0.212453"/> + <texcoord u="0.147206" v="0.481777"/> + </vertex> + <vertex> + <position y="-0.660258" x="-0.326426" z="-3.827990"/> + <normal y="-0.971991" x="0.038636" z="0.231819"/> + <texcoord u="0.174975" v="0.372244"/> + </vertex> + <vertex> + <position y="-0.780704" x="-2.396499" z="-3.035128"/> + <normal y="-0.973477" x="0.071078" z="0.217463"/> + <texcoord u="0.146719" v="0.292920"/> + </vertex> + <vertex> + <position y="-0.808977" x="13.336493" z="-5.644868"/> + <normal y="-0.916011" x="0.014536" z="0.400890"/> + <texcoord u="0.241420" v="0.893734"/> + </vertex> + <vertex> + <position y="-1.076600" x="6.682553" z="-5.916171"/> + <normal y="-0.931948" x="0.046983" z="0.359535"/> + <texcoord u="0.254798" v="0.640132"/> + </vertex> + <vertex> + <position y="-1.773012" x="2.691075" z="-6.997976"/> + <normal y="-0.923898" x="0.041648" z="0.380365"/> + <texcoord u="0.302531" v="0.487618"/> + </vertex> + <vertex> + <position y="-1.570295" x="-2.892947" z="-5.966460"/> + <normal y="-0.947322" x="0.002184" z="0.320274"/> + <texcoord u="0.263156" v="0.273393"/> + </vertex> + <vertex> + <position y="-1.995402" x="-0.341739" z="-7.111674"/> + <normal y="-0.918680" x="0.031383" z="0.393754"/> + <texcoord u="0.309932" v="0.371463"/> + </vertex> + <vertex> + <position y="-1.165500" x="-4.877900" z="-4.692234"/> + <normal y="-0.973526" x="-0.081648" z="0.213497"/> + <texcoord u="0.212394" v="0.196401"/> + </vertex> + <vertex> + <position y="3.325759" x="2.543326" z="-1.947278"/> + <normal y="0.978686" x="0.143584" z="-0.146824"/> + <texcoord u="0.899493" v="0.549229"/> + </vertex> + </vertexbuffer> + </geometry> + </submesh> + </submeshes> +</mesh> Property changes on: trunk/data/ships/octavius/apteryx/apteryx.mesh.xml ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/data/ships/octavius/apteryx/apteryx.wings =================================================================== (Binary files differ) Property changes on: trunk/data/ships/octavius/apteryx/apteryx.wings ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/data/ships/octavius/apteryx/apteryx.xml =================================================================== --- trunk/data/ships/octavius/apteryx/apteryx.xml (rev 0) +++ trunk/data/ships/octavius/apteryx/apteryx.xml 2007-04-04 20:22:16 UTC (rev 352) @@ -0,0 +1,35 @@ +<?xml version="1.0"?> + +<ship> + <!-- Naming --> + <faction>Ocavius</faction> + <name>Storm</name> + + <!-- Generic Data --> + <class>Patrol Trainer</class> + <techlevel>0</techlevel> + <size>12.2</size> + <mass>8500</mass> + + <!-- Sizes --> + <capacitorsize>1</capacitorsize> + <ecmsize>1</ecmsize> + <engines>1</engines> + <enginesize>3</enginesize> + <guns>2</guns> + <gunsize>1:1</gunsize> + <missiles>2</missiles> + <missilesize>2:2</missilesize> + <modx>2</modx> + <powerplantsize>2</powerplantsize> + <radarsize>1</radarsize> + <shieldsize>1</shieldsize> + <armor>9000</armor> + <cargocapacity>1</cargocapacity> + + <!-- Movement --> + <dragfactor>12.96</dragfactor> <!-- 13.0 ingame --> + <pitch>0.001571</pitch> <!-- 90.0 in jossh --> + <roll>0.001222</roll> <!-- 70.0 in jossh --> + <yaw>0.001396</yaw> <!-- 80.0 in jossh --> +</ship> \ No newline at end of file Property changes on: trunk/data/ships/octavius/apteryx/apteryx.xml ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/data/ships/octavius/apteryx/apteryx_auv.png =================================================================== (Binary files differ) Property changes on: trunk/data/ships/octavius/apteryx/apteryx_auv.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/data/ships/octavius/apteryx/apteryx_auv.svg =================================================================== --- trunk/data/ships/octavius/apteryx/apteryx_auv.svg (rev 0) +++ trunk/data/ships/octavius/apteryx/apteryx_auv.svg 2007-04-04 20:22:16 UTC (rev 352) @@ -0,0 +1,2207 @@ +<?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://web.resource.org/cc/" + 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:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.43" + width="2048" + height="2048" + version="1.0" + sodipodi:docbase="/home/egore/source/opengate/data/Octavius/Apteryx" + sodipodi:docname="octavius_apteryx_auv.svg" + inkscape:export-filename="/home/egore/source/opengate/data/Octavius/Apteryx/octavius_apteryx_auv.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <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" /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs5"> + <linearGradient + id="linearGradient5897"> + <stop + style="stop-color:#ff8c8c;stop-opacity:1;" + offset="0" + id="stop5899" /> + <stop + style="stop-color:#ff1111;stop-opacity:1;" + offset="1" + id="stop5901" /> + </linearGradient> + <linearGradient + id="linearGradient4139"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop4141" /> + <stop + style="stop-color:#2e2e2e;stop-opacity:1;" + offset="1" + id="stop4143" /> + </linearGradient> + <linearGradient + id="linearGradient3218"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop3220" /> + <stop + id="stop3226" + offset="0.66233766" + style="stop-color:#5f5f5f;stop-opacity:1;" /> + <stop + style="stop-color:#5f5f5f;stop-opacity:0;" + offset="1" + id="stop3222" /> + </linearGradient> + <linearGradient + id="linearGradient7044"> + <stop + style="stop-color:#06ff02;stop-opacity:1;" + offset="0" + id="stop7046" /> + <stop + id="stop7052" + offset="0.33000001" + style="stop-color:#002800;stop-opacity:1;" /> + <stop + style="stop-color:#005600;stop-opacity:1;" + offset="0.5" + id="stop7054" /> + <stop + id="stop7056" + offset="0.66000003" + style="stop-color:#002100;stop-opacity:1;" /> + <stop + style="stop-color:#023801;stop-opacity:1;" + offset="0.85000002" + id="stop9683" /> + <stop + style="stop-color:#061505;stop-opacity:1;" + offset="1" + id="stop7048" /> + </linearGradient> + <linearGradient + id="linearGradient4410"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop4412" /> + <stop + id="stop4418" + offset="0" + style="stop-color:#484848;stop-opacity:1;" /> + <stop + style="stop-color:#212121;stop-opacity:1;" + offset="1" + id="stop4414" /> + </linearGradient> + <linearGradient + id="linearGradient6793"> + <stop + style="stop-color:#261003;stop-opacity:1;" + offset="0" + id="stop6795" /> + <stop + id="stop6801" + offset="0.5" + style="stop-color:#421b04;stop-opacity:1;" /> + <stop + style="stop-color:#230e02;stop-opacity:1;" + offset="1" + id="stop6797" /> + </linearGradient> + <linearGradient + id="linearGradient4156"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop4158" /> + <stop + id="stop4164" + offset="0.5" + style="stop-color:#4a4a4a;stop-opacity:1;" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="1" + id="stop4160" /> + </linearGradient> + <linearGradient + id="linearGradient2265"> + <stop + id="stop2267" + offset="0" + style="stop-color:#85870a;stop-opacity:1;" /> + <stop + id="stop2269" + offset="1" + style="stop-color:#850a0a;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient3180"> + <stop + style="stop-color:#ebee1d;stop-opacity:1;" + offset="0" + id="stop3182" /> + <stop + style="stop-color:#ee2121;stop-opacity:1;" + offset="1" + id="stop3184" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3180" + id="linearGradient3186" + x1="886.37238" + y1="251.26514" + x2="980.30768" + y2="431.82245" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2265" + id="linearGradient2263" + x1="886.37238" + y1="251.26514" + x2="980.30768" + y2="431.82245" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3180" + id="linearGradient3172" + x1="1008.2186" + y1="271.1517" + x2="1009.257" + y2="380.05429" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(5.681874,-32.82861)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3180" + id="linearGradient3174" + x1="1023.4564" + y1="221.59314" + x2="1023.1208" + y2="322.15723" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(3.156596,40.7201)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3180" + id="linearGradient3176" + x1="1051.2625" + y1="253.1591" + x2="1047.1649" + y2="346.91003" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2265" + id="linearGradient3185" + x1="1008.2186" + y1="271.1517" + x2="1009.257" + y2="380.05429" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(5.681874,-32.82861)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2265" + id="linearGradient3187" + x1="1023.4564" + y1="221.59314" + x2="1023.1208" + y2="322.15723" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(3.156596,40.7201)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2265" + id="linearGradient3189" + x1="1051.2625" + y1="253.1591" + x2="1047.1649" + y2="346.91003" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3180" + id="linearGradient3195" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-46.40198,74.18002)" + x1="1006.4108" + y1="208.33543" + x2="1032.2749" + y2="303.21762" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2265" + id="linearGradient3197" + gradientUnits="userSpaceOnUse" +... [truncated message content] |
From: <ult...@us...> - 2007-04-04 20:17:46
|
Revision: 351 http://svn.sourceforge.net/opengate/?rev=351&view=rev Author: ultrasick Date: 2007-04-04 13:17:10 -0700 (Wed, 04 Apr 2007) Log Message: ----------- uppercase -> lowercase Removed Paths: ------------- trunk/data/ships/Conflux/ trunk/data/ships/Octavius/ trunk/data/ships/Quantar/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ult...@us...> - 2007-04-04 20:09:55
|
Revision: 350 http://svn.sourceforge.net/opengate/?rev=350&view=rev Author: ultrasick Date: 2007-04-04 13:09:53 -0700 (Wed, 04 Apr 2007) Log Message: ----------- renaming the Premia -> Primrose Added Paths: ----------- trunk/data/ships/Solrain/Primrose/ trunk/data/ships/Solrain/Primrose/Primrose.blend trunk/data/ships/Solrain/Primrose/Primrose.wings trunk/data/ships/Solrain/Primrose/Primrose.xml Removed Paths: ------------- trunk/data/ships/Solrain/Premia/ Added: trunk/data/ships/Solrain/Primrose/Primrose.blend =================================================================== (Binary files differ) Property changes on: trunk/data/ships/Solrain/Primrose/Primrose.blend ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/data/ships/Solrain/Primrose/Primrose.wings =================================================================== (Binary files differ) Property changes on: trunk/data/ships/Solrain/Primrose/Primrose.wings ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/data/ships/Solrain/Primrose/Primrose.xml =================================================================== --- trunk/data/ships/Solrain/Primrose/Primrose.xml (rev 0) +++ trunk/data/ships/Solrain/Primrose/Primrose.xml 2007-04-04 20:09:53 UTC (rev 350) @@ -0,0 +1,45 @@ +<?xml version="1.0"?> +<!DOCTYPE ship SYSTEM "../../../opengate.dtd"> + +<ship type="Player"> + <!-- Naming --> + <name>Premia</name> + <class>Shuttle Trainer</class> + <faction>Solrain</faction> + <description>The Premia was the first commercially viable series of spacecraft following the Great Collapse. The latest Premia is a well-balanced ship, combining adequate speed with good weapon capacity and decent shields.</description> + <image>s_c_15.jpg</image> + <model>s_c_15.wings</model> + + <!-- Production Data --> + + <production-center>Solrain Core</production-center> + <production-center>Solrain Wake</production-center> + <production-center>Solrain Cornea</production-center> + + <!-- Generic Data --> + <techlevel>0</techlevel> + <size>10.9</size> + <mass>9000</mass> + + <!-- Sizes --> + <capacitorsize>1</capacitorsize> + <ecmsize>1</ecmsize> + <enginecount>2</enginecount> + <enginesize>1</enginesize> + <gunsize>1</gunsize> + <gunsize>1</gunsize> + <missilesize>1</missilesize> + <missilesize>1</missilesize> + <modx>3</modx> + <powerplantsize>1</powerplantsize> + <radarsize>1</radarsize> + <shieldsize>2</shieldsize> + <armor>4500</armor> + <cargocapacity>4</cargocapacity> + + <!-- Movement --> + <dragfactor>14.55</dragfactor> <!-- 14.6 ingame --> + <pitch>0.000960</pitch> <!-- 55.0 in jossh --> + <roll>0.001222</roll> <!-- 70.0 in jossh --> + <yaw>0.001187</yaw> <!-- 68.0 in jossh --> +</ship> Property changes on: trunk/data/ships/Solrain/Primrose/Primrose.xml ___________________________________________________________________ Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <eg...@us...> - 2007-04-04 19:56:51
|
Revision: 349 http://svn.sourceforge.net/opengate/?rev=349&view=rev Author: egore Date: 2007-04-04 12:56:49 -0700 (Wed, 04 Apr 2007) Log Message: ----------- Models mit 2 LOD Ebenen Modified Paths: -------------- trunk/data/ships/Octavius/Apteryx/octavius_apteryx.mesh trunk/data/ships/Octavius/Apteryx/octavius_apteryx.mesh.xml trunk/data/ships/Quantar/Storm/quantar_storm.mesh trunk/data/ships/Quantar/Storm/quantar_storm.mesh.xml Modified: trunk/data/ships/Octavius/Apteryx/octavius_apteryx.mesh =================================================================== (Binary files differ) Modified: trunk/data/ships/Octavius/Apteryx/octavius_apteryx.mesh.xml =================================================================== --- trunk/data/ships/Octavius/Apteryx/octavius_apteryx.mesh.xml 2007-04-04 19:26:48 UTC (rev 348) +++ trunk/data/ships/Octavius/Apteryx/octavius_apteryx.mesh.xml 2007-04-04 19:56:49 UTC (rev 349) @@ -2,10 +2,10 @@ <mesh> <materials> <material name="octavius_apteryx_auv"> - <ambient red="0.000000" green="0.000000" blue="0.000000" alpha="1.000000"/> - <diffuse red="1.000000" green="1.000000" blue="1.000000" alpha="1.000000"/> - <specular red="0.000000" green="0.000000" blue="0.000000" alpha="1.000000"/> - <shininess value="0"/> + <ambient green="1.000000" alpha="1.000000" blue="1.000000" red="1.000000"/> + <diffuse green="1.000000" alpha="1.000000" blue="1.000000" red="1.000000"/> + <specular green="1.000000" alpha="1.000000" blue="1.000000" red="1.000000"/> + <shininess value="1.000000"/> <texturelayers> <texturelayer texture="octavius_apteryx_auv.png"/> </texturelayers> @@ -13,1231 +13,1231 @@ </materials> <sharedgeometry vertexcount="0"/> <submeshes> - <submesh material="octavius_apteryx_auv" usesharedvertices="false" use32bitindexes="false" operationtype="triangle_list"> + <submesh use32bitindexes="false" operationtype="triangle_list" usesharedvertices="false" material="octavius_apteryx_auv"> <faces count="232"> - <face v1="48" v2="44" v3="55"/> - <face v1="48" v2="55" v3="52"/> - <face v1="15" v2="6" v3="33"/> - <face v1="15" v2="33" v3="38"/> - <face v1="17" v2="56" v3="57"/> - <face v1="17" v2="57" v3="43"/> - <face v1="37" v2="35" v3="40"/> - <face v1="37" v2="40" v3="42"/> + <face v1="48" v2="45" v3="55"/> + <face v1="55" v2="52" v3="48"/> + <face v1="16" v2="7" v3="34"/> + <face v1="34" v2="38" v3="16"/> + <face v1="19" v2="56" v3="57"/> + <face v1="57" v2="43" v3="19"/> + <face v1="37" v2="36" v3="41"/> + <face v1="42" v2="37" v3="41"/> <face v1="109" v2="108" v3="37"/> - <face v1="37" v2="42" v3="109"/> - <face v1="43" v2="4" v3="0"/> - <face v1="0" v2="17" v3="43"/> - <face v1="41" v2="54" v3="53"/> - <face v1="46" v2="41" v3="53"/> - <face v1="23" v2="27" v3="54"/> - <face v1="45" v2="42" v3="40"/> - <face v1="40" v2="47" v3="45"/> + <face v1="109" v2="37" v3="42"/> + <face v1="43" v2="4" v3="1"/> + <face v1="19" v2="43" v3="1"/> + <face v1="40" v2="54" v3="53"/> + <face v1="53" v2="47" v3="40"/> + <face v1="54" v2="24" v3="27"/> + <face v1="44" v2="42" v3="41"/> + <face v1="46" v2="44" v3="41"/> <face v1="55" v2="53" v3="31"/> - <face v1="31" v2="29" v3="55"/> + <face v1="55" v2="31" v3="30"/> <face v1="49" v2="109" v3="42"/> - <face v1="42" v2="45" v3="49"/> - <face v1="50" v2="8" v3="10"/> - <face v1="10" v2="51" v3="50"/> - <face v1="10" v2="13" v3="51"/> + <face v1="49" v2="42" v3="44"/> + <face v1="50" v2="9" v3="10"/> + <face v1="51" v2="50" v3="10"/> + <face v1="14" v2="51" v3="10"/> <face v1="52" v2="50" v3="38"/> - <face v1="38" v2="48" v3="52"/> - <face v1="52" v2="55" v3="29"/> - <face v1="29" v2="2" v3="52"/> + <face v1="52" v2="38" v3="48"/> + <face v1="52" v2="55" v3="30"/> + <face v1="30" v2="3" v3="52"/> <face v1="31" v2="53" v3="54"/> - <face v1="27" v2="31" v3="54"/> - <face v1="46" v2="53" v3="55"/> - <face v1="44" v2="46" v3="55"/> - <face v1="50" v2="51" v3="15"/> - <face v1="15" v2="38" v3="50"/> - <face v1="50" v2="52" v3="2"/> - <face v1="2" v2="8" v3="50"/> - <face v1="54" v2="41" v3="56"/> - <face v1="13" v2="15" v3="51"/> - <face v1="56" v2="17" v3="23"/> - <face v1="56" v2="23" v3="54"/> - <face v1="56" v2="41" v3="36"/> - <face v1="36" v2="57" v3="56"/> - <face v1="28" v2="68" v3="66"/> - <face v1="32" v2="28" v3="66"/> - <face v1="61" v2="20" v3="21"/> - <face v1="21" v2="58" v3="61"/> - <face v1="70" v2="24" v3="59"/> - <face v1="59" v2="22" v3="70"/> - <face v1="25" v2="18" v3="61"/> - <face v1="25" v2="61" v3="60"/> - <face v1="18" v2="80" v3="20"/> - <face v1="18" v2="20" v3="61"/> - <face v1="30" v2="62" v3="64"/> - <face v1="30" v2="64" v3="3"/> - <face v1="32" v2="66" v3="62"/> - <face v1="62" v2="30" v3="32"/> - <face v1="71" v2="68" v3="28"/> - <face v1="28" v2="26" v3="71"/> - <face v1="1" v2="5" v3="85"/> - <face v1="1" v2="85" v3="83"/> - <face v1="3" v2="64" v3="73"/> - <face v1="9" v2="3" v3="73"/> + <face v1="54" v2="27" v3="31"/> + <face v1="47" v2="53" v3="55"/> + <face v1="55" v2="45" v3="47"/> + <face v1="50" v2="51" v3="16"/> + <face v1="50" v2="16" v3="38"/> + <face v1="50" v2="52" v3="3"/> + <face v1="50" v2="3" v3="9"/> + <face v1="56" v2="54" v3="40"/> + <face v1="51" v2="14" v3="16"/> + <face v1="56" v2="19" v3="24"/> + <face v1="54" v2="56" v3="24"/> + <face v1="56" v2="40" v3="35"/> + <face v1="57" v2="56" v3="35"/> + <face v1="28" v2="69" v3="67"/> + <face v1="28" v2="67" v3="32"/> + <face v1="61" v2="20" v3="22"/> + <face v1="61" v2="22" v3="59"/> + <face v1="70" v2="23" v3="58"/> + <face v1="21" v2="70" v3="58"/> + <face v1="26" v2="18" v3="61"/> + <face v1="61" v2="60" v3="26"/> + <face v1="18" v2="81" v3="20"/> + <face v1="20" v2="61" v3="18"/> + <face v1="29" v2="62" v3="64"/> + <face v1="64" v2="2" v3="29"/> + <face v1="32" v2="67" v3="62"/> + <face v1="62" v2="29" v3="32"/> + <face v1="72" v2="69" v3="28"/> + <face v1="25" v2="72" v3="28"/> + <face v1="0" v2="5" v3="86"/> + <face v1="86" v2="84" v3="0"/> + <face v1="2" v2="64" v3="73"/> + <face v1="73" v2="8" v3="2"/> <face v1="73" v2="75" v3="11"/> - <face v1="11" v2="9" v3="73"/> - <face v1="76" v2="78" v3="14"/> - <face v1="14" v2="12" v3="76"/> - <face v1="81" v2="19" v3="1"/> - <face v1="1" v2="83" v3="81"/> + <face v1="11" v2="8" v3="73"/> + <face v1="76" v2="78" v3="13"/> + <face v1="13" v2="12" v3="76"/> + <face v1="82" v2="17" v3="0"/> + <face v1="84" v2="82" v3="0"/> <face v1="102" v2="98" v3="97"/> - <face v1="97" v2="103" v3="102"/> - <face v1="16" v2="14" v3="78"/> - <face v1="16" v2="78" v3="87"/> - <face v1="89" v2="7" v3="16"/> - <face v1="16" v2="87" v3="89"/> - <face v1="82" v2="93" v3="94"/> - <face v1="82" v2="94" v3="95"/> - <face v1="20" v2="80" v3="70"/> - <face v1="22" v2="20" v3="70"/> + <face v1="103" v2="102" v3="97"/> + <face v1="15" v2="13" v3="78"/> + <face v1="88" v2="15" v3="78"/> + <face v1="89" v2="6" v3="15"/> + <face v1="89" v2="15" v3="88"/> + <face v1="80" v2="93" v3="94"/> + <face v1="94" v2="95" v3="80"/> + <face v1="20" v2="81" v3="70"/> + <face v1="70" v2="21" v3="20"/> <face v1="91" v2="92" v3="90"/> - <face v1="90" v2="88" v3="91"/> - <face v1="86" v2="93" v3="82"/> - <face v1="82" v2="84" v3="86"/> + <face v1="91" v2="90" v3="87"/> + <face v1="85" v2="93" v3="80"/> + <face v1="80" v2="83" v3="85"/> <face v1="107" v2="106" v3="97"/> <face v1="97" v2="98" v3="107"/> <face v1="103" v2="101" v3="65"/> - <face v1="65" v2="63" v3="103"/> + <face v1="103" v2="65" v3="63"/> <face v1="102" v2="104" v3="95"/> - <face v1="95" v2="98" v3="102"/> + <face v1="102" v2="95" v3="98"/> <face v1="101" v2="100" v3="74"/> - <face v1="74" v2="65" v3="101"/> - <face v1="88" v2="79" v3="99"/> + <face v1="101" v2="74" v3="65"/> + <face v1="79" v2="99" v3="87"/> <face v1="77" v2="74" v3="100"/> - <face v1="77" v2="100" v3="99"/> - <face v1="67" v2="102" v3="103"/> - <face v1="63" v2="67" v3="103"/> + <face v1="100" v2="99" v3="77"/> + <face v1="66" v2="102" v3="103"/> + <face v1="103" v2="63" v3="66"/> <face v1="96" v2="101" v3="103"/> - <face v1="97" v2="96" v3="103"/> + <face v1="103" v2="97" v3="96"/> <face v1="96" v2="91" v3="100"/> - <face v1="96" v2="100" v3="101"/> - <face v1="88" v2="99" v3="100"/> - <face v1="91" v2="88" v3="100"/> - <face v1="69" v2="72" v3="104"/> - <face v1="69" v2="104" v3="102"/> - <face v1="67" v2="69" v3="102"/> - <face v1="79" v2="77" v3="99"/> + <face v1="100" v2="101" v3="96"/> + <face v1="87" v2="99" v3="100"/> + <face v1="100" v2="91" v3="87"/> + <face v1="71" v2="104" v3="68"/> + <face v1="68" v2="104" v3="102"/> + <face v1="102" v2="66" v3="68"/> + <face v1="99" v2="79" v3="77"/> <face v1="95" v2="94" v3="107"/> - <face v1="95" v2="107" v3="98"/> + <face v1="107" v2="98" v3="95"/> <face v1="97" v2="106" v3="105"/> - <face v1="96" v2="97" v3="105"/> + <face v1="105" v2="96" v3="97"/> <face v1="105" v2="92" v3="91"/> - <face v1="91" v2="96" v3="105"/> - <face v1="72" v2="82" v3="95"/> - <face v1="72" v2="95" v3="104"/> - <face v1="34" v2="108" v3="109"/> - <face v1="39" v2="34" v3="109"/> - <face v1="49" v2="39" v3="109"/> - <face v1="155" v2="144" v3="148"/> - <face v1="148" v2="152" v3="155"/> - <face v1="139" v2="33" v3="6"/> - <face v1="6" v2="121" v3="139"/> + <face v1="96" v2="105" v3="91"/> + <face v1="71" v2="80" v3="95"/> + <face v1="104" v2="71" v3="95"/> + <face v1="33" v2="108" v3="109"/> + <face v1="109" v2="39" v3="33"/> + <face v1="109" v2="49" v3="39"/> + <face v1="155" v2="145" v3="149"/> + <face v1="152" v2="155" v3="149"/> + <face v1="140" v2="34" v3="7"/> + <face v1="140" v2="7" v3="122"/> <face v1="57" v2="156" v3="123"/> - <face v1="43" v2="57" v3="123"/> - <face v1="141" v2="35" v3="37"/> - <face v1="37" v2="143" v3="141"/> + <face v1="57" v2="123" v3="43"/> + <face v1="142" v2="36" v3="37"/> + <face v1="37" v2="143" v3="142"/> <face v1="143" v2="37" v3="108"/> <face v1="108" v2="197" v3="143"/> <face v1="110" v2="4" v3="43"/> <face v1="43" v2="123" v3="110"/> - <face v1="154" v2="142" v3="146"/> - <face v1="146" v2="153" v3="154"/> - <face v1="133" v2="129" v3="154"/> - <face v1="141" v2="143" v3="145"/> - <face v1="141" v2="145" v3="147"/> - <face v1="137" v2="153" v3="155"/> - <face v1="135" v2="137" v3="155"/> - <face v1="197" v2="149" v3="145"/> - <face v1="143" v2="197" v3="145"/> - <face v1="151" v2="116" v3="114"/> - <face v1="114" v2="150" v3="151"/> - <face v1="119" v2="116" v3="151"/> - <face v1="139" v2="150" v3="152"/> - <face v1="148" v2="139" v3="152"/> - <face v1="155" v2="152" v3="112"/> - <face v1="135" v2="155" v3="112"/> - <face v1="154" v2="153" v3="137"/> - <face v1="137" v2="133" v3="154"/> - <face v1="155" v2="153" v3="146"/> - <face v1="146" v2="144" v3="155"/> - <face v1="121" v2="151" v3="150"/> - <face v1="139" v2="121" v3="150"/> - <face v1="112" v2="152" v3="150"/> - <face v1="114" v2="112" v3="150"/> - <face v1="142" v2="154" v3="156"/> - <face v1="121" v2="119" v3="151"/> + <face v1="154" v2="141" v3="147"/> + <face v1="153" v2="154" v3="147"/> + <face v1="129" v2="154" v3="134"/> + <face v1="142" v2="143" v3="144"/> + <face v1="144" v2="146" v3="142"/> + <face v1="138" v2="153" v3="155"/> + <face v1="155" v2="136" v3="138"/> + <face v1="197" v2="148" v3="144"/> + <face v1="197" v2="144" v3="143"/> + <face v1="151" v2="116" v3="115"/> + <face v1="150" v2="151" v3="115"/> + <face v1="151" v2="119" v3="116"/> + <face v1="140" v2="150" v3="152"/> + <face v1="152" v2="149" v3="140"/> + <face v1="155" v2="152" v3="113"/> + <face v1="113" v2="136" v3="155"/> + <face v1="154" v2="153" v3="138"/> + <face v1="154" v2="138" v3="134"/> + <face v1="155" v2="153" v3="147"/> + <face v1="155" v2="147" v3="145"/> + <face v1="122" v2="151" v3="150"/> + <face v1="150" v2="140" v3="122"/> + <face v1="113" v2="152" v3="150"/> + <face v1="150" v2="115" v3="113"/> + <face v1="154" v2="156" v3="141"/> + <face v1="119" v2="151" v3="122"/> <face v1="129" v2="123" v3="156"/> <face v1="156" v2="154" v3="129"/> - <face v1="36" v2="142" v3="156"/> - <face v1="57" v2="36" v3="156"/> - <face v1="165" v2="167" v3="134"/> - <face v1="134" v2="138" v3="165"/> - <face v1="127" v2="126" v3="160"/> - <face v1="127" v2="160" v3="157"/> - <face v1="130" v2="169" v3="128"/> - <face v1="128" v2="158" v3="130"/> - <face v1="160" v2="124" v3="131"/> - <face v1="131" v2="159" v3="160"/> - <face v1="126" v2="179" v3="124"/> - <face v1="124" v2="160" v3="126"/> - <face v1="113" v2="163" v3="161"/> - <face v1="161" v2="136" v3="113"/> - <face v1="161" v2="165" v3="138"/> - <face v1="136" v2="161" v3="138"/> - <face v1="134" v2="167" v3="170"/> - <face v1="132" v2="134" v3="170"/> - <face v1="85" v2="5" v3="111"/> - <face v1="85" v2="111" v3="182"/> - <face v1="172" v2="163" v3="113"/> - <face v1="113" v2="115" v3="172"/> + <face v1="35" v2="141" v3="156"/> + <face v1="156" v2="57" v3="35"/> + <face v1="166" v2="167" v3="133"/> + <face v1="133" v2="137" v3="166"/> + <face v1="128" v2="126" v3="160"/> + <face v1="160" v2="159" v3="128"/> + <face v1="131" v2="170" v3="127"/> + <face v1="127" v2="157" v3="131"/> + <face v1="160" v2="124" v3="132"/> + <face v1="160" v2="132" v3="158"/> + <face v1="126" v2="181" v3="124"/> + <face v1="126" v2="124" v3="160"/> + <face v1="112" v2="163" v3="161"/> + <face v1="112" v2="161" v3="135"/> + <face v1="161" v2="166" v3="137"/> + <face v1="161" v2="137" v3="135"/> + <face v1="133" v2="167" v3="169"/> + <face v1="169" v2="130" v3="133"/> + <face v1="86" v2="5" v3="111"/> + <face v1="183" v2="86" v3="111"/> + <face v1="172" v2="163" v3="112"/> + <face v1="114" v2="172" v3="112"/> <face v1="117" v2="174" v3="172"/> - <face v1="115" v2="117" v3="172"/> - <face v1="120" v2="177" v3="175"/> - <face v1="118" v2="120" v3="175"/> + <face v1="117" v2="172" v3="114"/> + <face v1="120" v2="178" v3="176"/> + <face v1="120" v2="176" v3="118"/> <face v1="111" v2="125" v3="180"/> - <face v1="111" v2="180" v3="182"/> + <face v1="180" v2="183" v3="111"/> <face v1="189" v2="190" v3="194"/> - <face v1="189" v2="194" v3="195"/> - <face v1="177" v2="120" v3="122"/> - <face v1="122" v2="184" v3="177"/> - <face v1="7" v2="89" v3="184"/> - <face v1="7" v2="184" v3="122"/> + <face v1="194" v2="195" v3="189"/> + <face v1="178" v2="120" v3="121"/> + <face v1="121" v2="185" v3="178"/> + <face v1="6" v2="89" v3="185"/> + <face v1="185" v2="121" v3="6"/> <face v1="187" v2="94" v3="93"/> - <face v1="93" v2="181" v3="187"/> - <face v1="169" v2="179" v3="126"/> - <face v1="126" v2="128" v3="169"/> + <face v1="187" v2="93" v3="179"/> + <face v1="170" v2="181" v3="126"/> + <face v1="170" v2="126" v3="127"/> <face v1="90" v2="92" v3="186"/> - <face v1="90" v2="186" v3="185"/> - <face v1="181" v2="93" v3="86"/> - <face v1="86" v2="183" v3="181"/> + <face v1="186" v2="184" v3="90"/> + <face v1="179" v2="93" v3="85"/> + <face v1="179" v2="85" v3="182"/> <face v1="189" v2="106" v3="107"/> - <face v1="107" v2="190" v3="189"/> + <face v1="189" v2="107" v3="190"/> <face v1="164" v2="193" v3="195"/> - <face v1="162" v2="164" v3="195"/> + <face v1="195" v2="162" v3="164"/> <face v1="190" v2="187" v3="196"/> - <face v1="190" v2="196" v3="194"/> + <face v1="196" v2="194" v3="190"/> <face v1="173" v2="192" v3="193"/> - <face v1="164" v2="173" v3="193"/> - <face v1="178" v2="185" v3="191"/> - <face v1="192" v2="173" v3="176"/> - <face v1="176" v2="191" v3="192"/> - <face v1="195" v2="194" v3="166"/> - <face v1="166" v2="162" v3="195"/> + <face v1="193" v2="164" v3="173"/> + <face v1="191" v2="177" v3="184"/> + <face v1="192" v2="173" v3="175"/> + <face v1="191" v2="192" v3="175"/> + <face v1="195" v2="194" v3="165"/> + <face v1="195" v2="165" v3="162"/> <face v1="195" v2="193" v3="188"/> - <face v1="188" v2="189" v3="195"/> + <face v1="195" v2="188" v3="189"/> <face v1="192" v2="186" v3="188"/> - <face v1="188" v2="193" v3="192"/> - <face v1="191" v2="185" v3="186"/> - <face v1="186" v2="192" v3="191"/> - <face v1="171" v2="168" v3="196"/> + <face v1="193" v2="192" v3="188"/> + <face v1="191" v2="184" v3="186"/> + <face v1="192" v2="191" v3="186"/> + <face v1="196" v2="171" v3="168"/> <face v1="194" v2="196" v3="168"/> - <face v1="168" v2="166" v3="194"/> - <face v1="176" v2="178" v3="191"/> + <face v1="194" v2="168" v3="165"/> + <face v1="177" v2="191" v3="175"/> <face v1="107" v2="94" v3="187"/> - <face v1="107" v2="187" v3="190"/> + <face v1="190" v2="107" v3="187"/> <face v1="105" v2="106" v3="189"/> - <face v1="105" v2="189" v3="188"/> + <face v1="188" v2="105" v3="189"/> <face v1="186" v2="92" v3="105"/> <face v1="105" v2="188" v3="186"/> - <face v1="187" v2="181" v3="171"/> + <face v1="187" v2="179" v3="171"/> <face v1="171" v2="196" v3="187"/> - <face v1="197" v2="108" v3="34"/> - <face v1="34" v2="140" v3="197"/> - <face v1="140" v2="149" v3="197"/> + <face v1="197" v2="108" v3="33"/> + <face v1="197" v2="33" v3="139"/> + <face v1="148" v2="197" v3="139"/> </faces> <geometry vertexcount="198"> - <vertexbuffer positions="true" normals="true" colours_diffuse="false" texture_coords="1" texture_coord_dimensions_0="2"> + <vertexbuffer normals="true" colours_diffuse="false" texture_coord_dimensions_0="2" positions="true" texture_coords="1"> <vertex> - <position x="-0.791543" y="0.066844" z="0.061540"/> - <normal x="-0.862227" y="0.242887" z="0.444489"/> + <position y="0.626787" x="-8.985925" z="0.676926"/> + <normal y="0.242887" x="-0.862227" z="0.444489"/> + <texcoord u="0.892077" v="0.050693"/> + </vertex> + <vertex> + <position y="0.626787" x="-8.985925" z="0.676926"/> + <normal y="0.242887" x="-0.862227" z="0.444489"/> <texcoord u="0.915236" v="0.125134"/> </vertex> <vertex> - <position x="-0.791543" y="0.066844" z="0.061540"/> - <normal x="-0.862227" y="0.242887" z="0.444489"/> - <texcoord u="0.892077" v="0.050693"/> + <position y="-2.900711" x="2.815779" z="10.885320"/> + <normal y="0.416505" x="-0.004394" z="0.909123"/> + <texcoord u="0.336625" v="0.947344"/> </vertex> <vertex> - <position x="0.283294" y="-0.254422" z="0.991267"/> - <normal x="-0.004394" y="0.416505" z="0.909123"/> + <position y="-2.900711" x="2.815779" z="10.885320"/> + <normal y="0.416505" x="-0.004394" z="0.909123"/> <texcoord u="0.483717" v="0.558810"/> </vertex> <vertex> - <position x="0.283294" y="-0.254422" z="0.991267"/> - <normal x="-0.004394" y="0.416505" z="0.909123"/> - <texcoord u="0.336625" v="0.947344"/> - </vertex> - <vertex> - <position x="-0.791543" y="0.066844" z="-0.000121"/> - <normal x="-0.895922" y="0.444212" z="0.000000"/> + <position y="0.626787" x="-8.985925" z="-0.000121"/> + <normal y="0.444212" x="-0.895922" z="-0.000000"/> <texcoord u="0.939793" v="0.124796"/> </vertex> <vertex> - <position x="-0.791543" y="0.066844" z="-0.000121"/> - <normal x="-0.895922" y="0.444212" z="0.000000"/> + <position y="0.626787" x="-8.985925" z="-0.000121"/> + <normal y="0.444212" x="-0.895922" z="-0.000000"/> <texcoord u="0.870397" v="0.063053"/> </vertex> <vertex> - <position x="1.178863" y="0.233637" z="-0.000121"/> - <normal x="0.630650" y="0.776067" z="-0.000000"/> + <position y="2.458172" x="12.649132" z="-0.000121"/> + <normal y="0.776067" x="0.630650" z="-0.000000"/> + <texcoord u="0.851139" v="0.051437"/> + </vertex> + <vertex> + <position y="2.458172" x="12.649132" z="-0.000121"/> + <normal y="0.776067" x="0.630650" z="-0.000000"/> <texcoord u="0.933370" v="0.949252"/> </vertex> <vertex> - <position x="1.178863" y="0.233637" z="-0.000121"/> - <normal x="0.630650" y="0.776067" z="-0.000000"/> - <texcoord u="0.851139" v="0.051437"/> + <position y="-1.649501" x="9.032329" z="9.648228"/> + <normal y="0.432299" x="0.180045" z="0.883573"/> + <texcoord u="0.481860" v="0.950392"/> </vertex> <vertex> - <position x="0.849464" y="-0.140468" z="0.878599"/> - <normal x="0.180045" y="0.432299" z="0.883573"/> + <position y="-1.649501" x="9.032329" z="9.648228"/> + <normal y="0.432299" x="0.180045" z="0.883573"/> <texcoord u="0.537993" v="0.792215"/> </vertex> <vertex> - <position x="0.849464" y="-0.140468" z="0.878599"/> - <normal x="0.180045" y="0.432299" z="0.883573"/> - <texcoord u="0.481860" v="0.950392"/> - </vertex> - <vertex> - <position x="1.231654" y="-0.032411" z="0.707710"/> - <normal x="0.408566" y="0.458115" z="0.789433"/> + <position y="-0.463032" x="13.228780" z="7.771864"/> + <normal y="0.458115" x="0.408566" z="0.789433"/> <texcoord u="0.611671" v="0.951961"/> </vertex> <vertex> - <position x="1.231654" y="-0.032411" z="0.707710"/> - <normal x="0.408566" y="0.458115" z="0.789433"/> + <position y="-0.463032" x="13.228780" z="7.771864"/> + <normal y="0.458115" x="0.408566" z="0.789433"/> <texcoord u="0.588611" v="0.956403"/> </vertex> <vertex> - <position x="1.231654" y="-0.032411" z="0.707710"/> - <normal x="0.408566" y="0.458115" z="0.789433"/> + <position y="-0.463032" x="13.228780" z="7.771864"/> + <normal y="0.458115" x="0.408566" z="0.789433"/> <texcoord u="0.544984" v="0.179350"/> </vertex> <vertex> - <position x="1.325066" y="0.135811" z="0.513532"/> - <normal x="0.662584" y="0.647362" z="0.376702"/> + <position y="1.384049" x="14.254442" z="5.639791"/> + <normal y="0.647362" x="0.662584" z="0.376702"/> + <texcoord u="0.627203" v="0.101915"/> + </vertex> + <vertex> + <position y="1.384049" x="14.254442" z="5.639791"/> + <normal y="0.647362" x="0.662584" z="0.376702"/> <texcoord u="0.713995" v="0.995251"/> </vertex> <vertex> - <position x="1.325066" y="0.135811" z="0.513532"/> - <normal x="0.662584" y="0.647362" z="0.376702"/> - <texcoord u="0.627203" v="0.101915"/> + <position y="2.458172" x="12.656326" z="2.860729"/> + <normal y="0.856673" x="0.512599" z="0.057909"/> + <texcoord u="0.743496" v="0.050336"/> </vertex> <vertex> - <position x="1.179518" y="0.233637" z="0.260430"/> - <normal x="0.512599" y="0.856673" z="0.057909"/> + <position y="2.458172" x="12.656326" z="2.860729"/> + <normal y="0.856673" x="0.512599" z="0.057909"/> <texcoord u="0.827485" v="0.942344"/> </vertex> <vertex> - <position x="1.179518" y="0.233637" z="0.260430"/> - <normal x="0.512599" y="0.856673" z="0.057909"/> - <texcoord u="0.743496" v="0.050336"/> + <position y="1.051610" x="-6.904983" z="1.808935"/> + <normal y="0.934589" x="-0.354774" z="-0.026055"/> + <texcoord u="0.976829" v="0.024487"/> </vertex> <vertex> - <position x="-0.602022" y="0.105535" z="0.164638"/> - <normal x="-0.354774" y="0.934589" z="-0.026055"/> - <texcoord u="0.875234" v="0.202728"/> - </vertex> - <vertex> - <position x="-0.602022" y="0.105535" z="0.164638"/> - <normal x="-0.354774" y="0.934589" z="-0.026055"/> + <position y="1.051610" x="-6.904983" z="1.808935"/> + <normal y="0.934589" x="-0.354774" z="-0.026055"/> <texcoord u="0.466258" v="0.010438"/> </vertex> <vertex> - <position x="-0.602022" y="0.105535" z="0.164638"/> - <normal x="-0.354774" y="0.934589" z="-0.026055"/> - <texcoord u="0.976829" v="0.024487"/> + <position y="1.051610" x="-6.904983" z="1.808935"/> + <normal y="0.934589" x="-0.354774" z="-0.026055"/> + <texcoord u="0.875234" v="0.202728"/> </vertex> <vertex> - <position x="-1.311399" y="-0.072724" z="0.263593"/> - <normal x="-0.708114" y="-0.272696" z="-0.651315"/> + <position y="-0.905670" x="-14.693949" z="2.895462"/> + <normal y="-0.272696" x="-0.708114" z="-0.651315"/> <texcoord u="0.475824" v="0.204685"/> </vertex> <vertex> - <position x="-1.311362" y="-0.072724" z="0.393471"/> - <normal x="-0.720778" y="-0.205699" z="0.661942"/> + <position y="-0.905670" x="-14.693536" z="4.321519"/> + <normal y="-0.205699" x="-0.720778" z="0.661942"/> + <texcoord u="0.445009" v="0.219570"/> + </vertex> + <vertex> + <position y="-0.905670" x="-14.693536" z="4.321519"/> + <normal y="-0.205699" x="-0.720778" z="0.661942"/> <texcoord u="0.503976" v="0.224142"/> </vertex> <vertex> - <position x="-1.311362" y="-0.072724" z="0.393471"/> - <normal x="-0.720778" y="-0.205699" z="0.661942"/> - <texcoord u="0.445009" v="0.219570"/> + <position y="1.051610" x="-6.648792" z="5.386738"/> + <normal y="0.821994" x="-0.282504" z="0.494486"/> + <texcoord u="0.292600" v="0.089296"/> </vertex> <vertex> - <position x="-0.578689" y="0.105535" z="0.490485"/> - <normal x="-0.282504" y="0.821994" z="0.494486"/> + <position y="1.051610" x="-6.648792" z="5.386738"/> + <normal y="0.821994" x="-0.282504" z="0.494486"/> <texcoord u="0.744245" v="0.212145"/> </vertex> <vertex> - <position x="-0.578689" y="0.105535" z="0.490485"/> - <normal x="-0.282504" y="0.821994" z="0.494486"/> - <texcoord u="0.292600" v="0.089296"/> + <position y="1.051610" x="-6.648792" z="5.386738"/> + <normal y="0.821994" x="-0.282504" z="0.494486"/> + <texcoord u="0.020979" v="0.940013"/> </vertex> <vertex> - <position x="-0.578689" y="0.105535" z="0.490485"/> - <normal x="-0.282504" y="0.821994" z="0.494486"/> + <position y="1.051610" x="-6.648792" z="5.386738"/> + <normal y="0.821994" x="-0.282504" z="0.494486"/> <texcoord u="0.552230" v="0.006162"/> </vertex> <vertex> - <position x="-0.578689" y="0.105535" z="0.490485"/> - <normal x="-0.282504" y="0.821994" z="0.494486"/> - <texcoord u="0.020979" v="0.940013"/> - </vertex> - <vertex> - <position x="-0.431603" y="-0.011715" z="0.688577"/> - <normal x="-0.335300" y="0.627230" z="0.702962"/> + <position y="-0.235792" x="-5.033788" z="7.561788"/> + <normal y="0.627230" x="-0.335300" z="0.702962"/> <texcoord u="0.651395" v="0.271757"/> </vertex> <vertex> - <position x="-0.431603" y="-0.011715" z="0.688577"/> - <normal x="-0.335300" y="0.627230" z="0.702962"/> + <position y="-0.235792" x="-5.033788" z="7.561788"/> + <normal y="0.627230" x="-0.335300" z="0.702962"/> <texcoord u="0.101206" v="0.938647"/> </vertex> <vertex> - <position x="-0.005923" y="-0.253867" z="0.945840"/> - <normal x="-0.215231" y="0.418904" z="0.882154"/> - <texcoord u="0.503086" v="0.441213"/> + <position y="-2.894624" x="-0.359815" z="10.386533"/> + <normal y="0.418904" x="-0.215231" z="0.882154"/> + <texcoord u="0.259691" v="0.950972"/> </vertex> <vertex> - <position x="-0.005923" y="-0.253867" z="0.945840"/> - <normal x="-0.215231" y="0.418904" z="0.882154"/> - <texcoord u="0.259691" v="0.950972"/> + <position y="-2.894624" x="-0.359815" z="10.386533"/> + <normal y="0.418904" x="-0.215231" z="0.882154"/> + <texcoord u="0.503086" v="0.441213"/> </vertex> <vertex> - <position x="-0.282346" y="-0.131034" z="0.809969"/> - <normal x="-0.305724" y="0.498475" z="0.811206"/> + <position y="-1.545918" x="-3.394943" z="8.894669"/> + <normal y="0.498475" x="-0.305724" z="0.811206"/> <texcoord u="0.581318" v="0.330903"/> </vertex> <vertex> - <position x="-0.282346" y="-0.131034" z="0.809969"/> - <normal x="-0.305724" y="0.498475" z="0.811206"/> + <position y="-1.545918" x="-3.394943" z="8.894669"/> + <normal y="0.498475" x="-0.305724" z="0.811206"/> <texcoord u="0.167826" v="0.945690"/> </vertex> <vertex> - <position x="0.427560" y="0.266449" z="-0.000121"/> - <normal x="0.158466" y="0.987364" z="0.000000"/> + <position y="2.818449" x="4.399825" z="-0.000121"/> + <normal y="0.987364" x="0.158466" z="-0.000000"/> + <texcoord u="0.960972" v="0.615165"/> + </vertex> + <vertex> + <position y="2.818449" x="4.399825" z="-0.000121"/> + <normal y="0.987364" x="0.158466" z="-0.000000"/> <texcoord u="0.954115" v="0.643701"/> </vertex> <vertex> - <position x="0.427560" y="0.266449" z="-0.000121"/> - <normal x="0.158466" y="0.987364" z="0.000000"/> - <texcoord u="0.960972" v="0.615165"/> + <position y="1.606481" x="-4.374999" z="-0.000121"/> + <normal y="0.937069" x="-0.349145" z="0.000000"/> + <texcoord u="0.942056" v="0.295582"/> </vertex> <vertex> - <position x="-0.371604" y="0.156069" z="-0.000121"/> - <normal x="-0.349145" y="0.937069" z="0.000000"/> + <position y="1.606481" x="-4.374999" z="-0.000121"/> + <normal y="0.937069" x="-0.349145" z="0.000000"/> <texcoord u="0.956819" v="0.305634"/> </vertex> <vertex> - <position x="-0.371604" y="0.156069" z="-0.000121"/> - <normal x="-0.349145" y="0.937069" z="0.000000"/> - <texcoord u="0.942056" v="0.295582"/> - </vertex> - <vertex> - <position x="-0.070611" y="0.334507" z="-0.000121"/> - <normal x="-0.238609" y="0.971116" z="0.000000"/> + <position y="3.565721" x="-1.070097" z="-0.000121"/> + <normal y="0.971116" x="-0.238609" z="0.000000"/> <texcoord u="0.965629" v="0.431512"/> </vertex> <vertex> - <position x="0.427466" y="0.271987" z="0.164532"/> - <normal x="0.152720" y="0.972255" z="0.177192"/> + <position y="2.879257" x="4.398788" z="1.807774"/> + <normal y="0.972255" x="0.152720" z="0.177192"/> <texcoord u="0.887184" v="0.639022"/> </vertex> <vertex> - <position x="0.427466" y="0.271987" z="0.164532"/> - <normal x="0.152720" y="0.972255" z="0.177192"/> + <position y="2.879257" x="4.398788" z="1.807774"/> + <normal y="0.972255" x="0.152720" z="0.177192"/> <texcoord u="0.901091" v="0.612148"/> </vertex> <vertex> - <position x="-0.371020" y="0.156069" z="0.164430"/> - <normal x="-0.318105" y="0.937800" z="0.139068"/> - <texcoord u="0.897639" v="0.309841"/> + <position y="1.606481" x="-4.368584" z="1.806649"/> + <normal y="0.937800" x="-0.318105" z="0.139068"/> + <texcoord u="0.876854" v="0.296815"/> </vertex> <vertex> - <position x="-0.371020" y="0.156069" z="0.164430"/> - <normal x="-0.318105" y="0.937800" z="0.139068"/> - <texcoord u="0.876854" v="0.296815"/> + <position y="1.606481" x="-4.368584" z="1.806649"/> + <normal y="0.937800" x="-0.318105" z="0.139068"/> + <texcoord u="0.897639" v="0.309841"/> </vertex> <vertex> - <position x="-0.071017" y="0.325693" z="0.201946"/> - <normal x="-0.241639" y="0.944523" z="0.222458"/> + <position y="3.468952" x="-1.074552" z="2.218575"/> + <normal y="0.944523" x="-0.241639" z="0.222458"/> <texcoord u="0.893990" v="0.432495"/> </vertex> <vertex> - <position x="-0.603193" y="0.105535" z="-0.000121"/> - <normal x="-0.214827" y="0.976652" z="0.000000"/> + <position y="1.051610" x="-6.917842" z="-0.000121"/> + <normal y="0.976652" x="-0.214827" z="-0.000000"/> <texcoord u="0.940797" v="0.201395"/> </vertex> <vertex> - <position x="-0.037109" y="0.256817" z="0.342328"/> - <normal x="-0.204986" y="0.868910" z="0.450529"/> + <position y="2.712690" x="-0.702242" z="3.759976"/> + <normal y="0.868910" x="-0.204986" z="0.450529"/> + <texcoord u="0.837991" v="0.440663"/> + </vertex> + <vertex> + <position y="2.712690" x="-0.702242" z="3.759976"/> + <normal y="0.868910" x="-0.204986" z="0.450529"/> <texcoord u="0.825011" v="0.442708"/> </vertex> <vertex> - <position x="-0.037109" y="0.256817" z="0.342328"/> - <normal x="-0.204986" y="0.868910" z="0.450529"/> - <texcoord u="0.837991" v="0.440663"/> + <position y="2.060508" x="-2.388349" z="3.275107"/> + <normal y="0.866647" x="-0.331047" z="0.373272"/> + <texcoord u="0.849723" v="0.377177"/> </vertex> <vertex> - <position x="-0.190671" y="0.197420" z="0.298169"/> - <normal x="-0.331047" y="0.866647" z="0.373272"/> + <position y="2.060508" x="-2.388349" z="3.275107"/> + <normal y="0.866647" x="-0.331047" z="0.373272"/> <texcoord u="0.830014" v="0.374971"/> </vertex> <vertex> - <position x="-0.190671" y="0.197420" z="0.298169"/> - <normal x="-0.331047" y="0.866647" z="0.373272"/> - <texcoord u="0.849723" v="0.377177"/> - </vertex> - <vertex> - <position x="0.263659" y="0.284910" z="0.304981"/> - <normal x="0.098334" y="0.929720" z="0.354895"/> + <position y="3.021154" x="2.600186" z="3.349899"/> + <normal y="0.929720" x="0.098334" z="0.354895"/> <texcoord u="0.840669" v="0.564759"/> </vertex> <vertex> - <position x="0.263659" y="0.284910" z="0.304981"/> - <normal x="0.098334" y="0.929720" z="0.354895"/> + <position y="3.021154" x="2.600186" z="3.349899"/> + <normal y="0.929720" x="0.098334" z="0.354895"/> <texcoord u="0.852199" v="0.550263"/> </vertex> <vertex> - <position x="0.533752" y="0.176732" z="0.457637"/> - <normal x="0.056558" y="0.869820" z="0.490116"/> + <position y="1.833362" x="5.565812" z="5.026063"/> + <normal y="0.869820" x="0.056558" z="0.490116"/> <texcoord u="0.759156" v="0.674445"/> </vertex> <vertex> - <position x="1.090004" y="0.129608" z="0.525529"/> - <normal x="0.011018" y="0.865900" z="0.500095"/> + <position y="1.315936" x="11.673458" z="5.771516"/> + <normal y="0.865900" x="0.011018" z="0.500095"/> <texcoord u="0.713735" v="0.899320"/> </vertex> <vertex> - <position x="0.285411" y="0.165251" z="0.517465"/> - <normal x="0.018268" y="0.834686" z="0.550424"/> + <position y="1.707294" x="2.839030" z="5.682980"/> + <normal y="0.834686" x="0.018268" z="0.550424"/> <texcoord u="0.741432" v="0.571509"/> </vertex> <vertex> - <position x="-0.248043" y="0.126098" z="0.437624"/> - <normal x="-0.157557" y="0.878153" z="0.451690"/> + <position y="1.277396" x="-3.018296" z="4.806324"/> + <normal y="0.878153" x="-0.157557" z="0.451690"/> <texcoord u="0.766062" v="0.350803"/> </vertex> <vertex> - <position x="-0.442447" y="0.140193" z="0.316134"/> - <normal x="-0.079682" y="0.971810" z="0.221894"/> + <position y="1.432154" x="-5.152852" z="3.472360"/> + <normal y="0.971810" x="-0.079682" z="0.221894"/> <texcoord u="0.814639" v="0.269517"/> </vertex> <vertex> - <position x="-0.005184" y="0.140382" z="0.523476"/> - <normal x="-0.133369" y="0.806994" z="0.575303"/> + <position y="1.434233" x="-0.351700" z="5.748981"/> + <normal y="0.806994" x="-0.133369" z="0.575303"/> <texcoord u="0.738102" v="0.452849"/> </vertex> <vertex> - <position x="-0.454696" y="0.140193" z="0.164505"/> - <normal x="-0.207265" y="0.978248" z="0.008543"/> + <position y="1.432154" x="-5.287349" z="1.807477"/> + <normal y="0.978248" x="-0.207265" z="0.008543"/> <texcoord u="0.875993" v="0.263112"/> </vertex> <vertex> - <position x="-0.455493" y="0.140193" z="-0.000121"/> - <normal x="-0.207502" y="0.978235" z="0.000000"/> + <position y="1.432154" x="-5.296098" z="-0.000121"/> + <normal y="0.978235" x="-0.207502" z="0.000000"/> <texcoord u="0.941534" v="0.261749"/> </vertex> <vertex> - <position x="-1.265887" y="0.007741" z="0.369034"/> - <normal x="-0.522413" y="0.738513" z="0.426243"/> - <texcoord u="0.512529" v="0.200448"/> + <position y="-0.022163" x="-14.194227" z="4.053202"/> + <normal y="0.738513" x="-0.522413" z="0.426243"/> + <texcoord u="0.420237" v="0.224142"/> </vertex> <vertex> - <position x="-1.265887" y="0.007741" z="0.369034"/> - <normal x="-0.522413" y="0.738513" z="0.426243"/> - <texcoord u="0.420237" v="0.224142"/> + <position y="-0.022163" x="-14.194227" z="4.053202"/> + <normal y="0.738513" x="-0.522413" z="0.426243"/> + <texcoord u="0.512529" v="0.200448"/> </vertex> <vertex> - <position x="-1.265887" y="0.007741" z="0.369034"/> - <normal x="-0.522413" y="0.738513" z="0.426243"/> + <position y="-0.022163" x="-14.194227" z="4.053202"/> + <normal y="0.738513" x="-0.522413" z="0.426243"/> <texcoord u="0.516385" v="0.188342"/> </vertex> <vertex> - <position x="-1.266410" y="0.007741" z="0.285703"/> - <normal x="-0.535439" y="0.720331" z="-0.440940"/> + <position y="-0.022163" x="-14.199970" z="3.138235"/> + <normal y="0.720331" x="-0.535439" z="-0.440940"/> <texcoord u="0.494430" v="0.188017"/> </vertex> <vertex> - <position x="-0.005671" y="-0.336577" z="0.946622"/> - <normal x="-0.261013" y="-0.846779" z="0.463505"/> + <position y="-3.802771" x="-0.357053" z="10.395116"/> + <normal y="-0.846779" x="-0.261013" z="0.463505"/> <texcoord u="0.264416" v="0.971986"/> </vertex> <vertex> - <position x="-0.005671" y="-0.336577" z="0.946622"/> - <normal x="-0.261013" y="-0.846779" z="0.463505"/> + <position y="-3.802771" x="-0.357053" z="10.395116"/> + <normal y="-0.846779" x="-0.261013" z="0.463505"/> <texcoord u="0.453084" v="0.370693"/> </vertex> <vertex> - <position x="0.283972" y="-0.335710" z="0.990498"/> - <normal x="0.075320" y="-0.860119" z="0.504502"/> + <position y="-3.793255" x="2.823228" z="10.876877"/> + <normal y="-0.860119" x="0.075320" z="0.504502"/> <texcoord u="0.334474" v="0.967127"/> </vertex> <vertex> - <position x="0.283972" y="-0.335710" z="0.990498"/> - <normal x="0.075320" y="-0.860119" z="0.504502"/> + <position y="-3.793255" x="2.823228" z="10.876877"/> + <normal y="-0.860119" x="0.075320" z="0.504502"/> <texcoord u="0.469402" v="0.492076"/> </vertex> <vertex> - <position x="-0.281841" y="-0.248174" z="0.810231"/> - <normal x="-0.475620" y="-0.769463" z="0.426277"/> + <position y="-2.832112" x="-3.389394" z="8.897550"/> + <normal y="-0.769463" x="-0.475620" z="0.426277"/> + <texcoord u="0.385394" v="0.254748"/> + </vertex> + <vertex> + <position y="-2.832112" x="-3.389394" z="8.897550"/> + <normal y="-0.769463" x="-0.475620" z="0.426277"/> <texcoord u="0.179655" v="0.975658"/> </vertex> <vertex> - <position x="-0.281841" y="-0.248174" z="0.810231"/> - <normal x="-0.475620" y="-0.769463" z="0.426277"/> - <texcoord u="0.385394" v="0.254748"/> + <position y="-1.902075" x="-5.590593" z="7.567440"/> + <normal y="-0.654681" x="-0.682538" z="0.324860"/> + <texcoord u="0.325781" v="0.170191"/> </vertex> <vertex> - <position x="-0.482314" y="-0.163471" z="0.689092"/> - <normal x="-0.682538" y="-0.654681" z="0.324860"/> + <position y="-1.902075" x="-5.590593" z="7.567440"/> + <normal y="-0.654681" x="-0.682538" z="0.324860"/> <texcoord u="0.111772" v="0.983561"/> </vertex> <vertex> - <position x="-0.482314" y="-0.163471" z="0.689092"/> - <normal x="-0.682538" y="-0.654681" z="0.324860"/> - <texcoord u="0.325781" v="0.170191"/> + <position y="-0.992026" x="-6.592994" z="5.663315"/> + <normal y="-0.823338" x="-0.405159" z="0.397443"/> + <texcoord u="0.331410" v="0.058559"/> </vertex> <vertex> - <position x="-0.573607" y="-0.080589" z="0.515674"/> - <normal x="-0.405159" y="-0.823338" z="0.397443"/> - <texcoord u="0.331410" v="0.058559"/> + <position y="-0.992026" x="-6.592994" z="5.663315"/> + <normal y="-0.823338" x="-0.405159" z="0.397443"/> + <texcoord u="0.247583" v="0.129540"/> </vertex> <vertex> - <position x="-0.573607" y="-0.080589" z="0.515674"/> - <normal x="-0.405159" y="-0.823338" z="0.397443"/> + <position y="-0.992026" x="-6.592994" z="5.663315"/> + <normal y="-0.823338" x="-0.405159" z="0.397443"/> <texcoord u="0.050252" v="0.985830"/> </vertex> <vertex> - <position x="-0.573607" y="-0.080589" z="0.515674"/> - <normal x="-0.405159" y="-0.823338" z="0.397443"/> - <texcoord u="0.247583" v="0.129540"/> - </vertex> - <vertex> - <position x="0.847803" y="-0.240681" z="0.877129"/> - <normal x="0.306730" y="-0.831228" z="0.463656"/> + <position y="-2.749834" x="9.014091" z="9.632089"/> + <normal y="-0.831228" x="0.306730" z="0.463656"/> <texcoord u="0.475325" v="0.974061"/> </vertex> <vertex> - <position x="0.847803" y="-0.240681" z="0.877129"/> - <normal x="0.306730" y="-0.831228" z="0.463656"/> + <position y="-2.749834" x="9.014091" z="9.632089"/> + <normal y="-0.831228" x="0.306730" z="0.463656"/> <texcoord u="0.410195" v="0.728597"/> </vertex> <vertex> - <position x="1.230643" y="-0.157288" z="0.706861"/> - <normal x="0.570827" y="-0.795337" z="0.203950"/> + <position y="-1.834187" x="13.217674" z="7.762546"/> + <normal y="-0.795337" x="0.570827" z="0.203950"/> <texcoord u="0.579224" v="0.985830"/> </vertex> <vertex> - <position x="1.230643" y="-0.157288" z="0.706861"/> - <normal x="0.570827" y="-0.795337" z="0.203950"/> + <position y="-1.834187" x="13.217674" z="7.762546"/> + <normal y="-0.795337" x="0.570827" z="0.203950"/> <texcoord u="0.549889" v="0.230713"/> </vertex> <vertex> - <position x="1.230643" y="-0.157288" z="0.706861"/> - <normal x="0.570827" y="-0.795337" z="0.203950"/> + <position y="-1.834187" x="13.217674" z="7.762546"/> + <normal y="-0.795337" x="0.570827" z="0.203950"/> <texcoord u="0.331136" v="0.889002"/> </vertex> <vertex> - <position x="1.325053" y="-0.060818" z="0.504545"/> - <normal x="0.683047" y="-0.652150" z="-0.328857"/> + <position y="-0.774939" x="14.254298" z="5.541114"/> + <normal y="-0.652150" x="0.683047" z="-0.328857"/> <texcoord u="0.638056" v="0.182510"/> </vertex> <vertex> - <position x="1.325053" y="-0.060818" z="0.504545"/> - <normal x="0.683047" y="-0.652150" z="-0.328857"/> + <position y="-0.774939" x="14.254298" z="5.541114"/> + <normal y="-0.652150" x="0.683047" z="-0.328857"/> <texcoord u="0.237598" v="0.928740"/> </vertex> <vertex> - <position x="-0.601916" y="-0.086321" z="0.164963"/> - <normal x="-0.177452" y="-0.962913" z="-0.203248"/> + <position y="-1.054964" x="-6.903826" z="1.812509"/> + <normal y="-0.962913" x="-0.177452" z="-0.203248"/> + <texcoord u="0.100780" v="0.119386"/> + </vertex> + <vertex> + <position y="-1.054964" x="-6.903826" z="1.812509"/> + <normal y="-0.962913" x="-0.177452" z="-0.203248"/> <texcoord u="0.417857" v="0.025031"/> </vertex> <vertex> - <position x="-0.601916" y="-0.086321" z="0.164963"/> - <normal x="-0.177452" y="-0.962913" z="-0.203248"/> + <position y="-1.054964" x="-6.903826" z="1.812509"/> + <normal y="-0.962913" x="-0.177452" z="-0.203248"/> <texcoord u="0.987504" v="0.101398"/> </vertex> <vertex> - <position x="-0.601916" y="-0.086321" z="0.164963"/> - <normal x="-0.177452" y="-0.962913" z="-0.203248"/> - <texcoord u="0.100780" v="0.119386"/> + <position y="-0.450138" x="-8.470729" z="0.670670"/> + <normal y="-0.687867" x="-0.679846" z="0.254260"/> + <texcoord u="0.050074" v="0.061108"/> </vertex> <vertex> - <position x="-0.744622" y="-0.031237" z="0.060971"/> - <normal x="-0.679846" y="-0.687867" z="0.254260"/> + <position y="-0.450138" x="-8.470729" z="0.670670"/> + <normal y="-0.687867" x="-0.679846" z="0.254260"/> <texcoord u="0.913671" v="0.089035"/> </vertex> <vertex> - <position x="-0.744622" y="-0.031237" z="0.060971"/> - <normal x="-0.679846" y="-0.687867" z="0.254260"/> - <texcoord u="0.050074" v="0.061108"/> + <position y="-0.451642" x="-8.465400" z="-0.000121"/> + <normal y="-0.831459" x="-0.555586" z="0.000000"/> + <texcoord u="0.024595" v="0.061902"/> </vertex> <vertex> - <position x="-0.744136" y="-0.031373" z="-0.000121"/> - <normal x="-0.555586" y="-0.831459" z="-0.000000"/> + <position y="-0.451642" x="-8.465400" z="-0.000121"/> + <normal y="-0.831459" x="-0.555586" z="0.000000"/> <texcoord u="0.892258" v="0.101398"/> </vertex> <vertex> - <position x="-0.744136" y="-0.031373" z="-0.000121"/> - <normal x="-0.555586" y="-0.831459" z="-0.000000"/> - <texcoord u="0.024595" v="0.061902"/> + <position y="0.216233" x="13.455312" z="3.526704"/> + <normal y="-0.725482" x="0.581297" z="-0.368470"/> + <texcoord u="0.151833" v="0.899561"/> </vertex> <vertex> - <position x="1.252286" y="0.029453" z="0.321083"/> - <normal x="0.581297" y="-0.725482" z="-0.368470"/> + <position y="0.216233" x="13.455312" z="3.526704"/> + <normal y="-0.725482" x="0.581297" z="-0.368470"/> <texcoord u="0.716668" v="0.139379"/> </vertex> <vertex> - <position x="1.252286" y="0.029453" z="0.321083"/> - <normal x="0.581297" y="-0.725482" z="-0.368470"/> - <texcoord u="0.151833" v="0.899561"/> - </vertex> - <vertex> - <position x="1.215574" y="0.029109" z="-0.000121"/> - <normal x="0.808009" y="-0.589170" z="-0.000000"/> + <position y="0.212457" x="13.052222" z="-0.000121"/> + <normal y="-0.589170" x="0.808009" z="-0.000000"/> <texcoord u="0.850223" v="0.137284"/> </vertex> <vertex> - <position x="1.215574" y="0.029109" z="-0.000121"/> - <normal x="0.808009" y="-0.589170" z="-0.000000"/> + <position y="0.212457" x="13.052222" z="-0.000121"/> + <normal y="-0.589170" x="0.808009" z="-0.000000"/> <texcoord u="0.017964" v="0.880308"/> </vertex> <vertex> - <position x="0.423115" y="-0.028434" z="0.200233"/> - <normal x="0.047525" y="-0.981266" z="-0.186702"/> + <position y="-0.419366" x="4.351016" z="2.199768"/> + <normal y="-0.981266" x="0.047525" z="-0.186702"/> <texcoord u="0.111623" v="0.550171"/> </vertex> <vertex> - <position x="0.422496" y="-0.001132" z="-0.000121"/> - <normal x="0.033424" y="-0.999441" z="0.000000"/> + <position y="-0.119592" x="4.344222" z="-0.000121"/> + <normal y="-0.999441" x="0.033424" z="-0.000000"/> <texcoord u="0.026956" v="0.548379"/> </vertex> <vertex> - <position x="-0.602566" y="-0.016253" z="-0.000121"/> - <normal x="0.003744" y="-0.999993" z="-0.000000"/> + <position y="-0.285617" x="-6.910962" z="-0.000121"/> + <normal y="-0.999993" x="0.003744" z="0.000000"/> <texcoord u="0.025920" v="0.121308"/> </vertex> <vertex> - <position x="-0.354501" y="-0.012594" z="-0.000121"/> - <normal x="0.076039" y="-0.997105" z="0.000000"/> + <position y="-0.245439" x="-4.187208" z="-0.000121"/> + <normal y="-0.997105" x="0.076039" z="-0.000000"/> <texcoord u="0.028302" v="0.224880"/> </vertex> <vertex> - <position x="-0.352498" y="-0.072312" z="0.165331"/> - <normal x="0.043431" y="-0.978338" z="-0.202405"/> + <position y="-0.901150" x="-4.165207" z="1.816542"/> + <normal y="-0.978338" x="0.043431" z="-0.202405"/> <texcoord u="0.101947" v="0.224074"/> </vertex> <vertex> - <position x="0.259900" y="-0.039404" z="0.283914"/> - <normal x="0.019138" y="-0.976984" z="-0.212453"/> + <position y="-0.539812" x="2.558921" z="3.118590"/> + <normal y="-0.976984" x="0.019138" z="-0.212453"/> <texcoord u="0.147206" v="0.481777"/> </vertex> <vertex> - <position x="-0.002882" y="-0.050373" z="0.348501"/> - <normal x="0.038636" y="-0.971991" z="-0.231819"/> + <position y="-0.660258" x="-0.326426" z="3.827747"/> + <normal y="-0.971991" x="0.038636" z="-0.231819"/> <texcoord u="0.174975" v="0.372244"/> </vertex> <vertex> - <position x="-0.191413" y="-0.061343" z="0.276291"/> - <normal x="0.071078" y="-0.973477" z="-0.217463"/> + <position y="-0.780704" x="-2.396499" z="3.034885"/> + <normal y="-0.973477" x="0.071078" z="-0.217463"/> <texcoord u="0.146719" v="0.292920"/> </vertex> <vertex> - <position x="1.241464" y="-0.063918" z="0.513972"/> - <normal x="0.014536" y="-0.916011" z="-0.400890"/> + <position y="-0.808977" x="13.336493" z="5.644625"/> + <normal y="-0.916011" x="0.014536" z="-0.400890"/> <texcoord u="0.241420" v="0.893734"/> </vertex> <vertex> - <position x="0.635459" y="-0.088291" z="0.538681"/> - <normal x="0.046983" y="-0.931948" z="-0.359535"/> + <position y="-1.076600" x="6.682553" z="5.915929"/> + <normal y="-0.931948" x="0.046983" z="-0.359535"/> <texcoord u="0.254798" v="0.640132"/> </vertex> <vertex> - <position x="0.271936" y="-0.151717" z="0.637206"/> - <normal x="0.041648" y="-0.923898" z="-0.380365"/> + <position y="-1.773012" x="2.691075" z="6.997733"/> + <normal y="-0.923898" x="0.041648" z="-0.380365"/> <texcoord u="0.302531" v="0.487618"/> </vertex> <vertex> - <position x="-0.236627" y="-0.133254" z="0.543261"/> - <normal x="0.002184" y="-0.947322" z="-0.320274"/> + <position y="-1.570295" x="-2.892947" z="5.966217"/> + <normal y="-0.947322" x="0.002184" z="-0.320274"/> <texcoord u="0.263156" v="0.273393"/> </vertex> <vertex> - <position x="-0.004276" y="-0.171971" z="0.647561"/> - <normal x="0.031383" y="-0.918680" z="-0.393754"/> + <position y="-1.995402" x="-0.341739" z="7.111432"/> + <normal y="-0.918680" x="0.031383" z="-0.393754"/> <texcoord u="0.309932" v="0.371463"/> </vertex> <vertex> - <position x="-0.417406" y="-0.096388" z="0.427211"/> - <normal x="-0.081648" y="-0.973526" z="-0.213497"/> + <position y="-1.165500" x="-4.877900" z="4.691991"/> + <normal y="-0.973526" x="-0.081648" z="-0.213497"/> <texcoord u="0.212394" v="0.196401"/> </vertex> <vertex> - <position x="0.228247" y="-0.003998" z="-0.000121"/> - <normal x="0.010464" y="-0.999945" z="0.000000"/> + <position y="-0.151054" x="2.211365" z="-0.000121"/> + <normal y="-0.999945" x="0.010464" z="-0.000000"/> <texcoord u="0.027928" v="0.467647"/> </vertex> <vertex> - <position x="0.033997" y="-0.006863" z="-0.000121"/> - <normal x="0.038017" y="-0.999277" z="0.000000"/> + <position y="-0.182516" x="0.078507" z="-0.000121"/> + <normal y="-0.999277" x="0.038017" z="-0.000000"/> <texcoord u="0.028574" v="0.386657"/> </vertex> <vertex> - <position x="-0.160252" y="-0.009728" z="-0.000121"/> - <normal x="0.088748" y="-0.996054" z="0.000000"/> + <position y="-0.213977" x="-2.054350" z="-0.000121"/> + <normal y="-0.996054" x="0.088748" z="-0.000000"/> <texcoord u="0.029316" v="0.305716"/> </vertex> <vertex> - <position x="0.258680" y="0.319295" z="-0.000121"/> - <normal x="0.156659" y="0.987653" z="0.000000"/> + <position y="3.398701" x="2.545521" z="-0.000121"/> + <normal y="0.987653" x="0.156659" z="0.000000"/> <texcoord u="0.963532" v="0.550815"/> </vertex> <vertex> - <position x="0.258480" y="0.312652" z="0.177215"/> - <normal x="0.143584" y="0.978686" z="0.146824"/> + <position y="3.325759" x="2.543326" z="1.947035"/> + <normal y="0.978686" x="0.143584" z="0.146824"/> <texcoord u="0.899493" v="0.549229"/> </vertex> <vertex> - <position x="-0.791543" y="0.066844" z="-0.061783"/> - <normal x="-0.862227" y="0.242887" z="-0.444489"/> + <position y="0.626787" x="-8.985925" z="-0.677168"/> + <normal y="0.242887" x="-0.862227" z="-0.444489"/> <texcoord u="0.915236" v="0.125134"/> </vertex> <vertex> - <position x="-0.791543" y="0.066844" z="-0.061783"/> - <normal x="-0.862227" y="0.242887" z="-0.444489"/> + <position y="0.626787" x="-8.985925" z="-0.677168"/> + <normal y="0.242887" x="-0.862227" z="-0.444489"/> <texcoord u="0.892077" v="0.050693"/> </vertex> <vertex> - <position x="0.283294" y="-0.254422" z="-0.991509"/> - <normal x="-0.004394" y="0.416505" z="-0.909123"/> + <position y="-2.900711" x="2.815779" z="-10.885563"/> + <normal y="0.416505" x="-0.004394" z="-0.909123"/> + <texcoord u="0.336625" v="0.947344"/> + </vertex> + <vertex> + <position y="-2.900711" x="2.815779" z="-10.885563"/> + <normal y="0.416505" x="-0.004394" z="-0.909123"/> <texcoord u="0.483717" v="0.558810"/> </vertex> <vertex> - <position x="0.283294" y="-0.254422" z="-0.991509"/> - <normal x="-0.004394" y="0.416505" z="-0.909123"/> - <texcoord u="0.336625" v="0.947344"/> + <position y="-1.649501" x="9.032329" z="-9.648471"/> + <normal y="0.432299" x="0.180045" z="-0.883573"/> + <texcoord u="0.481860" v="0.950392"/> </vertex> <vertex> - <position x="0.849464" y="-0.140468" z="-0.878842"/> - <normal x="0.180045" y="0.432299" z="-0.883573"/> + <position y="-1.649501" x="9.032329" z="-9.648471"/> + <normal y="0.432299" x="0.180045" z="-0.883573"/> <texcoord u="0.537993" v="0.792215"/> </vertex> <vertex> - <position x="0.849464" y="-0.140468" z="-0.878842"/> - <normal x="0.180045" y="0.432299" z="-0.883573"/> - <texcoord u="0.481860" v="0.950392"/> - </vertex> - <vertex> - <position x="1.231654" y="-0.032411" z="-0.707952"/> - <normal x="0.408566" y="0.458115" z="-0.789433"/> + <position y="-0.463032" x="13.228780" z="-7.772107"/> + <normal y="0.458115" x="0.408566" z="-0.789433"/> <texcoord u="0.611671" v="0.951961"/> </vertex> <vertex> - <position x="1.231654" y="-0.032411" z="-0.707952"/> - <normal x="0.408566" y="0.458115" z="-0.789433"/> + <position y="-0.463032" x="13.228780" z="-7.772107"/> + <normal y="0.458115" x="0.408566" z="-0.789433"/> <texcoord u="0.588611" v="0.956403"/> </vertex> <vertex> - <position x="1.231654" y="-0.032411" z="-0.707952"/> - <normal x="0.408566" y="0.458115" z="-0.789433"/> + <position y="-0.463032" x="13.228780" z="-7.772107"/> + <normal y="0.458115" x="0.408566" z="-0.789433"/> <texcoord u="0.544984" v="0.179350"/> </vertex> <vertex> - <position x="1.325066" y="0.135811" z="-0.513775"/> - <normal x="0.662584" y="0.647362" z="-0.376702"/> + <position y="1.384049" x="14.254442" z="-5.640034"/> + <normal y="0.647362" x="0.662584" z="-0.376702"/> <texcoord u="0.713995" v="0.995251"/> </vertex> <vertex> - <position x="1.325066" y="0.135811" z="-0.513775"/> - <normal x="0.662584" y="0.647362" z="-0.376702"/> + <position y="1.384049" x="14.254442" z="-5.640034"/> + <normal y="0.647362" x="0.662584" z="-0.376702"/> <texcoord u="0.627203" v="0.101915"/> </vertex> <vertex> - <position x="1.179518" y="0.233637" z="-0.260672"/> - <normal x="0.512599" y="0.856673" z="-0.057909"/> - <texcoord u="0.827485" v="0.942344"/> + <position y="2.458172" x="12.656326" z="-2.860972"/> + <normal y="0.856673" x="0.512599" z="-0.057909"/> + <texcoord u="0.743496" v="0.050336"/> </vertex> <vertex> - <position x="1.179518" y="0.233637" z="-0.260672"/> - <normal x="0.512599" y="0.856673" z="-0.057909"/> - <texcoord u="0.743496" v="0.050336"/> + <position y="2.458172" x="12.656326" z="-2.860972"/> + <normal y="0.856673" x="0.512599" z="-0.057909"/> + <texcoord u="0.827485" v="0.942344"/> </vertex> <vertex> - <position x="-0.602022" y="0.105535" z="-0.164881"/> - <normal x="-0.354774" y="0.934589" z="0.026055"/> + <position y="1.051610" x="-6.904983" z="-1.809178"/> + <normal y="0.934589" x="-0.354774" z="0.026055"/> <texcoord u="0.875234" v="0.202728"/> </vertex> <vertex> - <position x="-0.602022" y="0.105535" z="-0.164881"/> - <normal x="-0.354774" y="0.934589" z="0.026055"/> + <position y="1.051610" x="-6.904983" z="-1.809178"/> + <normal y="0.934589" x="-0.354774" z="0.026055"/> <texcoord u="0.466258" v="0.010438"/> </vertex> <vertex> - <position x="-0.602022" y="0.105535" z="-0.164881"/> - <normal x="-0.354774" y="0.934589" z="0.026055"/> + <position y="1.051610" x="-6.904983" z="-1.809178"/> + <normal y="0.934589" x="-0.354774" z="0.026055"/> <texcoord u="0.976829" v="0.024487"/> </vertex> <vertex> - <position x="-1.311399" y="-0.072724" z="-0.263836"/> - <normal x="-0.708114" y="-0.272696" z="0.651315"/> + <position y="-0.905670" x="-14.693949" z="-2.895705"/> + <normal y="-0.272696" x="-0.708114" z="0.651315"/> <texcoord u="0.475824" v="0.204685"/> </vertex> <vertex> - <position x="-1.311362" y="-0.072724" z="-0.393713"/> - <normal x="-0.720778" y="-0.205699" z="-0.661942"/> - <texcoord u="0.503976" v="0.224142"/> + <position y="-0.905670" x="-14.693536" z="-4.321761"/> + <normal y="-0.205699" x="-0.720778" z="-0.661942"/> + <texcoord u="0.445009" v="0.219570"/> </vertex> <vertex> - <position x="-1.311362" y="-0.072724" z="-0.393713"/> - <normal x="-0.720778" y="-0.205699" z="-0.661942"/> - <texcoord u="0.445009" v="0.219570"/> + <position y="-0.905670" x="-14.693536" z="-4.321761"/> + <normal y="-0.205699" x="-0.720778" z="-0.661942"/> + <texcoord u="0.503976" v="0.224142"/> </vertex> <vertex> - <position x="-0.578689" y="0.105535" z="-0.490728"/> - <normal x="-0.282504" y="0.821994" z="-0.494486"/> + <position y="1.051610" x="-6.648792" z="-5.386980"/> + <normal y="0.821994" x="-0.282504" z="-0.494486"/> <texcoord u="0.744245" v="0.212145"/> </vertex> <vertex> - <position x="-0.578689" y="0.105535" z="-0.490728"/> -... [truncated message content] |
From: <eg...@us...> - 2007-04-04 19:26:49
|
Revision: 348 http://svn.sourceforge.net/opengate/?rev=348&view=rev Author: egore Date: 2007-04-04 12:26:48 -0700 (Wed, 04 Apr 2007) Log Message: ----------- OGRE 1.4 meshes Modified Paths: -------------- trunk/data/ships/Octavius/Apteryx/octavius_apteryx.mesh trunk/data/ships/Quantar/Storm/quantar_storm.mesh Modified: trunk/data/ships/Octavius/Apteryx/octavius_apteryx.mesh =================================================================== (Binary files differ) Modified: trunk/data/ships/Quantar/Storm/quantar_storm.mesh =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ult...@us...> - 2007-04-04 02:38:36
|
Revision: 347 http://svn.sourceforge.net/opengate/?rev=347&view=rev Author: ultrasick Date: 2007-04-03 19:38:34 -0700 (Tue, 03 Apr 2007) Log Message: ----------- changed rendering option from premul to key Modified Paths: -------------- trunk/data/shields/himelea.blend Modified: trunk/data/shields/himelea.blend =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <spo...@us...> - 2007-04-01 18:01:19
|
Revision: 346 http://svn.sourceforge.net/opengate/?rev=346&view=rev Author: spom_spom Date: 2007-04-01 11:01:19 -0700 (Sun, 01 Apr 2007) Log Message: ----------- add interpolation/extrapolation for movement over net. Clearyfy the code a bit. For further infos see Redme. Modified Paths: -------------- branches/ogsector/Readme branches/ogsector/ToDo branches/ogsector/externals/ois-1.0RC1/Makefile.in branches/ogsector/runClient.sh branches/ogsector/src/InputManager.h branches/ogsector/src/Makefile.am branches/ogsector/src/Makefile.in branches/ogsector/src/Sector.cpp branches/ogsector/src/Sector.h branches/ogsector/src/SectorClient.cpp branches/ogsector/src/SectorClient.h branches/ogsector/src/SectorClientFrameListener.cpp branches/ogsector/src/SectorClientFrameListener.h branches/ogsector/src/SectorObjects.cpp branches/ogsector/src/SectorObjects.h branches/ogsector/src/common.h branches/ogsector/src/networkClient.cpp branches/ogsector/src/networkClient.h branches/ogsector/src/networkServer.cpp branches/ogsector/src/networkServer.h branches/ogsector/src/ogsectorclient.cpp Added Paths: ----------- branches/ogsector/src/common.cpp branches/ogsector/src/networkProtocol.h Removed Paths: ------------- branches/ogsector/src/network.cpp branches/ogsector/src/network.h branches/ogsector/src/network_protocol.h Modified: branches/ogsector/Readme =================================================================== --- branches/ogsector/Readme 2007-03-28 21:50:26 UTC (rev 345) +++ branches/ogsector/Readme 2007-04-01 18:01:19 UTC (rev 346) @@ -1,8 +1,19 @@ -Do not fly online!! -At test Nr.1 my router died 2 times. -Lost packets lead to crasy behaviour of the vessels. +-- 0.0.2 -- +Not yet testet with other players +need test Nr.2 ;) +- changed netprotocol to TCP (my router hangs with udp, I dont know why), port: 1234 +- add simple interpolation and extrapolation for smooth movement at higher pings or packetloss +(spawned ships still jiggle a bit) +- clear register/deregister of spawns and playerships +- add network protocol for: registering ships, ship status changed, ship hit by ammo +-- 0.0.1 -- +do not fly online +At test Nr.1 my router died 2 times. +Lost packets lead to crazy behaviour of the vessels. + +----------------------------------------------------------------------- For installation: you will need: @@ -15,29 +26,6 @@ sh genExternals.sh all cd .. -You have to take care that your LD_LIBRARY_PATH knows the external libs -There are several ways to achive this: - ---create a personal lib path and link the libraries - - mkdir $(HOME)/lib - cd ~/lib - ln -s ../src/ogsector/externals/lib/libOIS-1.0.0.so - ln -s ../src/ogsector/externals/lib/libgrapple-1.0.so.0 - ln -s ../src/ogsector/externals/lib/libOpcode.so - ln -s ../src/ogsector/externals/lib/libOgreOpcode.so - - export LD_LIBRARY_PATH=$HOME/lib:$LD_LIBRARY_PATH: - ---or you can set the LD_LIBRARY_PATH to the external libs - - export LD_LIBRARY_PATH=$HOME/src/ogsector/externals/lib:$LD_LIBRARY_PATH - ---or you can link the libs to common know libpaths - -or ... - - For building ogsector simple run: ./bootstrap ./configure @@ -49,10 +37,14 @@ ogre.cfg runClient.sh +then ./runClient.sh +# start a server (optional) +./runServer.sh -You can test the openALsoundManager +If you want to test the openALsoundManager you have to take care that your LD_LIBRARY_PATH knows the external libs + src/testopenalmanager Enjoy this first technical proof of concept. Modified: branches/ogsector/ToDo =================================================================== --- branches/ogsector/ToDo 2007-03-28 21:50:26 UTC (rev 345) +++ branches/ogsector/ToDo 2007-04-01 18:01:19 UTC (rev 346) @@ -130,7 +130,6 @@ - proper background sound - sounds: ammo (fired/hit), explosion (sound in space!! "funny"), thruster - BUGS: # - (linux)changing mousefocus by < Alt-TAB > lost key-repeat # OIS disables autorepeat, fire `xset r on` to enable Modified: branches/ogsector/externals/ois-1.0RC1/Makefile.in =================================================================== --- branches/ogsector/externals/ois-1.0RC1/Makefile.in 2007-03-28 21:50:26 UTC (rev 345) +++ branches/ogsector/externals/ois-1.0RC1/Makefile.in 2007-04-01 18:01:19 UTC (rev 346) @@ -160,8 +160,7 @@ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/configure Makefile.am \ OIS.pc.in acinclude.m4 aclocal.m4 config.guess config.sub \ - configure configure.ac depcomp install-sh ltmain.sh missing \ - mkinstalldirs + configure.ac depcomp install-sh ltmain.sh missing mkinstalldirs DIST_SUBDIRS = $(SUBDIRS) all: all-recursive Modified: branches/ogsector/runClient.sh =================================================================== --- branches/ogsector/runClient.sh 2007-03-28 21:50:26 UTC (rev 345) +++ branches/ogsector/runClient.sh 2007-04-01 18:01:19 UTC (rev 346) @@ -4,6 +4,11 @@ HOSTNAME='localhost' +[ $# -gt 0 ] && USERNAME=$1 + +[ $# -gt 1 ] && HOSTNAME=$2 + export LD_LIBRARY_PATH=./externals/lib:$LD_LIBRARY_PATH +echo "starting client for user: $USERNAME and looking for host: $HOSTNAME" ./src/ogsectorclient $USERNAME $HOSTNAME Modified: branches/ogsector/src/InputManager.h =================================================================== --- branches/ogsector/src/InputManager.h 2007-03-28 21:50:26 UTC (rev 345) +++ branches/ogsector/src/InputManager.h 2007-04-01 18:01:19 UTC (rev 346) @@ -9,50 +9,50 @@ #include <OgreRenderWindow.h> #if defined OIS_WIN32_PLATFORM -# define WIN32_LEAN_AND_MEAN -# include "windows.h" -# include "resource.h" - LRESULT DlgProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ); +#define WIN32_LEAN_AND_MEAN +#include "windows.h" +#include "resource.h" +LRESULT DlgProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ); #elif defined OIS_LINUX_PLATFORM -# include <X11/Xlib.h> - void checkX11Events(); +#include <X11/Xlib.h> +void checkX11Events(); #endif class InputManager : public OIS::KeyListener, public OIS::MouseListener, public OIS::JoyStickListener { public: - virtual ~InputManager( void ); + virtual ~InputManager( void ); - void initialise( Ogre::RenderWindow *renderWindow ); - void capture( void ); - - void addKeyListener( OIS::KeyListener *keyListener, const std::string& instanceName ); - void addMouseListener( OIS::MouseListener *mouseListener, const std::string& instanceName ); - void addJoystickListener( OIS::JoyStickListener *joystickListener, const std::string& instanceName ); - - void removeKeyListener( const std::string & instanceName ); - void removeMouseListener( const std::string & instanceName ); - void removeJoystickListener( const std::string & instanceName ); - + void initialise( Ogre::RenderWindow *renderWindow ); + void capture( void ); + + void addKeyListener( OIS::KeyListener *keyListener, const std::string& instanceName ); + void addMouseListener( OIS::MouseListener *mouseListener, const std::string& instanceName ); + void addJoystickListener( OIS::JoyStickListener *joystickListener, const std::string& instanceName ); + + void removeKeyListener( const std::string & instanceName ); + void removeMouseListener( const std::string & instanceName ); + void removeJoystickListener( const std::string & instanceName ); + void removeKeyListener( OIS::KeyListener * keyListener ); - void removeMouseListener( OIS::MouseListener * mouseListener ); - void removeJoystickListener( OIS::JoyStickListener * joystickListener ); - - void removeAllListeners( void ); - void removeAllKeyListeners( void ); - void removeAllMouseListeners( void ); - void removeAllJoystickListeners( void ); - - void setWindowExtents( int width, int height ); - - OIS::Mouse* getMouse( void ); - OIS::Keyboard* getKeyboard( void ); - OIS::JoyStick* getJoystick( unsigned int index ); - - int getNumOfJoysticks( void ); - - static InputManager* getSingletonPtr( void ); - + void removeMouseListener( OIS::MouseListener * mouseListener ); + void removeJoystickListener( OIS::JoyStickListener * joystickListener ); + + void removeAllListeners( void ); + void removeAllKeyListeners( void ); + void removeAllMouseListeners( void ); + void removeAllJoystickListeners( void ); + + void setWindowExtents( int width, int height ); + + OIS::Mouse* getMouse( void ); + OIS::Keyboard* getKeyboard( void ); + OIS::JoyStick* getJoystick( unsigned int index ); + + int getNumOfJoysticks( void ); + + static InputManager* getSingletonPtr( void ); + private: InputManager( void ); InputManager( const InputManager & input ) { } Modified: branches/ogsector/src/Makefile.am =================================================================== --- branches/ogsector/src/Makefile.am 2007-03-28 21:50:26 UTC (rev 345) +++ branches/ogsector/src/Makefile.am 2007-04-01 18:01:19 UTC (rev 346) @@ -6,6 +6,7 @@ ogsectorclient_SOURCES = \ ogsectorclient.cpp \ common.h \ + common.cpp \ network_protocol.h \ Sector.h \ Sector.cpp \ @@ -23,6 +24,7 @@ ogsectorserver_SOURCES = \ ogsectorserver.cpp \ common.h \ + common.cpp \ network_protocol.h \ networkServer.h \ networkServer.cpp Modified: branches/ogsector/src/Makefile.in =================================================================== --- branches/ogsector/src/Makefile.in 2007-03-28 21:50:26 UTC (rev 345) +++ branches/ogsector/src/Makefile.in 2007-04-01 18:01:19 UTC (rev 346) @@ -48,13 +48,13 @@ am__installdirs = "$(DESTDIR)$(bindir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) -am_ogsectorclient_OBJECTS = ogsectorclient.$(OBJEXT) Sector.$(OBJEXT) \ - SectorClient.$(OBJEXT) SectorClientFrameListener.$(OBJEXT) \ - InputManager.$(OBJEXT) networkClient.$(OBJEXT) \ - SectorObjects.$(OBJEXT) +am_ogsectorclient_OBJECTS = ogsectorclient.$(OBJEXT) common.$(OBJEXT) \ + Sector.$(OBJEXT) SectorClient.$(OBJEXT) \ + SectorClientFrameListener.$(OBJEXT) InputManager.$(OBJEXT) \ + networkClient.$(OBJEXT) SectorObjects.$(OBJEXT) ogsectorclient_OBJECTS = $(am_ogsectorclient_OBJECTS) ogsectorclient_LDADD = $(LDADD) -am_ogsectorserver_OBJECTS = ogsectorserver.$(OBJEXT) \ +am_ogsectorserver_OBJECTS = ogsectorserver.$(OBJEXT) common.$(OBJEXT) \ networkServer.$(OBJEXT) ogsectorserver_OBJECTS = $(am_ogsectorserver_OBJECTS) ogsectorserver_LDADD = $(LDADD) @@ -171,6 +171,7 @@ ogsectorclient_SOURCES = \ ogsectorclient.cpp \ common.h \ + common.cpp \ network_protocol.h \ Sector.h \ Sector.cpp \ @@ -188,6 +189,7 @@ ogsectorserver_SOURCES = \ ogsectorserver.cpp \ common.h \ + common.cpp \ network_protocol.h \ networkServer.h \ networkServer.cpp @@ -274,6 +276,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SectorClient.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SectorClientFrameListener.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SectorObjects.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/networkClient.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/networkServer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ogsectorclient.Po@am__quote@ Modified: branches/ogsector/src/Sector.cpp =================================================================== --- branches/ogsector/src/Sector.cpp 2007-03-28 21:50:26 UTC (rev 345) +++ branches/ogsector/src/Sector.cpp 2007-04-01 18:01:19 UTC (rev 346) @@ -2,15 +2,16 @@ namespace OpenGate{ -Sector::Sector( Ogre::SceneManager * sceneMgr ) : sceneMgr_( sceneMgr ){ +Sector::Sector( Ogre::SceneManager * sceneMgr, Network * network ) : sceneMgr_( sceneMgr ), network_( network ){ sectorname_ = "Testsector"; + avatarDeathSequenceTime_ = 0.0; sceneMgr_->setAmbientLight( Ogre::ColourValue(0.5, 0.5, 0.5) ); - //** Create a skybox + //** Create a skybox; sceneMgr_->setSkyBox( true, "OpenGate/SimpleSkyBox1", 100 ); - //** Create a light + //** Create a light; Ogre::Light * l = sceneMgr_->createLight("MainLight"); // Accept default settings: point light, white diffuse, just set position @@ -18,7 +19,6 @@ // other objects, but I don't l->setPosition( 20, 80, 50 ); - new OgreOpcode::CollisionManager( sceneMgr_ ); OgreOpcode::CollisionManager::getSingletonPtr()->addCollClass( "SectorObject" ); OgreOpcode::CollisionManager::getSingletonPtr()->addCollClass( "Bullet" ); @@ -37,27 +37,14 @@ Ogre::Real( 9.6 ), Ogre::Degree( -90 ) ); -// for ( int i = 0; i < max ; i ++ ){ -// for ( int j = 0; j < max ; j ++ ){ -// for ( int k = 0; k < max ; k ++ ){ -// createStaticObject( Ogre::String("ogrehead.mesh"), -// "ogrehead" + Ogre::StringConverter::toString( i * max * max + j * max + k ), -// Ogre::Vector3( -1000 + (max/2)*10 - i*10.0, -// (max/2)*10 - j*10.0, -// (max/2)*10 - k*10.0 ), -// Ogre::Real( 5.0 ), -// Ogre::Degree( 0.0 ) ); -// } -// } -// } createStaticObject( Ogre::String("ogrehead.mesh"), - "ogreheadStation", - Ogre::Vector3( 5000, 0, 0 ), - Ogre::Real( 500.0 ), - Ogre::Degree( 0.0 ) ); + "ogreheadStation", + Ogre::Vector3( 5000, 0, 0 ), + Ogre::Real( 500.0 ), + Ogre::Degree( 0.0 ) ); - createCircle(); +// createCircle(); createStaticObject( Ogre::String("ogrehead.mesh"), @@ -76,9 +63,11 @@ } Sector::~Sector( ){ - // delete OgreOpcode::CollisionManager::getSingletonPtr(); - //** delete movableObjects_; - //** delete fixedObjects_; + delete OgreOpcode::CollisionManager::getSingletonPtr(); + + for ( std::set< SectorObject * >::iterator it = sectorObjects_.begin(); it != sectorObjects_.end(); ){ + sectorObjects_.erase( (*it++) ); + } } void Sector::update( Ogre::Real elapsedTime ){ @@ -102,41 +91,67 @@ static_cast< BaseObject * >( col2->getClientData() )->collide( static_cast< BaseObject * >( col1->getClientData() ) ); } - // std::cout << "CollisionContext attached objects: " + Ogre::StringConverter::toString(collideInSectorContext_->getAttachedObjectCount()) << std::endl; // std::cout << "CollisionContext owned objects: " + Ogre::StringConverter::toString(collideInSectorContext_->getOwnedObjectCount()) << std::endl; // std::cout << "CollisionManager shapes: " + Ogre::StringConverter::toString(OgreOpcode::CollisionManager::getSingletonPtr()->getShapeCount())<< std::endl; - + } - for ( std::set< SectorObjectMoveable * >::iterator it = movableObjects_.begin(); it != movableObjects_.end(); ){ - if ( !(*it)->update( elapsedTime ) ) { - destructMoveableObject( *it ); - movableObjects_.erase( it++ ); + // avatar_->update( elapsedTime); + + bool tmpsegfaultDebug = false; + for ( std::map< long, SectorObjectMoveable * >::iterator it = movableObjects_.begin(); it != movableObjects_.end();){ + if ( !it->second->update( elapsedTime ) ) { + tmpsegfaultDebug = true; + std::cout << "Destructing: " << it->second->name() << std::endl; + destructMoveableObject( it->second ); + it++; + std::cout << " done." << std::endl; } else ++it; } + + if ( tmpsegfaultDebug) { + std::cout << "tmpsegfaultDebug done." << std::endl; + tmpsegfaultDebug = false; + } + + if ( avatarDeathSequenceTime_ > 0 ){ + avatarDeathSequenceTime_ -= elapsedTime; + } else if ( avatarDeathSequenceTime_ > -1 ) { + spawnAvatar(); + } + } +SectorObjectMoveable * Sector::createMoveableObject( const Ogre::String & name, int userID, int childID ){ + SectorObjectMoveable * obj = new SectorObjectMoveable( name, this, userID, childID ); + sectorObjects_.insert( obj ); + movableObjects_[ obj->globalID() ] = obj; + + return obj; +} + void Sector::destructMoveableObject( SectorObjectMoveable * obj ){ sectorObjects_.erase( obj ); if ( listener_->target() == obj ) listener_->setTarget( nextTarget() ); switch ( obj->getTypeID() ){ case SECTOROBJECTMOVABLE_RTTI: - delete obj; break; - case SECTOROBJECTMOVABLE_AI_RTTI: - aiObjects_.erase( dynamic_cast< SectorObjectMoveableAi * >(obj) ); - delete obj; break; + movableObjects_.erase( obj->globalID() ); + delete obj; + break; + case SECTOROBJECTMOVABLE_AI_RTTI: { + localAiObjects_.erase( dynamic_cast< SectorObjectMoveableAi *>(obj)->childID() ); + movableObjects_.erase( obj->globalID() ); + delete obj; + } break; default: std::cerr << "object type unknown. this should not happen." << obj->getTypeID() << std::endl; } } -void Sector::createStaticObject( const Ogre::String & meshname, - const Ogre::String & objectname, - const Ogre::Vector3 & pos, - Ogre::Real targetSize, - Ogre::Degree yaw ){ +void Sector::createStaticObject( const Ogre::String & meshname, const Ogre::String & objectname, + const Ogre::Vector3 & pos, Ogre::Real targetSize, Ogre::Degree yaw ){ SectorObject * obj = new SectorObject( objectname, this ); @@ -151,40 +166,22 @@ // insertCollisionSectorObject( obj ); } -SectorObjectMoveable * Sector::createExternalMoveableObject( const Ogre::String & name ){ - SectorObjectMoveable * obj = new SectorObjectMoveable( name, this ); +SectorObjectMoveableAi * Sector::createAiMoveableObject( const Ogre::String & name, int childID ){ + SectorObjectMoveableAi * obj = new SectorObjectMoveableAi( name, this, network_->userID(), childID ); sectorObjects_.insert( obj ); - movableObjects_.insert( obj ); + movableObjects_[ obj->globalID() ] = obj ; + localAiObjects_[ obj->childID() ] = obj; return obj; } -SectorObjectMoveableAi * Sector::createAiMoveableObject( const Ogre::String & name ){ - SectorObjectMoveableAi * obj = new SectorObjectMoveableAi( name, this ); - sectorObjects_.insert( obj ); - movableObjects_.insert( obj ); - aiObjects_.insert( obj ); +void Sector::spawnAiObject( ){ + + int childID = 1; + while ( localAiObjects_.find( childID ) != localAiObjects_.end() ){ childID ++; } - return obj; -} + SectorObjectMoveableAi *obj = createAiMoveableObject( avatar_->name() + "_Spawn" + Ogre::StringConverter::toString( childID ), childID ); -SectorObjectAvatar * Sector::createAvatar( const Ogre::String & playername ){ - SectorObjectAvatar * obj = new SectorObjectAvatar( playername, this ); - sectorObjects_.insert( obj ); - movableObjects_.insert( obj ); - avatar_ = obj; - - return obj; -} - -void Sector::destructAvatar( ){ - sectorObjects_.erase( avatar_ ); - movableObjects_.erase( avatar_ ); - delete avatar_; -} - -void Sector::spawnAiObject( ){ - SectorObjectMoveableAi *obj = createAiMoveableObject( avatar_->name() + "_Spawn" + Ogre::StringConverter::toString( aiObjects_.size() ) ); obj->setTarget( avatar_ ); Ogre::Real xmin = -1000.0, xmax = -500.0; @@ -194,26 +191,73 @@ obj->mainNode()->setPosition( Ogre::Math::RangeRandom( xmin, xmax ), Ogre::Math::RangeRandom( ymin, ymax ), Ogre::Math::RangeRandom( zmin, zmax ) ); - - // obj->mainNode()->setPosition( 0.0f, 0.0f, -200.0f); - + + //obj->mainNode()->setPosition( 0.0f, 0.0f, -200.0f); + obj->setThrustPercent( 70 ); + + MessageShipRegister msg( 0, obj->childID(), obj->name(), obj->mainNode()->getPosition(), true ); + network_->send( msg ); + + } +void Sector::createAvatar( const Ogre::String & playername ){ + avatar_ = new SectorObjectAvatar( playername, this, network_->userID() ); + //sectorObjects_.insert( obj ); + movableObjects_[ avatar_->globalID() ] = avatar_; +} + +void Sector::destructAvatar( ){ + // sectorObjects_.erase( avatar_ ); + movableObjects_.erase( avatar_->globalID() ); + delete avatar_; + avatar_ = NULL; +} + +void Sector::avatarDied( ){ + avatarDeathSequenceTime_ = 5.0; + avatar_->setVisible( true ); + MessageShipRegister msg( 0, 0, avatar_->name(), avatar_->mainNode()->getPosition(), false ); + network_->send( msg ); + listener_->avatarDeathSequence( true ); +} + +void Sector::spawnAvatar( ){ + avatarDeathSequenceTime_ = -1.0; + + avatar_->mainNode()->setPosition( 0.0, 0.0, 0.0 ); + avatar_->mainNode()->setOrientation( Ogre::Quaternion( 1.0, 0.0, 0.0, 0.0 ) ); + avatar_->setVelocity( Ogre::Vector3( 0.0, 0.0, -20.0 ) ); + avatar_->reset(); + + MessageShipRegister msg( 0, 0, avatar_->name(), avatar_->mainNode()->getPosition(), true ); + network_->send( msg ); + + avatar_->setVisible( false ); + listener_->avatarDeathSequence( false ); +} + SectorObject * Sector::nextTarget( ){ - itTarget_ ++; - if ( (*itTarget_) == avatar_ ) return nextTarget(); - - if ( itTarget_ == sectorObjects_.end() ) itTarget_ = sectorObjects_.begin(); - return (*itTarget_); + if ( sectorObjects_.size() != 0 ){ + itTarget_ ++; + if ( (*itTarget_) == avatar_ ) return nextTarget(); + + if ( itTarget_ == sectorObjects_.end() ) itTarget_ = sectorObjects_.begin(); + return (*itTarget_); + } + return NULL; } SectorObject * Sector::prevTarget( ){ - if ( itTarget_ == sectorObjects_.begin() ) itTarget_ = sectorObjects_.end(); - itTarget_ --; - - if ( (*itTarget_) == avatar_ ) return prevTarget(); - return (*itTarget_); + if ( sectorObjects_.size() != 0 ){ + if ( itTarget_ == sectorObjects_.begin() ) itTarget_ = sectorObjects_.end(); + itTarget_ --; + + if ( (*itTarget_) == avatar_ ) return prevTarget(); + return (*itTarget_); + } + return NULL; } void Sector::createCircle(){ @@ -252,37 +296,153 @@ object->attachObject( circle ); } -SectorObjectMoveable * Sector::findMoveableObject( const Ogre::String & playername ) { - for ( std::set< SectorObjectMoveable * >::iterator it = movableObjects_.begin(); it != movableObjects_.end(); it ++ ){ - if ( (*it)->name( ) == playername ){ - return ( *it ); +void Sector::receiveVesselRegister( const MessageShipRegister & msg ){ + + if ( msg.senderID() != network_->userID() ){ + std::map< long , SectorObjectMoveable * >::iterator it; + + if ( ( it = movableObjects_.find( createGlobalID( msg.senderID(), msg.childID() ) ) ) != movableObjects_.end() ){ + if ( msg.status() == false ){ + std::cout << "Deregistering " << msg.name() << " " << std::endl; + destructMoveableObject( it->second ); + } else { + std::cout << "Object " << msg.name() << " allready registered." << std::endl; + } + } else { + if ( msg.status() == true ){ + std::cout << "Create object " << msg.name() + << " " << msg.senderID() << " " << (int)msg.childID() + << " " << msg.position() << std::endl; + + SectorObjectMoveable * obj = createMoveableObject( msg.name(), msg.senderID(), msg.childID() ); + obj->mainNode()->setPosition( msg.position() ); + sendAllVesselStatus( ); + } } } - return NULL; -} +} -void Sector::sendAllMovements( Network * network ){ - MessageShipMovement msg( avatar_->name(), +void Sector::sendAllVesselMovements( ){ + MessageShipMovement msg( 0, + avatar_->mainNode()->getPosition(), + avatar_->velDirection(), + avatar_->mainNode()->getOrientation(), avatar_->thrustPercent(), - avatar_->velDirection(), - avatar_->mainNode()->getPosition(), - avatar_->mainNode()->getOrientation(), - avatar_->firePressed(), - avatar_->afterburnerPressed(), - avatar_->breakPressed() ); - network->send( msg ); + avatar_->scaledYaw(), + avatar_->scaledPitch(), + avatar_->scaledRoll(), + avatar_->incNetSequence() ); - for ( std::set< SectorObjectMoveableAi * >::iterator it = aiObjects_.begin(); it != aiObjects_.end(); it ++ ){ - MessageShipMovement msgObj( (*it)->name(), - (*it)->thrustPercent(), - (*it)->velDirection(), - (*it)->mainNode()->getPosition(), - (*it)->mainNode()->getOrientation(), - (*it)->firePressed(), - (*it)->afterburnerPressed(), - (*it)->breakPressed() ); - network->send( msgObj ); + network_->send( msg, false ); + + for ( std::map< int, SectorObjectMoveableAi * >::iterator it = localAiObjects_.begin(); it != localAiObjects_.end(); it ++ ){ + MessageShipMovement msgObj( it->second->childID(), + it->second->mainNode()->getPosition(), + it->second->velDirection(), + it->second->mainNode()->getOrientation(), + it->second->thrustPercent(), + it->second->scaledYaw(), + it->second->scaledPitch(), + it->second->scaledRoll(), + it->second->incNetSequence() ); + + network_->send( msgObj, false ); } } +void Sector::receiveVesselMovement( const std::vector < MessageShipMovement * > & movements ){ + + std::map < long, const MessageShipMovement * > singleMsg; + + //** we sort the movement messaged + for ( int i = 0; i < movements.size(); i ++ ){ + if ( movements[ i ]->senderID() != network_->userID() ){ + //** apply only foreign movements, and take just the actual movement + singleMsg[ createGlobalID( movements[ i ]->senderID(), movements[ i ]->childID() ) ] = movements[ i ]; + } + } + + std::map< long, SectorObjectMoveable * >::iterator it; + + for ( std::map < long, const MessageShipMovement * >::iterator i = singleMsg.begin(); i != singleMsg.end(); i++ ){ + if ( ( it = movableObjects_.find( i->first ) ) != movableObjects_.end() ){ + it->second->setFlightProperties( (*i->second) ); + } else { + std::cerr << "Requested non existant object for shipmovement: " + << network_->username( i->second->senderID() ) << " this should not happen." << std::endl; + } + } +} + +void Sector::sendAllVesselStatus( ){ + sendVesselStatus( *avatar_ ); +// for ( std::map< int, SectorObjectMoveableAi * >::iterator it = localAiObjects_.begin(); it != localAiObjects_.end(); it ++ ){ +// sendVesselStatus( *(it->second) ); +// } +} + +void Sector::sendVesselStatus( const SectorObjectMoveable & obj ){ + MessageShipStatus msg( obj.childID(), + obj.shieldPercent(), + obj.armorPercent(), + obj.firePressed(), + obj.afterburnerPressed(), + obj.breakPressed() ); + network_->send( msg ); +} + +void Sector::receiveVesselStatus( const MessageShipStatus & msg ){ + if ( msg.senderID() != network_->userID() ){ + + std::map< long, SectorObjectMoveable * >::iterator it; + + SectorObjectMoveable *obj; + if ( ( it = movableObjects_.find( createGlobalID( msg.senderID(), msg.childID() ) ) ) != movableObjects_.end() ){ + std::cout << "ReceiveVesselStatus for " << it->second->name( ) << std::endl; + it->second->setStatus( msg ); + } else { + std::cerr << "Requested non existant object for shipstatus: " + << network_->username( msg.senderID() ) << " this should not happen." << std::endl; + } + } +} + +void Sector::sendVesselAmmoHit( const Projectile & projectile, BaseObject * victim ){ + + if ( projectile.parent().userID() == network_->userID() ){ + std::cout << "Send: Projectile from " << projectile.name() << " collide with: " << victim->name() + << " " << victim->userID() << " " << victim->childID() << std::endl; + + if ( network_->online() ){ + MessageShipAmmoHit msg( projectile.parent().childID(), victim->userID(), victim->childID(), projectile.damage() ); + network_->send( msg ); + } + } + victim->hitByAmmo( projectile.damage() ); +} + +void Sector::receiveVesselAmmoHit( const MessageShipAmmoHit & msg ){ + if ( msg.senderID() != network_->userID() ){ + + std::map< long, SectorObjectMoveable * >::iterator it; + + if ( ( it = movableObjects_.find( createGlobalID( msg.targetID(), msg.targetChildID() ) ) ) != movableObjects_.end() ){ + std::cout << "ReceiveVesselAmmoHit for " << network_->username( msg.targetID() ) << std::endl; + it->second->hitByAmmo( msg.damage() ); + } else { + std::cerr << "Requested non existant object for VesselAmmoHit " + << "shooter: " << network_->username( msg.senderID() ) + << " victim: " << network_->username( msg.targetID() ) + << " child: " << msg.targetChildID() + << " damage: " << msg.damage() << " this should not happen." << std::endl; + + std::cerr << "Available objects: " << std::endl; + for ( std::map< long, SectorObjectMoveable * >::iterator i = movableObjects_.begin(); i != movableObjects_.end(); i++){ + std::cerr << "\t" << i->first << " " << i->second->name() << " " << std::endl; + } + + } + } +} + } // namespace OpenGate Modified: branches/ogsector/src/Sector.h =================================================================== --- branches/ogsector/src/Sector.h 2007-03-28 21:50:26 UTC (rev 345) +++ branches/ogsector/src/Sector.h 2007-04-01 18:01:19 UTC (rev 346) @@ -13,48 +13,68 @@ public: - Sector( Ogre::SceneManager * sceneMgr ); + Sector( Ogre::SceneManager * sceneMgr, Network * network ); ~Sector( ); Ogre::SceneManager * sceneManager() { return sceneMgr_; } void setListener( SectorClientFrameListener * listener ){ listener_ = listener; } + SectorClientFrameListener * listener( ){ return listener_; } + void setNetwork( Network * network ){ network_ = network; } + + void update( Ogre::Real elapsedTime ); void createStaticObject( const Ogre::String & meshname, const Ogre::String & objectname, const Ogre::Vector3 & pos, Ogre::Real targetSize, Ogre::Degree yaw ); - SectorObjectMoveable * createExternalMoveableObject( const Ogre::String & name ); + SectorObjectMoveable * createMoveableObject( const Ogre::String & name, int userId, int childId ); - SectorObjectMoveableAi * createAiMoveableObject( const Ogre::String & name ); + SectorObjectMoveableAi * createAiMoveableObject( const Ogre::String & name, int childId ); - SectorObjectAvatar * createAvatar( const Ogre::String & playername ); + void destructMoveableObject( SectorObjectMoveable * obj ); - // void insertCollisionSectorObject( SectorObject * obj ); + void createAvatar( const Ogre::String & playername ); - OgreOpcode::CollisionContext * collisionContext() { return collideInSectorContext_; } + SectorObjectAvatar * avatar() { return avatar_; } - void destructMoveableObject( SectorObjectMoveable * obj ); + void destructAvatar( ); + void avatarDied( ); + + void spawnAvatar( ); + void spawnAiObject( ); - - void destructAvatar( ); - SectorObjectAvatar * avatar() { return avatar_; } + OgreOpcode::CollisionContext * collisionContext() { return collideInSectorContext_; } void createCircle( ); - SectorObjectMoveable * findMoveableObject( const Ogre::String & name ); - SectorObject * nextTarget( ); SectorObject * prevTarget( ); - void sendAllMovements( Network * network ); + void receiveVesselRegister( const MessageShipRegister & msg ); + + void sendAllVesselStatus( ); + + void sendAllVesselMovements( ); + + void receiveVesselMovement( const std::vector < MessageShipMovement * > & movements ); + + void sendVesselStatus( const SectorObjectMoveable & obj ); + + void receiveVesselStatus( const MessageShipStatus & msg ); + + void sendVesselAmmoHit( const Projectile & projectile, BaseObject * victim ); + + void receiveVesselAmmoHit( const MessageShipAmmoHit & msg ); + + protected: SectorClientFrameListener * listener_; Ogre::SceneManager * sceneMgr_; @@ -65,12 +85,15 @@ OgreOpcode::CollisionContext * collideInSectorContext_; - std::set< SectorObject * > sectorObjects_; - std::set< SectorObjectMoveable * > movableObjects_; - std::set< SectorObjectMoveableAi * > aiObjects_; + std::set< SectorObject * >::iterator itTarget_; - std::set< SectorObject * >::iterator itTarget_; + std::map< long, SectorObjectMoveable * > movableObjects_; + std::map< int, SectorObjectMoveableAi * > localAiObjects_; + + float avatarDeathSequenceTime_; + + Network * network_; }; } // namespace OpenGate Modified: branches/ogsector/src/SectorClient.cpp =================================================================== --- branches/ogsector/src/SectorClient.cpp 2007-03-28 21:50:26 UTC (rev 345) +++ branches/ogsector/src/SectorClient.cpp 2007-04-01 18:01:19 UTC (rev 346) @@ -3,41 +3,84 @@ namespace OpenGate{ void SectorClient::createScene( ){ - sector_ = new Sector( sceneMgr_ ); + sector_ = new Sector( sceneMgr_, network_ ); + sector_->createAvatar( network_->usernameMe() ); +} - SectorObjectAvatar *pS = sector_->createAvatar( network_->usernameMe() ); - pS->mainNode()->setPosition( 0.0, 0.0, 0.0 ); - pS->setVelocity( Ogre::Vector3( 0.0, 0.0, -20.0 ) ); +void SectorClient::destroyScene( ){ + if ( sector_ != NULL ) delete sector_; } -bool SectorClient::setup( void ){ - root_ = new Ogre::Root(); - setupResources(); - - bool carryOn = configure(); - if (!carryOn) return false; - - sceneMgr_ = root_->createSceneManager( Ogre::ST_GENERIC, "BaseSMInstance"); - createCameras(); +bool SectorClient::setup( ){ + root_ = new Ogre::Root(); - createViewports(); + setupResources(); + + if ( !configure() ) return false; + + sceneMgr_ = root_->createSceneManager( Ogre::ST_GENERIC, "BaseSMInstance"); - // Set default mipmap level (NB some APIs ignore this) - Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5); - - // Create any resource listeners (for loading screens) - // createResourceListener(); - -// // Load resources - loadResources(); - - // Create the scene - createScene(); - - createFrameListener(); - + createCameras(); + + createViewports(); + + // Set default mipmap level (NB some APIs ignore this) + Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5); + + // Create any resource listeners (for loading screens) + // createResourceListener(); + + // Load resources + loadResources(); + + // Create the scene + createScene(); + + createFrameListener(); + + sector_->spawnAvatar(); + + return true; +} + +void SectorClient::setupResources( ) { + // Load resource paths from config file + Ogre::ConfigFile cf; cf.load( "resources.cfg" ); + + // Go through all sections & settings in the file + Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator(); + + Ogre::String secName, typeName, archName; + while ( seci.hasMoreElements() ) { + + secName = seci.peekNextKey(); + Ogre::ConfigFile::SettingsMultiMap *settings = seci.getNext(); + + for ( Ogre::ConfigFile::SettingsMultiMap::iterator i = settings->begin(); i != settings->end(); ++i ){ + typeName = i->first; + archName = i->second; + Ogre::ResourceGroupManager::getSingleton().addResourceLocation( archName, typeName, secName ); + } + } +} + +bool SectorClient::configure( void ){ + root_->restoreConfig(); + window_ = root_->initialise( true ); + return true; + + // Show the configuration dialog and initialise the system + // You can skip this and use root.restoreConfig() to load configuration + // settings if you were sure there are valid ones saved in ogre.cfg + if ( root_->showConfigDialog() ) { + // If returned true, user clicked OK so initialise + // Here we choose to let the system create a default rendering window by passing 'true' + window_ = root_->initialise( true ); return true; + } else { + return false; } +} void SectorClient::createCameras( ) { camera_ = sceneMgr_->createCamera("CameraMain"); @@ -75,6 +118,11 @@ window_->removeViewport( 2 ); } +void SectorClient::createFrameListener( ) { + frameListener_ = new SectorClientFrameListener( window_, camera_, sector_, network_ ); + root_->addFrameListener( frameListener_ ); +} + } // namespace OpenGate{ Modified: branches/ogsector/src/SectorClient.h =================================================================== --- branches/ogsector/src/SectorClient.h 2007-03-28 21:50:26 UTC (rev 345) +++ branches/ogsector/src/SectorClient.h 2007-04-01 18:01:19 UTC (rev 346) @@ -16,15 +16,14 @@ class SectorClient { public: SectorClient( Network * nw ) : network_( nw ) { - frameListener_ = NULL; root_ = NULL; + frameListener_ = NULL; sector_ = NULL; } virtual ~SectorClient(){ if ( frameListener_ != NULL ) delete frameListener_; if ( root_ != NULL ) delete root_; - if ( sector_ != NULL ) delete sector_; } virtual void go( void ){ @@ -32,75 +31,36 @@ root_->startRendering(); - // clean up destroyScene(); } protected: - virtual bool setup( void ); + virtual bool setup( ); - virtual bool configure( void ){ - root_->restoreConfig(); - window_ = root_->initialise( true ); - return true; + //! Method which will define the source of resources (other than current folder) + virtual void setupResources( ); - // Show the configuration dialog and initialise the system - // You can skip this and use root.restoreConfig() to load configuration - // settings if you were sure there are valid ones saved in ogre.cfg - if( root_->showConfigDialog() ) { - // If returned true, user clicked OK so initialise - // Here we choose to let the system create a default rendering window by passing 'true' - window_ = root_->initialise( true ); - return true; - } else { - return false; - } - } + virtual bool configure( ); - virtual void chooseSceneManager( void ){ } + // virtual void chooseSceneManager( ){ } - virtual void createCameras( void ); + virtual void createCameras( ); - //! Create our viewports - virtual void createViewports( void ); + virtual void createViewports( ); - virtual void createFrameListener( void ) { - frameListener_ = new SectorClientFrameListener( window_, camera_, sector_, network_ ); - root_->addFrameListener( frameListener_ ); - } + virtual void createFrameListener( ); - virtual void createScene( void ); + virtual void createScene( ); - virtual void destroyScene(void){ } + virtual void destroyScene( ); - //! Method which will define the source of resources (other than current folder) - virtual void setupResources(void) { - // Load resource paths from config file - Ogre::ConfigFile cf; cf.load( "resources.cfg" ); - - // Go through all sections & settings in the file - Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator(); - - Ogre::String secName, typeName, archName; - while ( seci.hasMoreElements() ) { - secName = seci.peekNextKey(); - Ogre::ConfigFile::SettingsMultiMap *settings = seci.getNext(); - Ogre::ConfigFile::SettingsMultiMap::iterator i; - for ( i = settings->begin(); i != settings->end(); ++i ){ - typeName = i->first; - archName = i->second; - Ogre::ResourceGroupManager::getSingleton().addResourceLocation( archName, typeName, secName ); - } - } - } - - virtual void loadResources(void) { + virtual void loadResources( ) { Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); } - Ogre::Root * root_; + Ogre::Camera * camera_; Ogre::SceneManager * sceneMgr_; Modified: branches/ogsector/src/SectorClientFrameListener.cpp =================================================================== --- branches/ogsector/src/SectorClientFrameListener.cpp 2007-03-28 21:50:26 UTC (rev 345) +++ branches/ogsector/src/SectorClientFrameListener.cpp 2007-04-01 18:01:19 UTC (rev 346) @@ -1,6 +1,6 @@ #include "SectorClientFrameListener.h" #include "SectorClient.h" -#include "network_protocol.h" +#include "networkProtocol.h" #include <iostream> #include <OgreTextAreaOverlayElement.h> @@ -31,7 +31,7 @@ timeSinceLastSectorUpdate_ = 0.0; timeSinceLastNetworkUpdate_ = 0.0; - deathSequence_ = 0.0; + deathSequence_ = false; inputInitialState_ = true; lastInputWheelState_ = 0; windowsWidth_ = window_->getWidth( ); @@ -60,7 +60,7 @@ setTarget( sector_->nextTarget() ); -// targetPointer_ = camera_->getSceneManager()->getRootSceneNode()->createChildSceneNode( "TargetPointer" ); + // targetPointer_ = camera_->getSceneManager()->getRootSceneNode()->createChildSceneNode( "TargetPointer" ); // BillboardSet* mySet = camera_->getSceneManager()->createBillboardSet("mySet"); // targetPointerBB_ = mySet->createBillboard( Vector3(0, 0, 0) ); // mySet->setMaterialName( "TargetPointer" ); @@ -80,7 +80,7 @@ Ogre::SceneNode * spaceDustNode = sector_->avatar()->mainNode()->createChildSceneNode( "DustParticles", camera_->getRealPosition() ); // spaceDustNode_->attachObject( spaceDustParticleSystem_ ); - //camera_->getParentSceneNode() + //camera_->getParentSceneNode() // listener for the space dust @@ -111,71 +111,66 @@ bool SectorClientFrameListener::frameStarted( const Ogre::FrameEvent & evt ) { if ( window_->isClosed() ) return false; + timeSinceLastSectorUpdate_ += evt.timeSinceLastFrame; timeSinceLastNetworkUpdate_ += evt.timeSinceLastFrame; - if ( timeSinceLastSectorUpdate_ > 0.005 ){ // max 200 sector-updates/second - - if ( deathSequence_ > 0 ){ + if ( deathSequence_ ){ + + } else { + //** capture my input + inputManager_->capture(); + } + + //** start capture network; + std::vector < std::vector < Uint8 > > msgs; + std::vector < MessageShipMovement * > movements; + network_->pull( msgs ); + + for ( int i = 0; i < msgs.size(); i ++ ){ + switch ( msgs[ i ][ 0 ] ){ + case PROTO_CHAT:{ + network_->ping(); + + MessageChat msg( &msgs[ i ][ 0 ] ); + std::cout << network_->username( msg.senderID() ) + ": " + msg.message() << std::endl; - deathSequence_ -= timeSinceLastSectorUpdate_; - - if ( deathSequence_ <= 0 ){ - avatarSpawn( ); - } - } else { + Ogre::OverlayElement* hudChatIn = Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/SimpleHUDTextChatIn"); + hudChatIn->setCaption( network_->username( msg.senderID() ) + ": " + msg.message() ); + } break; + case PROTO_SHIPREGISTER: + sector_->receiveVesselRegister( &msgs[ i ][ 0 ] ); break; + case PROTO_SHIPSTATUS: + sector_->receiveVesselStatus( &msgs[ i ][ 0 ] ); break; + case PROTO_SHIPMOVEMENT:{ + //** we handle that in sum, so we can ignore dups because of packet loss + MessageShipMovement msg( &msgs[ i ][ 0 ] ); + movements.push_back( &msg ); + } break; + case PROTO_SHIPAMMOHIT: + sector_->receiveVesselAmmoHit( &msgs[ i ][ 0 ] ); break; + default: + std::cerr << "PROTO type unknown: " << msgs[ i ][ 0 ] << " " << msgs[ i ].size() << std::endl; + break; + } + } + if ( movements.size() > 0 ) sector_->receiveVesselMovement( movements ); - //** capture my input - inputManager_->capture(); - - if ( timeSinceLastNetworkUpdate_ > 0.02 ){// max 100 net-updates/second - - std::vector < std::vector < Uint8 > > msgs; - network_->pull( msgs ); - - for ( int i = 0; i < msgs.size(); i ++ ){ - switch ( msgs[ i ][ 0 ] ){ - case PROTO_CHAT:{ - MessageChat msg( &msgs[ i ][ 0 ] ); - std::cout << network_->username( msg.senderId() ) + ": " + msg.message() << std::endl; - - Ogre::OverlayElement* hudChatIn = Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/SimpleHUDTextChatIn"); - hudChatIn->setCaption( network_->username( msg.senderId() ) + ": " + msg.message() ); - } break; - case PROTO_SHIPMOVEMENT:{ - MessageShipMovement msg( &msgs[ i ][ 0 ] ); - - if ( msg.senderId() != network_->userId() ){ - - SectorObjectMoveable *obj; - if ( (obj = sector_->findMoveableObject( msg.name() ) ) == NULL ){ - obj = sector_->createExternalMoveableObject( msg.name() ); - } -// if ( (obj = sector_->findMoveableObject( network_->username( msg.senderId() ) )) == NULL ){ -// obj = sector_->createExternalMoveableObject( network_->username( msg.senderId() ) ); -// } - obj->setFlightProperties( msg ); - - } - } break; - default: - std::cerr << "PROTO type unknown: " << msgs[ i ][ 0 ] << " " << msgs[ i ].size() << std::endl; - break; - } - } - - sector_->sendAllMovements( network_ ); - - - timeSinceLastNetworkUpdate_ = 0.0; - } //** network update - } //** else if no deathsequence - + //** end capture network; + + // max 1000 sector-updates/second + if ( timeSinceLastSectorUpdate_ > 0.001 ){ sector_->update( timeSinceLastSectorUpdate_ ); timeSinceLastSectorUpdate_ = 0.0; updateHUD_(); - } //** sector update + } + //** send movement data, max 10 net-updates/second + if ( timeSinceLastNetworkUpdate_ > 0.1 ){ + sector_->sendAllVesselMovements( ); + timeSinceLastNetworkUpdate_ = 0.0; + } + //** update my camera; updateCamera_(); @@ -199,10 +194,10 @@ if ( e.key == OIS::KC_ESCAPE) { shutDownRequest_ = true; } //** Avatar yaw LEFT; - if ( e.key == OIS::KC_A || e.key == OIS::KC_NUMPAD6 ) { sector_->avatar()->setScaledYaw( 1.0 ); } + if ( e.key == OIS::KC_A || e.key == OIS::KC_NUMPAD4 ) { sector_->avatar()->setScaledYaw( 1.0 ); } //** Avatar yaw RIGHT; - if ( e.key == OIS::KC_D || e.key == OIS::KC_NUMPAD4 ) { sector_->avatar()->setScaledYaw( -1.0 ); } + if ( e.key == OIS::KC_D || e.key == OIS::KC_NUMPAD6 ) { sector_->avatar()->setScaledYaw( -1.0 ); } //** Avatar pitch DOWN; if ( e.key == OIS::KC_W || e.key == OIS::KC_NUMPAD8 ) { sector_->avatar()->setScaledPitch( -1.0 ); } @@ -242,7 +237,7 @@ if ( e.key == OIS::KC_P ) { setTarget( sector_->prevTarget() ); } //** selfdestruct and eject; - if ( e.key == OIS::KC_F11 ) { avatarDied(); } + if ( e.key == OIS::KC_F11 ) { sector_->avatarDied(); } //** spawn; if ( e.key == OIS::KC_F12 ) { sector_->spawnAiObject(); } @@ -449,7 +444,7 @@ } bool SectorClientFrameListener::buttonPressed( const OIS::JoyStickEvent & e , int button){ - window_->setDebugText( "Joy: " + toStr( button ) ); + // window_->setDebugText( "Joy: " + toStr( button ) ); if ( button == 0){ sector_->avatar()->setFirePressed( true ); @@ -457,7 +452,7 @@ } bool SectorClientFrameListener::buttonReleased( const OIS::JoyStickEvent & e , int button){ - window_->setDebugText( "Joy: " + toStr( button ) ); + // window_->setDebugText( "Joy: " + toStr( button ) ); if ( button == 0){ sector_->avatar()->setFirePressed( false ); @@ -474,7 +469,6 @@ switch ( cameraMode_ ){ case 0: //** free camera at orign camera_->setPosition( Ogre::Vector3( 0, 0, 500 ) ); - camera_->lookAt( Ogre::Vector3( 0, 0, -300 ) ); camera_->setAutoTracking( false, sector_->avatar()->mainNode() ); sector_->avatar()->setVisible( true ); break; @@ -496,7 +490,12 @@ void SectorClientFrameListener::updateCamera_(){ Ogre::Vector3 avatarPos( sector_->avatar()->mainNode()->getPosition() ); - Ogre::Vector3 targetPos( target_->mainNode()->getPosition() ); + + Ogre::Vector3 targetPos; + if ( target_ != NULL ){ + targetPos = target_->mainNode()->getPosition() ; + } + Ogre::Vector3 dist( targetPos - avatarPos ); Ogre::Vector3 distNorm( dist.normalisedCopy() ); Ogre::Quaternion avatarOrient( sector_->avatar()->mainNode()->getOrientation() ); @@ -508,14 +507,15 @@ // if ( ( 1.0f + cam1->getDirection( ).normalisedCopy().dotProduct( distNorm ) ) < 0.0001f ) { // cam1->yaw( Degree( 180 ) ); // } else { - Ogre::Quaternion rot( cam1->getDirection( ).normalisedCopy().getRotationTo( distNorm ) ); - cam1->rotate( rot ); - // } - - cam1->setPosition( avatarPos + distNorm * ( dist.length() - 2.0 * target_->baseSize() ) ); - + Ogre::Quaternion rot( cam1->getDirection( ).normalisedCopy().getRotationTo( distNorm ) ); + cam1->rotate( rot ); + // } + + if ( target_ != NULL ) cam1->setPosition( avatarPos + distNorm * ( dist.length() - 2.0 * target_->baseSize() ) ); + switch ( cameraMode_ ){ case 0: //** free camera at orign + camera_->lookAt( sector_->avatar()->mainNode()->getPosition( ) ); break; case 1: //** first person avatar camera camera_->setPosition( avatarPos ); @@ -625,54 +625,98 @@ void SectorClientFrameListener::setTarget( SectorObject * target ) { target_ = target; - Ogre::OverlayElement* targetName = Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/SimpleHUDTextTargetName"); - targetName->setCaption( target_->name() ); - if ( hudTarget_->numChildren() > 0 ){ - hudTarget_->removeAllChildren( );// hudTarget_->getChild( "TargetTrans" ) ); - camera_->getSceneManager()->destroyEntity( "TargetShape" ); - } - Ogre::SceneNode * hudTargetTrans = new Ogre::SceneNode( NULL, "TargetTrans" ); - - - Ogre::Entity *targetShape = target_->shape()->clone( "TargetShape" ); - - hudTargetTrans->attachObject( targetShape ); - Ogre::Real scale = 0.5 / ( targetShape->getBoundingBox().getMaximum()[ 0 ] - - targetShape->getBoundingBox().getMinimum()[ 0 ] ); - hudTargetTrans->yaw( Ogre::Degree( -90 ) ); - hudTargetTrans->scale( scale, scale, scale ); - - hudTarget_->addChild( hudTargetTrans ); + if ( target_ != NULL ){ + Ogre::OverlayElement* targetName = Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/SimpleHUDTextTargetName"); + targetName->setCaption( target_->name() ); + + if ( hudTarget_->numChildren() > 0 ){ + hudTarget_->removeAllChildren( );// hudTarget_->getChild( "TargetTrans" ) ); + camera_->getSceneManager()->destroyEntity( "TargetShape" ); + } + Ogre::SceneNode * hudTargetTrans = new Ogre::SceneNode( NULL, "TargetTrans" ); + + + Ogre::Entity *targetShape = target_->shape()->clone( "TargetShape" ); + + hudTargetTrans->attachObject( targetShape ); + Ogre::Real scale = 0.5 / ( targetShape->getBoundingBox().getMaximum()[ 0 ] + - targetShape->getBoundingBox().getMinimum()[ 0 ] ); + hudTargetTrans->yaw( Ogre::Degree( -90 ) ); + hudTargetTrans->scale( scale, scale, scale ); + + hudTarget_->addChild( hudTargetTrans ); + } } void SectorClientFrameListener::updateHUD_( void ) { - hudTarget_->setOrientation( target_->mainNode()->getOrientation() ); - - if ( sector_->avatar()->velocity() > 0 ){ + if ( fabs( sector_->avatar()->velocity() ) > 1e-1 ){ sector_->avatar()->flightArrow()->setVisible( true ); - sector_->avatar()->flightArrow()->setOrientation( target_->mainNode()->getOrientation() ); - sector_->avatar()->flightArrow()->setDirection( sector_->avatar()->flightDirection().normalisedCopy(), Ogre::Node::TS_WORLD ); + sector_->avatar()->flightArrow()->setOrientation( sector_->avatar()->mainNode()->getOrientation() ); + sector_->avatar()->flightArrow()->setDirection( sector_->avatar()->flightDirection().normalisedCopy(), + Ogre::Node::TS_WORLD ); } else { sector_->avatar()->flightArrow()->setVisible( false ); } + + if ( target_ != NULL ) { + sector_->avatar()->targetArrow()->setVisible( true ); + Ogre::Vector3 distToTarget = target_->mainNode()->getPosition() - sector_->avatar()->mainNode()->getPosition(); - Ogre::Vector3 distToTarget = target_->mainNode()->getPosition() - sector_->avatar()->mainNode()->getPosition(); - sector_->avatar()->targetArrow()->setOrientation( target_->mainNode()->getOrientation() ); - sector_->avatar()->targetArrow()->setDirection( distToTarget.normalisedCopy(), Ogre::Node::TS_WORLD ); + sector_->avatar()->targetArrow()->setOrientation( sector_->avatar()->mainNode()->getOrientation() ); + sector_->avatar()->targetArrow()->setDirection( distToTarget.normalisedCopy(), + Ogre::Node::TS_WORLD ); + hudTarget_->setOrientation( target_->mainNode()->getOrientation() ); - Ogre::Vector3 poss = camera_->getProjectionMatrix() * (camera_->getViewMatrix() * target_->mainNode()->getPosition() ); - poss.x = max( -1.0f, poss.x ); poss.x = min( 1.0f, poss.x ); - poss.y = max( -1.0f, poss.y ); poss.y = min( 1.0f, poss.y ); +// Ogre::Vector3 targetPos; +// Ogre::Quaternion targetOrient; targetOri = target_->mainNode().getOrientation(); +// targetPos = target_->mainNode().getPosition(); - Ogre::OverlayElement* hudTargetPointer = Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/TargetPointer"); - if ( poss.z < 1 ){ - hudTargetPointer->setPosition( windowsHalfWidth_ + (windowsHalfWidth_ * poss.x)-16, - windowsHalfHeight_ + (windowsHalfHeight_ * -poss.y)-16 ); + //** targeting pointer + Ogre::Vector3 poss = camera_->getProjectionMatrix() * (camera_->getViewMatrix() * target_->mainNode()->getPosition() ); + poss.x = max( -1.0f, poss.x ); poss.x = min( 1.0f, poss.x ); + poss.y = max( -1.0f, poss.y ); poss.y = min( 1.0f, poss.y ); + + Ogre::OverlayElement* hudTargetPointer = Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/TargetPointer"); + hudTargetPointer->show(); + + Ogre::OverlayElement* hudTargetDist = + Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/SimpleHUDTextTargetDistance"); + + Ogre::OverlayElement* hudTargetShield = + Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/SimpleHUDTextTargetShield"); + + Ogre::OverlayElement* hudTargetArmor = + Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/SimpleHUDTextTargetArmor"); + + Ogre::OverlayElement* hudTargetVel = + Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/SimpleHUDTextTargetVelocity"); + + hudTargetDist->setCaption( "D " + Ogre::StringConverter::toString( round( distToTarget.length(), 0 ) ) ); + + if ( poss.z < 1 ){ + hudTargetPointer->setPosition( windowsHalfWidth_ + (windowsHalfWidth_ * poss.x)-16, + windowsHalfHeight_ + (windowsHalfHeight_ * -poss.y)-16 ); + } + + if ( target_->getTypeID() == SECTOROBJECTMOVABLE_RTTI || + target_->getTypeID() == SECTOROBJECTMOVABLE_AI_RTTI ){ + hudTargetVel->setCaption( "V " + Ogre::StringConverter::toString( dynamic_cast< SectorObjectMoveable *>( target_ )->velocity(), 6 ) ); + hudTargetShield->setCaption( "S " + Ogre::StringConverter::toString( dynamic_cast< SectorObjectMoveable *>( target_ )->shieldPercent(), 4 ) ); + hudTargetArmor->setCaption( "A " + Ogre::StringConverter::toString( dynamic_cast< SectorObjectMoveable *>( target_ )->armorPercent(), 4 ) ); + } else{ + hudTargetVel->setCaption( "" ); + hudTargetShield->setCaption( "" ); + hudTargetArmor->setCaption( "" ); + } + + } else { + sector_->avatar()->targetArrow()->setVisible( false ); + Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/TargetPointer")->hide( ); } - + Ogre::OverlayElement* hudStat = Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/SimpleHUDTextStats"); @@ -697,18 +741,6 @@ Ogre::OverlayElement* hudArmor = Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/SimpleHUDTextArmor"); - Ogre::OverlayElement* hudTargetDist = - Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/SimpleHUDTextTargetDistance"); - - Ogre::OverlayElement* hudTargetShield = - Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/SimpleHUDTextTargetShield"); - - Ogre::OverlayElement* hudTargetArmor = - Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/SimpleHUDTextTargetArmor"); - - Ogre::OverlayElement* hudTargetVel = - Ogre::OverlayManager::getSingleton().getOverlayElement("OpenGate/SimpleHUDTextTargetVelocity"); - const Ogre::RenderTarget::FrameStats & stats = window_->getStatistics(); hudStat->setCaption( "fps: " + toStr( stats.lastFPS ) + " ping: " + toStr( network_->pingTime() ) + " ms" ); hudVel->setCaption( "Vel: " + Ogre::StringConverter::toString( round( sector_->avatar()->velocity(), 2 ), 6 ) ); @@ -718,19 +750,7 @@ hudShield->setCaption( "S " + Ogre::StringConverter::toString( sector_->avatar()->shieldPercent(), 4 ) ); hudArmor->setCaption( "A " + Ogre::StringConverter::toString( sector_->avatar()->armorPercent(), 4 ) ); - hudTargetDist->setCaption( "D " + Ogre::StringConverter::toString( round( distToTarget.length(), 0 ) ) ); - - if ( target_->getTypeID() == SECTOROBJECTMOVABLE_RTTI || - target_->getTypeID() == SECTOROBJECTMOVABLE_AI_RTTI ){ - hudTargetVel->setCaption( "V " + Ogre::StringConverter::toString( dynamic_cast< SectorObjectMoveable *>( target_ )->velocity(), 6 ) ); - hudTargetShield->setCaption( "S " + Ogre::StringConverter::toString( dynamic_cast< SectorObjectMoveable *>( target_ )->shieldPercent(), 4 ) ); - hudTargetArmor->setCaption( "A " + Ogre::StringConverter::toString( dynamic_cast< SectorObjectMoveable *>( target_ )->armorPercent(), 4 ) ); - } else{ - hudTargetVel->setCaption( "" ); - hudTargetShield->setCaption( "" ); - hudTargetArmor->setCaption( "" ); - } - + Ogre::Vector3 pos( sector_->avatar()->mainNode()->getPosition() ); hudPos->setCaption( "Pos: " + Ogre::StringConverter::toString( Ogre::Real( rint( pos[ 0 ] ) ), 5, 5 ) + " " + @@ -758,30 +778,49 @@ // } } -void SectorClientFrameListener::avatarSpawn( ){ - // SectorObjectAvatar *obj = sector_->createAvatar( network_->usernameMe() ); - sector_->avatar()->mainNode()->setPosition( 0.0, 0.0, 0.0 ); - sector_->avatar()->mainNode()->setOrientation( Ogre::Quaternion( 1.0, 0.0, 0.0, 0.0 ) ); - sector_->avatar()->setVelocity( Ogre::Vector3( 0.0, 0.0, -20.0 ) ); - sector_->avatar()->reset(); - cameraMode_ = 1; - sector_->avatar()->setVisible( false ); - deathSequence_ = 0.0; - hudOverlay_->show(); +void SectorClientFrameListener::avatarDeathSequence( bool on ){ + if ( on ){ + deathSequence_ = true; + cameraMode_ = 0; + camera_->setOrientation( sector_->avatar()->mainNode()->getOrientation() ); + camera_->setPosition( sector_->avatar()->mainNode()->getOrientation().zAxis() * 100.0 ); + hudOverlay_->hide(); + } else { + deathSequence_ = false; + cameraMode_ = 1; + hudOverlay_->show(); + } } -void SectorClientFrameListener::avatarDied( ){ - deathSequence_ = 3.0; - cameraMode_ = 0; - sector_->avatar()->setVisible( true ); - camera_->setPosition( sector_->avatar()->mainNode()->getPosition() + - sector_->avatar()->mainNode()->getOrientation().zAxis() * 200 ); +// void SectorClientFrameListener::avatarSpawn( ){ +// // SectorObjectAvatar *obj = sector_->createAvatar( network_->usernameMe() ); +// sector_->avatar()->mainNode()->setPosition( 0.0, 0.0, 0.0 ); +// sector_->avatar()->mainNode()->setOrientation( Ogre::Quaternion( 1.0, 0.0, 0.0, 0.0 ) ); +// sector_->avatar()->setVelocity( Ogre::Vector3( 0.0, 0.0, -20.0 ) ); +// sector_->avatar()->reset(); +// cameraMode_ = 1; +// sector_->avatar()->setVisible( false ); +// deathSequence_ = 0.0; +// hudOverlay_->show(); +// MessageShipRegister msg( 0, 0, sector_->avatar()->name(), sector_->avatar()->mainNode()->getPosition(), true ); +// network_->send( msg ); +// } + +// void SectorClientFrameListener::avatarDied( ){ +// deathSequence_ = 3.0; +// cameraMode_ = 0; +// sector_->avatar()->setVisible( true ); +// camera_->setPosition( sector_->avatar()->mainNode()->getPosition() + +// sector_->avatar()->mainNode()->getOrientation().zAxis() * 200 ); - camera_->setOrientation( sector_->avatar()->mainNode()->getOrientation() ); - hudOverlay_->hide(); - // sector_->destroyAvatar( ); -} +// camera_->setOrientation( sector_->avatar()->mainNode()->getOrientation() ); +// hudOverlay_->hide(); +// MessageShipRegister msg( 0, 0, sector_->avatar()->name(), sector_->avatar()->mainNode()->getPosition(), false ); +// network_->send( msg ); +// // sector_->destroyAvatar( ); +// } + bool SectorClientFrameListener::renderSpaceDust(){ const Ogre::Real maxDist = 250.0; Modified: branches/ogsector/src/SectorClientFrameListener.h =================================================================== --- branches/ogsector/src/SectorClientFrameListener.h 2007-03-28 21:50:26 UTC (rev 345) +++ branches/ogsector/src/SectorClientFrameListener.h 2007-04-01 18:01:19 UTC (rev 346) @@ -2,10 +2,10 @@ #define SECTORCLIENTFRAMELISTENER__H #include <Ogre.h> -#include <OgreKeyEvent.h> -#include <OgreEventListeners.h> -#include <OgreStringConverter.h> -#include <OgreException.h> +// #include <OgreKeyEvent.h> +// #include <OgreEventListeners.h> +// #include <OgreStringConverter.h> +// #include <OgreException.h> #include "InputManager.h"... [truncated message content] |
From: <ult...@us...> - 2007-03-28 21:50:39
|
Revision: 345 http://svn.sourceforge.net/opengate/?rev=345&view=rev Author: ultrasick Date: 2007-03-28 14:50:26 -0700 (Wed, 28 Mar 2007) Log Message: ----------- compressed the blender file and made the halo a little darker and smaller Modified Paths: -------------- trunk/data/logos/solrain/black background.png trunk/data/logos/solrain/original.blend trunk/data/logos/solrain/transparent background.png Modified: trunk/data/logos/solrain/black background.png =================================================================== (Binary files differ) Modified: trunk/data/logos/solrain/original.blend =================================================================== (Binary files differ) Modified: trunk/data/logos/solrain/transparent background.png =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ult...@us...> - 2007-03-28 21:41:52
|
Revision: 344 http://svn.sourceforge.net/opengate/?rev=344&view=rev Author: ultrasick Date: 2007-03-28 14:41:29 -0700 (Wed, 28 Mar 2007) Log Message: ----------- made the gas a little more visible Modified Paths: -------------- trunk/data/shields/alpaa.blend Modified: trunk/data/shields/alpaa.blend =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ult...@us...> - 2007-03-28 21:27:33
|
Revision: 343 http://svn.sourceforge.net/opengate/?rev=343&view=rev Author: ultrasick Date: 2007-03-28 14:25:55 -0700 (Wed, 28 Mar 2007) Log Message: ----------- changed rendering option from premul to key Modified Paths: -------------- trunk/data/logos/solrain/black background.png trunk/data/logos/solrain/original.blend trunk/data/logos/solrain/transparent background.png Modified: trunk/data/logos/solrain/black background.png =================================================================== (Binary files differ) Modified: trunk/data/logos/solrain/original.blend =================================================================== (Binary files differ) Modified: trunk/data/logos/solrain/transparent background.png =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ult...@us...> - 2007-03-22 19:01:46
|
Revision: 342 http://svn.sourceforge.net/opengate/?rev=342&view=rev Author: ultrasick Date: 2007-03-22 12:01:35 -0700 (Thu, 22 Mar 2007) Log Message: ----------- uploading the alpaa shield. Added Paths: ----------- trunk/data/shields/alpaa.blend Added: trunk/data/shields/alpaa.blend =================================================================== (Binary files differ) Property changes on: trunk/data/shields/alpaa.blend ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ult...@us...> - 2007-03-21 19:51:01
|
Revision: 341 http://svn.sourceforge.net/opengate/?rev=341&view=rev Author: ultrasick Date: 2007-03-21 12:50:57 -0700 (Wed, 21 Mar 2007) Log Message: ----------- uploaded the shelter shield Added Paths: ----------- trunk/data/shields/shelter.blend Added: trunk/data/shields/shelter.blend =================================================================== (Binary files differ) Property changes on: trunk/data/shields/shelter.blend ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ult...@us...> - 2007-03-21 17:23:57
|
Revision: 340 http://svn.sourceforge.net/opengate/?rev=340&view=rev Author: ultrasick Date: 2007-03-21 10:23:58 -0700 (Wed, 21 Mar 2007) Log Message: ----------- uploading the s-s-13 blender file again + 2 other shields. the kydango needs some manuell work after rendering. I noted the necessities in the blender file. Added Paths: ----------- trunk/data/shields/kydango.blend trunk/data/shields/pod.blend trunk/data/shields/s-s-13.blend Added: trunk/data/shields/kydango.blend =================================================================== (Binary files differ) Property changes on: trunk/data/shields/kydango.blend ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/data/shields/pod.blend =================================================================== (Binary files differ) Property changes on: trunk/data/shields/pod.blend ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/data/shields/s-s-13.blend =================================================================== (Binary files differ) Property changes on: trunk/data/shields/s-s-13.blend ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ult...@us...> - 2007-03-21 17:20:50
|
Revision: 339 http://svn.sourceforge.net/opengate/?rev=339&view=rev Author: ultrasick Date: 2007-03-21 10:20:46 -0700 (Wed, 21 Mar 2007) Log Message: ----------- switching file caption to lowercase, hang on, I will upload the s-s-13.blend in a second Removed Paths: ------------- trunk/data/shields/S-S-13.blend Deleted: trunk/data/shields/S-S-13.blend =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ult...@us...> - 2007-03-20 08:31:18
|
Revision: 338 http://svn.sourceforge.net/opengate/?rev=338&view=rev Author: ultrasick Date: 2007-03-20 01:31:18 -0700 (Tue, 20 Mar 2007) Log Message: ----------- uploaded the S-E-15 engine Added Paths: ----------- trunk/data/engines/s-e-15.blend Added: trunk/data/engines/s-e-15.blend =================================================================== (Binary files differ) Property changes on: trunk/data/engines/s-e-15.blend ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ult...@us...> - 2007-03-20 08:18:14
|
Revision: 337 http://svn.sourceforge.net/opengate/?rev=337&view=rev Author: ultrasick Date: 2007-03-20 01:18:12 -0700 (Tue, 20 Mar 2007) Log Message: ----------- money engine: added ambient occlusion, reduced file size to half, moved to the right directory Added Paths: ----------- trunk/data/engines/money.blend Removed Paths: ------------- trunk/data/engines/Money/ Added: trunk/data/engines/money.blend =================================================================== (Binary files differ) Property changes on: trunk/data/engines/money.blend ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ult...@us...> - 2007-03-19 21:54:34
|
Revision: 336 http://svn.sourceforge.net/opengate/?rev=336&view=rev Author: ultrasick Date: 2007-03-19 14:54:35 -0700 (Mon, 19 Mar 2007) Log Message: ----------- uploaded the flatiron and the himelea. the himelea probably needs some improvements. have a look at the picture in opacma Added Paths: ----------- trunk/data/shields/flatiron.blend trunk/data/shields/himelea.blend Added: trunk/data/shields/flatiron.blend =================================================================== (Binary files differ) Property changes on: trunk/data/shields/flatiron.blend ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/data/shields/himelea.blend =================================================================== (Binary files differ) Property changes on: trunk/data/shields/himelea.blend ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ult...@us...> - 2007-03-19 10:48:59
|
Revision: 335 http://svn.sourceforge.net/opengate/?rev=335&view=rev Author: ultrasick Date: 2007-03-19 03:31:40 -0700 (Mon, 19 Mar 2007) Log Message: ----------- uploaded the hall monitor and the S-R-9 Added Paths: ----------- trunk/data/radar/hall_monitor.blend trunk/data/radar/s-r-9.blend Added: trunk/data/radar/hall_monitor.blend =================================================================== (Binary files differ) Property changes on: trunk/data/radar/hall_monitor.blend ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/data/radar/s-r-9.blend =================================================================== (Binary files differ) Property changes on: trunk/data/radar/s-r-9.blend ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <spo...@us...> - 2007-03-19 03:12:42
|
Revision: 333 http://svn.sourceforge.net/opengate/?rev=333&view=rev Author: spom_spom Date: 2007-03-17 14:32:04 -0700 (Sat, 17 Mar 2007) Log Message: ----------- Modified Paths: -------------- branches/ogsector/Readme Added Paths: ----------- branches/ogsector/runClient.sh branches/ogsector/runServer.sh Modified: branches/ogsector/Readme =================================================================== --- branches/ogsector/Readme 2007-03-17 20:42:46 UTC (rev 332) +++ branches/ogsector/Readme 2007-03-17 21:32:04 UTC (rev 333) @@ -1,3 +1,8 @@ +Do not fly online!! +At test Nr.1 my router died 2 times. +Lost packets lead to crasy behaviour of the vessels. + + For installation: you will need: @@ -42,16 +47,11 @@ plugins.cfg ogre.cfg -resources.cfg +runClient.sh -src/ogsectorserver -src/ogsectorclient [username] [hostname] +./runClient.sh -as defaults: -username is set to 'testuser' -hostname is set to 'localhost' - You can test the openALsoundManager src/testopenalmanager Added: branches/ogsector/runClient.sh =================================================================== --- branches/ogsector/runClient.sh (rev 0) +++ branches/ogsector/runClient.sh 2007-03-17 21:32:04 UTC (rev 333) @@ -0,0 +1,9 @@ +#!/bin/bash + +USERNAME='player' + +HOSTNAME='localhost' + +export LD_LIBRARY_PATH=./externals/lib:$LD_LIBRARY_PATH + +./src/ogsectorclient $USERNAME $HOSTNAME Property changes on: branches/ogsector/runClient.sh ___________________________________________________________________ Name: svn:executable + * Added: branches/ogsector/runServer.sh =================================================================== --- branches/ogsector/runServer.sh (rev 0) +++ branches/ogsector/runServer.sh 2007-03-17 21:32:04 UTC (rev 333) @@ -0,0 +1,4 @@ +#!/bin/bash +export LD_LIBRARY_PATH=./externals/lib:$LD_LIBRARY_PATH + +./src/ogsectorserver Property changes on: branches/ogsector/runServer.sh ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <spo...@us...> - 2007-03-19 02:48:14
|
Revision: 327 http://svn.sourceforge.net/opengate/?rev=327&view=rev Author: spom_spom Date: 2007-03-17 12:44:27 -0700 (Sat, 17 Mar 2007) Log Message: ----------- Add ogsector: externals, data, sources Added Paths: ----------- branches/ogsector/Makefile.am branches/ogsector/Readme branches/ogsector/ToDo branches/ogsector/aclocal.m4 branches/ogsector/bootstrap branches/ogsector/config.h.in branches/ogsector/configure.ac branches/ogsector/data/ branches/ogsector/data/Bullet.png branches/ogsector/data/HUDCenter.png branches/ogsector/data/HUDTarget.png branches/ogsector/data/MediaFromOgre/ branches/ogsector/data/MediaFromOgre/Example.material branches/ogsector/data/MediaFromOgre/GreenSkin.jpg branches/ogsector/data/MediaFromOgre/Ogre.material branches/ogsector/data/MediaFromOgre/WeirdEye.png branches/ogsector/data/MediaFromOgre/dirt01.jpg branches/ogsector/data/MediaFromOgre/flare.png branches/ogsector/data/MediaFromOgre/flaretrail.png branches/ogsector/data/MediaFromOgre/fonts.zip branches/ogsector/data/MediaFromOgre/ogrehead.mesh branches/ogsector/data/MediaFromOgre/spacedust.particle branches/ogsector/data/MediaFromOgre/spheremap.png branches/ogsector/data/MousePointer.material branches/ogsector/data/MousePointer.overlay branches/ogsector/data/MousePointer.png branches/ogsector/data/ammo.material branches/ogsector/data/arrow.mesh branches/ogsector/data/povray/ branches/ogsector/data/povray/buildSkyBox.sh branches/ogsector/data/povray/skybox1.pov branches/ogsector/data/povray/skybox2.pov branches/ogsector/data/simpleHUD.material branches/ogsector/data/simpleHUD.overlay branches/ogsector/data/simpleSkybox.material branches/ogsector/data/simpleSkybox.zip branches/ogsector/data/sounds/ branches/ogsector/data/sounds/KAPOW2.WAV branches/ogsector/data/sounds/noo.wav branches/ogsector/data/sounds/readme branches/ogsector/data/sounds/test.wav branches/ogsector/data/sounds/test2.wav branches/ogsector/data/wings/ branches/ogsector/data/wings/arrow.wings branches/ogsector/depcomp branches/ogsector/externals/ branches/ogsector/externals/genExternals.sh branches/ogsector/externals/libgrapple branches/ogsector/externals/libgrapple-0.9.1/ branches/ogsector/externals/libgrapple-0.9.1/GRAPPLE.pc.in branches/ogsector/externals/libgrapple-0.9.1/LICENSE branches/ogsector/externals/libgrapple-0.9.1/Makefile.am branches/ogsector/externals/libgrapple-0.9.1/Makefile.in branches/ogsector/externals/libgrapple-0.9.1/README branches/ogsector/externals/libgrapple-0.9.1/README.lobby branches/ogsector/externals/libgrapple-0.9.1/UPDATES branches/ogsector/externals/libgrapple-0.9.1/autogen.sh branches/ogsector/externals/libgrapple-0.9.1/config.guess branches/ogsector/externals/libgrapple-0.9.1/config.sub branches/ogsector/externals/libgrapple-0.9.1/configure.in branches/ogsector/externals/libgrapple-0.9.1/depcomp branches/ogsector/externals/libgrapple-0.9.1/install-sh branches/ogsector/externals/libgrapple-0.9.1/m4/ branches/ogsector/externals/libgrapple-0.9.1/m4/acx_pthread.m4 branches/ogsector/externals/libgrapple-0.9.1/missing branches/ogsector/externals/libgrapple-0.9.1/src/ branches/ogsector/externals/libgrapple-0.9.1/src/Makefile.am branches/ogsector/externals/libgrapple-0.9.1/src/Makefile.in branches/ogsector/externals/libgrapple-0.9.1/src/dynstring.c branches/ogsector/externals/libgrapple-0.9.1/src/dynstring.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_callback.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_callback.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_callback_dispatcher.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_callback_dispatcher.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_callback_internal.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_client.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_client.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_client_internal.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_client_thread.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_client_thread.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_comms.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_comms.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_comms_api.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_comms_api.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_confirm.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_confirm.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_connection.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_connection.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_defines.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_enums.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_error.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_error.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_error_internal.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_failover.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_failover.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_group.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_group.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_internal.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_lobby.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_lobby.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_lobby_internal.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_lobbycallback.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_lobbycallback.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_lobbyclient.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_lobbyclient_thread.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_lobbyclient_thread.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_lobbyconnection.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_lobbyconnection.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_lobbygame.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_lobbygame.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_lobbymessage.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_lobbymessage.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_message.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_message.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_message_internal.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_protocols.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_queue.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_queue.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_server.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_server.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_server_internal.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_server_thread.c branches/ogsector/externals/libgrapple-0.9.1/src/grapple_server_thread.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_structs.h branches/ogsector/externals/libgrapple-0.9.1/src/grapple_types.h branches/ogsector/externals/libgrapple-0.9.1/src/prototypes.h branches/ogsector/externals/libgrapple-0.9.1/src/socket.c branches/ogsector/externals/libgrapple-0.9.1/src/socket.h branches/ogsector/externals/libgrapple-0.9.1/src/tools.c branches/ogsector/externals/libgrapple-0.9.1/src/tools.h branches/ogsector/externals/libgrapple-0.9.1/test/ branches/ogsector/externals/libgrapple-0.9.1/test/Makefile.am branches/ogsector/externals/libgrapple-0.9.1/test/Makefile.in branches/ogsector/externals/libgrapple-0.9.1/test/failovertest.c branches/ogsector/externals/libgrapple-0.9.1/test/lobbytest.c branches/ogsector/externals/libgrapple-0.9.1/test/test.c branches/ogsector/externals/libgrapple-0.9.1/test/test.h branches/ogsector/externals/libgrapple-0.9.1/test/udptest.c branches/ogsector/externals/libgrapple-0.9.1/test/unittest.c branches/ogsector/externals/ogreopcode/ branches/ogsector/externals/ogreopcode/docs/ branches/ogsector/externals/ogreopcode/docs/Nebula_license.txt branches/ogsector/externals/ogreopcode/docs/OgreOpcode_LGPL.txt branches/ogsector/externals/ogreopcode/docs/readme_linux branches/ogsector/externals/ogreopcode/scripts/ branches/ogsector/externals/ogreopcode/scripts/ogreopcode_SDK.cbp branches/ogsector/externals/ogreopcode/scripts/ogreopcode_SDK.workspace branches/ogsector/externals/ogreopcode/scripts/ogreopcode_vc8.sln branches/ogsector/externals/ogreopcode/scripts/ogreopcode_vc8.vcproj branches/ogsector/externals/ogreopcode/scripts/ogreopcode_vc8SDK.sln branches/ogsector/externals/ogreopcode/scripts/ogreopcode_vc8SDK.vcproj branches/ogsector/externals/ois branches/ogsector/externals/ois-1.0RC1/ branches/ogsector/externals/ois-1.0RC1/LinuxCB/ branches/ogsector/externals/ois-1.0RC1/LinuxCB/ActionMapOgreDemo.cbp branches/ogsector/externals/ois-1.0RC1/LinuxCB/ConsoleDemo.cbp branches/ogsector/externals/ois-1.0RC1/LinuxCB/LinuxOIS.workspace branches/ogsector/externals/ois-1.0RC1/LinuxCB/OIS.cbp branches/ogsector/externals/ois-1.0RC1/Mac/ branches/ogsector/externals/ois-1.0RC1/Mac/SDL/ branches/ogsector/externals/ois-1.0RC1/Mac/SDL/blank.keepme branches/ogsector/externals/ois-1.0RC1/Mac/XCode-1.5/ branches/ogsector/externals/ois-1.0RC1/Mac/XCode-1.5/oisStatic.xcode/ branches/ogsector/externals/ois-1.0RC1/Mac/XCode-1.5/oisStatic.xcode/project.pbxproj branches/ogsector/externals/ois-1.0RC1/Mac/XCode-2.2/ branches/ogsector/externals/ois-1.0RC1/Mac/XCode-2.2/oisStatic.xcodeproj/ branches/ogsector/externals/ois-1.0RC1/Mac/XCode-2.2/oisStatic.xcodeproj/project.pbxproj branches/ogsector/externals/ois-1.0RC1/Makefile.am branches/ogsector/externals/ois-1.0RC1/Makefile.in branches/ogsector/externals/ois-1.0RC1/OIS.pc.in branches/ogsector/externals/ois-1.0RC1/ReadMe.txt branches/ogsector/externals/ois-1.0RC1/Win32/ branches/ogsector/externals/ois-1.0RC1/Win32/CommandLine/ branches/ogsector/externals/ois-1.0RC1/Win32/CommandLine/CommandLine.cbp branches/ogsector/externals/ois-1.0RC1/Win32/CommandLine/CommandLine.rc branches/ogsector/externals/ois-1.0RC1/Win32/CommandLine/CommandLine.vcproj branches/ogsector/externals/ois-1.0RC1/Win32/CommandLine/CommandLine_vc8.vcproj branches/ogsector/externals/ois-1.0RC1/Win32/CommandLine/resource.h branches/ogsector/externals/ois-1.0RC1/Win32/DemoFFTest/ branches/ogsector/externals/ois-1.0RC1/Win32/DemoFFTest/DemoFFTest.cbp branches/ogsector/externals/ois-1.0RC1/Win32/DemoFFTest/DemoFFTest.vcproj branches/ogsector/externals/ois-1.0RC1/Win32/DemoFFTest/DemoFFTest_vc8.vcproj branches/ogsector/externals/ois-1.0RC1/Win32/DemoFFTest/FF.rc branches/ogsector/externals/ois-1.0RC1/Win32/DemoFFTest/resource.h branches/ogsector/externals/ois-1.0RC1/Win32/OIS.vcproj branches/ogsector/externals/ois-1.0RC1/Win32/OIS.workspace branches/ogsector/externals/ois-1.0RC1/Win32/OIS_vc8.vcproj branches/ogsector/externals/ois-1.0RC1/Win32/SDL/ branches/ogsector/externals/ois-1.0RC1/Win32/SDL/OIS_sdl_vc8.vcproj branches/ogsector/externals/ois-1.0RC1/Win32/SDL/SdlDemo/ branches/ogsector/externals/ois-1.0RC1/Win32/SDL/SdlDemo/SdlDemo.cpp branches/ogsector/externals/ois-1.0RC1/Win32/SDL/SdlDemo/SdlDemo.rc branches/ogsector/externals/ois-1.0RC1/Win32/SDL/SdlDemo/SdlDemo.vcproj branches/ogsector/externals/ois-1.0RC1/Win32/SDL/SdlDemo/resource.h branches/ogsector/externals/ois-1.0RC1/Win32/SDL/ois_sdl_vc8.sln branches/ogsector/externals/ois-1.0RC1/Win32/ois.cbp branches/ogsector/externals/ois-1.0RC1/Win32/ois.sln branches/ogsector/externals/ois-1.0RC1/Win32/ois_vc8.sln branches/ogsector/externals/ois-1.0RC1/acinclude.m4 branches/ogsector/externals/ois-1.0RC1/bootstrap branches/ogsector/externals/ois-1.0RC1/config.guess branches/ogsector/externals/ois-1.0RC1/config.sub branches/ogsector/externals/ois-1.0RC1/configure.ac branches/ogsector/externals/ois-1.0RC1/demos/ branches/ogsector/externals/ois-1.0RC1/demos/FFConsoleDemo.cpp branches/ogsector/externals/ois-1.0RC1/demos/Makefile.am branches/ogsector/externals/ois-1.0RC1/demos/Makefile.in branches/ogsector/externals/ois-1.0RC1/demos/OISConsole.cpp branches/ogsector/externals/ois-1.0RC1/depcomp branches/ogsector/externals/ois-1.0RC1/includes/ branches/ogsector/externals/ois-1.0RC1/includes/Doxyfile branches/ogsector/externals/ois-1.0RC1/includes/Makefile.am branches/ogsector/externals/ois-1.0RC1/includes/Makefile.in branches/ogsector/externals/ois-1.0RC1/includes/OIS.h branches/ogsector/externals/ois-1.0RC1/includes/OISConfig.h branches/ogsector/externals/ois-1.0RC1/includes/OISEffect.h branches/ogsector/externals/ois-1.0RC1/includes/OISEvents.h branches/ogsector/externals/ois-1.0RC1/includes/OISException.h branches/ogsector/externals/ois-1.0RC1/includes/OISForceFeedback.h branches/ogsector/externals/ois-1.0RC1/includes/OISInputManager.h branches/ogsector/externals/ois-1.0RC1/includes/OISInterface.h branches/ogsector/externals/ois-1.0RC1/includes/OISJoyStick.h branches/ogsector/externals/ois-1.0RC1/includes/OISKeyboard.h branches/ogsector/externals/ois-1.0RC1/includes/OISMouse.h branches/ogsector/externals/ois-1.0RC1/includes/OISObject.h branches/ogsector/externals/ois-1.0RC1/includes/OISPrereqs.h branches/ogsector/externals/ois-1.0RC1/includes/SDL/ branches/ogsector/externals/ois-1.0RC1/includes/SDL/SDLInputManager.h branches/ogsector/externals/ois-1.0RC1/includes/SDL/SDLJoyStick.h branches/ogsector/externals/ois-1.0RC1/includes/SDL/SDLKeyboard.h branches/ogsector/externals/ois-1.0RC1/includes/SDL/SDLMouse.h branches/ogsector/externals/ois-1.0RC1/includes/SDL/SDLPrereqs.h branches/ogsector/externals/ois-1.0RC1/includes/config.h.in branches/ogsector/externals/ois-1.0RC1/includes/linux/ branches/ogsector/externals/ois-1.0RC1/includes/linux/EventHelpers.h branches/ogsector/externals/ois-1.0RC1/includes/linux/LinuxForceFeedback.h branches/ogsector/externals/ois-1.0RC1/includes/linux/LinuxInputManager.h branches/ogsector/externals/ois-1.0RC1/includes/linux/LinuxJoyStick.h branches/ogsector/externals/ois-1.0RC1/includes/linux/LinuxJoyStickEvents.h branches/ogsector/externals/ois-1.0RC1/includes/linux/LinuxKeyboard.h branches/ogsector/externals/ois-1.0RC1/includes/linux/LinuxMouse.h branches/ogsector/externals/ois-1.0RC1/includes/linux/LinuxPrereqs.h branches/ogsector/externals/ois-1.0RC1/includes/mac/ branches/ogsector/externals/ois-1.0RC1/includes/mac/MacHelpers.h branches/ogsector/externals/ois-1.0RC1/includes/mac/MacInputManager.h branches/ogsector/externals/ois-1.0RC1/includes/mac/MacKeyboard.h branches/ogsector/externals/ois-1.0RC1/includes/mac/MacMouse.h branches/ogsector/externals/ois-1.0RC1/includes/mac/MacPrereqs.h branches/ogsector/externals/ois-1.0RC1/includes/win32/ branches/ogsector/externals/ois-1.0RC1/includes/win32/Win32ForceFeedback.h branches/ogsector/externals/ois-1.0RC1/includes/win32/Win32InputManager.h branches/ogsector/externals/ois-1.0RC1/includes/win32/Win32JoyStick.h branches/ogsector/externals/ois-1.0RC1/includes/win32/Win32KeyBoard.h branches/ogsector/externals/ois-1.0RC1/includes/win32/Win32Mouse.h branches/ogsector/externals/ois-1.0RC1/includes/win32/Win32Prereqs.h branches/ogsector/externals/ois-1.0RC1/install-sh branches/ogsector/externals/ois-1.0RC1/lib/ branches/ogsector/externals/ois-1.0RC1/lib/.keepme branches/ogsector/externals/ois-1.0RC1/ltmain.sh branches/ogsector/externals/ois-1.0RC1/missing branches/ogsector/externals/ois-1.0RC1/mkinstalldirs branches/ogsector/externals/ois-1.0RC1/src/ branches/ogsector/externals/ois-1.0RC1/src/Makefile.am branches/ogsector/externals/ois-1.0RC1/src/Makefile.in branches/ogsector/externals/ois-1.0RC1/src/OISEffect.cpp branches/ogsector/externals/ois-1.0RC1/src/OISForceFeedback.cpp branches/ogsector/externals/ois-1.0RC1/src/OISInputManager.cpp branches/ogsector/externals/ois-1.0RC1/src/OISJoyStick.cpp branches/ogsector/externals/ois-1.0RC1/src/OISKeyboard.cpp branches/ogsector/externals/ois-1.0RC1/src/OISObject.cpp branches/ogsector/externals/ois-1.0RC1/src/SDL/ branches/ogsector/externals/ois-1.0RC1/src/SDL/SDLInputManager.cpp branches/ogsector/externals/ois-1.0RC1/src/SDL/SDLJoyStick.cpp branches/ogsector/externals/ois-1.0RC1/src/SDL/SDLKeyboard.cpp branches/ogsector/externals/ois-1.0RC1/src/SDL/SDLMouse.cpp branches/ogsector/externals/ois-1.0RC1/src/linux/ branches/ogsector/externals/ois-1.0RC1/src/linux/EventHelpers.cpp branches/ogsector/externals/ois-1.0RC1/src/linux/LinuxForceFeedback.cpp branches/ogsector/externals/ois-1.0RC1/src/linux/LinuxInputManager.cpp branches/ogsector/externals/ois-1.0RC1/src/linux/LinuxJoyStickEvents.cpp branches/ogsector/externals/ois-1.0RC1/src/linux/LinuxKeyboard.cpp branches/ogsector/externals/ois-1.0RC1/src/linux/LinuxMouse.cpp branches/ogsector/externals/ois-1.0RC1/src/mac/ branches/ogsector/externals/ois-1.0RC1/src/mac/MacHelpers.cpp branches/ogsector/externals/ois-1.0RC1/src/mac/MacInputManager.cpp branches/ogsector/externals/ois-1.0RC1/src/mac/MacKeyboard.cpp branches/ogsector/externals/ois-1.0RC1/src/mac/MacMouse.cpp branches/ogsector/externals/ois-1.0RC1/src/win32/ branches/ogsector/externals/ois-1.0RC1/src/win32/Copy of Win32JoyStick.cpp branches/ogsector/externals/ois-1.0RC1/src/win32/Win32ForceFeedback.cpp branches/ogsector/externals/ois-1.0RC1/src/win32/Win32InputManager.cpp branches/ogsector/externals/ois-1.0RC1/src/win32/Win32JoyStick.cpp branches/ogsector/externals/ois-1.0RC1/src/win32/Win32KeyBoard.cpp branches/ogsector/externals/ois-1.0RC1/src/win32/Win32Mouse.cpp branches/ogsector/install-sh branches/ogsector/missing branches/ogsector/ogre.cfg branches/ogsector/plugins.cfg branches/ogsector/resources.cfg branches/ogsector/src/ branches/ogsector/src/InputManager.cpp branches/ogsector/src/InputManager.h branches/ogsector/src/Makefile.am branches/ogsector/src/Makefile.in branches/ogsector/src/Sector.cpp branches/ogsector/src/Sector.h branches/ogsector/src/SectorClient.cpp branches/ogsector/src/SectorClient.h branches/ogsector/src/SectorClientFrameListener.cpp branches/ogsector/src/SectorClientFrameListener.h branches/ogsector/src/SectorObjects.cpp branches/ogsector/src/SectorObjects.h branches/ogsector/src/common.h branches/ogsector/src/network.cpp branches/ogsector/src/network.h branches/ogsector/src/networkClient.cpp branches/ogsector/src/networkClient.h branches/ogsector/src/networkServer.cpp branches/ogsector/src/networkServer.h branches/ogsector/src/network_protocol.h branches/ogsector/src/ogsectorclient.cpp branches/ogsector/src/ogsectorserver.cpp branches/ogsector/src/openALSoundManager.cpp branches/ogsector/src/openALSoundManager.h branches/ogsector/src/testopenalmanager.cpp Added: branches/ogsector/Makefile.am =================================================================== --- branches/ogsector/Makefile.am (rev 0) +++ branches/ogsector/Makefile.am 2007-03-17 19:44:27 UTC (rev 327) @@ -0,0 +1,9 @@ +SUBDIRS = src + +distclean: maintainer-clean + rm -rf *~ + rm -rf autom4te.cache + rm -rf configure + rm -rf Makefile.in + rm -rf Ogre.log + rm -rf opcode.log Added: branches/ogsector/Readme =================================================================== --- branches/ogsector/Readme (rev 0) +++ branches/ogsector/Readme 2007-03-17 19:44:27 UTC (rev 327) @@ -0,0 +1,60 @@ +For installation: + +you will need: +Ogre-1.2 +>=freealut-1.0.1 + +Build externals (libgrapple, OIS, OgreOpode) + +cd ./externals +sh genExternals.sh all +cd .. + +You have to take care that your LD_LIBRARY_PATH knows the external libs +There are several ways to achive this: + +--create a personal lib path and link the libraries + + mkdir $(HOME)/lib + cd ~/lib + ln -s ../src/ogsector/externals/lib/libOIS-1.0.0.so + ln -s ../src/ogsector/externals/lib/libgrapple-1.0.so.0 + ln -s ../src/ogsector/externals/lib/libOpcode.so + ln -s ../src/ogsector/externals/lib/libOgreOpcode.so + + export LD_LIBRARY_PATH=$HOME/lib:$LD_LIBRARY_PATH: + +--or you can set the LD_LIBRARY_PATH to the external libs + + export LD_LIBRARY_PATH=$HOME/src/ogsector/externals/lib:$LD_LIBRARY_PATH + +--or you can link the libs to common know libpaths + +or ... + + +For building ogsector simple run: +./bootstrap +./configure +make -j3 + +For running the ogsectorclient you have to custumise: + +plugins.cfg +ogre.cfg +resources.cfg + +src/ogsectorserver +src/ogsectorclient [username] [hostname] + +as defaults: +username is set to 'testuser' +hostname is set to 'localhost' + + +You can test the openALsoundManager +src/testopenalmanager + +Enjoy this first technical proof of concept. + +Spom Added: branches/ogsector/ToDo =================================================================== --- branches/ogsector/ToDo (rev 0) +++ branches/ogsector/ToDo 2007-03-17 19:44:27 UTC (rev 327) @@ -0,0 +1,144 @@ +Das Fluggef\xFChl mit Joy oder Maus brauch noch finetuning aber prinzipiell kommt es schon vertraut vor. +Ein leerer und leichter Apty ist schon m\xE4chtig wendig. Mal schaun wie es mit einer 500er Titan TOW wird. + +Done: + +- Class: Sector + - enth\xE4llt alle Informationen des Sector (noMovable, movable und avatar) + - add/new/remove/update aller Objecte erfolgt \xFCber den Sector + +- Class: SectorClient (Verwaltung) + - HauptKlasse enth\xE4llt Sector und SectorCientFrameListener + +- Class: SectorObject + - movable Klasse, bekommt, prozentuale Drehbewegung und Schub und berechnet damit selbst das movement im Sector. Das Objekt hat graphische Eigenschaften damit es direkt dargestellt werden kann. + Das Objekt kann von aussen (Sektor) leicht gesteuert werden, (per Netcode, Ai oder Player). + Gibt man dem Framlistener eine camera mit Position des PlayerShip->mainNode hat man first persons view aus dem Schiff. + - jaw, pitch, roll + - Thrust, break, afterburner + - Thrusterpartikel support + +- InputManager supports key/mouse/joy + +- camera toggle + +- Testsector mit diversen Objekten + - 2 simple skyboxes without Stars (OpenGate/SimpleSkyBox1, OpenGate/SimpleSkyBox1) + +- Simplest HUD + - Position, + - Speed/MaxSpeed + - Acceleration + - Mousecurser + +- Simplest global chat + + +Questions: + - depends yaw/pitch/roll-factor on curr. speed/thrust (testing and implement) + - breaking fixed negtiv percentate thrust or fixed acc. (testing and implement) + +ToDo: + +- global/code + - cleaning / refaktoring + - integrate in currect OpenGate framework + - add licence header + - mark third persons thingies (mousecurser, skybox) +#ALT-TAB - free mousepointer from widget contents + - fullscreen switch (probably not supported by ogre) + - show Whos online +- chat + - console for input + - input/output highlight + - multiple out-lines + - log to file + - channeling + +- netcode + - communication: client->server->client + - cheatprotection + +- testsector + - show all shipmodels + - show all objects + - skybox with higher resolution + - stars + +- xml-read + - read playership data + - read nonmovable objects + - global config + +- openal +# - simplest testing + - soundmanger + +- input + - keymap + - mousemap + - joymap + - colihat -> inputmanager + - force feedback support +# - 1/r sensitivity +# - deathzone "nicyfy" + +- radar targeting +# - cam +# - toggle through + - toggle Astro/Stations/Friends/Enemies/All + - nearest Enemy/Friend + - last Enemy/Friend + +- HUD +# - targetarrow +# - target infos + - duellist + - bullseye/VCR (??) +# - flydirection arrow + - colorindex for break/AB/FF +# - shield/ammo + - selected rockets + +- moving + - flyindicator particle + +- fire! +# - partikel for ammo +# - object destroyed + - mesh for laser + +- collision detection +# - objects +# - fired partikel + +- station + - landing rings on the big ogrehead-mouth + +- ai +# - simple follow + - calculate fireing solution + - rockets + +For the talented: + - particle for thrust + - textures for laser, ammo + - animated textures for explosions + - animated textures shield hit indikator + - animated textures ammo hit indikator + - skyboxes with more content + - proper background sound + - sounds: ammo (fired/hit), explosion (sound in space!! "funny"), thruster + + +BUGS: +# - (linux)changing mousefocus by < Alt-TAB > lost key-repeat +# OIS disables autorepeat, fire `xset r on` to enable + - ogre always scale my skyboxes to 512x512 + +IDEAS: + - personal scanmission + - Spieler kann sich mit geeignetem Scanner eine eigene Datenbank von Astro erstellen die ingame abgerufen werden kann, f\xFCr jeden neuen Eintrag gibt es exp(nach Mission/Seltenheit/Gefahrenbereich) + - das erleichtert das Leben (kein Papierkram) und sorgt f\xFCr spielerentropie + + -Leuchtfeuer, manuel und als sectorobject \ No newline at end of file Added: branches/ogsector/aclocal.m4 =================================================================== --- branches/ogsector/aclocal.m4 (rev 0) +++ branches/ogsector/aclocal.m4 2007-03-17 19:44:27 UTC (rev 327) @@ -0,0 +1,1019 @@ +# generated automatically by aclocal 1.9.6 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# +# Copyright © 2004 Scott James Remnant <sc...@ne...>. +# +# 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 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi + +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# +# Similar to PKG_CHECK_MODULES, make sure that the first instance of +# this or PKG_CHECK_MODULES is called, or make sure to call +# PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_ifval([$2], [$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$PKG_CONFIG"; then + if test -n "$$1"; then + pkg_cv_[]$1="$$1" + else + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], + [pkg_failed=yes]) + fi +else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + ifelse([$4], , [AC_MSG_ERROR(dnl +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT +])], + [$4]) +elif test $pkg_failed = untried; then + ifelse([$4], , [AC_MSG_FAILURE(dnl +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.])], + [$4]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + ifelse([$3], , :, [$3]) +fi[]dnl +])# PKG_CHECK_MODULES + +# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION so it can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], + [AM_AUTOMAKE_VERSION([1.9.6])]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 7 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE]) +AC_SUBST([$1_FALSE]) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH]) +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 3 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # So let's grep whole file. + if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. +AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 12 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.58])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +# test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && + test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +]) +]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $1 | $1:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"$am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. +# +# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories +# created by `make install' are always world readable, even if the +# installer happens to have an overly restrictive umask (e.g. 077). +# This was a mistake. There are at least two reasons why we must not +# use `-m 0755': +# - it causes special bits like SGID to be ignored, +# - it may be too restrictive (some setups expect 775 directories). +# +# Do not use -m 0755 and let people choose whatever they expect by +# setting umask. +# +# We cannot accept any implementation of `mkdir' that recognizes `-p'. +# Some implementations (such as Solaris 8's) are not thread-safe: if a +# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' +# concurrently, both version can detect that a/ is missing, but only +# one can create it and the other will error out. Consequently we +# restrict ourselves to GNU make (using the --version option ensures +# this.) +AC_DEFUN([AM_PROG_MKDIR_P], +[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then + # We used to keeping the `.' as first argument, in order to + # allow $(mkdir_p) to be used without argument. As in + # $(mkdir_p) $(somedir) + # where $(somedir) is conditionally defined. However this is wrong + # for two reasons: + # 1. if the package is installed by a user who cannot write `.' + # make install will fail, + # 2. the above comment should most certainly read + # $(mkdir_p) $(DESTDIR)$(somedir) + # so it does not work when $(somedir) is undefined and + # $(DESTDIR) is not. + # To support the latter case, we have to write + # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), + # so the `.' trick is pointless. + mkdir_p='mkdir -p --' +else + # On NextStep and OpenStep, the `mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because `.' already + # exists. + for d in ./-p ./--version; + do + test -d $d && rmdir $d + done + # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. + if test -f "$ac_aux_dir/mkinstalldirs"; then + mkdir_p='$(mkinstalldirs)' + else + mkdir_p='$(install_sh) -d' + fi +fi +AC_SUBST([mkdir_p])]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `ma... [truncated message content] |
From: <spo...@us...> - 2007-03-19 02:20:13
|
Revision: 332 http://svn.sourceforge.net/opengate/?rev=332&view=rev Author: spom_spom Date: 2007-03-17 13:42:46 -0700 (Sat, 17 Mar 2007) Log Message: ----------- Modified Paths: -------------- branches/ogsector/externals/genExternals.sh branches/ogsector/src/SectorClientFrameListener.cpp Modified: branches/ogsector/externals/genExternals.sh =================================================================== --- branches/ogsector/externals/genExternals.sh 2007-03-17 20:13:14 UTC (rev 331) +++ branches/ogsector/externals/genExternals.sh 2007-03-17 20:42:46 UTC (rev 332) @@ -85,7 +85,8 @@ [ -f "Makefile" ] && make clean else make - ln -sf ../$OGREOPCODE/opcode132/libOpcode.so $INSTALLPATH/lib + [ -d "$INSTALLPATH/lib" ] || mkdir $INSTALLPATH/lib + ln -sf ../$OGREOPCODE/opcode132/libOpcode.so $INSTALLPATH/lib ln -sf ../$OGREOPCODE/opcode132/libOpcode.so.13 $INSTALLPATH/lib ln -sf ../$OGREOPCODE/opcode132/libOpcode.so.13.1 $INSTALLPATH/lib ln -sf ../$OGREOPCODE/src/libOgreOpcode.so.0.3 $INSTALLPATH/lib Modified: branches/ogsector/src/SectorClientFrameListener.cpp =================================================================== --- branches/ogsector/src/SectorClientFrameListener.cpp 2007-03-17 20:13:14 UTC (rev 331) +++ branches/ogsector/src/SectorClientFrameListener.cpp 2007-03-17 20:42:46 UTC (rev 332) @@ -128,7 +128,7 @@ //** capture my input inputManager_->capture(); - if ( timeSinceLastNetworkUpdate_ > 0.01 ){// max 100 net-updates/second + if ( timeSinceLastNetworkUpdate_ > 0.02 ){// max 100 net-updates/second std::vector < std::vector < Uint8 > > msgs; network_->pull( msgs ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <spo...@us...> - 2007-03-19 02:16:29
|
Revision: 331 http://svn.sourceforge.net/opengate/?rev=331&view=rev Author: spom_spom Date: 2007-03-17 13:13:14 -0700 (Sat, 17 Mar 2007) Log Message: ----------- Modified Paths: -------------- branches/ogsector/externals/ois-1.0RC1/Makefile.in branches/ogsector/resources.cfg Modified: branches/ogsector/externals/ois-1.0RC1/Makefile.in =================================================================== --- branches/ogsector/externals/ois-1.0RC1/Makefile.in 2007-03-17 20:10:28 UTC (rev 330) +++ branches/ogsector/externals/ois-1.0RC1/Makefile.in 2007-03-17 20:13:14 UTC (rev 331) @@ -160,7 +160,8 @@ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/configure Makefile.am \ OIS.pc.in acinclude.m4 aclocal.m4 config.guess config.sub \ - configure.ac depcomp install-sh ltmain.sh missing mkinstalldirs + configure configure.ac depcomp install-sh ltmain.sh missing \ + mkinstalldirs DIST_SUBDIRS = $(SUBDIRS) all: all-recursive Modified: branches/ogsector/resources.cfg =================================================================== --- branches/ogsector/resources.cfg 2007-03-17 20:10:28 UTC (rev 330) +++ branches/ogsector/resources.cfg 2007-03-17 20:13:14 UTC (rev 331) @@ -10,5 +10,5 @@ FileSystem=./data/MediaFromOgre Zip=./data/MediaFromOgre/fonts.zip -FileSystem=../trunk/data/ -FileSystem=../trunk/data/materials +FileSystem=../../trunk/data/ +FileSystem=../../trunk/data/materials This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ult...@us...> - 2007-03-19 01:18:28
|
Revision: 328 http://svn.sourceforge.net/opengate/?rev=328&view=rev Author: ultrasick Date: 2007-03-17 12:53:45 -0700 (Sat, 17 Mar 2007) Log Message: ----------- uploaded the s-s-13 shield Added Paths: ----------- trunk/data/shields/ trunk/data/shields/S-S-13.blend Added: trunk/data/shields/S-S-13.blend =================================================================== (Binary files differ) Property changes on: trunk/data/shields/S-S-13.blend ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <spo...@us...> - 2007-03-19 01:18:26
|
Revision: 330 http://svn.sourceforge.net/opengate/?rev=330&view=rev Author: spom_spom Date: 2007-03-17 13:10:28 -0700 (Sat, 17 Mar 2007) Log Message: ----------- Removed Paths: ------------- branches/ogsector/externals/ogreopcode/opcode132/libOpcode.so branches/ogsector/externals/ogreopcode/opcode132/libOpcode.so.13 branches/ogsector/externals/ogreopcode/opcode132/libOpcode.so.13.1 branches/ogsector/externals/ogreopcode/src/libOgreOpcode.so branches/ogsector/externals/ogreopcode/src/libOgreOpcode.so.0 branches/ogsector/externals/ogreopcode/src/libOgreOpcode.so.0.3 Deleted: branches/ogsector/externals/ogreopcode/opcode132/libOpcode.so =================================================================== --- branches/ogsector/externals/ogreopcode/opcode132/libOpcode.so 2007-03-17 20:08:40 UTC (rev 329) +++ branches/ogsector/externals/ogreopcode/opcode132/libOpcode.so 2007-03-17 20:10:28 UTC (rev 330) @@ -1 +0,0 @@ -link libOpcode.so.13 \ No newline at end of file Deleted: branches/ogsector/externals/ogreopcode/opcode132/libOpcode.so.13 =================================================================== --- branches/ogsector/externals/ogreopcode/opcode132/libOpcode.so.13 2007-03-17 20:08:40 UTC (rev 329) +++ branches/ogsector/externals/ogreopcode/opcode132/libOpcode.so.13 2007-03-17 20:10:28 UTC (rev 330) @@ -1 +0,0 @@ -link libOpcode.so.13.1 \ No newline at end of file Deleted: branches/ogsector/externals/ogreopcode/opcode132/libOpcode.so.13.1 =================================================================== (Binary files differ) Deleted: branches/ogsector/externals/ogreopcode/src/libOgreOpcode.so =================================================================== --- branches/ogsector/externals/ogreopcode/src/libOgreOpcode.so 2007-03-17 20:08:40 UTC (rev 329) +++ branches/ogsector/externals/ogreopcode/src/libOgreOpcode.so 2007-03-17 20:10:28 UTC (rev 330) @@ -1 +0,0 @@ -link libOgreOpcode.so.0 \ No newline at end of file Deleted: branches/ogsector/externals/ogreopcode/src/libOgreOpcode.so.0 =================================================================== --- branches/ogsector/externals/ogreopcode/src/libOgreOpcode.so.0 2007-03-17 20:08:40 UTC (rev 329) +++ branches/ogsector/externals/ogreopcode/src/libOgreOpcode.so.0 2007-03-17 20:10:28 UTC (rev 330) @@ -1 +0,0 @@ -link libOgreOpcode.so.0.3 \ No newline at end of file Deleted: branches/ogsector/externals/ogreopcode/src/libOgreOpcode.so.0.3 =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <spo...@us...> - 2007-03-19 01:18:00
|
Revision: 329 http://svn.sourceforge.net/opengate/?rev=329&view=rev Author: spom_spom Date: 2007-03-17 13:08:40 -0700 (Sat, 17 Mar 2007) Log Message: ----------- Added Paths: ----------- branches/ogsector/externals/ogreopcode/Makefile branches/ogsector/externals/ogreopcode/Makefile.global branches/ogsector/externals/ogreopcode/include/ branches/ogsector/externals/ogreopcode/include/BP_Endpoint.h branches/ogsector/externals/ogreopcode/include/BP_Proxy.h branches/ogsector/externals/ogreopcode/include/BP_Scene.h branches/ogsector/externals/ogreopcode/include/GEN_List.h branches/ogsector/externals/ogreopcode/include/IOgreCollisionShape.h branches/ogsector/externals/ogreopcode/include/OgreBoxCollisionShape.h branches/ogsector/externals/ogreopcode/include/OgreBroadPhase.h branches/ogsector/externals/ogreopcode/include/OgreCapsule.h branches/ogsector/externals/ogreopcode/include/OgreCollisionContext.h branches/ogsector/externals/ogreopcode/include/OgreCollisionManager.h branches/ogsector/externals/ogreopcode/include/OgreCollisionObject.h branches/ogsector/externals/ogreopcode/include/OgreCollisionReporter.h branches/ogsector/externals/ogreopcode/include/OgreCollisionTypes.h branches/ogsector/externals/ogreopcode/include/OgreEntityCollisionShape.h branches/ogsector/externals/ogreopcode/include/OgreMeshCollisionShape.h branches/ogsector/externals/ogreopcode/include/OgreNodes.h branches/ogsector/externals/ogreopcode/include/OgreOpcode.h branches/ogsector/externals/ogreopcode/include/OgreOpcodeDebugObject.h branches/ogsector/externals/ogreopcode/include/OgreOpcodeExports.h branches/ogsector/externals/ogreopcode/include/OgreOpcodeLine.h branches/ogsector/externals/ogreopcode/include/OgreOpcodeMath.h branches/ogsector/externals/ogreopcode/include/OgreOpcodeRay.h branches/ogsector/externals/ogreopcode/include/OgreOpcodeUtils.h branches/ogsector/externals/ogreopcode/include/OgreOrientedBox.h branches/ogsector/externals/ogreopcode/include/OgrePtrCollisionShape.h branches/ogsector/externals/ogreopcode/include/OgreSphereMeshCollisionShape.h branches/ogsector/externals/ogreopcode/include/OgreTerrainCollisionShape.h branches/ogsector/externals/ogreopcode/include/OgreTriangle.h branches/ogsector/externals/ogreopcode/opcode132/ branches/ogsector/externals/ogreopcode/opcode132/Ice/ branches/ogsector/externals/ogreopcode/opcode132/Ice/IceAABB.cpp branches/ogsector/externals/ogreopcode/opcode132/Ice/IceAABB.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceAxes.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceBoundingSphere.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceContainer.cpp branches/ogsector/externals/ogreopcode/opcode132/Ice/IceContainer.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceFPU.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceHPoint.cpp branches/ogsector/externals/ogreopcode/opcode132/Ice/IceHPoint.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceIndexedTriangle.cpp branches/ogsector/externals/ogreopcode/opcode132/Ice/IceIndexedTriangle.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceLSS.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceMatrix3x3.cpp branches/ogsector/externals/ogreopcode/opcode132/Ice/IceMatrix3x3.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceMatrix4x4.cpp branches/ogsector/externals/ogreopcode/opcode132/Ice/IceMatrix4x4.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceMemoryMacros.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceOBB.cpp branches/ogsector/externals/ogreopcode/opcode132/Ice/IceOBB.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IcePairs.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IcePlane.cpp branches/ogsector/externals/ogreopcode/opcode132/Ice/IcePlane.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IcePoint.cpp branches/ogsector/externals/ogreopcode/opcode132/Ice/IcePoint.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IcePreprocessor.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceRandom.cpp branches/ogsector/externals/ogreopcode/opcode132/Ice/IceRandom.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceRay.cpp branches/ogsector/externals/ogreopcode/opcode132/Ice/IceRay.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceRevisitedRadix.cpp branches/ogsector/externals/ogreopcode/opcode132/Ice/IceRevisitedRadix.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceSegment.cpp branches/ogsector/externals/ogreopcode/opcode132/Ice/IceSegment.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceTriList.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceTriangle.cpp branches/ogsector/externals/ogreopcode/opcode132/Ice/IceTriangle.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceTypes.h branches/ogsector/externals/ogreopcode/opcode132/Ice/IceUtils.cpp branches/ogsector/externals/ogreopcode/opcode132/Ice/IceUtils.h branches/ogsector/externals/ogreopcode/opcode132/Makefile branches/ogsector/externals/ogreopcode/opcode132/Makefile.am branches/ogsector/externals/ogreopcode/opcode132/OPC_AABBCollider.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_AABBCollider.h branches/ogsector/externals/ogreopcode/opcode132/OPC_AABBTree.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_AABBTree.h branches/ogsector/externals/ogreopcode/opcode132/OPC_BaseModel.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_BaseModel.h branches/ogsector/externals/ogreopcode/opcode132/OPC_BoxBoxOverlap.h branches/ogsector/externals/ogreopcode/opcode132/OPC_BoxPruning.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_BoxPruning.h branches/ogsector/externals/ogreopcode/opcode132/OPC_Collider.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_Collider.h branches/ogsector/externals/ogreopcode/opcode132/OPC_Common.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_Common.h branches/ogsector/externals/ogreopcode/opcode132/OPC_HybridModel.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_HybridModel.h branches/ogsector/externals/ogreopcode/opcode132/OPC_IceHook.h branches/ogsector/externals/ogreopcode/opcode132/OPC_LSSAABBOverlap.h branches/ogsector/externals/ogreopcode/opcode132/OPC_LSSCollider.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_LSSCollider.h branches/ogsector/externals/ogreopcode/opcode132/OPC_LSSTriOverlap.h branches/ogsector/externals/ogreopcode/opcode132/OPC_MeshInterface.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_MeshInterface.h branches/ogsector/externals/ogreopcode/opcode132/OPC_Model.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_Model.h branches/ogsector/externals/ogreopcode/opcode132/OPC_OBBCollider.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_OBBCollider.h branches/ogsector/externals/ogreopcode/opcode132/OPC_OptimizedTree.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_OptimizedTree.h branches/ogsector/externals/ogreopcode/opcode132/OPC_Picking.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_Picking.h branches/ogsector/externals/ogreopcode/opcode132/OPC_PlanesAABBOverlap.h branches/ogsector/externals/ogreopcode/opcode132/OPC_PlanesCollider.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_PlanesCollider.h branches/ogsector/externals/ogreopcode/opcode132/OPC_PlanesTriOverlap.h branches/ogsector/externals/ogreopcode/opcode132/OPC_RayAABBOverlap.h branches/ogsector/externals/ogreopcode/opcode132/OPC_RayCollider.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_RayCollider.h branches/ogsector/externals/ogreopcode/opcode132/OPC_RayTriOverlap.h branches/ogsector/externals/ogreopcode/opcode132/OPC_Settings.h branches/ogsector/externals/ogreopcode/opcode132/OPC_SphereAABBOverlap.h branches/ogsector/externals/ogreopcode/opcode132/OPC_SphereCollider.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_SphereCollider.h branches/ogsector/externals/ogreopcode/opcode132/OPC_SphereTriOverlap.h branches/ogsector/externals/ogreopcode/opcode132/OPC_SweepAndPrune.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_SweepAndPrune.h branches/ogsector/externals/ogreopcode/opcode132/OPC_TreeBuilders.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_TreeBuilders.h branches/ogsector/externals/ogreopcode/opcode132/OPC_TreeCollider.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_TreeCollider.h branches/ogsector/externals/ogreopcode/opcode132/OPC_TriBoxOverlap.h branches/ogsector/externals/ogreopcode/opcode132/OPC_TriTriOverlap.h branches/ogsector/externals/ogreopcode/opcode132/OPC_TriTriOverlapGilvan.h branches/ogsector/externals/ogreopcode/opcode132/OPC_VolumeCollider.cpp branches/ogsector/externals/ogreopcode/opcode132/OPC_VolumeCollider.h branches/ogsector/externals/ogreopcode/opcode132/Opcode.cpp branches/ogsector/externals/ogreopcode/opcode132/Opcode.h branches/ogsector/externals/ogreopcode/opcode132/Opcode_SDK.cbp branches/ogsector/externals/ogreopcode/opcode132/Opcode_vc70.vcproj branches/ogsector/externals/ogreopcode/opcode132/Opcode_vc71.vcproj branches/ogsector/externals/ogreopcode/opcode132/Opcode_vc8.vcproj branches/ogsector/externals/ogreopcode/opcode132/Opcode_vc8SDK.vcproj branches/ogsector/externals/ogreopcode/opcode132/ReadMe.txt branches/ogsector/externals/ogreopcode/opcode132/StdAfx.cpp branches/ogsector/externals/ogreopcode/opcode132/Stdafx.h branches/ogsector/externals/ogreopcode/opcode132/TemporalCoherence.txt branches/ogsector/externals/ogreopcode/opcode132/libOpcode.so branches/ogsector/externals/ogreopcode/opcode132/libOpcode.so.13 branches/ogsector/externals/ogreopcode/opcode132/libOpcode.so.13.1 branches/ogsector/externals/ogreopcode/opcode132/scales TODO.txt branches/ogsector/externals/ogreopcode/src/ branches/ogsector/externals/ogreopcode/src/BP_Endpoint.cpp branches/ogsector/externals/ogreopcode/src/BP_Proxy.cpp branches/ogsector/externals/ogreopcode/src/BP_Scene.cpp branches/ogsector/externals/ogreopcode/src/IOgreCollisionShape.cpp branches/ogsector/externals/ogreopcode/src/Makefile branches/ogsector/externals/ogreopcode/src/OgreBoxCollisionShape.cpp branches/ogsector/externals/ogreopcode/src/OgreCapsule.cpp branches/ogsector/externals/ogreopcode/src/OgreCollisionContext.cpp branches/ogsector/externals/ogreopcode/src/OgreCollisionManager.cpp branches/ogsector/externals/ogreopcode/src/OgreCollisionObject.cpp branches/ogsector/externals/ogreopcode/src/OgreEntityCollisionShape.cpp branches/ogsector/externals/ogreopcode/src/OgreMeshCollisionShape.cpp branches/ogsector/externals/ogreopcode/src/OgreOpcode.dox branches/ogsector/externals/ogreopcode/src/OgreOpcodeDebugObject.cpp branches/ogsector/externals/ogreopcode/src/OgreOpcodeLine.cpp branches/ogsector/externals/ogreopcode/src/OgreOpcodeMath.cpp branches/ogsector/externals/ogreopcode/src/OgreOpcodeRay.cpp branches/ogsector/externals/ogreopcode/src/OgreOrientedBox.cpp branches/ogsector/externals/ogreopcode/src/OgrePtrCollisionShape.cpp branches/ogsector/externals/ogreopcode/src/OgreSphereMeshCollisionShape.cpp branches/ogsector/externals/ogreopcode/src/OgreTerrainCollisionShape.cpp branches/ogsector/externals/ogreopcode/src/OgreTriangle.cpp branches/ogsector/externals/ogreopcode/src/libOgreOpcode.so branches/ogsector/externals/ogreopcode/src/libOgreOpcode.so.0 branches/ogsector/externals/ogreopcode/src/libOgreOpcode.so.0.3 Added: branches/ogsector/externals/ogreopcode/Makefile =================================================================== --- branches/ogsector/externals/ogreopcode/Makefile (rev 0) +++ branches/ogsector/externals/ogreopcode/Makefile 2007-03-17 20:08:40 UTC (rev 329) @@ -0,0 +1,45 @@ +include Makefile.global + +CFLAGS = -O2 -fPIC +INCLUDES = +LIBS = + +OPCODE_DIR = opcode132/ +OGREOPCODE_DIR = src/ +EXAMPLE_DIR = example/src/ + +.PHONY : all +all: opcode ogreopcode + +opcode: + $(MAKE) -C $(OPCODE_DIR) + +ogreopcode: opcode + $(MAKE) -C $(OGREOPCODE_DIR) + +example: ogreopcode + $(MAKE) -C $(EXAMPLE_DIR) + + +static: opcode_static ogreopcode_static + + +opcode_static: + $(MAKE) -C $(OPCODE_DIR) static + +ogreopcode_static: opcode_static + $(MAKE) -C $(OGREOPCODE_DIR) static + +example_static: ogreopcode_static + $(MAKE) -C $(EXAMPLE_DIR) static + + +.PHONY : clean +clean: + rm -f $(OPCODE_DIR)*.a \ + $(OPCODE_DIR)*.o \ + $(OPCODE_DIR)*.so* \ + $(OGREOPCODE_DIR)*.a \ + $(OGREOPCODE_DIR)*.o \ + $(OGREOPCODE_DIR)*.so* +# $(MAKE) -C $(EXAMPLE_DIR) clean Added: branches/ogsector/externals/ogreopcode/Makefile.global =================================================================== --- branches/ogsector/externals/ogreopcode/Makefile.global (rev 0) +++ branches/ogsector/externals/ogreopcode/Makefile.global 2007-03-17 20:08:40 UTC (rev 329) @@ -0,0 +1,7 @@ +CC = g++ + +OGRE_CFLAGS=`pkg-config OGRE --cflags` +OGRE_LIBS=`pkg-config OGRE --libs` +CEGUI_CFLAGS=`pkg-config CEGUI-OGRE --cflags` `pkg-config CEGUI --cflags` +CEGUI_LIBS=`pkg-config CEGUI-OGRE --libs` `pkg-config CEGUI --libs` + Added: branches/ogsector/externals/ogreopcode/include/BP_Endpoint.h =================================================================== --- branches/ogsector/externals/ogreopcode/include/BP_Endpoint.h (rev 0) +++ branches/ogsector/externals/ogreopcode/include/BP_Endpoint.h 2007-03-17 20:08:40 UTC (rev 329) @@ -0,0 +1,61 @@ +/* +* SOLID - Software Library for Interference Detection +* Copyright (c) 2001 Dtecta <gi...@dt...> +* +* All rights reserved. +*/ + +#ifndef BP_ENDPOINT_H +#define BP_ENDPOINT_H + +#include "GEN_List.h" +//#include "MT_Scalar.h" + +namespace OgreOpcode +{ + namespace Details + { + + class BP_Scene; + class BP_Proxy; + + typedef bool (*T_Overlap)(const BP_Proxy&, const BP_Proxy&); + + class BP_Endpoint : public GEN_Link { + public: + enum Type { MINIMUM, MAXIMUM }; + + BP_Endpoint() : m_proxy(0) {} + BP_Endpoint(Ogre::Real pos, Type type, BP_Proxy *proxy, + GEN_List& endpointList); + ~BP_Endpoint(); + + Ogre::Real getPos() const { return m_pos; } + void setPos(Ogre::Real pos) { m_pos = pos; } + + void move(Ogre::Real x, BP_Scene& scene, T_Overlap); + + friend void encounters(const BP_Endpoint& a, const BP_Endpoint& b, + BP_Scene& scene, T_Overlap overlap); + + friend bool operator<(const BP_Endpoint& a, const BP_Endpoint& b); + + private: + Ogre::Real m_pos; + Type m_type; + BP_Proxy *m_proxy; + + inline int MT_sign(Ogre::Real x) + { + return x < Ogre::Real(0.0) ? -1 : x > Ogre::Real(0.0) ? 1 : 0; + } + }; + + inline bool operator<(const BP_Endpoint& a, const BP_Endpoint& b) { + return a.m_pos < b.m_pos || (a.m_pos == b.m_pos && a.m_type < b.m_type); + } + + } +} + +#endif Added: branches/ogsector/externals/ogreopcode/include/BP_Proxy.h =================================================================== --- branches/ogsector/externals/ogreopcode/include/BP_Proxy.h (rev 0) +++ branches/ogsector/externals/ogreopcode/include/BP_Proxy.h 2007-03-17 20:08:40 UTC (rev 329) @@ -0,0 +1,50 @@ +/* +* SOLID - Software Library for Interference Detection +* Copyright (c) 2001 Dtecta <gi...@dt...> +* +* All rights reserved. +*/ + +#ifndef BP_PROXY_H +#define BP_PROXY_H + +#include "BP_Endpoint.h" +namespace OgreOpcode +{ + namespace Details + { + + class BP_Scene; + + class BP_Proxy { + public: + BP_Proxy(void *object, + BP_Scene& scene, + const Ogre::Vector3& min, + const Ogre::Vector3& max); + + void setBBox(const Ogre::Vector3& min, const Ogre::Vector3& max); + + void *getObject() { return m_object; } + + Ogre::Real getMin(int i) const { return m_min[i].getPos(); } + Ogre::Real getMax(int i) const { return m_max[i].getPos(); } + + private: + void *m_object; + BP_Scene& m_scene; + BP_Endpoint m_min[3]; + BP_Endpoint m_max[3]; + }; + + inline bool BP_overlap(const BP_Proxy& a, const BP_Proxy& b) + { + return a.getMin(0) <= b.getMax(0) && b.getMin(0) <= a.getMax(0) && + a.getMin(1) <= b.getMax(1) && b.getMin(1) <= a.getMax(1) && + a.getMin(2) <= b.getMax(2) && b.getMin(2) <= a.getMax(2); + } + + } +} + +#endif Added: branches/ogsector/externals/ogreopcode/include/BP_Scene.h =================================================================== --- branches/ogsector/externals/ogreopcode/include/BP_Scene.h (rev 0) +++ branches/ogsector/externals/ogreopcode/include/BP_Scene.h 2007-03-17 20:08:40 UTC (rev 329) @@ -0,0 +1,69 @@ +/* +* SOLID - Software Library for Interference Detection +* Copyright (c) 2001 Dtecta <gi...@dt...> +* +* All rights reserved. +*/ + +#ifndef BP_SCENE_H +#define BP_SCENE_H + +#include <vector> + +#include "OgreBroadPhase.h" +#include "GEN_List.h" +namespace OgreOpcode +{ + namespace Details + { + + class BP_Proxy; + class Ogre::Vector3; + + class BP_Scene { + public: + BP_Scene(void *client_data, + BP_Callback beginOverlap, + BP_Callback endOverlap) : + m_client_data(client_data), + m_beginOverlap(beginOverlap), + m_endOverlap(endOverlap) {} + + ~BP_Scene(); + + BP_Proxy *createProxy(void *object, + const Ogre::Vector3& min, + const Ogre::Vector3& max); + + void deleteProxy(BP_Proxy *proxy); + + void callBeginOverlap(void *object1, void *object2) { + m_beginOverlap(m_client_data, object1, object2); + } + + void callEndOverlap(void *object1, void *object2) { + m_endOverlap(m_client_data, object1, object2); + } + + GEN_List *getLists() { return m_endpointList; } + + private: + typedef std::vector<BP_Proxy *> T_ProxyList; + + void *m_client_data; + BP_Callback m_beginOverlap; + BP_Callback m_endOverlap; + T_ProxyList m_proxyList; + GEN_List m_endpointList[3]; + }; + } +} + +#endif + + + + + + + Added: branches/ogsector/externals/ogreopcode/include/GEN_List.h =================================================================== --- branches/ogsector/externals/ogreopcode/include/GEN_List.h (rev 0) +++ branches/ogsector/externals/ogreopcode/include/GEN_List.h 2007-03-17 20:08:40 UTC (rev 329) @@ -0,0 +1,117 @@ +/* +SOLID - Software Library for Interference Detection +Copyright (C) 1997-1998 Gino van den Bergen + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free +Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Please send remarks, questions and bug reports to gi...@wi..., +or write to: +Gino van den Bergen +Department of Mathematics and Computing Science +Eindhoven University of Technology +P.O. Box 513, 5600 MB Eindhoven, The Netherlands +*/ + +#ifndef GEN_LIST_H +#define GEN_LIST_H + +#include <Ogre.h> + +namespace OgreOpcode +{ + namespace Details + { + + class GEN_Link { + public: + GEN_Link() : m_next(0), m_prev(0) {} + GEN_Link(GEN_Link *next, GEN_Link *prev) : m_next(next), m_prev(prev) {} + + GEN_Link *getNext() const { return m_next; } + GEN_Link *getPrev() const { return m_prev; } + + bool isHead() const { return m_prev == 0; } + bool isTail() const { return m_next == 0; } + + void attachBefore(GEN_Link *link) { + m_next = link; + link->m_prev = this; + } + + void attachAfter(GEN_Link *link) { + m_prev = link; + link->m_next = this; + } + + void insertBefore(GEN_Link *link) { + attachAfter(link->m_prev); + attachBefore(link); + } + + void insertAfter(GEN_Link *link) { + attachBefore(link->m_next); + attachAfter(link); + } + + void remove() { + m_next->m_prev = m_prev; + m_prev->m_next = m_next; + m_next = m_prev = 0; + } + + private: + GEN_Link *m_next; + GEN_Link *m_prev; + }; + + + class GEN_List { + public: + GEN_List() : m_head(&m_tail, 0), m_tail(0, &m_head) {} + + GEN_Link *getHead() const { return m_head.getNext(); } + GEN_Link *getTail() const { return m_tail.getPrev(); } + + void clear() { m_head.attachBefore(&m_tail); } + + void addHead(GEN_Link *link) { link->insertAfter(&m_head); } + void addTail(GEN_Link *link) { link->insertBefore(&m_tail); } + + void appendHead(GEN_List& list) { + list.getTail()->attachBefore(getHead()); + list.getHead()->attachAfter(&m_head); + list.clear(); + } + + void appendTail(GEN_List& list) { + list.getHead()->attachAfter(getTail()); + list.getTail()->attachBefore(&m_tail); + list.clear(); + } + + bool isEmpty() const { return getHead()->isTail(); } + + private: + GEN_Link m_head; + GEN_Link m_tail; + }; + + } +} + +#endif + + + Added: branches/ogsector/externals/ogreopcode/include/IOgreCollisionShape.h =================================================================== --- branches/ogsector/externals/ogreopcode/include/IOgreCollisionShape.h (rev 0) +++ branches/ogsector/externals/ogreopcode/include/IOgreCollisionShape.h 2007-03-17 20:08:40 UTC (rev 329) @@ -0,0 +1,184 @@ +/////////////////////////////////////////////////////////////////////////////// +/// @file IOgreCollisionShape.h +/// @brief Abstract base class for collision shapes +/// +/// @author The OgreOpcode Team +/// +/////////////////////////////////////////////////////////////////////////////// +/// +/// This file is part of OgreOpcode. +/// +/// A lot of the code is based on the Nebula Opcode Collision module, see docs/Nebula_license.txt +/// +/// OgreOpcode is free software; you can redistribute it and/or +/// modify it under the terms of the GNU Lesser General Public +/// License as published by the Free Software Foundation; either +/// version 2.1 of the License, or (at your option) any later version. +/// +/// OgreOpcode is distributed in the hope that it will be useful, +/// but WITHOUT ANY WARRANTY; without even the implied warranty of +/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +/// Lesser General Public License for more details. +/// +/// You should have received a copy of the GNU Lesser General Public +/// License along with OgreOpcode; if not, write to the Free Software +/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +/// +/////////////////////////////////////////////////////////////////////////////// +#ifndef __IOgreCollisionShape_h__ +# define __IOgreCollisionShape_h__ + +#include "OgreOpcodeExports.h" +# include <Ogre.h> + +#include "OgreCollisionTypes.h" +#include "OgreOpcodeDebugObject.h" +#include "Opcode.h" + +namespace OgreOpcode +{ + class CollisionPair; + + /// Describes shapes for collision system. + /// Holds a triangle list describing a collision shape. + class _OgreOpcode_Export ICollisionShape + { + public: + /// Constructs a ICollisionShape + ICollisionShape(const Ogre::String& name); + virtual ~ICollisionShape(); + + /// visualize the collide shape + virtual void visualize(Details::OgreOpcodeDebugger* activeDebugger); + /// Clear visualization buffer + virtual void clearViz() + { + mDebugObject->clear(); + } + + virtual void setStatic(bool newstatic = true) + { + mShapeIsStatic = newstatic; + } + /// visualise OPCODE AABB tree + virtual void visualizeAABBs(Details::OgreOpcodeDebugger* activeDebugger); + /// return current center in world space + virtual Ogre::Vector3& getCenter(); + /// return current center in object space + virtual Ogre::Vector3& getLocalCenter(); + /// returns the name of the shape + virtual Ogre::String& getName(); + /// get radius of collide mesh + virtual Ogre::Real& getRadius(); + /// return the full transformation matrix + virtual Ogre::Matrix4 getFullTransform(void) const; + /// return the local transformation matrix + virtual Ogre::Matrix4& getLocalTransform(void) const; + /// + virtual void setTransform(const Ogre::Matrix4 newTransform); + /// returns the scenenode which this shape is attached to + virtual Ogre::SceneNode* getParentSceneNode(void) const; + + ///// returns the IceMaths::AABB used for pruning + //virtual IceMaths::AABB* getIceABB(void) const; + + /// is this shape a static? + virtual const bool isStatic() const + { + return mShapeIsStatic; + }; + + /// Retrieve current vertex data from mesh and refit collision tree. + /// This is an O(n) operation in the number of vertices in the mesh. + virtual bool refit() { return true; }; + /// return current world space AABB min and max + virtual void getMinMax(Ogre::Vector3& bMin, Ogre::Vector3& bMax) const; + /// return current object space AABB min and max + virtual void getLocalMinMax(Ogre::Vector3& bMin, Ogre::Vector3& bMax) const; + /// perform collision with other ICollisionShape + virtual bool collide(CollisionType collType, Ogre::Matrix4& ownMatrix, ICollisionShape* otherShape, Ogre::Matrix4& otherMatrix, CollisionPair& collPair); + /// perform collision with line + virtual bool rayCheck(CollisionType collType, const Ogre::Matrix4& ownMatrix, const Ogre::Ray& line, const Ogre::Real dist, CollisionPair& collPair, bool rayCulling); + /// perform a sphere check + virtual bool sphereCheck(CollisionType collType, const Ogre::Matrix4& ownMatrix, const Ogre::Sphere& ball, CollisionPair& collPair); + /// perform a swept sphere check + virtual bool sweptSphereCheck(CollisionType collType, const Ogre::Matrix4& ownMatrix, const Ogre::Vector3& position, const Ogre::Vector3& movementVector, const Ogre::Real& radius, CollisionPair& collPair); + /// get tri coords from tri index + virtual void getTriCoords(int index, Ogre::Vector3& v0, Ogre::Vector3& v1, Ogre::Vector3& v2); + + Opcode::Model opcModel; + + ///// calculate SAP AABB + //virtual void computeIceABB(); + + protected: + + /// has object been initialized? + virtual bool isInitialized(); + /// visualize the AABBTree of the opcode model + virtual void visualizeAABBCollisionNode(const Opcode::AABBCollisionNode* node); + /// visualize the AABBTree of the opcode model (for no leaf trees) + virtual void visualizeAABBNoLeafNode(const Opcode::AABBNoLeafNode* node); + /// prepare OPCODE parameters + virtual void _prepareOpcodeCreateParams(Opcode::OPCODECREATE& opcc); + /// calculates the shape radius + virtual void calculateSize(); + + Opcode::BVTCache* opcTreeCache; ///< + Opcode::CollisionFaces* opcFaceCache; ///< + Opcode::MeshInterface opcMeshAccess; ///< + int numVertices; ///< + int numFaces; ///< + float* mVertexBuf; ///< + int* mFaceBuf; ///< + Ogre::Real mRadius; ///< + Ogre::SceneNode* mParentNode; ///< + Ogre::String mName; ///< + bool mInitialized; ///< + bool mShapeIsStatic; ///< + bool mHasCostumTransform; ///< + bool mDoVisualizeAABBNodes; ///< + int refCount; ///< + mutable Ogre::Matrix4 mFullTransform; ///< + mutable Ogre::Matrix4 mLocalTransform; ///< + //IceMaths::AABB* mIceABB; ///< + Ogre::Vector3 mCenter; ///< + Ogre::Vector3 mLocalCenter; ///< + Details::OgreOpcodeDebugger* mActiveDebugger; + Ogre::ManualObject* mDebugObject; + }; + inline + bool + ICollisionShape::isInitialized() + { + return mInitialized; + } + + inline Ogre::SceneNode* ICollisionShape::getParentSceneNode(void) const + { + return mParentNode; + } + + inline + Ogre::Real& + ICollisionShape::getRadius() + { + return mRadius; + } + + /// Extract triangle coordinates from triangle index. + inline + void + ICollisionShape::getTriCoords(int index, Ogre::Vector3& v0, Ogre::Vector3& v1, Ogre::Vector3& v2) + { + int* indexPtr = &(mFaceBuf[3 * index]); + float* vp0 = &(mVertexBuf[3 * indexPtr[0]]); + float* vp1 = &(mVertexBuf[3 * indexPtr[1]]); + float* vp2 = &(mVertexBuf[3 * indexPtr[2]]); + v0 = Ogre::Vector3(vp0[0], vp0[1], vp0[2]); + v1 = Ogre::Vector3(vp1[0], vp1[1], vp1[2]); + v2 = Ogre::Vector3(vp2[0], vp2[1], vp2[2]); + } +}; // namespace OgreOpcode + +#endif // __IOgreCollisionShape_h__ Added: branches/ogsector/externals/ogreopcode/include/OgreBoxCollisionShape.h =================================================================== --- branches/ogsector/externals/ogreopcode/include/OgreBoxCollisionShape.h (rev 0) +++ branches/ogsector/externals/ogreopcode/include/OgreBoxCollisionShape.h 2007-03-17 20:08:40 UTC (rev 329) @@ -0,0 +1,72 @@ +/////////////////////////////////////////////////////////////////////////////// +/// @file OgreBoxCollisionShape.h +/// @brief <TODO: insert file description here> +/// +/// @author The OgreOpcode Team +/// +/////////////////////////////////////////////////////////////////////////////// +/// +/// This file is part of OgreOpcode. +/// +/// A lot of the code is based on the Nebula Opcode Collision module, see docs/Nebula_license.txt +/// +/// OgreOpcode is free software; you can redistribute it and/or +/// modify it under the terms of the GNU Lesser General Public +/// License as published by the Free Software Foundation; either +/// version 2.1 of the License, or (at your option) any later version. +/// +/// OgreOpcode is distributed in the hope that it will be useful, +/// but WITHOUT ANY WARRANTY; without even the implied warranty of +/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +/// Lesser General Public License for more details. +/// +/// You should have received a copy of the GNU Lesser General Public +/// License along with OgreOpcode; if not, write to the Free Software +/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +/// +/////////////////////////////////////////////////////////////////////////////// +#ifndef __OgreBoxCollisionShape_h__ +# define __OgreBoxCollisionShape_h__ + +#include "OgreOpcodeExports.h" +# include <Ogre.h> + +#include "IOgreCollisionShape.h" +#include "OgreCollisionTypes.h" +#include "OgreOpcodeDebugObject.h" +#include "Opcode.h" + +namespace OgreOpcode +{ + class CollisionPair; + + /// Describes shapes for collision system. + /// Holds a triangle list describing a collision shape. + /// One BoxCollisionShape object may be shared between several + /// CollisionObject%s. 2 BoxCollisionShape objects may also + /// be queried directly whether they intersect. + /// + /// BoxCollisionShape objects are also able to load themselves + /// from a mesh file. + class _OgreOpcode_Export BoxCollisionShape : public ICollisionShape + { + public: + /// Constructs a BoxCollisionShape + BoxCollisionShape(const Ogre::String& name); + virtual ~BoxCollisionShape(); + + /// load collide geometry from mesh, and build a collision tree + virtual bool load(Ogre::SceneNode* scnNode, int height, int width, int depth); + + protected: + virtual void _prepareOpcodeCreateParams(Opcode::OPCODECREATE& opcc); + + private: + /// prevent default construction + BoxCollisionShape(); + + }; + +}; // namespace OgreOpcode + +#endif // __OgreBoxCollisionShape_h__ Added: branches/ogsector/externals/ogreopcode/include/OgreBroadPhase.h =================================================================== --- branches/ogsector/externals/ogreopcode/include/OgreBroadPhase.h (rev 0) +++ branches/ogsector/externals/ogreopcode/include/OgreBroadPhase.h 2007-03-17 20:08:40 UTC (rev 329) @@ -0,0 +1,39 @@ +/////////////////////////////////////////////////////////////////////////////// +/// @file OgreTriangle.h +/// @brief This class represents a Triangle, which is composed by +/// +/// @author The OgreOpcode Team +/// +/////////////////////////////////////////////////////////////////////////////// +/// +/// This file is part of OgreOpcode. +/// +/// A lot of the code is based on the Nebula Opcode Collision module, see docs/Nebula_license.txt +/// +/// OgreOpcode is free software; you can redistribute it and/or +/// modify it under the terms of the GNU Lesser General Public +/// License as published by the Free Software Foundation; either +/// version 2.1 of the License, or (at your option) any later version. +/// +/// OgreOpcode is distributed in the hope that it will be useful, +/// but WITHOUT ANY WARRANTY; without even the implied warranty of +/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +/// Lesser General Public License for more details. +/// +/// You should have received a copy of the GNU Lesser General Public +/// License along with OgreOpcode; if not, write to the Free Software +/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +/// +/////////////////////////////////////////////////////////////////////////////// +#ifndef __OgreBroadPhase_h__ +#define __OgreBroadPhase_h__ + +namespace OgreOpcode +{ + namespace Details + { + typedef void (*BP_Callback)(void *client_data, void *object1, void *object2); + } +} + +#endif // __OgreBroadPhase_h__ Added: branches/ogsector/externals/ogreopcode/include/OgreCapsule.h =================================================================== --- branches/ogsector/externals/ogreopcode/include/OgreCapsule.h (rev 0) +++ branches/ogsector/externals/ogreopcode/include/OgreCapsule.h 2007-03-17 20:08:40 UTC (rev 329) @@ -0,0 +1,125 @@ +/////////////////////////////////////////////////////////////////////////////// +/// @file OgreCapsule.h +/// @brief This class represents a Capsule, which is defined by 2 endpoints and a radius. +/// You can interpret it as a sphere that is sweept along a line. +/// +/// @author The OgreOpcode Team +/// +/////////////////////////////////////////////////////////////////////////////// +/// +/// This file is part of OgreOpcode. +/// +/// A lot of the code is based on the Nebula Opcode Collision module, see docs/Nebula_license.txt +/// +/// OgreOpcode is free software; you can redistribute it and/or +/// modify it under the terms of the GNU Lesser General Public +/// License as published by the Free Software Foundation; either +/// version 2.1 of the License, or (at your option) any later version. +/// +/// OgreOpcode is distributed in the hope that it will be useful, +/// but WITHOUT ANY WARRANTY; without even the implied warranty of +/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +/// Lesser General Public License for more details. +/// +/// You should have received a copy of the GNU Lesser General Public +/// License along with OgreOpcode; if not, write to the Free Software +/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +/// +/////////////////////////////////////////////////////////////////////////////// +#ifndef __OgreOpcodeCapsule_h__ +#define __OgreOpcodeCapsule_h__ + +#include "OgreOpcodeLine.h" + +namespace OgreOpcode +{ + namespace Details + { + /// Represents a Capsule defined by 2 endpoints and a radius + /// TODO: add methods to this capsule. + class _OgreOpcode_Export Capsule + { + public: + + /** Default constructor: degenerated as an unitary sphere at origin + */ + Capsule():start(),end(),radius(1.0) + { + } + + /** Copy-constructor + */ + Capsule(const Capsule& c):start(c.start),end(c.end),radius(c.radius) + { + } + + /** Complete constructor + */ + Capsule(const Ogre::Vector3& s, const Ogre::Vector3& e, Ogre::Real r ):start(s),end(e),radius(r) + { + } + + /** Complete, headache constructor + */ + Capsule( Ogre::Real sx, Ogre::Real sy, Ogre::Real sz, + Ogre::Real ex, Ogre::Real ey, Ogre::Real ez, + Ogre::Real r + ):start(sx,sy,sz),end(ex,ey,ez),radius(r) + { + } + + /// Gets the length of this line segment + Ogre::Real length() const { return (start - end).length(); } + /// Gets the squared length of this line segment + Ogre::Real length2() const { return (start - end).squaredLength(); } + + /// Gets the surface area of this capsule + Ogre::Real area() const + { + return Ogre::Math::TWO_PI*radius*(2.0*radius + length() ); + } + + /// Gets the volume are this capsule + Ogre::Real volume() const + { + return Ogre::Math::PI*radius*radius*( 1.333333333333333*length() ); + } +// -------------------------------------------------------------------- +// intersection tests + + /** Does this capsule contain the given point? + */ + bool contains( const Ogre::Vector3& point ) const; + + /** Tests intersection between this capsule and the given Axis-Aligned + * Bounding Box + */ + bool intersects( const Aabb& aabb ) const; + + /** Tests intersection between this capsule and the given sphere + */ + bool intersects( const sphere& s ) const; + + /** Tests intersection between this capsule and the given Oriented Bounding Box + */ + bool intersects( const OrientedBox& obb ) const; + + /** Tests intersection between this capsule and the given one + */ + bool intersects( const Capsule& cap ) const; + + + /** The start point of this capsule. + */ + Ogre::Vector3 start; + /** The end point of this capsule. + */ + Ogre::Vector3 end; + /** The radius of this capsule. + */ + Ogre::Real radius; + }; + } +} + +#endif Added: branches/ogsector/externals/ogreopcode/include/OgreCollisionContext.h =================================================================== --- branches/ogsector/externals/ogreopcode/include/OgreCollisionContext.h (rev 0) +++ branches/ogsector/externals/ogreopcode/include/OgreCollisionContext.h 2007-03-17 20:08:40 UTC (rev 329) @@ -0,0 +1,203 @@ +/////////////////////////////////////////////////////////////////////////////// +/// @file OgreCollisionContext.h +/// @brief Contains the definition of the CollisionContext class. +/// +/// @author The OgreOpcode Team +/// +/////////////////////////////////////////////////////////////////////////////// +/// +/// This file is part of OgreOpcode. +/// +/// A lot of the code is based on the Nebula Opcode Collision module, see docs/Nebula_license.txt +/// +/// OgreOpcode is free software; you can redistribute it and/or +/// modify it under the terms of the GNU Lesser General Public +/// License as published by the Free Software Foundation; either +/// version 2.1 of the License, or (at your option) any later version. +/// +/// OgreOpcode is distributed in the hope that it will be useful, +/// but WITHOUT ANY WARRANTY; without even the implied warranty of +/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +/// Lesser General Public License for more details. +/// +/// You should have received a copy of the GNU Lesser General Public +/// License along with OgreOpcode; if not, write to the Free Software +/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +/// +/////////////////////////////////////////////////////////////////////////////// +#ifndef __OgreCollisionContext_h__ +#define __OgreCollisionContext_h__ + +#include <Ogre.h> +#include "OgreNodes.h" +#include "OgreCollisionReporter.h" +#include "OgreCollisionTypes.h" +#include "OgreOpcodeDebugObject.h" +//#include "BP_Scene.h" +#include <Opcode.h> + +namespace OgreOpcode +{ + class CollisionObject; + + namespace Details + { + typedef int CollisionClass; + + class BP_Scene; + + class Encounter + { + public: + CollisionObject* obj1; + CollisionObject* obj2; + + Encounter(CollisionObject* o1, CollisionObject* o2) + { + obj1 = o2; + obj2 = o1; + } + }; + + inline bool operator<(const Encounter& x, const Encounter& y) + { + return x.obj1 < y.obj1 || (!(y.obj1 < x.obj1) && x.obj2 < y.obj2); + } + + }; + + /// Defines a collision space. + /// A CollisionContext creates a collision context, defined by + /// a collection of CollisionObject%s which can collide with + /// each other. CollisionObject%s can be added and removed + /// from the context at any time. + // class _OgreOpcode_Export CollisionContext : public nNode + class _OgreOpcode_Export CollisionContext + { + public: + /// constructor + CollisionContext(const Ogre::String& name); + /// destructor + virtual ~CollisionContext(); + /// create a collide object + virtual CollisionObject *createObject(const Ogre::String& name); + /// kills a collide object + virtual void destroyObject(CollisionObject *collObj); + /// add collide object to context + virtual void addObject(CollisionObject *collObj); + /// remove collide object from context + virtual void removeObject(CollisionObject *collObj); + /// compute contacts between collision objects in context + virtual int collide(Ogre::Real dt=1.0); + /// debug visualization of the collide context + virtual void visualize(bool doVisualize, bool doRadii, bool doContacts, bool doBBs, bool doShapes, bool doAABBs); + /// get the collide reports for the collisions computed inside collide() + virtual int getCollisions(CollisionObject *collObj, CollisionPair **&cpPtr); + /// get reporter for for last collide() call. + const CollisionReporter& getCollisionReport(); + /// get reporter for for last Check...() call. + const CollisionReporter& getCheckReport(); + /// get number of collisions for last collide call. + const int getNumCollisions(); + /// do a "moving sphere" check against collide object radii in the context + virtual int sweptSphereCheck(const Ogre::Vector3& position, const Ogre::Vector3& translateVector, Ogre::Real radius, Details::CollisionClass collClass, CollisionPair **& cpPtr); + /// do a line-model check + virtual int rayCheck(const Ogre::Ray line, const Ogre::Real dist, CollisionType collType, Details::CollisionClass collClass, CollisionPair**& cpPtr); + /// do a sphere-model check + virtual int sphereCheck(const Ogre::Sphere& ball, CollisionType collType, Details::CollisionClass collClass, CollisionPair**& cpPtr); + /// reset position and timestamp of all objects + void reset(); + /// + void update(Ogre::Real dt=1.0); + + Details::BP_Scene* getBroadPhase() { return mBroadPhase; }; + /// + + virtual const Ogre::String& getName() { return mName; }; + + /// + virtual CollisionObject* getAttachedObject(Ogre::String name); + + /// + virtual const std::vector<CollisionObject*> getAttachedObjects() + { + return attached_list; + }; + + /// + virtual const std::list<CollisionObject*>& getPotentialColliders(const CollisionObject* collidee); + + /// + virtual const std::vector<CollisionObject*> getOwnedObjects() + { + return owned_list; + }; + + /// + virtual const int getAttachedObjectCount() + { + return static_cast< int >( attached_list.size() ); + } + + /// + virtual const int getOwnedObjectCount() + { + return static_cast< int >( owned_list.size() ); + } + + /// + virtual void setRayCulling(bool rayCulling = true) + { + mRayCulling = rayCulling; + } + + Details::OgreOpcodeDebugger* getVisualDebugger() + { + return mVisualDebugger; + } + + private: + + friend class CollisionObject; ///< + + static const int max_aabbs = 256; ///< + static const int maxnum_collisions = 4096; ///< + + CollisionReporter collideReportHandler; ///< collide reports for collide() + CollisionReporter checkReportHandler; ///< collide reports for Check() functions + + IceMaths::AABB* aabb_array[max_aabbs]; ///< + typedef std::multimap<int,CollisionObject*> CollObjAABBPairs;///< + typedef CollObjAABBPairs::const_iterator CollObjAABBPair_Iterator;///< + CollObjAABBPairs collAABB_pairs; ///< + Details::BP_Scene* mBroadPhase; ///< + typedef std::vector<CollisionObject*>::iterator rw_attached_list_iterator; ///< + typedef std::vector<CollisionObject*>::iterator rw_owned_list_iterator; ///< + typedef std::set<Details::Encounter> ProxList; + ProxList proxList; + + static void addPair(void *client_data, void *object1, void *object2) + { + ((ProxList *)client_data)->insert(Details::Encounter((CollisionObject*)object1, (CollisionObject*)object2)); + } + + static void removePair(void *client_data, void *object1, void *object2) + { + ((ProxList *)client_data)->erase(Details::Encounter((CollisionObject*)object1, (CollisionObject*)object2)); + } + + protected: + std::vector<CollisionObject*> owned_list; ///< list of CollisionObject%s created by this context + typedef std::vector<CollisionObject*>::const_iterator owned_list_iterator; ///< + std::vector<CollisionObject*> attached_list; ///< the list of objects currently attached to the context + typedef std::vector<CollisionObject*>::const_iterator attached_list_iterator; ///< + int unique_id; ///< + Ogre::String mName; ///< + bool mRayCulling; ///< + bool mIsSAPDirty; ///< + std::list<CollisionInfo> mRecentContactList; ///< + Details::OgreOpcodeDebugger* mVisualDebugger; ///< + }; +} + +#endif // __OgreCollisionContext_h__ Added: branches/ogsector/externals/ogreopcode/include/OgreCollisionManager.h =================================================================== --- branches/ogsector/externals/ogreopcode/include/OgreCollisionManager.h (rev 0) +++ branches/ogsector/externals/ogreopcode/include/OgreCollisionManager.h 2007-03-17 20:08:40 UTC (rev 329) @@ -0,0 +1,207 @@ +/////////////////////////////////////////////////////////////////////////////// +/// @file OgreCollisionManager.h +/// @brief Collision Manager +/// +/// @author The OgreOpcode Team +/// +/////////////////////////////////////////////////////////////////////////////// +/// +/// This file is part of OgreOpcode. +/// +/// A lot of the code is based on the Nebula Opcode Collision module, see docs/Nebula_license.txt +/// +/// OgreOpcode is free software; you can redistribute it and/or +/// modify it under the terms of the GNU Lesser General Public +/// License as published by the Free Software Foundation; either +/// version 2.1 of the License, or (at your option) any later version. +/// +/// OgreOpcode is distributed in the hope that it will be useful, +/// but WITHOUT ANY WARRANTY; without even the implied warranty of +/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +/// Lesser General Public License for more details. +/// +/// You should have received a copy of the GNU Lesser General Public +/// License along with OgreOpcode; if not, write to the Free Software +/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +/// +/////////////////////////////////////////////////////////////////////////////// +#ifndef __OgreCollisionManager_h__ +#define __OgreCollisionManager_h__ + +#include "OgreOpcodeExports.h" +#include <Ogre.h> +#include "OgreCollisionTypes.h" +#include "OgreNodes.h" +#include "OgreCollisionContext.h" +#include "Opcode.h" +#include "IOgreCollisionShape.h" + +#include <list> +#include <map> + +/// Main %OgreOpcode namespace +namespace OgreOpcode +{ + namespace Details + { + typedef int CollisionClass; + }; + + /// Shape types + enum ShapeType + { + SHAPETYPE_ENTITY = 0, ///< entity based shape + SHAPETYPE_MESH = 1, ///< mesh based shape + SHAPETYPE_PTR = 2, ///< raw ptr based shape + SHAPETYPE_BOX = 3, ///< box shape + SHAPETYPE_SPHERE = 4, ///< sphere shape + SHAPETYPE_CAPSULE = 5, ///< capsule shape + SHAPETYPE_TERRAIN = 6 ///< terrain shape + }; + + class MeshCollisionShape; + class EntityCollisionShape; + class BoxCollisionShape; + class SphereMeshCollisionShape; + class PtrCollisionShape; + class TerrainCollisionShape; + + /// Collision manager. + /// The CollisionManager object serves as factory object of the + /// different classes of the collision system, namely + /// CollisionContext and ICollisionShape. A CollisionContext + /// serves as factory for CollisionObject%s. + class _OgreOpcode_Export CollisionManager : public Ogre::Singleton<CollisionManager> + { + //friend class EntityCollisionShape; + public: + ///TODO: Put these back into the private section!! + Opcode::AABBTreeCollider opcTreeCollider; ///< + Opcode::RayCollider opcRayCollider; ///< + Opcode::SphereCollider opcSphereCollider; ///< + Opcode::PlanesCollider opcPlanesCollider; ///< + Opcode::LSSCollider opcSweptSphereCollider; ///< + Opcode::BVTCache opcTreeCache; ///< + Opcode::CollisionFaces opcFaceCache; ///< + Opcode::SphereCache opcSphereCache; ///< + Opcode::PlanesCache opcPlanesCache; ///< + Opcode::LSSCache opcSweptSphereCache; ///< + + CollisionManager(Ogre::SceneManager *); + virtual ~CollisionManager(); + + static CollisionManager& getSingleton(void); + static CollisionManager* getSingletonPtr(void); + + /// + CollisionContext *createContext(const Ogre::String&); + /// + void destroyContext(CollisionContext *); + + /// + MeshCollisionShape* createMeshCollisionShape(const Ogre::String&); + /// + EntityCollisionShape* createEntityCollisionShape(const Ogre::String&); + /// + BoxCollisionShape* createBoxCollisionShape(const Ogre::String&); + /// + SphereMeshCollisionShape* createSphereMeshCollisionShape(const Ogre::String&); + /// + PtrCollisionShape* createPtrCollisionShape(const Ogre::String&); + /// + TerrainCollisionShape* createTerrainCollisionShape(const Ogre::String&); + + /// + void destroyShape(ICollisionShape *); + + /// + void attachContext(CollisionContext *); + /// + void attachShape(ICollisionShape *); + /// + void detachContext(CollisionContext *); + /// + void detachShape(ICollisionShape *); + + /// + CollisionContext *getDefaultContext(void); + /// + CollisionContext *getContext(const Ogre::String& name); + /// + Ogre::SceneManager *getSceneManager(void); + /// + void setSceneManager(Ogre::SceneManager* newSceneMgr) + { + mSceneMgr = newSceneMgr; + } + + /// + const int getShapeCount() + { + return static_cast< int >( shape_list.size() ); + } + + // define collision classes and collision check relationships + /// + void addCollClass(const Ogre::String &); + /// + void addCollType(const Ogre::String&, const Ogre::String&, CollisionType); + /// + Details::CollisionClass queryCollClass(const Ogre::String&); + /// + CollisionType queryCollType(const Ogre::String&, const Ogre::String&); + /// + CollisionType queryCollType(Details::CollisionClass cc1, Details::CollisionClass cc2); + /// + Ogre::String getCollisionTypeEnum(CollisionType colltype); + + protected: + /// + ICollisionShape *createShape(const Ogre::String&, const ShapeType shpType = SHAPETYPE_MESH); + + int unique_id; ///< + typedef std::map<Ogre::String,CollisionContext*> ContextList;///< + typedef ContextList::const_iterator ContextIterator;///< + ContextList context_list;///< + + typedef HashMap<Ogre::String,ICollisionShape*> ShapeList;///< + // TODO: Do I own these shapes? Or do I pass the responsibility on? + ShapeList shape_list;///< + typedef ShapeList::const_iterator ShapeIterator;///< + + typedef std::map<Ogre::String, Details::CollisionClass> CollClassList;///< + CollClassList collclass_list;///< + typedef CollClassList::const_iterator CollClassIterator;///< + typedef std::map<int, CollisionType> CollTypeList;///< + CollTypeList colltype_table;///< + typedef CollTypeList::const_iterator CollTypeIterator;///< + + CollisionContext *default_context;///< + + Ogre::SceneManager *mSceneMgr;///< + /// + Ogre::String getResourceID(const Ogre::String&); + private: + + // Merge the 2 object id's into 1 32 bit id, + // order them, so that any combination of 2 id's + // results in the same merged id. Return true + // a swap happened (because other attributes + // may have to be swapped as well). + bool get_merged_id(int id1, int id2, int& mrg) + { + if (id1 > id2) + { + mrg = ((id2 & 0xffff)<<16) | (id1 & 0xffff); + return true; + } else + { + mrg = ((id1 & 0xffff)<<16) | (id2 & 0xffff); + return false; + } + }; + }; + +}; // namespace OgreOpcode + +#endif // __OgreCollisionManager_h__ Added: branches/ogsector/externals/ogreopcode/include/OgreCollisionObject.h =================================================================== --- branches/ogsector/externals/ogreopcode/include/OgreCollisionObject.h (rev 0) +++ branches/ogsector/externals/ogreopcode/include/OgreCollisionObject.h 2007-03-17 20:08:40 UTC (rev 329) @@ -0,0 +1,385 @@ +/////////////////////////////////////////////////////////////////////////////// +/// @file OgreCollisionObject.h +/// @brief <TODO: insert file description here> +/// +/// @author The OgreOpcode Team +/// +/////////////////////////////////////////////////////////////////////////////// +/// +/// This file is part of OgreOpcode. +/// +/// A lot of the code is based on the Nebula Opcode Collision module, see docs/Nebula_license.txt +/// +/// OgreOpcode is free software; you can redistribute it and/or +/// modify it under the terms of the GNU Lesser General Public +/// License as published by the Free Software Foundation; either +/// version 2.1 of the License, or (at your option) any later version. +/// +/// OgreOpcode is distributed in the hope that it will be useful, +/// but WITHOUT ANY WARRANTY; without even the implied warranty of +/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +/// Lesser General Public License for more details. +/// +/// You should have received a copy of the GNU Lesser General Public +/// License along with OgreOpcode; if not, write to the Free Software +/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +/// +/////////////////////////////////////////////////////////////////////////////// +#ifndef __OgreCollisionObject_h__ +#define __OgreCollisionObject_h__ + +#include <Ogre.h> +#include "OgreNodes.h" +#include "OgreCollisionManager.h" +#include "OgreCollisionContext.h" +#include "OgreOpcodeMath.h" + +namespace OgreOpcode +{ + class CollisionContext; + class CollisionPair; + + namespace Details + { + class BP_Proxy; + } + /// Collision system object. + /// CollisionObject is an actual collision system object which can + /// be positioned and oriented in space. It points to an + /// EntityCollisionShape which describes the actual shape of the + /// object. + /// CollisionObject%s are kept in sorted list (one for each dimension) + /// by the CollisionContext they belong to. + class _OgreOpcode_Export CollisionObject : public Ogre::Node::Listener + { + friend class CollisionContext; + + public: + CollisionObject(const Ogre::String& name) + : mContext(0), + mName(name), + mRadius(0.0f), + //old_center_offset(0,0,0), + //new_center_offset(0,0,0), + new_pos(0,0,0), + old_pos(0,0,0), + mShape(0), + coll_class(0), + m_tdelta(-1.0), + client_data(0), + is_attached(false), + num_colls(0), + old_matrix(Ogre::Matrix4::IDENTITY), + new_matrix(Ogre::Matrix4::IDENTITY), + mNeedsUpdating(true), + mForcedUpdate(true), + mProxy(0) + { + mRecentContactList.clear(); + }; + + virtual ~CollisionObject() + { + //remove_broadphase(); + getShape()->getParentSceneNode()->setListener(0); + } + + void setForcedUpdate(bool newupdate = true) + { + mForcedUpdate = newupdate; + }; + + /// <TODO: insert function description here> + /// @param [in, out] c CollisionContext * <TODO: insert parameter description here> + /// @return void <TODO: insert return value description here> + void setContext(CollisionContext *c) + { + // c may be 0!!! + mContext = c; + }; + + /// <TODO: insert function description here> + /// @return CollisionContext * <TODO: insert return value description here> + CollisionContext *getContext(void) + { + return mContext; + }; + + /// <TODO: insert function description here> + /// @param [in] i int <TODO: insert parameter description here> + /// @return void <TODO: insert return value description here> + void setId(int i) + { + id = i; + }; + + /// <TODO: insert function description here> + /// @return int <TODO: insert return value description here> + int getId(void) + { + return id; + }; + + Ogre::String getName() const + { + return mName; + }; + + /// <TODO: insert function description here> + /// @param [in] b bool <TODO: insert parameter description here> + /// @return void <TODO: insert return value description here> + void setAttached(bool b) + { + is_attached = b; + }; + + /// <TODO: insert function description here> + /// @return bool <TODO: insert return value description here> + bool isAttached(void) + { + return is_attached; + }; + + /// <TODO: insert function description here> + /// @param [in] f float <TODO: insert parameter description here> + /// @return void <TODO: insert return value description here> + void setRadius(float f) + { + mRadius = f; + }; + + /// <TODO: insert function description here> + /// @return float <TODO: insert return value description here> + float getRadius(void) + { + return mRadius; + }; + + /// <TODO: insert function description here> + /// @param [in, out] s EntityCollisionShape * <TODO: insert parameter description here> + /// @return void <TODO: insert return value description here> + void setShape(ICollisionShape *s) + { + mShape = s; + if (s) + { + setRadius(s->getRadius()); + getShape()->getParentSceneNode()->setListener(this); + } + else + { + setRadius(0.0f); + } + }; + + /// <TODO: insert function description here> + /// @return EntityCollisionShape * <TODO: insert return value description here> + ICollisionShape *getShape(void) + { + return mShape; + }; + + /// <TODO: insert function description here> + /// @param [in] cc CollisionClass <TODO: insert parameter description here> + /// @return void + void setCollClass(Details::CollisionClass cc) + { + coll_class = cc; + }; + + /// <TODO: insert function description here> + /// @param [in] ccstr registered CollisionClass string + /// @return void + void setCollClass(const char *ccstr) + { + coll_class = CollisionManager::getSingletonPtr()->queryCollClass(ccstr); + }; + + /// <TODO: insert function description here> + /// @return CollisionClass <TODO: insert return value description here> + Details::CollisionClass getCollClass(void) + { + return coll_class; + }; + + /// <TODO: insert function description here> + /// @param [in, out] d void * <TODO: insert parameter description here> + /// @return void <TODO: insert return value description here> + void setClientData(void *d) + { + client_data = d; + }; + + /// <TODO: insert function description here> + /// @return void * <TODO: insert return value description here> + void *getClientData(void) + { + return client_data; + }; + + /// <TODO: insert function description here> + /// @return const Matrix4 & <TODO: insert return value description here> + const Ogre::Matrix4& getTransform(void) + { + new_matrix = getShape()->getFullTransform(); + //getShape()->getEntity()->getSubEntity(0)->getWorldTransforms(&new_matrix); + return new_matrix; + }; + + /// <TODO: insert function description here> + /// @return const Matrix4 & <TODO: insert return value description here> + const Ogre::Matrix4& getPrevTransform(void) + { + return old_matrix; + }; + + /// Return the 'time' between the current and previous transforms + /// @return Real The elapsed 'time' (actually just whatever the user + /// told us it was when calling update()). Negative if no + /// update()'s have been performed since the last reset() + Ogre::Real getTimeDelta(void) + { + return m_tdelta; + }; + + /// <TODO: insert function description here> + /// @return void <TODO: insert return value description here> + void clearCollisions(void) + ... [truncated message content] |