From: <a-...@us...> - 2009-11-18 07:24:37
|
Revision: 102 http://simspark.svn.sourceforge.net/simspark/?rev=102&view=rev Author: a-held Date: 2009-11-18 07:24:29 +0000 (Wed, 18 Nov 2009) Log Message: ----------- bringing branch up to date Modified Paths: -------------- branches/multiphys/rcssserver3d/ChangeLog branches/multiphys/rcssserver3d/RELEASE branches/multiphys/spark/ChangeLog branches/multiphys/spark/RELEASE branches/multiphys/spark/lib/oxygen/CMakeLists.txt branches/multiphys/spark/lib/oxygen/oxygen.cpp branches/multiphys/spark/lib/oxygen/oxygen.h branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp branches/multiphys/spark/lib/oxygen/physicsserver/body.h branches/multiphys/spark/lib/oxygen/physicsserver/boxcollider.h branches/multiphys/spark/lib/oxygen/physicsserver/collider.h branches/multiphys/spark/lib/oxygen/physicsserver/collisionhandler.h branches/multiphys/spark/lib/oxygen/physicsserver/joint.h branches/multiphys/spark/lib/oxygen/physicsserver/physicsserver.h branches/multiphys/spark/lib/oxygen/physicsserver/space.h branches/multiphys/spark/lib/oxygen/physicsserver/world.cpp branches/multiphys/spark/lib/oxygen/physicsserver/world.h branches/multiphys/spark/lib/oxygen/physicsserver/world_c.cpp branches/multiphys/spark/lib/oxygen/simulationserver/agentcontrol.cpp branches/multiphys/spark/lib/oxygen/simulationserver/agentcontrol.h branches/multiphys/spark/lib/oxygen/simulationserver/netcontrol.cpp branches/multiphys/spark/lib/oxygen/simulationserver/simulationserver.cpp branches/multiphys/spark/lib/oxygen/simulationserver/simulationserver.h branches/multiphys/spark/plugin/collisionperceptor/forceresistanceperceptor.cpp branches/multiphys/spark/plugin/collisionperceptor/forceresistanceperceptor.h branches/multiphys/spark/utility/rcssnet/socket.cpp branches/multiphys/spark/utility/rcssnet/socket.hpp Added Paths: ----------- branches/multiphys/spark/lib/oxygen/physicsserver/imp/ branches/multiphys/spark/lib/oxygen/physicsserver/imp/worldimp.h branches/multiphys/spark/lib/oxygen/physicsserver/imp/worldimp_c.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject_c.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld_c.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odewrapper.h Removed Paths: ------------- branches/multiphys/spark/lib/oxygen/physicsserver/imp/worldimp.h branches/multiphys/spark/lib/oxygen/physicsserver/imp/worldimp_c.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject_c.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld_c.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odewrapper.h branches/multiphys/spark/lib/oxygen/physicsserver/odeobject.cpp branches/multiphys/spark/lib/oxygen/physicsserver/odeobject.h branches/multiphys/spark/lib/oxygen/physicsserver/odeobject_c.cpp branches/multiphys/spark/lib/oxygen/physicsserver/odewrapper.h Property Changed: ---------------- branches/multiphys/ Property changes on: branches/multiphys ___________________________________________________________________ Added: svn:mergeinfo + /trunk:95-101 Modified: branches/multiphys/rcssserver3d/ChangeLog =================================================================== --- branches/multiphys/rcssserver3d/ChangeLog 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/rcssserver3d/ChangeLog 2009-11-18 07:24:29 UTC (rev 102) @@ -1,3 +1,8 @@ +2009-10-31 Hedayat Vatankhah <he...@gr...> + + * RELEASE: + - write about changes sine 0.6.2, initial draft. + 2009-08-24 Marian Buchta <mar...@gm...> * CMakeLists.txt: Modified: branches/multiphys/rcssserver3d/RELEASE =================================================================== --- branches/multiphys/rcssserver3d/RELEASE 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/rcssserver3d/RELEASE 2009-11-18 07:24:29 UTC (rev 102) @@ -1,15 +1,10 @@ -RELEASE News of rcssserver3d-0.6.2 +RELEASE News of rcssserver3d-0.6.3 (In progress) -This release is mainly a bug-fix release, and is the last release before -RoboCup 2009 competitions. - -* Some improvements: - - improved Windows and MacOSX support - - improved external monitor - - fixed a bug in rcssserver3d's goal counting - - added right kick-off key to the monitor (Simon Raffeiner) - - simspark can take command line argument specifying the rb script to run - (using --script-path command line option) - +* Most notable changes: + - No internal monitor by default. Run rcssmonitor3d separately to see the game. + - Added HMDP effector/perceptor + - Some compilation fixes + - Improved Windows support + You can get the package on the Simspark page on SourceForge at http://sourceforge.net/projects/simspark/ Modified: branches/multiphys/spark/ChangeLog =================================================================== --- branches/multiphys/spark/ChangeLog 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/ChangeLog 2009-11-18 07:24:29 UTC (rev 102) @@ -1,3 +1,24 @@ +2009-10-31 Hedayat Vatankhah <he...@gr...> + + * lib/oxygen/simulationserver/simulationserver.h: + * lib/oxygen/simulationserver/simulationserver.cpp: + - prevent a deadlock case (on exit) in multi-threaded mode + + * lib/oxygen/simulationserver/agentcontrol.h: + * lib/oxygen/simulationserver/agentcontrol.cpp: + - send senses in SenseAgent method, so that they'll be sent after receiving + commands from the agents. this will ensure that any commands sent after + sending senses will be executed in the next cycle, which results in a + more deterministic behaviour + +2009-10-30 Hedayat Vatankhah <he...@gr...> + + * lib/oxygen/simulationserver/netcontrol.cpp (NetControl::InitSimulation): + - try to set REUSEADDR flag to reuse local addresses. + + * utility/rcssnet/socket.cpp (Socket::setReuseAddr): + - added the new function + 2009-08-25 Marian Buchta <mar...@gm...> * plugin/openglsyswx/CMakeLists.txt: Modified: branches/multiphys/spark/RELEASE =================================================================== --- branches/multiphys/spark/RELEASE 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/RELEASE 2009-11-18 07:24:29 UTC (rev 102) @@ -1,15 +1,17 @@ -RELEASE News of simspark-0.1.2 +RELEASE News of simspark-0.1.3 (in progress) -This release brings some bugfixes, better performance and also better Windows -support. A Windows installer will be available too. This is the first version -which runs in multi-threaded mode by default. The multi-threaded mode is still -in early stages, and it can be improved cosiderably in future. +SOME INTERESTING COMMENTS! Main changes of this release are: - - improved Windows support, including Windows Installer. - - Multi-threaded mode now works, and is the default mode when running simspark - - Performance improvements - - Fixed a bug in networking code, which were introduced in 0.1.1 + - Compilation fixes + - Improved Windows support + - Simspark should always accept connections. No more "Connection refused" + messages and the need to wait for simspark's network port to be freed! + - Simspark will now collect received commands right before sending + sense data of the last cycle. So, any commands which is sent by agents + after receiving new sense data will be executed in the next cycle, not the + current one. This results in a more deterministic behavior, and agents' + efficiency should not change between remote and local runs considerably. You can get the package on the Simspark page on SourceForge at http://sourceforge.net/projects/simspark/ Modified: branches/multiphys/spark/lib/oxygen/CMakeLists.txt =================================================================== --- branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2009-11-18 07:24:29 UTC (rev 102) @@ -21,8 +21,6 @@ physicsserver/collider.h physicsserver/collisionhandler.h physicsserver/contactjointhandler.h - physicsserver/odeobject.h - physicsserver/odewrapper.h physicsserver/physicsserver.h physicsserver/planecollider.h physicsserver/raycollider.h @@ -41,6 +39,15 @@ physicsserver/universaljoint.h physicsserver/hinge2joint.h physicsserver/angularmotor.h + + #interfaces + physicsserver/imp/worldimp.h + + #ode-specific files + physicsserver/ode/odeobject.h + physicsserver/ode/odeworld.h + physicsserver/ode/odewrapper.h + sceneserver/sceneimporter.h sceneserver/basenode.h sceneserver/fpscontroller.h @@ -116,8 +123,6 @@ physicsserver/collisionhandler_c.cpp physicsserver/contactjointhandler.cpp physicsserver/contactjointhandler_c.cpp - physicsserver/odeobject.cpp - physicsserver/odeobject_c.cpp physicsserver/physicsserver.cpp physicsserver/physicsserver_c.cpp physicsserver/planecollider.cpp @@ -152,6 +157,16 @@ physicsserver/hinge2joint_c.cpp physicsserver/angularmotor.cpp physicsserver/angularmotor_c.cpp + + #interfaces + physicsserver/imp/worldimp_c.cpp + + #ODE-specific files + physicsserver/ode/odeworld.cpp + physicsserver/ode/odeworld_c.cpp + physicsserver/ode/odeobject.cpp + physicsserver/ode/odeobject_c.cpp + sceneserver/basenode.cpp sceneserver/basenode_c.cpp sceneserver/fpscontroller.cpp Modified: branches/multiphys/spark/lib/oxygen/oxygen.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/oxygen.cpp 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/oxygen.cpp 2009-11-18 07:24:29 UTC (rev 102) @@ -57,9 +57,9 @@ zg.GetCore()->RegisterClassObject(new CLASS(BodyController), "oxygen/"); zg.GetCore()->RegisterClassObject(new CLASS(DragController), "oxygen/"); zg.GetCore()->RegisterClassObject(new CLASS(VelocityController), "oxygen/"); - zg.GetCore()->RegisterClassObject(new CLASS(ODEObject), "oxygen/"); zg.GetCore()->RegisterClassObject(new CLASS(Space), "oxygen/"); zg.GetCore()->RegisterClassObject(new CLASS(World), "oxygen/"); + zg.GetCore()->RegisterClassObject(new CLASS(WorldImp), "oxygen/"); zg.GetCore()->RegisterClassObject(new CLASS(Joint), "oxygen/"); zg.GetCore()->RegisterClassObject(new CLASS(BallJoint), "oxygen/"); zg.GetCore()->RegisterClassObject(new CLASS(HingeJoint), "oxygen/"); @@ -86,6 +86,11 @@ zg.GetCore()->RegisterClassObject(new CLASS(AgentAspect), "oxygen/"); zg.GetCore()->RegisterClassObject(new CLASS(Effector), "oxygen/"); zg.GetCore()->RegisterClassObject(new CLASS(Perceptor), "oxygen/"); + + //ODE-specific classes + zg.GetCore()->RegisterClassObject(new CLASS(ODEObject), "oxygen/"); + zg.GetCore()->RegisterClassObject(new CLASS(ODEWorld), "oxygen/"); + #ifdef HAVE_SPADES_HEADERS // spades Modified: branches/multiphys/spark/lib/oxygen/oxygen.h =================================================================== --- branches/multiphys/spark/lib/oxygen/oxygen.h 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/oxygen.h 2009-11-18 07:24:29 UTC (rev 102) @@ -34,6 +34,7 @@ #include "gamecontrolserver/actionobject.h" #include "gamecontrolserver/behavior.h" +//abstract physics classes #include "physicsserver/body.h" #include "physicsserver/bodycontroller.h" #include "physicsserver/dragcontroller.h" @@ -42,7 +43,6 @@ #include "physicsserver/boxcollider.h" #include "physicsserver/ccylindercollider.h" #include "physicsserver/collider.h" -#include "physicsserver/odeobject.h" #include "physicsserver/physicsserver.h" #include "physicsserver/planecollider.h" #include "physicsserver/raycollider.h" @@ -60,6 +60,13 @@ #include "physicsserver/universaljoint.h" #include "physicsserver/hinge2joint.h" +//physics interfaces +#include "physicsserver/imp/worldimp.h" + +//ode-specific includes +#include <oxygen/physicsserver/ode/odeobject.h> +#include <oxygen/physicsserver/ode/odeworld.h> + #include "sceneserver/basenode.h" #include "sceneserver/camera.h" #include "sceneserver/fpscontroller.h" Modified: branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp 2009-11-18 07:24:29 UTC (rev 102) @@ -339,7 +339,7 @@ // direction: (1=x, 2=y, 3=z) int direction = 3; - dMassSetCappedCylinder (&mass, density, direction, radius, length); + dMassSetCapsule (&mass, density, direction, radius, length); } void Body::SetCappedCylinder (float density, float radius, float length) @@ -361,7 +361,7 @@ // direction: (1=x, 2=y, 3=z) int direction = 3; - dMassSetCappedCylinderTotal(&mass, total_mass, direction, radius, length); + dMassSetCapsuleTotal(&mass, total_mass, direction, radius, length); } void Body::SetCappedCylinderTotal(float total_mass, float radius, float length) Modified: branches/multiphys/spark/lib/oxygen/physicsserver/body.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/body.h 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/physicsserver/body.h 2009-11-18 07:24:29 UTC (rev 102) @@ -23,7 +23,7 @@ #define OXYGEN_BODY_H #include <oxygen/oxygen_defines.h> -#include "odeobject.h" +#include <oxygen/physicsserver/ode/odeobject.h> namespace oxygen { Modified: branches/multiphys/spark/lib/oxygen/physicsserver/boxcollider.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/boxcollider.h 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/physicsserver/boxcollider.h 2009-11-18 07:24:29 UTC (rev 102) @@ -23,7 +23,7 @@ #define OXYGEN_BOXCOLLIDER_H #include <oxygen/oxygen_defines.h> -#include "collider.h" +#include <oxygen/physicsserver/collider.h> namespace oxygen { Modified: branches/multiphys/spark/lib/oxygen/physicsserver/collider.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/collider.h 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/physicsserver/collider.h 2009-11-18 07:24:29 UTC (rev 102) @@ -22,7 +22,7 @@ #ifndef OXYGEN_COLLIDER_H #define OXYGEN_COLLIDER_H -#include "odeobject.h" +#include <oxygen/physicsserver/ode/odeobject.h> #include <string> #include <set> #include <oxygen/oxygen_defines.h> Modified: branches/multiphys/spark/lib/oxygen/physicsserver/collisionhandler.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/collisionhandler.h 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/physicsserver/collisionhandler.h 2009-11-18 07:24:29 UTC (rev 102) @@ -24,7 +24,7 @@ #include <oxygen/sceneserver/basenode.h> #include <oxygen/oxygen_defines.h> -#include "odewrapper.h" +#include <oxygen/physicsserver/ode/odewrapper.h> namespace oxygen { Deleted: branches/multiphys/spark/lib/oxygen/physicsserver/imp/worldimp.h =================================================================== --- trunk/spark/lib/oxygen/physicsserver/imp/worldimp.h 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/physicsserver/imp/worldimp.h 2009-11-18 07:24:29 UTC (rev 102) @@ -1,116 +0,0 @@ -/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- - - this file is part of rcssserver3D - Fri May 9 2003 - Copyright (C) 2002,2003 Koblenz University - Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group - $Id: world.h 56 2009-03-17 18:03:47Z hedayat $ - - 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; version 2 of the License. - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ -#ifndef OXYGEN_WORLDIMP_H -#define OXYGEN_WORLDIMP_H - -#include <oxygen/oxygen_defines.h> -#include <oxygen/physicsserver/ode/odeobject.h> - -namespace oxygen -{ - -/** World encapsulates an ODE world object. It is a container for - rigid bodies and joints. Objects in different worlds can not - interact, for example rigid bodies from two different worlds can - not collide. All the objects in a world exist at the same point in - time, thus one reason to use separate worlds is to simulate - systems at different rates. -*/ -class OXYGEN_API WorldImp : public ODEObject -{ - // - // Functions - // -public: - WorldImp() : ODEObject(){}; - virtual ~WorldImp(){}; - - /** returns the ID of the managed ODE world */ - virtual dWorldID GetODEWorldImp() const = 0; - - /** sets the gravity vector of this vorld */ - virtual void SetGravityImp(const salt::Vector3f& gravity) = 0; - - /** gets the gravity vector of this world */ - virtual salt::Vector3f GetGravityImp() const = 0; - - /** sets the Error Reduction Parameter of this world. The ERP - specifies what proportion of a joint error will be fixed - during the next simulation step. if ERP=0 then no correcting - force is applied and the bodies will eventually drift apart as - the simulation proceeds. If ERP=1 then the simulation will - attempt to fix all joint error during the next time - step. However, setting ERP=1 is not recommended, as the joint - error will not be completely fixed due to various internal - approximations. A value of ERP=0.1 to 0.8 is recommended (0.2 - is the default). - */ - virtual void SetERPImp(float erp) = 0; - - /** returns the Error Reduction Parameter of this World. - */ - virtual float GetERPImp() const = 0; - - /** sets the Constraint Force mixing (CFM) value. If CFM is set to - zero, the constraint will be hard. If CFM is set to a positive - value, it will be possible to violate the constraint by - `pushing on it' (for example, for contact constraints by - forcing the two contacting objects together). In other words - the constraint will be soft, and the softness will increase as - CFM increases. Note that setting CFM to a negative value can - have undesirable bad effects, such as instability. - */ - virtual void SetCFMImp(float cfm) = 0; - - /** returns the Constraint Force mixing (CFM) value. */ - virtual float GetCFMImp() const = 0; - - /** steps the world deltatime forward, i.e. performs physics - simulation for a deltaTime seconds interval. - */ - virtual void StepImp(float deltaTime) = 0; - - virtual bool GetAutoDisableFlagImp() const = 0; - virtual void SetAutoDisableFlagImp(bool flag) = 0; - - /** Set and get the depth of the surface layer around all geometry - objects. Contacts are allowed to sink into the surface layer up to - the given depth before coming to rest. The default value is - zero. Increasing this to some small value (e.g. 0.001) can help - prevent jittering problems due to contacts being repeatedly made - and broken. - */ - virtual void SetContactSurfaceLayerImp(float depth) = 0; - virtual float GetContactSurfaceLayerImp() const = 0; - - /** destroy the managed ODE object */ - virtual void DestroyODEObjectImp() = 0; - - /** creates them managed ODE world */ - virtual bool ConstructInternalImp() = 0; -}; - -DECLARE_ABSTRACTCLASS(WorldImp); - -} - -#endif //OXYGEN_WORLDIMP_H Copied: branches/multiphys/spark/lib/oxygen/physicsserver/imp/worldimp.h (from rev 101, trunk/spark/lib/oxygen/physicsserver/imp/worldimp.h) =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/imp/worldimp.h (rev 0) +++ branches/multiphys/spark/lib/oxygen/physicsserver/imp/worldimp.h 2009-11-18 07:24:29 UTC (rev 102) @@ -0,0 +1,116 @@ +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + this file is part of rcssserver3D + Fri May 9 2003 + Copyright (C) 2002,2003 Koblenz University + Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group + $Id: world.h 56 2009-03-17 18:03:47Z hedayat $ + + 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; version 2 of the License. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ +#ifndef OXYGEN_WORLDIMP_H +#define OXYGEN_WORLDIMP_H + +#include <oxygen/oxygen_defines.h> +#include <oxygen/physicsserver/ode/odeobject.h> + +namespace oxygen +{ + +/** World encapsulates an ODE world object. It is a container for + rigid bodies and joints. Objects in different worlds can not + interact, for example rigid bodies from two different worlds can + not collide. All the objects in a world exist at the same point in + time, thus one reason to use separate worlds is to simulate + systems at different rates. +*/ +class OXYGEN_API WorldImp : public ODEObject +{ + // + // Functions + // +public: + WorldImp() : ODEObject(){}; + virtual ~WorldImp(){}; + + /** returns the ID of the managed ODE world */ + virtual dWorldID GetODEWorldImp() const = 0; + + /** sets the gravity vector of this vorld */ + virtual void SetGravityImp(const salt::Vector3f& gravity) = 0; + + /** gets the gravity vector of this world */ + virtual salt::Vector3f GetGravityImp() const = 0; + + /** sets the Error Reduction Parameter of this world. The ERP + specifies what proportion of a joint error will be fixed + during the next simulation step. if ERP=0 then no correcting + force is applied and the bodies will eventually drift apart as + the simulation proceeds. If ERP=1 then the simulation will + attempt to fix all joint error during the next time + step. However, setting ERP=1 is not recommended, as the joint + error will not be completely fixed due to various internal + approximations. A value of ERP=0.1 to 0.8 is recommended (0.2 + is the default). + */ + virtual void SetERPImp(float erp) = 0; + + /** returns the Error Reduction Parameter of this World. + */ + virtual float GetERPImp() const = 0; + + /** sets the Constraint Force mixing (CFM) value. If CFM is set to + zero, the constraint will be hard. If CFM is set to a positive + value, it will be possible to violate the constraint by + `pushing on it' (for example, for contact constraints by + forcing the two contacting objects together). In other words + the constraint will be soft, and the softness will increase as + CFM increases. Note that setting CFM to a negative value can + have undesirable bad effects, such as instability. + */ + virtual void SetCFMImp(float cfm) = 0; + + /** returns the Constraint Force mixing (CFM) value. */ + virtual float GetCFMImp() const = 0; + + /** steps the world deltatime forward, i.e. performs physics + simulation for a deltaTime seconds interval. + */ + virtual void StepImp(float deltaTime) = 0; + + virtual bool GetAutoDisableFlagImp() const = 0; + virtual void SetAutoDisableFlagImp(bool flag) = 0; + + /** Set and get the depth of the surface layer around all geometry + objects. Contacts are allowed to sink into the surface layer up to + the given depth before coming to rest. The default value is + zero. Increasing this to some small value (e.g. 0.001) can help + prevent jittering problems due to contacts being repeatedly made + and broken. + */ + virtual void SetContactSurfaceLayerImp(float depth) = 0; + virtual float GetContactSurfaceLayerImp() const = 0; + + /** destroy the managed ODE object */ + virtual void DestroyODEObjectImp() = 0; + + /** creates them managed ODE world */ + virtual bool ConstructInternalImp() = 0; +}; + +DECLARE_ABSTRACTCLASS(WorldImp); + +} + +#endif //OXYGEN_WORLDIMP_H Deleted: branches/multiphys/spark/lib/oxygen/physicsserver/imp/worldimp_c.cpp =================================================================== --- trunk/spark/lib/oxygen/physicsserver/imp/worldimp_c.cpp 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/physicsserver/imp/worldimp_c.cpp 2009-11-18 07:24:29 UTC (rev 102) @@ -1,29 +0,0 @@ -/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- - -this file is part of rcssserver3D -Fri May 9 2003 -Copyright (C) 2003 Koblenz University -$Id: world_c.cpp 3 2008-11-21 02:38:08Z hedayat $ - -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; version 2 of the License. - -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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include <oxygen/physicsserver/imp/worldimp.h> - -using namespace oxygen; - -void CLASS(WorldImp)::DefineClass() -{ - DEFINE_BASECLASS(oxygen/ODEObject); -} Copied: branches/multiphys/spark/lib/oxygen/physicsserver/imp/worldimp_c.cpp (from rev 101, trunk/spark/lib/oxygen/physicsserver/imp/worldimp_c.cpp) =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/imp/worldimp_c.cpp (rev 0) +++ branches/multiphys/spark/lib/oxygen/physicsserver/imp/worldimp_c.cpp 2009-11-18 07:24:29 UTC (rev 102) @@ -0,0 +1,29 @@ +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + +this file is part of rcssserver3D +Fri May 9 2003 +Copyright (C) 2003 Koblenz University +$Id: world_c.cpp 3 2008-11-21 02:38:08Z hedayat $ + +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; version 2 of the License. + +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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include <oxygen/physicsserver/imp/worldimp.h> + +using namespace oxygen; + +void CLASS(WorldImp)::DefineClass() +{ + DEFINE_BASECLASS(oxygen/ODEObject); +} Modified: branches/multiphys/spark/lib/oxygen/physicsserver/joint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/joint.h 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/physicsserver/joint.h 2009-11-18 07:24:29 UTC (rev 102) @@ -23,7 +23,7 @@ #define OXYGEN_JOINT_H #include <oxygen/oxygen_defines.h> -#include "odeobject.h" +#include <oxygen/physicsserver/ode/odeobject.h> namespace oxygen { Deleted: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject.cpp =================================================================== --- trunk/spark/lib/oxygen/physicsserver/ode/odeobject.cpp 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject.cpp 2009-11-18 07:24:29 UTC (rev 102) @@ -1,167 +0,0 @@ -/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- - - this file is part of rcssserver3D - Fri May 9 2003 - Copyright (C) 2002,2003 Koblenz University - Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group - $Id: odeobject.cpp 3 2008-11-21 02:38:08Z hedayat $ - - 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; version 2 of the License. - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ -#include <oxygen/physicsserver/ode/odeobject.h> -#include <oxygen/physicsserver/space.h> -#include <oxygen/physicsserver/world.h> -#include <oxygen/sceneserver/scene.h> -#include <zeitgeist/logserver/logserver.h> - -using namespace oxygen; -using namespace boost; - -ODEObject::ODEObject() : BaseNode() -{ -} - -ODEObject::~ODEObject() -{ -} - -void ODEObject::OnUnlink() -{ - DestroyODEObject(); -} - -/** returns the world node */ -shared_ptr<World> ODEObject::GetWorld() -{ - shared_ptr<Scene> scene = GetScene(); - if (scene.get() == 0) - { - GetLog()->Error() << "(ODEObject) ERROR: found no Scene node\n"; - return shared_ptr<World>(); - } - - shared_ptr<World> worldNode = shared_dynamic_cast<World> - (scene->GetChildOfClass("World")); - if (worldNode.get() == 0) - { - GetLog()->Error() << "(ODEObject) ERROR: found no World node\n"; - } - - return worldNode; -} - -shared_ptr<Space> ODEObject::GetSpace() -{ - // try to find the nearest parent space object - weak_ptr<Space> parentSpace = FindParentSupportingClass<Space>(); - if (! parentSpace.expired()) - { - return parentSpace.lock(); - } - - // return the global space instance - shared_ptr<Scene> scene = GetScene(); - if (scene.get() == 0) - { - GetLog()->Error() << "(ODEObject) ERROR: found no Scene node\n"; - return shared_ptr<Space>(); - } - - shared_ptr<Space> spaceNode = shared_dynamic_cast<Space> - (scene->GetChildOfClass("Space")); - if (spaceNode.get() == 0) - { - GetLog()->Error() << "(ODEObject) ERROR: found no Space node\n"; - } - - return spaceNode; -} - -dWorldID ODEObject::GetWorldID() -{ - shared_ptr<World> world = GetWorld(); - if (world.get() == 0) - { - return 0; - } - - dWorldID worldId = world->GetODEWorld(); - if (worldId == 0) - { - GetLog()->Error() - << "(ODEObject) ERROR: World returned empty ODE handle\n"; - } - - return worldId; -} - -dSpaceID ODEObject::FindSpaceID() -{ - shared_ptr<Space> space = GetSpace(); - if (space.get() == 0) - { - return 0; - } - - dSpaceID spaceId = space->GetODESpace(); - - if (spaceId == 0) - { - GetLog()->Error() - << "(ODEObject) ERROR: Space returned empty ODE handle\n"; - } - - return spaceId; -} - -dSpaceID ODEObject::GetParentSpaceID() -{ - return 0; -} - -void ODEObject::ConvertRotationMatrix(const salt::Matrix& rot, dMatrix3& matrix) -{ - matrix[0] = rot.m[0]; - matrix[1] = rot.m[4]; - matrix[2] = rot.m[8]; - matrix[3] = 0; - matrix[4] = rot.m[1]; - matrix[5] = rot.m[5]; - matrix[6] = rot.m[9]; - matrix[7] = 0; - matrix[8] = rot.m[2]; - matrix[9] = rot.m[6]; - matrix[10] = rot.m[10]; - matrix[11] = 0; -} - -void ODEObject::ConvertRotationMatrix(const dReal* matrix, salt::Matrix& rot) const -{ - rot.m[0] = matrix[0] ; - rot.m[4] = matrix[1] ; - rot.m[8] = matrix[2]; - rot.m[12] = matrix[3]; - rot.m[1] = matrix[4]; - rot.m[5] = matrix[5]; - rot.m[9] = matrix[6]; - rot.m[13] = matrix[7]; - rot.m[2] = matrix[8]; - rot.m[6] = matrix[9]; - rot.m[10] = matrix[10] ; - rot.m[14] = matrix[11]; - rot.m[3] = 0.0; - rot.m[7] = 0.0; - rot.m[11] = 0.0; - rot.m[15] = 1.0; -} Copied: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject.cpp (from rev 101, trunk/spark/lib/oxygen/physicsserver/ode/odeobject.cpp) =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject.cpp (rev 0) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject.cpp 2009-11-18 07:24:29 UTC (rev 102) @@ -0,0 +1,167 @@ +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + this file is part of rcssserver3D + Fri May 9 2003 + Copyright (C) 2002,2003 Koblenz University + Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group + $Id: odeobject.cpp 3 2008-11-21 02:38:08Z hedayat $ + + 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; version 2 of the License. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ +#include <oxygen/physicsserver/ode/odeobject.h> +#include <oxygen/physicsserver/space.h> +#include <oxygen/physicsserver/world.h> +#include <oxygen/sceneserver/scene.h> +#include <zeitgeist/logserver/logserver.h> + +using namespace oxygen; +using namespace boost; + +ODEObject::ODEObject() : BaseNode() +{ +} + +ODEObject::~ODEObject() +{ +} + +void ODEObject::OnUnlink() +{ + DestroyODEObject(); +} + +/** returns the world node */ +shared_ptr<World> ODEObject::GetWorld() +{ + shared_ptr<Scene> scene = GetScene(); + if (scene.get() == 0) + { + GetLog()->Error() << "(ODEObject) ERROR: found no Scene node\n"; + return shared_ptr<World>(); + } + + shared_ptr<World> worldNode = shared_dynamic_cast<World> + (scene->GetChildOfClass("World")); + if (worldNode.get() == 0) + { + GetLog()->Error() << "(ODEObject) ERROR: found no World node\n"; + } + + return worldNode; +} + +shared_ptr<Space> ODEObject::GetSpace() +{ + // try to find the nearest parent space object + weak_ptr<Space> parentSpace = FindParentSupportingClass<Space>(); + if (! parentSpace.expired()) + { + return parentSpace.lock(); + } + + // return the global space instance + shared_ptr<Scene> scene = GetScene(); + if (scene.get() == 0) + { + GetLog()->Error() << "(ODEObject) ERROR: found no Scene node\n"; + return shared_ptr<Space>(); + } + + shared_ptr<Space> spaceNode = shared_dynamic_cast<Space> + (scene->GetChildOfClass("Space")); + if (spaceNode.get() == 0) + { + GetLog()->Error() << "(ODEObject) ERROR: found no Space node\n"; + } + + return spaceNode; +} + +dWorldID ODEObject::GetWorldID() +{ + shared_ptr<World> world = GetWorld(); + if (world.get() == 0) + { + return 0; + } + + dWorldID worldId = world->GetODEWorld(); + if (worldId == 0) + { + GetLog()->Error() + << "(ODEObject) ERROR: World returned empty ODE handle\n"; + } + + return worldId; +} + +dSpaceID ODEObject::FindSpaceID() +{ + shared_ptr<Space> space = GetSpace(); + if (space.get() == 0) + { + return 0; + } + + dSpaceID spaceId = space->GetODESpace(); + + if (spaceId == 0) + { + GetLog()->Error() + << "(ODEObject) ERROR: Space returned empty ODE handle\n"; + } + + return spaceId; +} + +dSpaceID ODEObject::GetParentSpaceID() +{ + return 0; +} + +void ODEObject::ConvertRotationMatrix(const salt::Matrix& rot, dMatrix3& matrix) +{ + matrix[0] = rot.m[0]; + matrix[1] = rot.m[4]; + matrix[2] = rot.m[8]; + matrix[3] = 0; + matrix[4] = rot.m[1]; + matrix[5] = rot.m[5]; + matrix[6] = rot.m[9]; + matrix[7] = 0; + matrix[8] = rot.m[2]; + matrix[9] = rot.m[6]; + matrix[10] = rot.m[10]; + matrix[11] = 0; +} + +void ODEObject::ConvertRotationMatrix(const dReal* matrix, salt::Matrix& rot) const +{ + rot.m[0] = matrix[0] ; + rot.m[4] = matrix[1] ; + rot.m[8] = matrix[2]; + rot.m[12] = matrix[3]; + rot.m[1] = matrix[4]; + rot.m[5] = matrix[5]; + rot.m[9] = matrix[6]; + rot.m[13] = matrix[7]; + rot.m[2] = matrix[8]; + rot.m[6] = matrix[9]; + rot.m[10] = matrix[10] ; + rot.m[14] = matrix[11]; + rot.m[3] = 0.0; + rot.m[7] = 0.0; + rot.m[11] = 0.0; + rot.m[15] = 1.0; +} Deleted: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject.h =================================================================== --- trunk/spark/lib/oxygen/physicsserver/ode/odeobject.h 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject.h 2009-11-18 07:24:29 UTC (rev 102) @@ -1,83 +0,0 @@ -/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- - - this file is part of rcssserver3D - Fri May 9 2003 - Copyright (C) 2002,2003 Koblenz University - Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group - $Id: odeobject.h 56 2009-03-17 18:03:47Z hedayat $ - $Id: odeobject.h 56 2009-03-17 18:03:47Z hedayat $ - - 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; version 2 of the License. - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ -#ifndef OXYGEN_ODEOBJECT_H -#define OXYGEN_ODEOBJECT_H - -#include <oxygen/oxygen_defines.h> -#include <oxygen/sceneserver/basenode.h> -#include <oxygen/physicsserver/ode/odewrapper.h> - -namespace oxygen -{ -class Space; -class World; - -/** ODEObject is the base of all classes encapsulating ODE concepts - */ -class OXYGEN_API ODEObject : public BaseNode -{ -public: - // - // Functions - // - ODEObject(); - virtual ~ODEObject(); - - /** This rountine is called, before the hierarchy object is - removed from the parent. It can be overridden to support - custom 'unlink' behavior. - */ - virtual void OnUnlink(); - - /** returns the ODE world handle */ - dWorldID GetWorldID(); - - /** returns the nearest parent space ODE handle */ - dSpaceID FindSpaceID(); - - /** returns the ODE handle ID of the containing parent space */ - virtual dSpaceID GetParentSpaceID(); - - /** destroy the managed ODE object */ - virtual void DestroyODEObject(){}; - -protected: - /** returns the world node */ - boost::shared_ptr<World> GetWorld(); - - /** finds the nearest parent space node */ - boost::shared_ptr<Space> GetSpace(); - - /** converts the rotation part of a salt::Matrix to an ODE - dMatrix3 */ - void ConvertRotationMatrix(const salt::Matrix& rot, dMatrix3& matrix); - - /** coverts the ODE dMatrix3 to the rotation part of a salt::Matrix */ - void ConvertRotationMatrix(const dReal* matrix, salt::Matrix& rot) const; -}; - -DECLARE_ABSTRACTCLASS(ODEObject); - -} //namespace oxygen - -#endif //OXYGEN_ODEOBJECT_H Copied: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject.h (from rev 101, trunk/spark/lib/oxygen/physicsserver/ode/odeobject.h) =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject.h (rev 0) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject.h 2009-11-18 07:24:29 UTC (rev 102) @@ -0,0 +1,83 @@ +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + this file is part of rcssserver3D + Fri May 9 2003 + Copyright (C) 2002,2003 Koblenz University + Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group + $Id: odeobject.h 56 2009-03-17 18:03:47Z hedayat $ + $Id: odeobject.h 56 2009-03-17 18:03:47Z hedayat $ + + 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; version 2 of the License. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ +#ifndef OXYGEN_ODEOBJECT_H +#define OXYGEN_ODEOBJECT_H + +#include <oxygen/oxygen_defines.h> +#include <oxygen/sceneserver/basenode.h> +#include <oxygen/physicsserver/ode/odewrapper.h> + +namespace oxygen +{ +class Space; +class World; + +/** ODEObject is the base of all classes encapsulating ODE concepts + */ +class OXYGEN_API ODEObject : public BaseNode +{ +public: + // + // Functions + // + ODEObject(); + virtual ~ODEObject(); + + /** This rountine is called, before the hierarchy object is + removed from the parent. It can be overridden to support + custom 'unlink' behavior. + */ + virtual void OnUnlink(); + + /** returns the ODE world handle */ + dWorldID GetWorldID(); + + /** returns the nearest parent space ODE handle */ + dSpaceID FindSpaceID(); + + /** returns the ODE handle ID of the containing parent space */ + virtual dSpaceID GetParentSpaceID(); + + /** destroy the managed ODE object */ + virtual void DestroyODEObject(){}; + +protected: + /** returns the world node */ + boost::shared_ptr<World> GetWorld(); + + /** finds the nearest parent space node */ + boost::shared_ptr<Space> GetSpace(); + + /** converts the rotation part of a salt::Matrix to an ODE + dMatrix3 */ + void ConvertRotationMatrix(const salt::Matrix& rot, dMatrix3& matrix); + + /** coverts the ODE dMatrix3 to the rotation part of a salt::Matrix */ + void ConvertRotationMatrix(const dReal* matrix, salt::Matrix& rot) const; +}; + +DECLARE_ABSTRACTCLASS(ODEObject); + +} //namespace oxygen + +#endif //OXYGEN_ODEOBJECT_H Deleted: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject_c.cpp =================================================================== --- trunk/spark/lib/oxygen/physicsserver/ode/odeobject_c.cpp 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject_c.cpp 2009-11-18 07:24:29 UTC (rev 102) @@ -1,29 +0,0 @@ -/* -*- mode: c++ -*- - - this file is part of rcssserver3D - Fri May 9 2003 - Copyright (C) 2003 Koblenz University - $Id: odeobject_c.cpp 3 2008-11-21 02:38:08Z hedayat $ - - 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; version 2 of the License. - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include <oxygen/physicsserver/ode/odeobject.h> - -using namespace oxygen; - -void CLASS(ODEObject)::DefineClass() -{ - DEFINE_BASECLASS(oxygen/BaseNode); -} Copied: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject_c.cpp (from rev 101, trunk/spark/lib/oxygen/physicsserver/ode/odeobject_c.cpp) =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject_c.cpp (rev 0) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeobject_c.cpp 2009-11-18 07:24:29 UTC (rev 102) @@ -0,0 +1,29 @@ +/* -*- mode: c++ -*- + + this file is part of rcssserver3D + Fri May 9 2003 + Copyright (C) 2003 Koblenz University + $Id: odeobject_c.cpp 3 2008-11-21 02:38:08Z hedayat $ + + 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; version 2 of the License. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include <oxygen/physicsserver/ode/odeobject.h> + +using namespace oxygen; + +void CLASS(ODEObject)::DefineClass() +{ + DEFINE_BASECLASS(oxygen/BaseNode); +} Deleted: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld.cpp =================================================================== --- trunk/spark/lib/oxygen/physicsserver/ode/odeworld.cpp 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld.cpp 2009-11-18 07:24:29 UTC (rev 102) @@ -1,138 +0,0 @@ -/* -*- mode: c++ -*- - - this file is part of rcssserver3D - Fri May 9 2003 - Copyright (C) 2003 Koblenz University - $Id: world.cpp 3 2008-11-21 02:38:08Z hedayat $ - - 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; version 2 of the License. - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include <oxygen/physicsserver/ode/odeworld.h> -#include <oxygen/physicsserver/space.h> -#include <oxygen/sceneserver/scene.h> - -using namespace boost; -using namespace oxygen; -using namespace salt; - -ODEWorld::ODEWorld() : WorldImp(), mODEWorld(0) -{ -} - -ODEWorld::~ODEWorld() -{ -} - -dWorldID ODEWorld::GetODEWorldImp() const -{ - return mODEWorld; -} - -void ODEWorld::SetGravityImp(const Vector3f& gravity) -{ - dWorldSetGravity(mODEWorld, - gravity.x(), - gravity.y(), - gravity.z() - ); -} - -salt::Vector3f ODEWorld::GetGravityImp() const -{ - dVector3 dGravity; - dWorldGetGravity(mODEWorld,dGravity); - return Vector3f(dGravity[0],dGravity[1],dGravity[2]); -} - -void ODEWorld::SetERPImp(float erp) -{ - dWorldSetERP(mODEWorld, erp); -} - -float ODEWorld::GetERPImp() const -{ - return dWorldGetERP(mODEWorld); -} - -void ODEWorld::SetCFMImp(float cfm) -{ - dWorldSetCFM(mODEWorld, cfm); -} - -float ODEWorld::GetCFMImp() const -{ - return dWorldGetCFM(mODEWorld); -} - -void ODEWorld::StepImp(float deltaTime) -{ - dWorldStep(mODEWorld, deltaTime); -} - -bool ODEWorld::GetAutoDisableFlagImp() const -{ - return (dWorldGetAutoDisableFlag(mODEWorld) == 1); -} - -void ODEWorld::SetAutoDisableFlagImp(bool flag) -{ - dWorldSetAutoDisableFlag(mODEWorld, static_cast<int>(flag)); -} - -void ODEWorld::SetContactSurfaceLayerImp(float depth) -{ - dWorldSetContactSurfaceLayer(mODEWorld, depth); -} - -float ODEWorld::GetContactSurfaceLayerImp() const -{ - return dWorldGetContactSurfaceLayer(mODEWorld); -} - -bool ODEWorld::ConstructInternalImp() -{ - // create an ode world - mODEWorld = dWorldCreate(); - - return (mODEWorld != 0); -} - -void ODEWorld::DestroyODEObjectImp() -{ - static bool recurseLock = false; - if (recurseLock) - { - return; - } - - recurseLock = true; - - shared_ptr<Space> space = GetSpace(); - if (space.get() != 0) - { - space->DestroyODEObject(); - } - - if (mODEWorld == 0) - { - return; - } - - // release the ODE world - dWorldDestroy(mODEWorld); - mODEWorld = 0; - - recurseLock = false; -} Copied: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld.cpp (from rev 101, trunk/spark/lib/oxygen/physicsserver/ode/odeworld.cpp) =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld.cpp (rev 0) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld.cpp 2009-11-18 07:24:29 UTC (rev 102) @@ -0,0 +1,138 @@ +/* -*- mode: c++ -*- + + this file is part of rcssserver3D + Fri May 9 2003 + Copyright (C) 2003 Koblenz University + $Id: world.cpp 3 2008-11-21 02:38:08Z hedayat $ + + 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; version 2 of the License. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include <oxygen/physicsserver/ode/odeworld.h> +#include <oxygen/physicsserver/space.h> +#include <oxygen/sceneserver/scene.h> + +using namespace boost; +using namespace oxygen; +using namespace salt; + +ODEWorld::ODEWorld() : WorldImp(), mODEWorld(0) +{ +} + +ODEWorld::~ODEWorld() +{ +} + +dWorldID ODEWorld::GetODEWorldImp() const +{ + return mODEWorld; +} + +void ODEWorld::SetGravityImp(const Vector3f& gravity) +{ + dWorldSetGravity(mODEWorld, + gravity.x(), + gravity.y(), + gravity.z() + ); +} + +salt::Vector3f ODEWorld::GetGravityImp() const +{ + dVector3 dGravity; + dWorldGetGravity(mODEWorld,dGravity); + return Vector3f(dGravity[0],dGravity[1],dGravity[2]); +} + +void ODEWorld::SetERPImp(float erp) +{ + dWorldSetERP(mODEWorld, erp); +} + +float ODEWorld::GetERPImp() const +{ + return dWorldGetERP(mODEWorld); +} + +void ODEWorld::SetCFMImp(float cfm) +{ + dWorldSetCFM(mODEWorld, cfm); +} + +float ODEWorld::GetCFMImp() const +{ + return dWorldGetCFM(mODEWorld); +} + +void ODEWorld::StepImp(float deltaTime) +{ + dWorldStep(mODEWorld, deltaTime); +} + +bool ODEWorld::GetAutoDisableFlagImp() const +{ + return (dWorldGetAutoDisableFlag(mODEWorld) == 1); +} + +void ODEWorld::SetAutoDisableFlagImp(bool flag) +{ + dWorldSetAutoDisableFlag(mODEWorld, static_cast<int>(flag)); +} + +void ODEWorld::SetContactSurfaceLayerImp(float depth) +{ + dWorldSetContactSurfaceLayer(mODEWorld, depth); +} + +float ODEWorld::GetContactSurfaceLayerImp() const +{ + return dWorldGetContactSurfaceLayer(mODEWorld); +} + +bool ODEWorld::ConstructInternalImp() +{ + // create an ode world + mODEWorld = dWorldCreate(); + + return (mODEWorld != 0); +} + +void ODEWorld::DestroyODEObjectImp() +{ + static bool recurseLock = false; + if (recurseLock) + { + return; + } + + recurseLock = true; + + shared_ptr<Space> space = GetSpace(); + if (space.get() != 0) + { + space->DestroyODEObject(); + } + + if (mODEWorld == 0) + { + return; + } + + // release the ODE world + dWorldDestroy(mODEWorld); + mODEWorld = 0; + + recurseLock = false; +} Deleted: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld.h =================================================================== --- trunk/spark/lib/oxygen/physicsserver/ode/odeworld.h 2009-11-18 07:11:28 UTC (rev 101) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld.h 2009-11-18 07:24:29 UTC (rev 102) @@ -1,124 +0,0 @@ -/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- - - this file is part of rcssserver3D - Fri May 9 2003 - Copyright (C) 2002,2003 Koblenz University - Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group - $Id: world.h 56 2009-03-17 18:03:47Z hedayat $ - - 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; version 2 of the License. - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ -#ifndef OXYGEN_ODEWORLD_H -#define OXYGEN_ODEWORLD_H - -#include <oxygen/oxygen_defines.h> -#include <oxygen/physicsserver/imp/worldimp.h> - -namespace oxygen -{ - -/** World encapsulates an ODE world object. It is a container for - rigid bodies and joints. Objects in different worlds can not - interact, for example rigid bodies from two different worlds can - not collide. All the objects in a world exist at the same point in - time, thus one reason to use separate worlds is to simulate - systems at different rates. -*/ -class OXYGEN_API ODEWorld : public WorldImp -{ - // - // Functions - // -public: - ODEWorld(); - virtual ~ODEWorld(); - - /** returns the ID of the managed ODE world */ - dWorldID GetODEWorldImp() const; - - /** sets the gravity vector of this vorld */ - void SetGravityImp(const salt::Vector3f& gravity); - - /** gets the gravity vector of this world */ - salt::Vector3f GetGravityImp() const; - - /** sets the Error Reduction Parameter of this world. The ERP - specifies what proportion of a joint error will be fixed - during the next simulation step. if ERP=0 then no correcting - force is applied and the bodies will eventually drift apart as - the simulation proceeds. If ERP=1 then the simulation will - attempt to fix all joint error during the next time - step. However, setting ERP=1 is not recommended, as the joint - error will not be completely fixed due to various internal - approximations. A value of ERP=0.1 to 0.8 is recommended (0.2 - is the default). - */ - void SetERPImp(float erp); - - /** returns the Error Reduction Parameter of this World. - */ - float GetERPImp() const; - - /** sets the Constraint Force mixing (CFM) value. If CFM is set to - zero, the constraint will be hard. If CFM is set to a positive - value, it will be possible to violate the constraint by - `pushing on it' (for example, for contact constraints by - forcing the two contacting objects together). In other words - the constraint will be soft, and the softness will increase as - CFM increases. Note that setting CFM to a negative value can - have undesirable bad effects, such as instability. - */ - void SetCFMImp(float cfm); - - /** returns the Constraint Force mixing (CFM) value. */ - float GetCFMImp() const; - - /** steps the world deltatime forward, i.e. performs physics - simulation for a deltaTime seconds interval. - */ - void StepImp(float deltaTime); - - bool GetAutoDisableFlagImp() const; - void SetAutoDisableFlagImp(bool flag); - - /** Set and get the depth of the surface layer around all geometry - objects. Contacts are allowed to sink into the surface layer up to - the given depth before coming to rest. The default value is - zero. Increasing this to some small value (e.g. 0.001) can help - prevent jittering problems due to contacts being repeatedly made - and broken. - */ - void SetContactSurfaceLayerImp(float depth); - float GetContactSurfaceLayerImp() const; - - /** destroy the managed ODE object */ - virtual void DestroyODEObjectImp(); - -protected: - /** creates them managed ODE world */ - virtual bool ConstructInternalImp(); - - // - // Members - // -private: - /** the dynamics world represented by this object */ - dWorldID mODEWorld; -}; - -DECLARE_CLASS(ODEWorld); - -}; - -#endif //OXYGEN_WORLD_H Copied: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld.h (from rev 101, trunk/spark/lib/oxygen/physicsserver/ode/odeworld.h) =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld.h (rev 0) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeworld.h 2009-11-18 07:24:29 UTC (rev 102) @@ -0,0 +1,124 @@ +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + this file is part of rcssserver3D + Fri May 9 2003 + Copyright (C) 2002,2003 Koblenz University + Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group + $Id: world.h 56 2009-03-17 18:03:47Z hedayat $ + + 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; version 2 of the License. + + 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 Li... [truncated message content] |
From: <a-...@us...> - 2009-11-25 06:09:24
|
Revision: 107 http://simspark.svn.sourceforge.net/simspark/?rev=107&view=rev Author: a-held Date: 2009-11-25 06:09:10 +0000 (Wed, 25 Nov 2009) Log Message: ----------- Created abstract body class and moved functionality to new RigidBody class changed everything in simspark to use the new class instead of the abstract one Modified Paths: -------------- branches/multiphys/rcssserver3d/data/rsg/agent/ball.rsg branches/multiphys/rcssserver3d/data/rsg/agent/nao/box_physics.rsg branches/multiphys/rcssserver3d/data/rsg/agent/nao/box_physics_nocollider.rsg branches/multiphys/rcssserver3d/data/rsg/agent/nao/box_physics_with_handler.rsg branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics.rsg branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics_nocollider.rsg branches/multiphys/rcssserver3d/data/rsg/agent/nao/sphere_physics.rsg branches/multiphys/rcssserver3d/data/rsg/agent/nao/sphere_physics_nocollider.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box_with_handler.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/head.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/lowerarm_body.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/soccerbottorso.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbotleftlowerarmcomp.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbotrightlowerarmcomp.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbottorso.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbottorsocomp.rsg branches/multiphys/rcssserver3d/plugin/soccer/agentstate/agentstate.h branches/multiphys/rcssserver3d/plugin/soccer/ball/ball.cpp branches/multiphys/rcssserver3d/plugin/soccer/ball/ball.h branches/multiphys/rcssserver3d/plugin/soccer/beameffector/beameffector.h branches/multiphys/rcssserver3d/plugin/soccer/catcheffector/catcheffector.h branches/multiphys/rcssserver3d/plugin/soccer/driveeffector/driveeffector.h branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector.cpp branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector.h branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpperceptor.cpp branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpperceptor.h branches/multiphys/rcssserver3d/plugin/soccer/initeffector/initeffector.cpp branches/multiphys/rcssserver3d/plugin/soccer/internalsoccermonitor/internalsoccerinput.cpp branches/multiphys/rcssserver3d/plugin/soccer/internalsoccermonitor/internalsoccerinput.h branches/multiphys/rcssserver3d/plugin/soccer/kickeffector/kickeffector.h branches/multiphys/rcssserver3d/plugin/soccer/pantilteffector/pantilteffector.h branches/multiphys/rcssserver3d/plugin/soccer/soccerbase/soccerbase.cpp branches/multiphys/rcssserver3d/plugin/soccer/soccerbase/soccerbase.h branches/multiphys/rcssserver3d/plugin/soccer/soccercontrolaspect/soccercontrolaspect.h branches/multiphys/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp branches/multiphys/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h branches/multiphys/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinput.cpp branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinput.h branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.cpp branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.h branches/multiphys/rsgedit/src/property.cpp branches/multiphys/rsgedit/src/sparkglrender.cpp branches/multiphys/simspark-utilities/data/rsg/agent/ball.rsg branches/multiphys/spark/data/rsg/boxspheres/box.rsg branches/multiphys/spark/data/rsg/boxspheres/box_with_handler.rsg branches/multiphys/spark/data/rsg/boxspheres/box_with_handler055.rsg branches/multiphys/spark/data/rsg/boxspheres/box_with_handler056.rsg branches/multiphys/spark/data/rsg/boxspheres/ccylinder.rsg branches/multiphys/spark/data/rsg/boxspheres/sphere.rsg branches/multiphys/spark/lib/oxygen/CMakeLists.txt branches/multiphys/spark/lib/oxygen/oxygen.cpp branches/multiphys/spark/lib/oxygen/oxygen.h branches/multiphys/spark/lib/oxygen/physicsserver/angularmotor.h branches/multiphys/spark/lib/oxygen/physicsserver/balljoint.h branches/multiphys/spark/lib/oxygen/physicsserver/body.h branches/multiphys/spark/lib/oxygen/physicsserver/body_c.cpp branches/multiphys/spark/lib/oxygen/physicsserver/bodycontroller.cpp branches/multiphys/spark/lib/oxygen/physicsserver/bodycontroller.h branches/multiphys/spark/lib/oxygen/physicsserver/collider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/dragcontroller.cpp branches/multiphys/spark/lib/oxygen/physicsserver/hinge2joint.h branches/multiphys/spark/lib/oxygen/physicsserver/hingejoint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/spaceint.h branches/multiphys/spark/lib/oxygen/physicsserver/joint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/joint.h branches/multiphys/spark/lib/oxygen/physicsserver/physicsserver.h branches/multiphys/spark/lib/oxygen/physicsserver/sliderjoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/sliderjoint.h branches/multiphys/spark/lib/oxygen/physicsserver/space.h branches/multiphys/spark/lib/oxygen/physicsserver/universaljoint.h branches/multiphys/spark/lib/oxygen/physicsserver/velocitycontroller.cpp branches/multiphys/spark/lib/oxygen/sceneserver/fpscontroller.cpp branches/multiphys/spark/plugin/forceeffector/forceeffector.cpp branches/multiphys/spark/plugin/forceeffector/forceeffector.h branches/multiphys/spark/plugin/gyrorateperceptor/gyrorateperceptor.cpp branches/multiphys/spark/plugin/gyrorateperceptor/gyrorateperceptor.h branches/multiphys/spark/plugin/rosimporter/rosimporter.cpp branches/multiphys/spark/plugin/rosimporter/rosimporter.h branches/multiphys/spark/plugin/sparkagent/hinge2effector.cpp branches/multiphys/spark/plugin/sparkagent/hingeeffector.cpp branches/multiphys/spark/plugin/sparkagent/universaljointeffector.cpp branches/multiphys/spark/plugin/sparkmonitor/sparkmonitorclient.cpp branches/multiphys/spark/plugin/sparkmonitor/sparkmonitorlogfileserver.cpp branches/multiphys/spark/spark/spark.rb branches/multiphys/spark/test/scenetest/script/scenetest.rb Added Paths: ----------- branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.h branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody_c.cpp Removed Paths: ------------- branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp Modified: branches/multiphys/rcssserver3d/data/rsg/agent/ball.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/ball.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/ball.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -15,7 +15,7 @@ (setScale $Radius $Radius $Radius) ) - (nd Body + (nd RigidBody (setName physics) (setSphereTotal $Mass $Radius) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/nao/box_physics.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/box_physics.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/box_physics.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -4,7 +4,7 @@ ( (templ $lenX $lenY $lenZ $totalMass) - (nd Body + (nd RigidBody (setName boxBody) (setBoxTotal $totalMass $lenX $lenY $lenZ) @@ -16,4 +16,4 @@ (importScene rsg/agent/nao/contactjointhandler.rsg) ) -) \ No newline at end of file +) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/nao/box_physics_nocollider.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/box_physics_nocollider.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/box_physics_nocollider.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -4,7 +4,7 @@ ( (templ $lenX $lenY $lenZ $totalMass) - (nd Body + (nd RigidBody (setName boxBody) (setBoxTotal $totalMass $lenX $lenY $lenZ) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/nao/box_physics_with_handler.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/box_physics_with_handler.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/box_physics_with_handler.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -4,7 +4,7 @@ ( (templ $lenX $lenY $lenZ $totalMass) - (nd Body + (nd RigidBody (setName boxBody) (setBoxTotal $totalMass $lenX $lenY $lenZ) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -4,7 +4,7 @@ ( (templ $radius $length $totalMass) - (nd Body + (nd RigidBody (setName ccylinderBody) (setCappedCylinderTotal $totalMass $radius $length) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics_nocollider.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics_nocollider.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics_nocollider.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -4,7 +4,7 @@ ( (templ $radius $length $totalMass) - (nd Body + (nd RigidBody (setName ccylinderBody) (setCappedCylinderTotal $totalMass $radius) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/nao/sphere_physics.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/sphere_physics.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/sphere_physics.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -4,7 +4,7 @@ ( (templ $radius $totalMass) - (nd Body + (nd RigidBody (setName sphereBody) (setSphereTotal $totalMass $radius) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/nao/sphere_physics_nocollider.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/sphere_physics_nocollider.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/sphere_physics_nocollider.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -4,7 +4,7 @@ ( (templ $radius $totalMass) - (nd Body + (nd RigidBody (setName sphereBody) (setSphereTotal $totalMass $radius) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -8,17 +8,17 @@ (setMaterial $material) ) - (nd Body + (nd RigidBody (setName boxBody) (setBoxTotal $totalMass $lenX $lenY $lenZ) - (nd DragController - (setAngularDrag 0.01) - (setLinearDrag 0.01) - ) + (nd DragController + (setAngularDrag 0.01) + (setLinearDrag 0.01) + ) ) (nd BoxCollider (setBoxLengths $lenX $lenY $lenZ) (importScene rsg/agent/nao/contactjointhandler.rsg) ) - ) \ No newline at end of file + ) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box_with_handler.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box_with_handler.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box_with_handler.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -8,7 +8,7 @@ (setMaterial $material) ) - (nd Body + (nd RigidBody (setName boxBody) (setBoxTotal $totalMass $lenX $lenY $lenZ) (nd DragController @@ -21,4 +21,4 @@ (setBoxLengths $lenX $lenY $lenZ) (importScene rsg/agent/nao/touchperceptorhandler.rsg) ) - ) \ No newline at end of file + ) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/head.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/head.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/head.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -9,7 +9,7 @@ (setName head) (setLocalPos $HeadPosX $HeadPosY $HeadPosZ) - (nd Body + (nd RigidBody (setName sphereBody) (setSphereTotal $headMass $headRadius $HeadPosX $HeadPosY $HeadPosZ Modified: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/lowerarm_body.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/lowerarm_body.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/lowerarm_body.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -32,7 +32,7 @@ - (eval 0.04 * $scale))) - (nd Body + (nd RigidBody (setName boxBody) ;; Lower arm (setBox $LowerarmMass $LowerarmLength $LowerarmWidth $LowerarmHeight) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/soccerbottorso.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/soccerbottorso.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/soccerbottorso.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -16,7 +16,7 @@ ; + (eval 0.1 * $scale)) ; + (eval $headRadius / 2.0))) - (nd Body + (nd RigidBody (setName boxBody) ; Upper torso mass (setBoxTotal $upperMass $upperLenX $upperLenY $upperLenZ) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbotleftlowerarmcomp.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbotleftlowerarmcomp.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbotleftlowerarmcomp.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -44,7 +44,7 @@ - (eval $HandBox3Height / 2.0) ) - 0.04 ) ) - (nd Body + (nd RigidBody (setName boxBody) ; Lower arm mass (setBox $LowerarmMass $LowerarmLength $LowerarmWidth $LowerarmHeight) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbotrightlowerarmcomp.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbotrightlowerarmcomp.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbotrightlowerarmcomp.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -44,7 +44,7 @@ - (eval $HandBox3Height / 2.0) ) - 0.04 ) ) - (nd Body + (nd RigidBody (setName boxBody) ; Lower arm mass (setBox $LowerarmMass $LowerarmLength $LowerarmWidth $LowerarmHeight) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbottorso.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbottorso.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbottorso.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -10,7 +10,7 @@ ;(setScale 1.0 1.0 1.0) ) - (nd Body + (nd RigidBody (setName boxBody) ;(setBoxTotal $totalMass $lenX $lenY $lenZ) (setBox $totalMass $lenX $lenY $lenZ) @@ -36,4 +36,4 @@ ) ) -) \ No newline at end of file +) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbottorsocomp.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbottorsocomp.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbottorsocomp.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -14,7 +14,7 @@ (def $HeadPosY 0.05) (def $HeadPosZ (eval (eval (eval 0.5 * $upperLenZ) + 0.1) + (eval $headRadius / 2.0))) - (nd Body + (nd RigidBody (setName boxBody) ; Upper torso mass (setBox $upperMass $upperLenX $upperLenY $upperLenZ) Modified: branches/multiphys/rcssserver3d/plugin/soccer/agentstate/agentstate.h =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/agentstate/agentstate.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/agentstate/agentstate.h 2009-11-25 06:09:10 UTC (rev 107) @@ -27,7 +27,7 @@ namespace oxygen { - class Body; + class RigidBody; } class AgentState : public ObjectState Modified: branches/multiphys/rcssserver3d/plugin/soccer/ball/ball.cpp =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/ball/ball.cpp 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/ball/ball.cpp 2009-11-25 06:09:10 UTC (rev 107) @@ -46,7 +46,7 @@ if (mBody.get() == 0) { - mBody = shared_dynamic_cast<Body>(GetChildOfClass("Body")); + mBody = shared_dynamic_cast<RigidBody>(GetChildOfClass("RigidBody")); } } Modified: branches/multiphys/rcssserver3d/plugin/soccer/ball/ball.h =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/ball/ball.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/ball/ball.h 2009-11-25 06:09:10 UTC (rev 107) @@ -23,7 +23,7 @@ #define BALL_H #include <oxygen/sceneserver/transform.h> -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include <salt/vector.h> class BallStateAspect; @@ -65,7 +65,7 @@ salt::Vector3f mForce; salt::Vector3f mTorque; - boost::shared_ptr<oxygen::Body> mBody; + boost::shared_ptr<oxygen::RigidBody> mBody; boost::shared_ptr<oxygen::AgentAspect> mKickedLast; boost::shared_ptr<BallStateAspect> mBallStateAspect; }; Modified: branches/multiphys/rcssserver3d/plugin/soccer/beameffector/beameffector.h =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/beameffector/beameffector.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/beameffector/beameffector.h 2009-11-25 06:09:10 UTC (rev 107) @@ -23,7 +23,7 @@ #define BEAMEFFECTOR_H #include <oxygen/agentaspect/effector.h> -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include <gamestateaspect/gamestateaspect.h> class BeamEffector : public oxygen::Effector @@ -51,7 +51,7 @@ protected: /** the reference to the parents body node */ - boost::shared_ptr<oxygen::Body> mBody; + boost::shared_ptr<oxygen::RigidBody> mBody; /** the reference to the GameState */ boost::shared_ptr<GameStateAspect> mGameState; Modified: branches/multiphys/rcssserver3d/plugin/soccer/catcheffector/catcheffector.h =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/catcheffector/catcheffector.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/catcheffector/catcheffector.h 2009-11-25 06:09:10 UTC (rev 107) @@ -22,7 +22,7 @@ #define CATCHEFFECTOR_H #include <oxygen/agentaspect/effector.h> -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include <ball/ball.h> #include <ballstateaspect/ballstateaspect.h> @@ -33,7 +33,7 @@ namespace oxygen { - class Body; + class RigidBody; class AgentAspect; } @@ -74,7 +74,7 @@ protected: /** reference to the body node of the ball */ - boost::shared_ptr<oxygen::Body> mBallBody; + boost::shared_ptr<oxygen::RigidBody> mBallBody; /** reference to the agent aspect */ boost::shared_ptr<oxygen::AgentAspect> mAgent; /** reference to the agentstate */ Modified: branches/multiphys/rcssserver3d/plugin/soccer/driveeffector/driveeffector.h =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/driveeffector/driveeffector.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/driveeffector/driveeffector.h 2009-11-25 06:09:10 UTC (rev 107) @@ -24,7 +24,7 @@ #include <salt/random.h> #include <oxygen/agentaspect/effector.h> -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include <agentstate/agentstate.h> class DriveEffector : public oxygen::Effector @@ -84,7 +84,7 @@ /** the reference to the parent transform node */ boost::shared_ptr<oxygen::Transform> mTransformParent; /** the reference to the parents body node */ - boost::shared_ptr<oxygen::Body> mBody; + boost::shared_ptr<oxygen::RigidBody> mBody; //! a reference to the agent state boost::shared_ptr<AgentState> mAgentState; Modified: branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector.cpp =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector.cpp 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector.cpp 2009-11-25 06:09:10 UTC (rev 107) @@ -141,7 +141,7 @@ // parent should be a transform, or some other node, which has a // Body-child - mBody = shared_dynamic_cast<Body>(parent->GetChildOfClass("Body")); + mBody = shared_dynamic_cast<RigidBody>(parent->GetChildOfClass("RigidBody")); if (mBody.get() == 0) { @@ -268,7 +268,7 @@ if (abs(err) > 0.00001) { - shared_ptr<Body> body = joint->GetBody(Joint::BI_FIRST); + shared_ptr<RigidBody> body = joint->GetBody(Joint::BI_FIRST); if (body && !body->IsEnabled()) { body->Enable(); Modified: branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector.h =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector.h 2009-11-25 06:09:10 UTC (rev 107) @@ -23,7 +23,7 @@ #define HMDPEFFECTOR_H #include <oxygen/agentaspect/effector.h> -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include "naospecific.h" //! make it possible to have a pointer to the perceptor @@ -112,7 +112,7 @@ protected: /** the reference to the parents body node */ - boost::shared_ptr<oxygen::Body> mBody; + boost::shared_ptr<oxygen::RigidBody> mBody; }; DECLARE_CLASS(HMDPEffector) Modified: branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpperceptor.cpp =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpperceptor.cpp 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpperceptor.cpp 2009-11-25 06:09:10 UTC (rev 107) @@ -23,7 +23,7 @@ #include "hmdpperceptor.h" #include <zeitgeist/logserver/logserver.h> #include <oxygen/sceneserver/transform.h> -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include <salt/vector.h> using namespace oxygen; @@ -51,7 +51,7 @@ shared_ptr<Transform> transformParent = shared_static_cast<Transform> ( FindParentSupportingClass<Transform> ().lock()); - mBody = shared_static_cast<Body> (transformParent->GetChildOfClass("Body")); + mBody = shared_static_cast<RigidBody> (transformParent->GetChildOfClass("RigidBody")); } void HMDPPerceptor::OnUnlink() Modified: branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpperceptor.h =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpperceptor.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpperceptor.h 2009-11-25 06:09:10 UTC (rev 107) @@ -24,7 +24,7 @@ #define HMDPPERCEPTOR_H #include <oxygen/agentaspect/perceptor.h> -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> class HMDPPerceptor: public oxygen::Perceptor { @@ -45,7 +45,7 @@ private: //! reference to the body of which the perceptor is measuring the angle change rate - boost::shared_ptr<oxygen::Body> mBody; + boost::shared_ptr<oxygen::RigidBody> mBody; }; DECLARE_CLASS(HMDPPerceptor) Modified: branches/multiphys/rcssserver3d/plugin/soccer/initeffector/initeffector.cpp =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/initeffector/initeffector.cpp 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/initeffector/initeffector.cpp 2009-11-25 06:09:10 UTC (rev 107) @@ -24,7 +24,7 @@ #include <zeitgeist/logserver/logserver.h> #include <oxygen/agentaspect/agentaspect.h> #include <oxygen/gamecontrolserver/predicate.h> -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include <oxygen/physicsserver/space.h> #include <soccerbase/soccerbase.h> #include <agentstate/agentstate.h> Modified: branches/multiphys/rcssserver3d/plugin/soccer/internalsoccermonitor/internalsoccerinput.cpp =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/internalsoccermonitor/internalsoccerinput.cpp 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/internalsoccermonitor/internalsoccerinput.cpp 2009-11-25 06:09:10 UTC (rev 107) @@ -22,7 +22,7 @@ #include <zeitgeist/logserver/logserver.h> #include <gamestateaspect/gamestateaspect.h> #include <soccerruleaspect/soccerruleaspect.h> -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include <oxygen/sceneserver/fpscontroller.h> #include <oxygen/gamecontrolserver/gamecontrolserver.h> #include <oxygen/agentaspect/agentaspect.h> @@ -93,7 +93,7 @@ } // get camera body - mCameraBody = shared_dynamic_cast<Body> + mCameraBody = shared_dynamic_cast<RigidBody> (GetCore()->Get("/usr/scene/camera/physics")); if (mCameraBody.get() == 0) Modified: branches/multiphys/rcssserver3d/plugin/soccer/internalsoccermonitor/internalsoccerinput.h =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/internalsoccermonitor/internalsoccerinput.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/internalsoccermonitor/internalsoccerinput.h 2009-11-25 06:09:10 UTC (rev 107) @@ -28,7 +28,7 @@ namespace oxygen { class FPSController; - class Body; + class RigidBody; class GameControlServer; } @@ -88,7 +88,7 @@ boost::shared_ptr<SoccerRuleAspect> mSoccerRule; /** cached reference to the camera body */ - boost::shared_ptr<oxygen::Body> mCameraBody; + boost::shared_ptr<oxygen::RigidBody> mCameraBody; /** cached reference to the camera body */ boost::shared_ptr<oxygen::FPSController> mFPS; Modified: branches/multiphys/rcssserver3d/plugin/soccer/kickeffector/kickeffector.h =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/kickeffector/kickeffector.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/kickeffector/kickeffector.h 2009-11-25 06:09:10 UTC (rev 107) @@ -25,7 +25,7 @@ #include <salt/random.h> #include <oxygen/agentaspect/agentaspect.h> #include <oxygen/agentaspect/effector.h> -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include <ball/ball.h> #include <ballstateaspect/ballstateaspect.h> @@ -104,7 +104,7 @@ typedef boost::shared_ptr<salt::NormalRNG<> > NormalRngPtr; /** reference to the body node of the ball */ - boost::shared_ptr<oxygen::Body> mBallBody; + boost::shared_ptr<oxygen::RigidBody> mBallBody; /** reference to the body node of the ball */ boost::shared_ptr<Ball> mBall; /** reference to the agent aspect */ Modified: branches/multiphys/rcssserver3d/plugin/soccer/pantilteffector/pantilteffector.h =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/pantilteffector/pantilteffector.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/pantilteffector/pantilteffector.h 2009-11-25 06:09:10 UTC (rev 107) @@ -24,7 +24,7 @@ #include <salt/random.h> #include <oxygen/agentaspect/effector.h> -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include <agentstate/agentstate.h> class PanTiltEffector : public oxygen::Effector @@ -77,7 +77,7 @@ /** the reference to the parent transform node */ boost::shared_ptr<oxygen::Transform> mTransformParent; /** the reference to the parents body node */ - boost::shared_ptr<oxygen::Body> mBody; + boost::shared_ptr<oxygen::RigidBody> mBody; //! a reference to the agent state boost::shared_ptr<AgentState> mAgentState; Modified: branches/multiphys/rcssserver3d/plugin/soccer/soccerbase/soccerbase.cpp =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/soccerbase/soccerbase.cpp 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/soccerbase/soccerbase.cpp 2009-11-25 06:09:10 UTC (rev 107) @@ -20,7 +20,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "soccerbase.h" -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include <oxygen/physicsserver/spherecollider.h> #include <oxygen/agentaspect/perceptor.h> #include <oxygen/agentaspect/agentaspect.h> @@ -94,10 +94,10 @@ bool SoccerBase::GetAgentBody(const shared_ptr<Transform> transform, - shared_ptr<Body>& agent_body) + shared_ptr<RigidBody>& agent_body) { - agent_body = transform->FindChildSupportingClass<Body>(true); + agent_body = transform->FindChildSupportingClass<RigidBody>(true); if (agent_body.get() == 0) { @@ -112,7 +112,7 @@ bool SoccerBase::GetAgentBody(const Leaf& base, TTeamIndex idx, - int unum, shared_ptr<Body>& agent_body) + int unum, shared_ptr<RigidBody>& agent_body) { shared_ptr<AgentState> agentState; shared_ptr<Transform> parent; @@ -380,7 +380,7 @@ } bool -SoccerBase::GetBody(const Leaf& base, shared_ptr<Body>& body) +SoccerBase::GetBody(const Leaf& base, shared_ptr<RigidBody>& body) { shared_ptr<Transform> parent; if (! GetTransformParent(base,parent)) @@ -390,7 +390,7 @@ return false; } - body = shared_dynamic_cast<Body>(parent->FindChildSupportingClass<Body>()); + body = shared_dynamic_cast<RigidBody>(parent->FindChildSupportingClass<RigidBody>()); if (body.get() == 0) { @@ -443,10 +443,10 @@ } bool -SoccerBase::GetBallBody(const Leaf& base, shared_ptr<Body>& body) +SoccerBase::GetBallBody(const Leaf& base, shared_ptr<RigidBody>& body) { static shared_ptr<Scene> scene; - static shared_ptr<Body> bodyRef; + static shared_ptr<RigidBody> bodyRef; if (scene.get() == 0) { @@ -462,7 +462,7 @@ if (bodyRef.get() == 0) { - bodyRef = shared_dynamic_cast<Body> + bodyRef = shared_dynamic_cast<RigidBody> (base.GetCore()->Get(scene->GetFullPath() + "Ball/physics")); if (bodyRef.get() == 0) @@ -647,7 +647,7 @@ Leaf::TLeafList leafList; - parent->ListChildrenSupportingClass<Body>(leafList, true); + parent->ListChildrenSupportingClass<RigidBody>(leafList, true); if (leafList.size() == 0) { @@ -663,8 +663,8 @@ // move all child bodies for (; iter != leafList.end(); ++iter) { - shared_ptr<Body> childBody = - shared_dynamic_cast<Body>(*iter); + shared_ptr<RigidBody> childBody = + shared_dynamic_cast<RigidBody>(*iter); Vector3f childPos = childBody->GetPosition(); @@ -692,7 +692,7 @@ Leaf::TLeafList leafList; - parent->ListChildrenSupportingClass<Body>(leafList, true); + parent->ListChildrenSupportingClass<RigidBody>(leafList, true); if (leafList.size() == 0) { @@ -703,7 +703,7 @@ return false; } - shared_ptr<Body> body; + shared_ptr<RigidBody> body; GetAgentBody(agent_aspect, body); Matrix bodyR = body->GetRotation(); @@ -720,8 +720,8 @@ ++iter ) { - shared_ptr<Body> childBody = - shared_dynamic_cast<Body>(*iter); + shared_ptr<RigidBody> childBody = + shared_dynamic_cast<RigidBody>(*iter); Vector3f childPos = childBody->GetPosition(); Matrix childR = childBody->GetRotation(); Modified: branches/multiphys/rcssserver3d/plugin/soccer/soccerbase/soccerbase.h =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/soccerbase/soccerbase.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/soccerbase/soccerbase.h 2009-11-25 06:09:10 UTC (rev 107) @@ -40,7 +40,7 @@ class Scene; class Transform; class Perceptor; - class Body; + class RigidBody; class SphereCollider; class ControlAspect; class AgentAspect; @@ -84,19 +84,19 @@ /** returns a reference to the Body node below the closest transform parent */ static bool - GetBody(const zeitgeist::Leaf& base, boost::shared_ptr<oxygen::Body>& body); + GetBody(const zeitgeist::Leaf& base, boost::shared_ptr<oxygen::RigidBody>& body); /** returns a reference to the Body node below the given Transform node */ static bool GetAgentBody(const boost::shared_ptr<oxygen::Transform> transform, - boost::shared_ptr<oxygen::Body>& agent_body); + boost::shared_ptr<oxygen::RigidBody>& agent_body); /** returns a reference to the Body node below the given Transform node based on parameters team index and uniform number */ static bool GetAgentBody(const zeitgeist::Leaf& base, TTeamIndex idx, - int unum, boost::shared_ptr<oxygen::Body>& agent_body); + int unum, boost::shared_ptr<oxygen::RigidBody>& agent_body); /** returns a reference to the AgentState node below the closest Transform parent */ @@ -148,7 +148,7 @@ /** returns a reference to the Body node below the Ball */ static bool GetBallBody(const zeitgeist::Leaf& base, - boost::shared_ptr<oxygen::Body>& body); + boost::shared_ptr<oxygen::RigidBody>& body); /** returns a reference to the Body SphereCollider node below the Ball */ static bool Modified: branches/multiphys/rcssserver3d/plugin/soccer/soccercontrolaspect/soccercontrolaspect.h =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/soccercontrolaspect/soccercontrolaspect.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/soccercontrolaspect/soccercontrolaspect.h 2009-11-25 06:09:10 UTC (rev 107) @@ -32,7 +32,7 @@ namespace oxygen { class RecorderHandler; - class Body; + class RigidBody; } /** \class SoccerControlAspect is the base class for all Modified: branches/multiphys/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp 2009-11-25 06:09:10 UTC (rev 107) @@ -23,7 +23,7 @@ #include <salt/random.h> #include <zeitgeist/logserver/logserver.h> #include <oxygen/agentaspect/agentaspect.h> -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include <oxygen/sceneserver/scene.h> #include <oxygen/gamecontrolserver/gamecontrolserver.h> #include <soccerbase/soccerbase.h> @@ -958,7 +958,7 @@ salt::BoundingSphere sphere(pos, mAudioCutDist); shared_ptr<Transform> transform_parent; - shared_ptr<Body> agent_body; + shared_ptr<RigidBody> agent_body; for ( TAgentStateList::const_iterator it = agent_states.begin(); @@ -1104,7 +1104,7 @@ opp_defender_pos = 0.0; shared_ptr<Transform> transform_parent; - shared_ptr<Body> agent_body; + shared_ptr<RigidBody> agent_body; list<shared_ptr<AgentState> >::const_iterator it; for (it = opp_agent_states.begin(); it != opp_agent_states.end(); it++) Modified: branches/multiphys/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h 2009-11-25 06:09:10 UTC (rev 107) @@ -36,7 +36,7 @@ namespace oxygen { - class Body; + class RigidBody; class AgentAspect; class Transform; } @@ -193,7 +193,7 @@ protected: /** reference to the body node of the Ball */ - boost::shared_ptr<oxygen::Body> mBallBody; + boost::shared_ptr<oxygen::RigidBody> mBallBody; /** reference to the GameStateAspect */ CachedPath<GameStateAspect> mGameState; Modified: branches/multiphys/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp 2009-11-25 06:09:10 UTC (rev 107) @@ -23,7 +23,7 @@ */ -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include <oxygen/gamecontrolserver/gamecontrolserver.h> #include <soccerbase/soccerbase.h> #include <agentstate/agentstate.h> @@ -365,7 +365,7 @@ return; } - shared_ptr<Body> body; + shared_ptr<RigidBody> body; if (SoccerBase::GetBallBody(*this, body)) { @@ -394,7 +394,7 @@ return; } - shared_ptr<Body> body; + shared_ptr<RigidBody> body; if (SoccerBase::GetBallBody(*this, body)) { Modified: branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinput.cpp =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinput.cpp 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinput.cpp 2009-11-25 06:09:10 UTC (rev 107) @@ -21,7 +21,7 @@ #include <zeitgeist/scriptserver/scriptserver.h> #include <zeitgeist/logserver/logserver.h> #include "soccermonitor.h" -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include <oxygen/sceneserver/fpscontroller.h> using namespace boost; @@ -68,7 +68,7 @@ } // get camera body - mCameraBody = shared_dynamic_cast<Body> + mCameraBody = shared_dynamic_cast<RigidBody> (GetCore()->Get("/usr/scene/camera/physics")); if (mCameraBody.get() == 0) Modified: branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinput.h =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinput.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinput.h 2009-11-25 06:09:10 UTC (rev 107) @@ -27,7 +27,7 @@ namespace oxygen { class FPSController; - class Body; + class RigidBody; } class SoccerInput : public kerosin::InputItem @@ -79,7 +79,7 @@ boost::shared_ptr<oxygen::NetClient> mMonitorClient; /** cached reference to the camera body */ - boost::shared_ptr<oxygen::Body> mCameraBody; + boost::shared_ptr<oxygen::RigidBody> mCameraBody; boost::shared_ptr<oxygen::FPSController> mFPS; }; Modified: branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.cpp =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.cpp 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.cpp 2009-11-25 06:09:10 UTC (rev 107) @@ -20,7 +20,7 @@ #include "soccerinputlogplayer.h" #include <zeitgeist/scriptserver/scriptserver.h> #include <zeitgeist/logserver/logserver.h> -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> using namespace boost; using namespace zeitgeist; @@ -71,7 +71,7 @@ } // get camera body - mCameraBody = shared_dynamic_cast<Body> + mCameraBody = shared_dynamic_cast<RigidBody> (GetCore()->Get("/usr/scene/camera/physics")); if (mCameraBody.get() == 0) Modified: branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.h =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.h 2009-11-25 06:09:10 UTC (rev 107) @@ -72,7 +72,7 @@ boost::shared_ptr<zeitgeist::ScriptServer> mScriptServer; /** cached reference to the camera body */ - boost::shared_ptr<oxygen::Body> mCameraBody; + boost::shared_ptr<oxygen::RigidBody> mCameraBody; /** cached reference to the camera body */ boost::shared_ptr<oxygen::FPSController> mFPS; Modified: branches/multiphys/rsgedit/src/property.cpp =================================================================== --- branches/multiphys/rsgedit/src/property.cpp 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rsgedit/src/property.cpp 2009-11-25 06:09:10 UTC (rev 107) @@ -33,7 +33,7 @@ #include <oxygen/sceneserver/basenode.h> #include <oxygen/sceneserver/transform.h> #include <oxygen/sceneserver/scenedict.h> -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include <oxygen/physicsserver/joint.h> #include <oxygen/physicsserver/hingejoint.h> #include <oxygen/physicsserver/universaljoint.h> @@ -107,7 +107,7 @@ mClassMap[wxT("ClassClass")] = CL_CLASS; mClassMap[wxT("/classes/oxygen/BaseNode")] = CL_BASENODE; mClassMap[wxT("/classes/oxygen/Transform")] = CL_TRANSFORM; - mClassMap[wxT("/classes/oxygen/Body")] = CL_BODY; + mClassMap[wxT("/classes/oxygen/RigidBody")] = CL_RIGIDBODY; mClassMap[wxT("/classes/oxygen/Joint")] = CL_JOINT; mClassMap[wxT("/classes/oxygen/HingeJoint")] = CL_HINGEJOINT; mClassMap[wxT("/classes/oxygen/UniversalJoint")] = CL_UNIVERSALJOINT; @@ -189,7 +189,7 @@ void Property::GenBodyEntries(shared_ptr<Leaf> leaf, TEntryList& entries) const { - const Body& body = *shared_static_cast<Body>(leaf); + const RigidBody& body = *shared_static_cast<RigidBody>(leaf); entries.push_back(Entry(wxT("GetMass"),FormatFloat(body.GetMass()))); entries.push_back(Entry(wxT("GetVelocity"),FormatVector3(body.GetVelocity()))); entries.push_back(Entry(wxT("GetAngularVelocity"),FormatVector3(body.GetAngularVelocity()))); @@ -398,7 +398,7 @@ GenTransformEntries(leaf, entries); break; - case CL_BODY: + case CL_RIGIDBODY: GenBodyEntries(leaf, entries); break; Modified: branches/multiphys/rsgedit/src/sparkglrender.cpp =================================================================== --- branches/multiphys/rsgedit/src/sparkglrender.cpp 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/rsgedit/src/sparkglrender.cpp 2009-11-25 06:09:10 UTC (rev 107) @@ -19,7 +19,7 @@ */ #include "sparkglrender.h" #include <zeitgeist/logserver/logserver.h> -#include <oxygen/physicsserver/body.h> +#include <oxygen/physicsserver/rigidbody.h> #include <oxygen/physicsserver/joint.h> #include <oxygen/sceneserver/camera.h> #include <oxygen/sceneserver/sceneserver.h> @@ -163,7 +163,7 @@ ++i ) { - shared_ptr<Body> body = + shared_ptr<RigidBody> body = jointNode->GetBody(static_cast<Joint::EBodyIndex>(i)); if (body.get() == 0) Modified: branches/multiphys/simspark-utilities/data/rsg/agent/ball.rsg =================================================================== --- branches/multiphys/simspark-utilities/data/rsg/agent/ball.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/simspark-utilities/data/rsg/agent/ball.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -15,7 +15,7 @@ (setScale $Radius $Radius $Radius) ) - (nd Body + (nd RigidBody (setName physics) (setSphereTotal $Mass $Radius) Modified: branches/multiphys/spark/data/rsg/boxspheres/box.rsg =================================================================== --- branches/multiphys/spark/data/rsg/boxspheres/box.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/spark/data/rsg/boxspheres/box.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -8,7 +8,7 @@ (setMaterial $material) ) - (nd Body + (nd RigidBody (setName boxBody) ;(setBoxTotal $totalMass $lenX $lenY $lenZ) (setBox $totalMass $lenX $lenY $lenZ) @@ -34,4 +34,4 @@ ) ) -) \ No newline at end of file +) Modified: branches/multiphys/spark/data/rsg/boxspheres/box_with_handler.rsg =================================================================== --- branches/multiphys/spark/data/rsg/boxspheres/box_with_handler.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/spark/data/rsg/boxspheres/box_with_handler.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -8,7 +8,7 @@ (setMaterial $material) ) - (nd Body + (nd RigidBody (setName boxBody) ;(setBoxTotal $totalMass $lenX $lenY $lenZ) (setBox $totalMass $lenX $lenY $lenZ) @@ -36,4 +36,4 @@ ;(nd PerceptorHandler) ) -) \ No newline at end of file +) Modified: branches/multiphys/spark/data/rsg/boxspheres/box_with_handler055.rsg =================================================================== --- branches/multiphys/spark/data/rsg/boxspheres/box_with_handler055.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/spark/data/rsg/boxspheres/box_with_handler055.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -8,7 +8,7 @@ (setMaterial $material) ) - (nd Body + (nd RigidBody (setName boxBody) ;(setBoxTotal $totalMass $lenX $lenY $lenZ) (setBox $totalMass $lenX $lenY $lenZ) Modified: branches/multiphys/spark/data/rsg/boxspheres/box_with_handler056.rsg =================================================================== --- branches/multiphys/spark/data/rsg/boxspheres/box_with_handler056.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/spark/data/rsg/boxspheres/box_with_handler056.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -8,7 +8,7 @@ (setMaterial $material) ) - (nd Body + (nd RigidBody (setName boxBody) ;(setBoxTotal $totalMass $lenX $lenY $lenZ) (setBox $totalMass $lenX $lenY $lenZ) @@ -36,4 +36,4 @@ ;(nd PerceptorHandler) ) -) \ No newline at end of file +) Modified: branches/multiphys/spark/data/rsg/boxspheres/ccylinder.rsg =================================================================== --- branches/multiphys/spark/data/rsg/boxspheres/ccylinder.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/spark/data/rsg/boxspheres/ccylinder.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -9,7 +9,7 @@ (setMaterial $material) ) - (nd Body + (nd RigidBody (setName ccylinderBody) ;(setCappedCylinderTotal $totalMass $radius $length) (setCappedCylinder $totalMass $radius $length) Modified: branches/multiphys/spark/data/rsg/boxspheres/sphere.rsg =================================================================== --- branches/multiphys/spark/data/rsg/boxspheres/sphere.rsg 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/spark/data/rsg/boxspheres/sphere.rsg 2009-11-25 06:09:10 UTC (rev 107) @@ -9,7 +9,7 @@ (setMaterial $material) ) - (nd Body + (nd RigidBody (setName sphereBody) ;(setSphereTotal $totalMass $radius) (setSphere $totalMass $radius) Modified: branches/multiphys/spark/lib/oxygen/CMakeLists.txt =================================================================== --- branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2009-11-25 06:09:10 UTC (rev 107) @@ -16,6 +16,7 @@ oxygen_defines.h physicsserver/physicsobject.h physicsserver/body.h + physicsserver/rigidbody.h physicsserver/bodycontroller.h physicsserver/boxcollider.h physicsserver/ccylindercollider.h @@ -109,8 +110,9 @@ oxygen.cpp physicsserver/physicsobject.cpp physicsserver/physicsobject_c.cpp - physicsserver/body.cpp physicsserver/body_c.cpp + physicsserver/rigidbody.cpp + physicsserver/rigidbody_c.cpp physicsserver/bodycontroller.cpp physicsserver/bodycontroller_c.cpp physicsserver/transformcollider.cpp Modified: branches/multiphys/spark/lib/oxygen/oxygen.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/oxygen.cpp 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/spark/lib/oxygen/oxygen.cpp 2009-11-25 06:09:10 UTC (rev 107) @@ -55,6 +55,7 @@ zg.GetCore()->RegisterClassObject(new CLASS(PhysicsServer), "oxygen/"); zg.GetCore()->RegisterClassObject(new CLASS(PhysicsObject), "oxygen/"); zg.GetCore()->RegisterClassObject(new CLASS(Body), "oxygen/"); + zg.GetCore()->RegisterClassObject(new CLASS(RigidBody), "oxygen/"); zg.GetCore()->RegisterClassObject(new CLASS(BodyController), "oxygen/"); zg.GetCore()->RegisterClassObject(new CLASS(DragController), "oxygen/"); zg.GetCore()->RegisterClassObject(new CLASS(VelocityController), "oxygen/"); Modified: branches/multiphys/spark/lib/oxygen/oxygen.h =================================================================== --- branches/multiphys/spark/lib/oxygen/oxygen.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/spark/lib/oxygen/oxygen.h 2009-11-25 06:09:10 UTC (rev 107) @@ -37,6 +37,7 @@ //abstract physics classes #include <oxygen/physicsserver/physicsobject.h> #include "physicsserver/body.h" +#include "physicsserver/rigidbody.h" #include "physicsserver/bodycontroller.h" #include "physicsserver/dragcontroller.h" #include "physicsserver/velocitycontroller.h" Modified: branches/multiphys/spark/lib/oxygen/physicsserver/angularmotor.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/angularmotor.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/spark/lib/oxygen/physicsserver/angularmotor.h 2009-11-25 06:09:10 UTC (rev 107) @@ -25,7 +25,7 @@ namespace oxygen { -class Body; +class RigidBody; /** An angular motor allows the relative angular velocities of two bodies to be controlled. The angular velocity can be controlled on Modified: branches/multiphys/spark/lib/oxygen/physicsserver/balljoint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/balljoint.h 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/spark/lib/oxygen/physicsserver/balljoint.h 2009-11-25 06:09:10 UTC (rev 107) @@ -25,7 +25,7 @@ namespace oxygen { -class Body; +class RigidBody; class OXYGEN_API BallJoint : public Joint { Deleted: branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp 2009-11-19 10:10:50 UTC (rev 106) +++ branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp 2009-11-25 06:09:10 UTC (rev 107) @@ -1,559 +0,0 @@ -/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- - this file is part of rcssserver3D - Fri May 9 2003 - Copyright (C) 2003 Koblenz University - $Id$ - - 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; version 2 of the License. - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include "body.h" -#include "world.h" -#include "../sceneserver/scene.h" -#include "zeitgeist/logserver/logserver.h" -#include "../sceneserver/transform.h" -#include "transformcollider.h" - -using namespace boost; -using namespace oxygen; -using namespace salt; -using namespace std; - -Body::Body() : PhysicsObject(), mODEBody(0), mMassTrans(0,0,0), mMassTransformed(false) -{ -} - -Body::~Body() -{ -} - -dBodyID Body::GetODEBody() const -{ - return mODEBody; -} - -void Body::Enable() -{ - dBodyEnable(mODEBody); -} - -void Body::Disable() -{ - dBodyDisable(mODEBody); -} - -bool Body::IsEnabled() const -{ - return (dBodyIsEnabled(mODEBody) != 0); -} - -void Body::UseGravity(bool f) -{ - if (f == true) - { - // body is affected by gravity - dBodySetGravityMode(mODEBody, 1); - } - else - { - // body is not affected by gravity - dBodySetGravityMode(mODEBody, 0); - } -} - -bool Body::UsesGravity() const -{ - return (dBodyGetGravityMode(mODEBody) != 0); -} - -bool Body::CreateBody() -{ - if (mODEBody != 0) - { - return true; - } - - dWorldID world = GetWorldID(); - if (world == 0) - { - return false; - } - - // create the managed body - mODEBody = dBodyCreate(world); - if (mODEBody == 0) - { - GetLog()->Error() - << "(Body) ERROR: could not create new ODE body\n"; - return false; - } - - return true; -} - -void Body::DestroyODEObject() -{ - if (mODEBody == 0) - { - return; - } - - dBodyDestroy(mODEBody); - mODEBody = 0; -} - -void Body::OnLink() -{ - PhysicsObject::OnLink(); - - if (! CreateBody()) - { - return; - } - - // let the body, take on the world space position of the parent - dBodySetData(mODEBody, this); - - shared_ptr<BaseNode> baseNode = shared_static_cast<BaseNode> - (GetParent().lock()); - - const Matrix& mat = baseNode->GetWorldTransform(); - SetRotation(mat); - SetPosition(mat.Pos()); -} - -void -Body::SetMass(float mass) -{ - dMass ODEMass; - dBodyGetMass(mODEBody, &ODEMass); - dMassAdjust(&ODEMass, mass); - dBodySetMass(mODEBody, &ODEMass); -} - -float -Body::GetMass() const -{ - dMass m; - dBodyGetMass(mODEBody, &m); - return m.mass; -} - -void Body::GetMassParameters(dMass& mass) const -{ - dBodyGetMass(mODEBody, &mass); -} - -void Body::SetMassParameters(const dMass& mass) -{ - dBodySetMass(mODEBody, &mass); -} - -void Body::PrepareSphere(dMass& mass, float density, float radius) const -{ - dMassSetSphere(&mass, density, radius); -} - -void Body::SetSphere(float density, float radius) -{ - dMass ODEMass; - PrepareSphere(ODEMass, density, radius); - dBodySetMass(mODEBody, &ODEMass); -} - -void Body::AddSphere(float density, float radius, const Matrix& matrix) -{ - dMass ODEMass; - PrepareSphere(ODEMass, density, radius); - AddMass(ODEMass, matrix); -} - -void Body::PrepareSphereTotal(dMass& mass, float total_mass, float radius) const -{ - dMassSetSphereTotal(&mass, total_mass, radius); -} - -void Body::SetSphereTotal(float total_mass, float radius) -{ - dMass ODEMass; - PrepareSphereTotal(ODEMass, total_mass, radius); - dBodySetMass(mODEBody, &ODEMass); -} - -void Body::AddSphereTotal(float total_mass, float radius, const Matrix& matrix) -{ - dMass ODEMass; - PrepareSphereTotal(ODEMass, total_mass, radius); - AddMass(ODEMass, matrix); -} - -void Body::PrepareBox(dMass& mass, float density, const Vector3f& size) const -{ - dMassSetBox(&mass, density, size[0], size[1], size[2]); -} - -void Body::SetBox(float density, const Vector3f& size) -{ - dMass ODEMass; - PrepareBox(ODEMass, density, size); - dBodySetMass(mODEBody, &ODEMass); -} - -void Body::AddBox(float density, const Vector3f& size, const Matrix& matrix) -{ - dMass ODEMass; - PrepareBox(ODEMass, density, size); - AddMass(ODEMass, matrix); -} - -void Body::PrepareBoxTotal(dMass& mass, float total_mass, const Vector3f& size) const -{ - dMassSetBoxTotal(&mass, total_mass, size[0], size[1], size[2]); -} - -void Body::SetBoxTotal(float total_mass, const Vector3f& size) -{ - dMass ODEMass; - PrepareBoxTotal(ODEMass, total_mass, size); - dBodySetMass(mODEBody, &ODEMass); -} - -void Body::AddBoxTotal(float total_mass, const Vector3f& size, const Matrix& matrix) -{ - dMass ODEMass; - PrepareBoxTotal(ODEMass, total_mass, size); - AddMass(ODEMass, matrix); -} -/* - dMass ODEMass; - dBodyGetMass(mODEBody, &ODEMass); - Vector3f trans(ODEMass.c[0], ODEMass.c[1], ODEMass.c[2]); - - if (trans.SquareLength() > 0) - { - mOrigin = mOrigin - trans; - GetLog()->Warning() << "(Body::CenterMass) New origin: " << mOrigin << "\n"; - - dMassTranslate(&ODEMass, -trans[0], -trans[1], -trans[2]); - dBodySetMass(mODEBody, &ODEMass); - - Vector3f position = GetPosition(); - position = position + trans; - SetPosition(position); - - mCOMShifted = true; - } -*/ -void Body::AddMass(const dMass& mass, const Matrix& matrix) -{ - dMass transMass(mass); - - dMatrix3 rot; - ConvertRotationMatrix(matrix, rot); - dMassRotate(&transMass,rot); - - const Vector3f& trans(matrix.Pos()); - dMassTranslate(&transMass,trans[0],trans[1],trans[2]); - - dMassTranslate(&transMass,mMa... [truncated message content] |
From: <a-...@us...> - 2009-12-10 08:35:03
|
Revision: 118 http://simspark.svn.sourceforge.net/simspark/?rev=118&view=rev Author: a-held Date: 2009-12-10 08:34:56 +0000 (Thu, 10 Dec 2009) Log Message: ----------- Searched and renamed all CCylinders, CappedCylinders and Capped Cylinders to Capsule Implemented bridge pattern for CapsuleCollider Provided bridge pattern for ConeCollider Declared GenericPhysicsObject class that can be cast to in order to pass pointers to engine-specific objects on to the abstract layer (like void*, but cleaner) Modified Paths: -------------- branches/multiphys/rcssserver3d/data/rsg/agent/hoap2.rsg branches/multiphys/rcssserver3d/data/rsg/agent/nao/naoneckhead.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot055.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot056.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/lowerarm.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/soccerbot.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbotcomp.rsg branches/multiphys/rcssserver3d/doc/users/robots.tex branches/multiphys/spark/data/ros/aibo.rsi branches/multiphys/spark/data/ros/blockworld.ros branches/multiphys/spark/data/rsg/boxspheres/simspark.rsg branches/multiphys/spark/lib/kerosin/CMakeLists.txt branches/multiphys/spark/lib/kerosin/kerosin.cpp branches/multiphys/spark/lib/kerosin/kerosin.h branches/multiphys/spark/lib/oxygen/CMakeLists.txt branches/multiphys/spark/lib/oxygen/geometryserver/stdmeshimporter.cpp branches/multiphys/spark/lib/oxygen/geometryserver/stdmeshimporter.h branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.h branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider_c.cpp branches/multiphys/spark/lib/oxygen/physicsserver/collider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/conecollider.h branches/multiphys/spark/lib/oxygen/physicsserver/int/boxcolliderint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/physicsobjectint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/spherecolliderint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/worldint.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odephysicsobject.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odephysicsobject.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.cpp branches/multiphys/spark/lib/oxygen/physicsserver/physicsobject.cpp branches/multiphys/spark/lib/oxygen/physicsserver/physicsobject.h branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.h branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody_c.cpp branches/multiphys/spark/plugin/rosimporter/roselements.cpp branches/multiphys/spark/plugin/rosimporter/roselements.h branches/multiphys/spark/plugin/rosimporter/rosimporter.cpp branches/multiphys/spark/plugin/rosimporter/rosimporter.h Added Paths: ----------- branches/multiphys/rcssserver3d/data/rsg/agent/nao/capsule_appearance.rsg branches/multiphys/rcssserver3d/data/rsg/agent/nao/capsule_physics.rsg branches/multiphys/rcssserver3d/data/rsg/agent/nao/capsule_physics_nocollider.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box_with_hj_with_capsule.rsg branches/multiphys/spark/data/rsg/boxspheres/capsule.rsg branches/multiphys/spark/data/rsg/boxspheres/staticcapsule.rsg branches/multiphys/spark/lib/kerosin/sceneserver/capsule.cpp branches/multiphys/spark/lib/kerosin/sceneserver/capsule.h branches/multiphys/spark/lib/kerosin/sceneserver/capsule_c.cpp branches/multiphys/spark/lib/oxygen/physicsserver/conecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/genericphysicsobject.h branches/multiphys/spark/lib/oxygen/physicsserver/int/capsulecolliderint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/conecolliderint.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecapsulecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecapsulecollider.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeconecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeconecollider.h Removed Paths: ------------- branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_appearance.rsg branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics.rsg branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics_nocollider.rsg branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box_with_hj_with_ccylinder.rsg branches/multiphys/spark/data/rsg/boxspheres/ccylinder.rsg branches/multiphys/spark/data/rsg/boxspheres/staticccylinder.rsg branches/multiphys/spark/lib/kerosin/sceneserver/ccylinder.cpp branches/multiphys/spark/lib/kerosin/sceneserver/ccylinder.h branches/multiphys/spark/lib/kerosin/sceneserver/ccylinder_c.cpp Modified: branches/multiphys/rcssserver3d/data/rsg/agent/hoap2.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/hoap2.rsg 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/rcssserver3d/data/rsg/agent/hoap2.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -142,7 +142,7 @@ (nd Transform (setLocalPos $offsetLeftShoulderCylX $offsetLeftShoulderCylY $offsetLeftShoulderCylZ) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setMaterial matGrey) (setParams $TorsoCylinderRadius $TorsoCylinderLength) ) @@ -151,7 +151,7 @@ (nd Transform (setLocalPos $offsetRightShoulderCylX $offsetRightShoulderCylY $offsetRightShoulderCylZ) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setMaterial matGrey) (setParams $TorsoCylinderRadius $TorsoCylinderLength) ) @@ -373,7 +373,7 @@ (nd Transform (setLocalPos 0 0 (eval -1 * (eval (eval $UpperarmHeight / 2.0) + (eval $ElbowRadius / 2.0)))) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setMaterial matGrey) (setParams $ElbowRadius $ElbowLength) ) @@ -410,7 +410,7 @@ (nd Transform (setLocalPos 0 0 (eval -1 * (eval (eval $UpperarmHeight / 2.0) + (eval $ElbowRadius / 2.0)))) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setMaterial matGrey) (setParams $ElbowRadius $ElbowLength) ) Added: branches/multiphys/rcssserver3d/data/rsg/agent/nao/capsule_appearance.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/capsule_appearance.rsg (rev 0) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/capsule_appearance.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -0,0 +1,11 @@ +; -*- mode: lisp; -*- + +(RSG 0 1) +( + (templ $radius $length $material) + + (nd Capsule + (setParams $radius $length) + (setMaterial $material) + ) +) Added: branches/multiphys/rcssserver3d/data/rsg/agent/nao/capsule_physics.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/capsule_physics.rsg (rev 0) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/capsule_physics.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -0,0 +1,19 @@ +; -*- mode: lisp; -*- + +(RSG 0 1) +( + (templ $radius $length $totalMass) + + (nd RigidBody + (setName capsuleBody) + (setCapsuleTotal $totalMass $radius $length) + + (importScene rsg/agent/nao/dragcontroller.rsg) + ) + + (nd CapsuleCollider + (setParams $radius $length) + + (importScene rsg/agent/nao/contactjointhandler.rsg) + ) + ) Added: branches/multiphys/rcssserver3d/data/rsg/agent/nao/capsule_physics_nocollider.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/capsule_physics_nocollider.rsg (rev 0) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/capsule_physics_nocollider.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -0,0 +1,13 @@ +; -*- mode: lisp; -*- + +(RSG 0 1) +( + (templ $radius $length $totalMass) + + (nd RigidBody + (setName capsuleBody) + (setCapsuleTotal $totalMass $radius) + + (importScene rsg/agent/nao/dragcontroller.rsg) + ) +) Deleted: branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_appearance.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_appearance.rsg 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_appearance.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -1,11 +0,0 @@ -; -*- mode: lisp; -*- - -(RSG 0 1) -( - (templ $radius $length $material) - - (nd CCylinder - (setParams $radius $length) - (setMaterial $material) - ) -) Deleted: branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics.rsg 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -1,19 +0,0 @@ -; -*- mode: lisp; -*- - -(RSG 0 1) -( - (templ $radius $length $totalMass) - - (nd RigidBody - (setName ccylinderBody) - (setCappedCylinderTotal $totalMass $radius $length) - - (importScene rsg/agent/nao/dragcontroller.rsg) - ) - - (nd CCylinderCollider - (setParams $radius $length) - - (importScene rsg/agent/nao/contactjointhandler.rsg) - ) - ) Deleted: branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics_nocollider.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics_nocollider.rsg 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/ccylinder_physics_nocollider.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -1,13 +0,0 @@ -; -*- mode: lisp; -*- - -(RSG 0 1) -( - (templ $radius $length $totalMass) - - (nd RigidBody - (setName ccylinderBody) - (setCappedCylinderTotal $totalMass $radius) - - (importScene rsg/agent/nao/dragcontroller.rsg) - ) -) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/nao/naoneckhead.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/naoneckhead.rsg 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/naoneckhead.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -43,12 +43,12 @@ (setName neck) (setLocalPos $Neck_X $Neck_Y $Neck_Z) - (importScene rsg/agent/nao/ccylinder_appearance.rsg $Neck_Radius $Neck_Length matDarkGrey) - (importScene rsg/agent/nao/ccylinder_physics.rsg $Neck_Radius $Neck_Length $Neck_Mass) + (importScene rsg/agent/nao/capsule_appearance.rsg $Neck_Radius $Neck_Length matDarkGrey) + (importScene rsg/agent/nao/capsule_physics.rsg $Neck_Radius $Neck_Length $Neck_Mass) (importScene rsg/agent/nao/hingejoint.rsg hj1 he1 - ../ccylinderBody ../../body/boxBody + ../capsuleBody ../../body/boxBody 0 0 0 0 0 1 $he1_min $he1_max) @@ -80,7 +80,7 @@ (importScene rsg/agent/nao/hingejoint.rsg hj2 he2 - ../sphereBody ../../neck/ccylinderBody + ../sphereBody ../../neck/capsuleBody ;../boxBody ../../body/boxBody 0 0 -0.005 1 0 0 Modified: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot055.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot055.rsg 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot055.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -168,7 +168,7 @@ (nd Transform (setLocalPos $offsetLeftShoulderCylX $offsetLeftShoulderCylY $offsetLeftShoulderCylZ) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setName leftshoulderpin) (setMaterial matDarkGrey) (setParams $TorsoCylinderRadius $TorsoCylinderLength) @@ -178,7 +178,7 @@ (nd Transform (setLocalPos $offsetRightShoulderCylX $offsetRightShoulderCylY $offsetRightShoulderCylZ) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setName rightshoulderpin) (setMaterial matDarkGrey) (setParams $TorsoCylinderRadius $TorsoCylinderLength) @@ -336,7 +336,7 @@ (nd Transform (setLocalPos 0 0 (eval -1 * (eval (eval $UpperarmHeight / 2.0) + (eval $ElbowRadius / 2.0)))) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setMaterial matGrey) (setParams $ElbowRadius $ElbowLength) ) @@ -374,7 +374,7 @@ (nd Transform (setLocalPos 0 0 (eval -1 * (eval (eval $UpperarmHeight / 2.0) + (eval $ElbowRadius / 2.0)))) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setMaterial matGrey) (setParams $ElbowRadius $ElbowLength) ) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot056.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot056.rsg 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot056.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -204,7 +204,7 @@ (nd Transform (setLocalPos $offsetLeftShoulderCylX $offsetLeftShoulderCylY $offsetLeftShoulderCylZ) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setName leftshoulderpin) (setMaterial matDarkGrey) (setParams $TorsoCylinderRadius $TorsoCylinderLength) @@ -214,7 +214,7 @@ (nd Transform (setLocalPos $offsetRightShoulderCylX $offsetRightShoulderCylY $offsetRightShoulderCylZ) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setName rightshoulderpin) (setMaterial matDarkGrey) (setParams $TorsoCylinderRadius $TorsoCylinderLength) @@ -409,7 +409,7 @@ (nd Transform (setLocalPos 0 0 (eval -1 * (eval (eval $UpperarmHeight / 2.0) + (eval $ElbowRadius / 2.0)))) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setMaterial matGrey) (setParams $ElbowRadius $ElbowLength) ) @@ -455,7 +455,7 @@ (nd Transform (setLocalPos 0 0 (eval -1 * (eval (eval $UpperarmHeight / 2.0) + (eval $ElbowRadius / 2.0)))) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setMaterial matGrey) (setParams $ElbowRadius $ElbowLength) ) @@ -771,7 +771,7 @@ (nd Transform (setLocalPos 0 0 (eval (eval $ThighHeight * -0.5) - 0.025)) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setMaterial matRed) (setParams 0.1 (eval $ThighLength - 0.2)) ) @@ -812,7 +812,7 @@ (nd Transform (setLocalPos 0 0 (eval (eval $ThighHeight * -0.5) - 0.025)) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setMaterial matRed) (setParams 0.1 (eval $ThighLength - 0.2)) ) Added: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box_with_hj_with_capsule.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box_with_hj_with_capsule.rsg (rev 0) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box_with_hj_with_capsule.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -0,0 +1,37 @@ +;; -*- mode: lisp; -*- + +(RSG 0 1) +( + (templ $name $perceptorName $effectorName $attach + $x $y $z + $lenX $lenY $lenZ + $anchorX $anchorY $anchorZ + $axisX $axisY $axisZ $minDeg $maxDeg + $totalMass $material $ElbowRadius $ElbowLen) + + (nd Transform + (setName $name) + (setLocalPos $x $y $z) + (importScene rsg/agent/soccerbot058/box.rsg + $lenX $lenY $lenZ + $totalMass $material) + + ;; install hinge joint + (importScene rsg/agent/nao/hingejoint.rsg + $perceptorName $effectorName + ../boxBody $attach + $anchorX $anchorY $anchorZ + $axisX $axisY $axisZ + $minDeg $maxDeg) + + ;; static cylinder for the elbow + (nd Transform + (setLocalPos $anchorX $anchorY $anchorZ) + (setLocalRotation 0 90 0) + (nd Capsule + (setMaterial matGrey) + (setParams $ElbowRadius $ElbowLen) + ) + ) + ) + ) Deleted: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box_with_hj_with_ccylinder.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box_with_hj_with_ccylinder.rsg 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/box_with_hj_with_ccylinder.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -1,37 +0,0 @@ -;; -*- mode: lisp; -*- - -(RSG 0 1) -( - (templ $name $perceptorName $effectorName $attach - $x $y $z - $lenX $lenY $lenZ - $anchorX $anchorY $anchorZ - $axisX $axisY $axisZ $minDeg $maxDeg - $totalMass $material $ElbowRadius $ElbowLen) - - (nd Transform - (setName $name) - (setLocalPos $x $y $z) - (importScene rsg/agent/soccerbot058/box.rsg - $lenX $lenY $lenZ - $totalMass $material) - - ;; install hinge joint - (importScene rsg/agent/nao/hingejoint.rsg - $perceptorName $effectorName - ../boxBody $attach - $anchorX $anchorY $anchorZ - $axisX $axisY $axisZ - $minDeg $maxDeg) - - ;; static cylinder for the elbow - (nd Transform - (setLocalPos $anchorX $anchorY $anchorZ) - (setLocalRotation 0 90 0) - (nd CCylinder - (setMaterial matGrey) - (setParams $ElbowRadius $ElbowLen) - ) - ) - ) - ) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/lowerarm.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/lowerarm.rsg 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/lowerarm.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -38,7 +38,7 @@ (nd Transform (setLocalPos $anchorX $anchorY $anchorZ) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setMaterial matGrey) (setParams $ElbowRadius $ElbowLen) ) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/soccerbot.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/soccerbot.rsg 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbot058/soccerbot.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -216,7 +216,7 @@ $offsetLeftShoulderCylY $offsetLeftShoulderCylZ) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setName leftshoulderpin) (setMaterial matDarkGrey) (setParams $TorsoCylinderRadius $TorsoCylinderLength) @@ -228,7 +228,7 @@ $offsetRightShoulderCylY $offsetRightShoulderCylZ) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setName rightshoulderpin) (setMaterial matDarkGrey) (setParams $TorsoCylinderRadius $TorsoCylinderLength) @@ -434,7 +434,7 @@ - (eval $ShankHeight / 2.0) - (eval 0.05 * $scale))) (def $ShankAnchorZ (eval $ShankHeight * 0.5)) - (importScene rsg/agent/soccerbot058/box_with_hj_with_ccylinder.rsg + (importScene rsg/agent/soccerbot058/box_with_hj_with_capsule.rsg leftshank llj4 lle4 ../../leftthigh/boxBody $LeftShankPosX $LeftShankPosY $LeftShankPosZ $ShankLength $ShankWidth $ShankHeight @@ -447,7 +447,7 @@ (def $RightShankPosX $RightThighPosX) (def $RightShankPosY $RightThighPosY) (def $RightShankPosZ $LeftShankPosZ) - (importScene rsg/agent/soccerbot058/box_with_hj_with_ccylinder.rsg + (importScene rsg/agent/soccerbot058/box_with_hj_with_capsule.rsg rightshank rlj4 rle4 ../../rightthigh/boxBody $RightShankPosX $RightShankPosY $RightShankPosZ $ShankLength $ShankWidth $ShankHeight Modified: branches/multiphys/rcssserver3d/data/rsg/agent/soccerbotcomp.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/soccerbotcomp.rsg 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/rcssserver3d/data/rsg/agent/soccerbotcomp.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -203,7 +203,7 @@ (nd Transform (setLocalPos $offsetLeftShoulderCylX $offsetLeftShoulderCylY $offsetLeftShoulderCylZ) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setName leftshoulderpin) (setMaterial matDarkGrey) (setParams $TorsoCylinderRadius $TorsoCylinderLength) @@ -213,7 +213,7 @@ (nd Transform (setLocalPos $offsetRightShoulderCylX $offsetRightShoulderCylY $offsetRightShoulderCylZ) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setName rightshoulderpin) (setMaterial matDarkGrey) (setParams $TorsoCylinderRadius $TorsoCylinderLength) @@ -369,7 +369,7 @@ (nd Transform (setLocalPos 0 0 (eval -1 * (eval (eval $UpperarmHeight / 2.0) + (eval $ElbowRadius / 2.0)))) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setMaterial matGrey) (setParams $ElbowRadius $ElbowLength) ) @@ -415,7 +415,7 @@ (nd Transform (setLocalPos 0 0 (eval -1 * (eval (eval $UpperarmHeight / 2.0) + (eval $ElbowRadius / 2.0)))) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setMaterial matGrey) (setParams $ElbowRadius $ElbowLength) ) @@ -621,7 +621,7 @@ (nd Transform (setLocalPos 0 0 (eval (eval $ThighHeight * -0.5) - 0.025)) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setMaterial matRed) (setParams 0.1 (eval $ThighLength - 0.2)) ) @@ -662,7 +662,7 @@ (nd Transform (setLocalPos 0 0 (eval (eval $ThighHeight * -0.5) - 0.025)) (setLocalRotation 0 90 0) - (nd CCylinder + (nd Capsule (setMaterial matRed) (setParams 0.1 (eval $ThighLength - 0.2)) ) Modified: branches/multiphys/rcssserver3d/doc/users/robots.tex =================================================================== --- branches/multiphys/rcssserver3d/doc/users/robots.tex 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/rcssserver3d/doc/users/robots.tex 2009-12-10 08:34:56 UTC (rev 118) @@ -237,11 +237,11 @@ box\_physics\_with\_handler.rsg & Not only do the job as file “box\_physics.rsg”, but also install a touchperceptorhandler under the BoxCollider Node. \\ - ccylinder\_appearance.rsg & Install a capped cylinder which is + capsule\_appearance.rsg & Install a capsule which is for the GL render. \\ - ccylinder\_physics.rsg & Install a capped cylinder that has + capsule\_physics.rsg & Install a capsule that has physics effect(ODE related) \\ - ccylinder\_physics\_nocollider.rsg & Install a capped cylinder that + capsule\_physics\_nocollider.rsg & Install a capsule that only has dynamics effect (mass, linear velocity, etc). But it can never collide to the others. \\ contactjointhandler.rsg & Install a contactjointhandler to Modified: branches/multiphys/spark/data/ros/aibo.rsi =================================================================== --- branches/multiphys/spark/data/ros/aibo.rsi 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/data/ros/aibo.rsi 2009-12-10 08:34:56 UTC (rev 118) @@ -12184,13 +12184,13 @@ </PhysicalAttributes> </SimpleBox> <!-- - <SimpleCappedCylinder name="larm3Capped" radius="0.016" height="0.03"> + <SimpleCapsule name="larm3Capped" radius="0.016" height="0.03"> <Translation x="-0.003" y="-0.028" z="0.0"/> <Rotation x="-90.0" y="0.0" z="-25.0"/> <PhysicalAttributes> <Mass value="0.05"/> </PhysicalAttributes> - </SimpleCappedCylinder> + </SimpleCapsule> --> </PhysicalRepresentation> </ComplexShape> @@ -15442,13 +15442,13 @@ </PhysicalAttributes> </SimpleBox> <!-- - <SimpleCappedCylinder name="rarm3Capped" radius="0.016" height="0.03"> + <SimpleCapsule name="rarm3Capped" radius="0.016" height="0.03"> <Translation x="-0.003" y="-0.028" z="0.0"/> <Rotation x="-90.0" y="0.0" z="-25.0"/> <PhysicalAttributes> <Mass value="0.05"/> </PhysicalAttributes> - </SimpleCappedCylinder> + </SimpleCapsule> --> </PhysicalRepresentation> </ComplexShape> @@ -24870,13 +24870,13 @@ </Polygon> </GraphicalRepresentation> <PhysicalRepresentation> - <SimpleCappedCylinder name="headCCylinder" radius="0.026" height="0.075"> + <SimpleCapsule name="headCapsule" radius="0.026" height="0.075"> <Translation x="-0.023" y="0.005" z="0.0"/> <Rotation x="0.0" y="90.0" z="20.0"/> <PhysicalAttributes> <Mass value="0.25"/> </PhysicalAttributes> - </SimpleCappedCylinder> + </SimpleCapsule> <SimpleSphere name="headSphere" radius="0.032"> <Translation x="0.012" y="0.012" z="0.0"/> <PhysicalAttributes> @@ -25191,13 +25191,13 @@ </Polygon> </GraphicalRepresentation> <PhysicalRepresentation> - <SimpleCappedCylinder name="neckCCylinder" radius="0.013" height="0.034"> + <SimpleCapsule name="neckCapsule" radius="0.013" height="0.034"> <Translation x="0.0" y="0.038" z="0.0"/> <Rotation x="90.0" y="0.0" z="0.0"/> <PhysicalAttributes> <Mass value="0.05"/> </PhysicalAttributes> - </SimpleCappedCylinder> + </SimpleCapsule> <SimpleSphere name="neckSphere" radius="0.032"> <Translation x="0.0" y="0.08" z="0.0"/> <PhysicalAttributes> @@ -27630,13 +27630,13 @@ <Mass value="1.0"/> </PhysicalAttributes> </SimpleSphere> - <SimpleCappedCylinder name="bodyCCylinder" radius="0.04" height="0.05"> + <SimpleCapsule name="bodyCapsule" radius="0.04" height="0.05"> <Translation x="0.0" y="-0.005" z="0.0"/> <Rotation x="0.0" y="90.0" z="0.0"/> <PhysicalAttributes> <Mass value="2.5"/> </PhysicalAttributes> - </SimpleCappedCylinder> + </SimpleCapsule> <SimpleSphere name="bodySphere2" radius="0.055"> <Translation x="0.06" y="0.004" z="0.0"/> <PhysicalAttributes> @@ -27764,4 +27764,4 @@ </Elements> </Movable> </Macro> -</RoSiIncludeFile> \ No newline at end of file +</RoSiIncludeFile> Modified: branches/multiphys/spark/data/ros/blockworld.ros =================================================================== --- branches/multiphys/spark/data/ros/blockworld.ros 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/data/ros/blockworld.ros 2009-12-10 08:34:56 UTC (rev 118) @@ -273,16 +273,16 @@ </Box> </Elements> </Movable> - <Movable name="cappedcylinder"> + <Movable name="capsule"> <Elements> - <CappedCylinder name="CappedCylinder" radius="0.05" height="0.15"> + <Capsule name="Capsule" radius="0.05" height="0.15"> <Translation x="0.3" y="-0.5" z="0.5"/> <Rotation x="0" y="80" z="0"/> <Appearance ref="green"/> <PhysicalAttributes> <Mass value="1"/> </PhysicalAttributes> - </CappedCylinder> + </Capsule> </Elements> </Movable> </Elements> Added: branches/multiphys/spark/data/rsg/boxspheres/capsule.rsg =================================================================== --- branches/multiphys/spark/data/rsg/boxspheres/capsule.rsg (rev 0) +++ branches/multiphys/spark/data/rsg/boxspheres/capsule.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -0,0 +1,35 @@ +; -*- mode: lisp; -*- + +(RSG 0 1) +( + (templ $radius $length $totalMass $material) + + (nd Capsule + (setParams $radius $length) + (setMaterial $material) + ) + + (nd RigidBody + (setName capsuleBody) + ;(setCapsuleTotal $totalMass $radius $length) + (setCapsule $totalMass $radius $length) + ) + + (nd CapsuleCollider + (setParams $radius $length) + (nd ContactJointHandler + (setContactBounceMode false) + + (setContactSlipMode true) + (setContactSlip 0.1 0.1) + + (setContactSoftERPMode true) + (setContactSoftERP 0.2) + + (setContactSoftCFM true) + (setContactSoftCFM 0.01) + ) + ) + ) + + Deleted: branches/multiphys/spark/data/rsg/boxspheres/ccylinder.rsg =================================================================== --- branches/multiphys/spark/data/rsg/boxspheres/ccylinder.rsg 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/data/rsg/boxspheres/ccylinder.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -1,35 +0,0 @@ -; -*- mode: lisp; -*- - -(RSG 0 1) -( - (templ $radius $length $totalMass $material) - - (nd CCylinder - (setParams $radius $length) - (setMaterial $material) - ) - - (nd RigidBody - (setName ccylinderBody) - ;(setCappedCylinderTotal $totalMass $radius $length) - (setCappedCylinder $totalMass $radius $length) - ) - - (nd CCylinderCollider - (setParams $radius $length) - (nd ContactJointHandler - (setContactBounceMode false) - - (setContactSlipMode true) - (setContactSlip 0.1 0.1) - - (setContactSoftERPMode true) - (setContactSoftERP 0.2) - - (setContactSoftCFM true) - (setContactSoftCFM 0.01) - ) - ) - ) - - Modified: branches/multiphys/spark/data/rsg/boxspheres/simspark.rsg =================================================================== --- branches/multiphys/spark/data/rsg/boxspheres/simspark.rsg 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/data/rsg/boxspheres/simspark.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -35,15 +35,15 @@ ) ) -; add capped cylinder +; add capsule (nd Transform (setLocalPos -4 0 20) - (importScene rsg/boxspheres/ccylinder.rsg 1 3 2 matBlue) + (importScene rsg/boxspheres/capsule.rsg 1 3 2 matBlue) ) (nd Transform (setLocalPos -6 3 20) - (importScene rsg/boxspheres/ccylinder.rsg 1 10 2 matWhite) + (importScene rsg/boxspheres/capsule.rsg 1 10 2 matWhite) ) ; add two layer of spheres @@ -58,4 +58,4 @@ (importScene rsg/boxspheres/layer.rsg 1 1) ) -) \ No newline at end of file +) Added: branches/multiphys/spark/data/rsg/boxspheres/staticcapsule.rsg =================================================================== --- branches/multiphys/spark/data/rsg/boxspheres/staticcapsule.rsg (rev 0) +++ branches/multiphys/spark/data/rsg/boxspheres/staticcapsule.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -0,0 +1,17 @@ +; -*- mode: lisp; -*- + +(RSG 0 1) +( + (templ $radius $length $density $material) + + (nd Capsule + (setParams $radius $length) + (setMaterial $material) + ) + + (nd CapsuleCollider + (setParams $radius $length) + ) + ) + + Deleted: branches/multiphys/spark/data/rsg/boxspheres/staticccylinder.rsg =================================================================== --- branches/multiphys/spark/data/rsg/boxspheres/staticccylinder.rsg 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/data/rsg/boxspheres/staticccylinder.rsg 2009-12-10 08:34:56 UTC (rev 118) @@ -1,17 +0,0 @@ -; -*- mode: lisp; -*- - -(RSG 0 1) -( - (templ $radius $length $density $material) - - (nd CCylinder - (setParams $radius $length) - (setMaterial $material) - ) - - (nd CCylinderCollider - (setParams $radius $length) - ) - ) - - Modified: branches/multiphys/spark/lib/kerosin/CMakeLists.txt =================================================================== --- branches/multiphys/spark/lib/kerosin/CMakeLists.txt 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/lib/kerosin/CMakeLists.txt 2009-12-10 08:34:56 UTC (rev 118) @@ -25,7 +25,7 @@ sceneserver/light.h sceneserver/sphere.h sceneserver/box.h - sceneserver/ccylinder.h + sceneserver/capsule.h sceneserver/cylinder.h sceneserver/staticmesh.h soundserver/soundeffect.h @@ -90,8 +90,8 @@ sceneserver/box_c.cpp sceneserver/sphere.cpp sceneserver/sphere_c.cpp - sceneserver/ccylinder.cpp - sceneserver/ccylinder_c.cpp + sceneserver/capsule.cpp + sceneserver/capsule_c.cpp sceneserver/cylinder.cpp sceneserver/cylinder_c.cpp sceneserver/staticmesh.cpp Modified: branches/multiphys/spark/lib/kerosin/kerosin.cpp =================================================================== --- branches/multiphys/spark/lib/kerosin/kerosin.cpp 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/lib/kerosin/kerosin.cpp 2009-12-10 08:34:56 UTC (rev 118) @@ -58,7 +58,7 @@ zg.GetCore()->RegisterClassObject(new CLASS(Light), "kerosin/"); zg.GetCore()->RegisterClassObject(new CLASS(StaticMesh), "kerosin/"); zg.GetCore()->RegisterClassObject(new CLASS(Box), "kerosin/"); - zg.GetCore()->RegisterClassObject(new CLASS(CCylinder), "kerosin/"); + zg.GetCore()->RegisterClassObject(new CLASS(Capsule), "kerosin/"); zg.GetCore()->RegisterClassObject(new CLASS(Cylinder), "kerosin/"); zg.GetCore()->RegisterClassObject(new CLASS(Sphere), "kerosin/"); Modified: branches/multiphys/spark/lib/kerosin/kerosin.h =================================================================== --- branches/multiphys/spark/lib/kerosin/kerosin.h 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/lib/kerosin/kerosin.h 2009-12-10 08:34:56 UTC (rev 118) @@ -61,7 +61,7 @@ #include "sceneserver/axis.h" #include "sceneserver/light.h" #include "sceneserver/sphere.h" -#include "sceneserver/ccylinder.h" +#include "sceneserver/capsule.h" #include "sceneserver/cylinder.h" #include "sceneserver/staticmesh.h" Added: branches/multiphys/spark/lib/kerosin/sceneserver/capsule.cpp =================================================================== --- branches/multiphys/spark/lib/kerosin/sceneserver/capsule.cpp (rev 0) +++ branches/multiphys/spark/lib/kerosin/sceneserver/capsule.cpp 2009-12-10 08:34:56 UTC (rev 118) @@ -0,0 +1,65 @@ +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + this file is part of rcssserver3D + Fri May 9 2003 + Copyright (C) 2002,2003 Koblenz University + Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group + $Id: capsule.cpp 3 2008-11-21 02:38:08Z hedayat $ + + 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; version 2 of the License. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ +#include "capsule.h" +#include <kerosin/openglserver/openglserver.h> +#include <kerosin/materialserver/material.h> + +using namespace boost; +using namespace kerosin; +using namespace zeitgeist; +using namespace salt; + +Capsule::Capsule() : SingleMatNode() +{ +} + +Capsule::~Capsule() +{ +} + +void Capsule::SetParams(float radius, float length) +{ + ParameterList parameter; + parameter.AddValue(radius); + parameter.AddValue(length); + + Load("StdCapsule",parameter); + + mRadius = radius; + mLength = length; +} + +void Capsule::GetParams(float& radius, float& length) const +{ + radius = mRadius; + length = mLength; +} + +float Capsule::GetRadius() +{ + return mRadius; +} + +float Capsule::GetLength() +{ + return mLength; +} Added: branches/multiphys/spark/lib/kerosin/sceneserver/capsule.h =================================================================== --- branches/multiphys/spark/lib/kerosin/sceneserver/capsule.h (rev 0) +++ branches/multiphys/spark/lib/kerosin/sceneserver/capsule.h 2009-12-10 08:34:56 UTC (rev 118) @@ -0,0 +1,78 @@ +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + this file is part of rcssserver3D + Fri May 9 2003 + Copyright (C) 2002,2003 Koblenz University + Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group + $Id: capsule.h 57 2009-03-18 07:26:56Z hedayat $ + + 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; version 2 of the License. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ +#ifndef KEROSIN_CAPSULE_H +#define KEROSIN_CAPSULE_H + +#include <kerosin/kerosin_defines.h> +#include "singlematnode.h" + +namespace kerosin +{ +class Material; + +/** Capsule is a SingleMatNode that creates and renders a capsule + mesh with the given length and radius + */ +class KEROSIN_API Capsule : public SingleMatNode +{ + // + // Function + // +public: + Capsule(); + virtual ~Capsule(); + + /** sets the parameters of the capsule. + + \param radius is the radius of the caps, and of the cylinder + itself + + \param length is the height of the cylinder, not counting the + caps + */ + void SetParams(float radius, float length); + + /** returns the parameters of the capsule */ + void GetParams(float& radius, float& length) const; + + /** returns the radius of the capsule */ + float GetRadius(); + + /** returns the length of the capsule */ + float GetLength(); + + // + // Members + // +protected: + /** the radius of the caps and the cylinder */ + float mRadius; + + /** the height of the clinder, not counting the caps */ + float mLength; +}; + +DECLARE_CLASS(Capsule); + +} //namespace kerosin + +#endif //KEROSIN_CAPSULE_H Added: branches/multiphys/spark/lib/kerosin/sceneserver/capsule_c.cpp =================================================================== --- branches/multiphys/spark/lib/kerosin/sceneserver/capsule_c.cpp (rev 0) +++ branches/multiphys/spark/lib/kerosin/sceneserver/capsule_c.cpp 2009-12-10 08:34:56 UTC (rev 118) @@ -0,0 +1,62 @@ +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + this file is part of rcssserver3D + Fri May 9 2003 + Copyright (C) 2002,2003 Koblenz University + Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group + $Id: capsule_c.cpp 3 2008-11-21 02:38:08Z hedayat $ + + 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; version 2 of the License. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ +#include "capsule.h" + +using namespace boost; +using namespace kerosin; +using namespace salt; + +FUNCTION(Capsule,setParams) +{ + float inRadius; + float inLength; + + if ( + (in.GetSize() != 2) || + (! in.GetValue(in[0], inRadius)) || + (! in.GetValue(in[1], inLength)) + ) + { + return false; + } + + obj->SetParams(inRadius,inLength); + return true; +} + +FUNCTION(Capsule,getRadius) +{ + return obj->GetRadius(); +} + +FUNCTION(Capsule,getLength) +{ + return obj->GetLength(); +} + +void CLASS(Capsule)::DefineClass() +{ + DEFINE_BASECLASS(kerosin/SingleMatNode); + DEFINE_FUNCTION(setParams); + DEFINE_FUNCTION(getRadius); + DEFINE_FUNCTION(getLength); +} Deleted: branches/multiphys/spark/lib/kerosin/sceneserver/ccylinder.cpp =================================================================== --- branches/multiphys/spark/lib/kerosin/sceneserver/ccylinder.cpp 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/lib/kerosin/sceneserver/ccylinder.cpp 2009-12-10 08:34:56 UTC (rev 118) @@ -1,65 +0,0 @@ -/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- - - this file is part of rcssserver3D - Fri May 9 2003 - Copyright (C) 2002,2003 Koblenz University - Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group - $Id$ - - 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; version 2 of the License. - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ -#include "ccylinder.h" -#include <kerosin/openglserver/openglserver.h> -#include <kerosin/materialserver/material.h> - -using namespace boost; -using namespace kerosin; -using namespace zeitgeist; -using namespace salt; - -CCylinder::CCylinder() : SingleMatNode() -{ -} - -CCylinder::~CCylinder() -{ -} - -void CCylinder::SetParams(float radius, float length) -{ - ParameterList parameter; - parameter.AddValue(radius); - parameter.AddValue(length); - - Load("StdCCylinder",parameter); - - mRadius = radius; - mLength = length; -} - -void CCylinder::GetParams(float& radius, float& length) const -{ - radius = mRadius; - length = mLength; -} - -float CCylinder::GetRadius() -{ - return mRadius; -} - -float CCylinder::GetLength() -{ - return mLength; -} Deleted: branches/multiphys/spark/lib/kerosin/sceneserver/ccylinder.h =================================================================== --- branches/multiphys/spark/lib/kerosin/sceneserver/ccylinder.h 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/lib/kerosin/sceneserver/ccylinder.h 2009-12-10 08:34:56 UTC (rev 118) @@ -1,78 +0,0 @@ -/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- - - this file is part of rcssserver3D - Fri May 9 2003 - Copyright (C) 2002,2003 Koblenz University - Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group - $Id$ - - 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; version 2 of the License. - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ -#ifndef KEROSIN_CCYLINDER_H -#define KEROSIN_CCYLINDER_H - -#include <kerosin/kerosin_defines.h> -#include "singlematnode.h" - -namespace kerosin -{ -class Material; - -/** CCylinder is a SingleMatNode that creates and renders a capped - cylinder mesh with the given length and radius - */ -class KEROSIN_API CCylinder : public SingleMatNode -{ - // - // Function - // -public: - CCylinder(); - virtual ~CCylinder(); - - /** sets the parameters of the capped cylinder. - - \param radius is the radius of the caps, and of the cylinder - itself - - \param length is the height of the cylinder, not counting the - caps - */ - void SetParams(float radius, float length); - - /** returns the parameters of the capped cylinder */ - void GetParams(float& radius, float& length) const; - - /** returns the radius of the capped cylinder */ - float GetRadius(); - - /** returns the length of the capped cylinder */ - float GetLength(); - - // - // Members - // -protected: - /** the radius of the caps and the cylinder */ - float mRadius; - - /** the height of the clinder, not counting the caps */ - float mLength; -}; - -DECLARE_CLASS(CCylinder); - -} //namespace kerosin - -#endif //KEROSIN_CCYLINDER_H Deleted: branches/multiphys/spark/lib/kerosin/sceneserver/ccylinder_c.cpp =================================================================== --- branches/multiphys/spark/lib/kerosin/sceneserver/ccylinder_c.cpp 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/lib/kerosin/sceneserver/ccylinder_c.cpp 2009-12-10 08:34:56 UTC (rev 118) @@ -1,62 +0,0 @@ -/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- - - this file is part of rcssserver3D - Fri May 9 2003 - Copyright (C) 2002,2003 Koblenz University - Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group - $Id$ - - 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; version 2 of the License. - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ -#include "ccylinder.h" - -using namespace boost; -using namespace kerosin; -using namespace salt; - -FUNCTION(CCylinder,setParams) -{ - float inRadius; - float inLength; - - if ( - (in.GetSize() != 2) || - (! in.GetValue(in[0], inRadius)) || - (! in.GetValue(in[1], inLength)) - ) - { - return false; - } - - obj->SetParams(inRadius,inLength); - return true; -} - -FUNCTION(CCylinder,getRadius) -{ - return obj->GetRadius(); -} - -FUNCTION(CCylinder,getLength) -{ - return obj->GetLength(); -} - -void CLASS(CCylinder)::DefineClass() -{ - DEFINE_BASECLASS(kerosin/SingleMatNode); - DEFINE_FUNCTION(setParams); - DEFINE_FUNCTION(getRadius); - DEFINE_FUNCTION(getLength); -} Modified: branches/multiphys/spark/lib/oxygen/CMakeLists.txt =================================================================== --- branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2009-12-10 08:34:56 UTC (rev 118) @@ -14,6 +14,7 @@ gamecontrolserver/behavior.h oxygen.h oxygen_defines.h + physicsserver/genericphysicsobject.h physicsserver/physicsobject.h physicsserver/body.h physicsserver/rigidbody.h @@ -56,9 +57,11 @@ #interfaces physicsserver/int/bodyint.h physicsserver/int/boxcolliderint.h + physicsserver/int/capsulecolliderint.h physicsserver/int/colliderint.h physicsserver/int/compoundcolliderint.h physicsserver/int/concavecolliderint.h + physicsserver/int/conecolliderint.h physicsserver/int/convexcolliderint.h physicsserver/int/cylindercolliderint.h physicsserver/int/dynamicbodyint.h @@ -76,9 +79,11 @@ physicsserver/ode/odebody.h physicsserver/ode/odeboxcollider.h physicsserver/ode/odedynamicbody.h + physicsserver/ode/odecapsulecollider.h physicsserver/ode/odecollider.h physicsserver/ode/odecompoundcollider.h physicsserver/ode/odeconcavecollider.h + physicsserver/ode/odeconecollider.h physicsserver/ode/odeconvexcollider.h physicsserver/ode/odecylindercollider.h physicsserver/ode/odeemptycollider.h @@ -177,6 +182,7 @@ physicsserver/compoundcollider_c.cpp physicsserver/concavecollider.cpp physicsserver/concavecollider_c.cpp + physicsserver/conecollider.cpp physicsserver/conecollider_c.cpp physicsserver/convexcollider.cpp physicsserver/convexcollider_c.cpp @@ -228,9 +234,11 @@ #ODE-specific files physicsserver/ode/odebody.cpp physicsserver/ode/odeboxcollider.cpp + physicsserver/ode/odecapsulecollider.cpp physicsserver/ode/odecollider.cpp physicsserver/ode/odecompoundcollider.cpp physicsserver/ode/odeconcavecollider.cpp + physicsserver/ode/odeconecollider.cpp physicsserver/ode/odeconvexcollider.cpp physicsserver/ode/odecylindercollider.cpp physicsserver/ode/odedynamicbody.cpp Modified: branches/multiphys/spark/lib/oxygen/geometryserver/stdmeshimporter.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/geometryserver/stdmeshimporter.cpp 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/lib/oxygen/geometryserver/stdmeshimporter.cpp 2009-12-10 08:34:56 UTC (rev 118) @@ -40,7 +40,7 @@ static const string gSphereStr = "StdUnitSphere"; static const string gBoxStr = "StdUnitBox"; -static const string gCCylinderStr = "StdCCylinder"; +static const string gCapsuleStr = "StdCapsule"; static const string gCylinderStr = "StdUnitCylinder"; shared_ptr<TriMesh> @@ -56,9 +56,9 @@ return UnitBoxMesh(); } - if (name == gCCylinderStr) + if (name == gCapsuleStr) { - return UnitCCylinder(parameter); + return UnitCapsule(parameter); } if (name == gCylinderStr) @@ -253,7 +253,7 @@ } // -// unit capped cylinder +// unit capsule // static void AddVertex(float** at, float x, float y, float z) { @@ -265,7 +265,7 @@ std::string StdMeshImporter::MangleName (const string& name, const ParameterList& parameter) { if ( - (name != gCCylinderStr) || + (name != gCapsuleStr) || (parameter.GetSize() < 2) ) { @@ -273,7 +273,7 @@ } stringstream ss; - ss << gCCylinderStr; + ss << gCapsuleStr; float radius; if (parameter.GetValue(parameter[0],radius)) @@ -290,18 +290,18 @@ return ss.str(); } -shared_ptr<TriMesh> StdMeshImporter::UnitCCylinder(const ParameterList& parameter) +shared_ptr<TriMesh> StdMeshImporter::UnitCapsule(const ParameterList& parameter) { // // code adapted from ODE's drawstuff lib // - // generated capped clinder with r=1 and l=1 + // generated capsule with r=1 and l=1 float ccRadius = 1; float ccLength = 1; GetLog()->Debug() - << "(StdMeshImporter::UnitCCylinder) paramSize=" + << "(StdMeshImporter::UnitCapsule) paramSize=" << parameter.GetSize() << "\n"; if (parameter.GetSize() >= 2) { @@ -310,8 +310,8 @@ } // number of sides to the cylinder (divisible by 4): - const int capped_cylinder_quality = 3; - const int n = capped_cylinder_quality*4; + const int capsule_quality = 3; + const int n = capsule_quality*4; int innerLoop = (n+1); int numVertices = innerLoop * 2; @@ -447,7 +447,7 @@ mesh->SetPos(pos,numVertices); mesh->SetNormals(normals); mesh->AddFace(idx); - mesh->SetName(MangleName(gCCylinderStr,parameter)); + mesh->SetName(MangleName(gCapsuleStr,parameter)); return mesh; } Modified: branches/multiphys/spark/lib/oxygen/geometryserver/stdmeshimporter.h =================================================================== --- branches/multiphys/spark/lib/oxygen/geometryserver/stdmeshimporter.h 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/lib/oxygen/geometryserver/stdmeshimporter.h 2009-12-10 08:34:56 UTC (rev 118) @@ -28,7 +28,7 @@ namespace oxygen { /** \class StdMeshImporter is a MeshImporter that generates a standard - set of meshes. These are spheres, boxes and capped cylinders. + set of meshes. These are spheres, boxes and capsule. */ class OXYGEN_API StdMeshImporter : public MeshImporter { @@ -41,7 +41,7 @@ virtual boost::shared_ptr<TriMesh> ImportMesh (const std::string& name,const zeitgeist::ParameterList& parameter); - /** returns a unique name for each parameterized capped cylinder + /** returns a unique name for each parameterized capsule mesh, and \param name otherwise */ virtual std::string MangleName @@ -54,8 +54,8 @@ /** constructs a unit box */ boost::shared_ptr<TriMesh> UnitBoxMesh(); - /** constructs a unit capped cylinder */ - boost::shared_ptr<TriMesh> UnitCCylinder + /** constructs a unit capsule */ + boost::shared_ptr<TriMesh> UnitCapsule (const zeitgeist::ParameterList& parameter); /** constructs a flat unit cylinder */ Modified: branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.cpp 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.cpp 2009-12-10 08:34:56 UTC (rev 118) @@ -3,7 +3,7 @@ this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2003 Koblenz University - $Id: ccylindercollider.cpp 108 2009-11-25 10:20:10Z a-held $ + $Id: capsulecollider.cpp 108 2009-11-25 10:20:10Z a-held $ 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 @@ -20,51 +20,44 @@ */ #include <oxygen/physicsserver/capsulecollider.h> +#include <oxygen/physicsserver/ode/odecapsulecollider.h> using namespace oxygen; using namespace salt; CapsuleCollider::CapsuleCollider() : ConvexCollider() { + mCapsuleColliderImp = boost::shared_ptr<ODECapsuleCollider>(new ODECapsuleCollider()); } void CapsuleCollider::SetParams(float radius, float length) { - dGeomCCylinderSetParams (mODEGeom, radius, length); + mCapsuleColliderImp->SetParams(radius, length); } void CapsuleCollider::SetRadius(float radius) { - SetParams(radius,GetLength()); + mCapsuleColliderImp->SetRadius(radius); } void CapsuleCollider::SetLength(float length) { - SetParams(GetRadius(),length); + mCapsuleColliderImp->SetLength(length); } void CapsuleCollider::GetParams(float& radius, float& length) { - dReal r,l; - dGeomCCylinderGetParams(mODEGeom,&r,&l); - radius = r; - length = l; + mCapsuleColliderImp->GetParams(radius, length); } float CapsuleCollider::GetRadius() { - float length; - float radius; - GetParams(radius,length); - return radius; + return mCapsuleColliderImp->GetRadius(); } float CapsuleCollider::GetLength() { - float radius; - float length; - GetParams(radius,length); - return length; + return mCapsuleColliderImp->GetLength(); } bool CapsuleCollider::ConstructInternal() @@ -74,16 +67,14 @@ return false; } - // create a unit capped cylinder - mODEGeom = dCreateCCylinder(0, 1.0f, 1.0f); + mCapsuleColliderImp->CreateCapsule(); + mODEGeom = (dGeomID) mCapsuleColliderImp->GetGeomID(); - return (mODEGeom != 0); + return (mCapsuleColliderImp->GetGeomID() != 0); } float CapsuleCollider::GetPointDepth(const Vector3f& pos) { Vector3f worldPos(GetWorldTransform() * pos); - return dGeomCCylinderPointDepth - (mODEGeom,worldPos[0],worldPos[1],worldPos[2]); + return mCapsuleColliderImp->GetPointDepth(worldPos); } - Modified: branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.h 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.h 2009-12-10 08:34:56 UTC (rev 118) @@ -4,7 +4,7 @@ Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group - $Id: ccylindercollider.h 108 2009-11-25 10:20:10Z a-held $ + $Id: capsulecollider.h 108 2009-11-25 10:20:10Z a-held $ 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 @@ -27,8 +27,9 @@ namespace oxygen { +class CapsuleColliderInt; -/** CapsuleCollider encapsulates an ODE capsule geometry +/** CapsuleCollider encapsulates a capsule geometry object. A capsule is like a cylinder except it has half-sphere caps at its ends. This feature makes the internal collision detection code particularly fast and accurate. @@ -74,6 +75,9 @@ /** constructs a default capsule with an radius of 1 and a length of 1 */ virtual bool ConstructInternal(); + +private: + boost::shared_ptr<CapsuleColliderInt> mCapsuleColliderImp; }; DECLARE_CLASS(CapsuleCollider); Modified: branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider_c.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider_c.cpp 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider_c.cpp 2009-12-10 08:34:56 UTC (rev 118) @@ -3,7 +3,7 @@ this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2003 Koblenz University - $Id: ccylindercollider_c.cpp 108 2009-11-25 10:20:10Z a-held $ + $Id: capsulecollider_c.cpp 108 2009-11-25 10:20:10Z a-held $ 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 Modified: branches/multiphys/spark/lib/oxygen/physicsserver/collider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/collider.cpp 2009-12-09 08:42:42 UTC (rev 117) +++ branches/multiphys/spark/lib/oxygen/physicsserver/collider.cpp 2009-12-10 08:34:56 UTC (rev 118) @@ -213,8 +213,8 @@ void Collider::SetRotation(const Matrix& rot) { dMatrix3 ODEMatrix; - void* matrixPtr = (void*) &ODEMatrix; - ConvertRotationMatrix(rot, matrixPtr); + GenericPhysicsObject& matrixRef = ... [truncated message content] |
From: <a-...@us...> - 2009-12-18 07:27:42
|
Revision: 125 http://simspark.svn.sourceforge.net/simspark/?rev=125&view=rev Author: a-held Date: 2009-12-18 06:24:13 +0000 (Fri, 18 Dec 2009) Log Message: ----------- integrated changes made in R121 and R124 into the branch Modified Paths: -------------- branches/multiphys/rcssserver3d/data/rsg/agent/nao/goal.rsg branches/multiphys/rcssserver3d/data/rsg/agent/nao/nao.rsg branches/multiphys/spark/lib/kerosin/renderserver/rendernode.cpp branches/multiphys/spark/lib/kerosin/renderserver/rendernode.h branches/multiphys/spark/lib/kerosin/renderserver/rendernode_c.cpp branches/multiphys/spark/lib/kerosin/renderserver/renderserver.cpp branches/multiphys/spark/lib/kerosin/renderserver/renderserver.h branches/multiphys/spark/lib/kerosin/sceneserver/staticmesh_c.cpp branches/multiphys/spark/lib/oxygen/physicsserver/int/rigidbodyint.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.h branches/multiphys/spark/lib/oxygen/physicsserver/physicsobject.cpp branches/multiphys/spark/lib/oxygen/physicsserver/physicsobject.h branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.h branches/multiphys/spark/lib/oxygen/sceneserver/basenode.cpp branches/multiphys/spark/lib/oxygen/sceneserver/basenode.h branches/multiphys/spark/plugin/CMakeLists.txt branches/multiphys/spark/plugin/sparkmonitor/sparkmonitor.cpp Added Paths: ----------- branches/multiphys/spark/plugin/accelerometer/ branches/multiphys/spark/plugin/accelerometer/CMakeLists.txt branches/multiphys/spark/plugin/accelerometer/accelerometer.cpp branches/multiphys/spark/plugin/accelerometer/accelerometer.h branches/multiphys/spark/plugin/accelerometer/accelerometer_c.cpp branches/multiphys/spark/plugin/accelerometer/export.cpp Modified: branches/multiphys/rcssserver3d/data/rsg/agent/nao/goal.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/goal.rsg 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/goal.rsg 2009-12-18 06:24:13 UTC (rev 125) @@ -46,8 +46,9 @@ (setLocalPos $GoalHalfDepth 0.0 (eval -1 * $GoalHalfHeight)) (setLocalRotation 90 90 0) (nd StaticMesh - (load $GoalObj) - (setScale $ObjWidth $ObjWidth $ObjWidth) + (load $GoalObj) + (setScale $ObjWidth $ObjWidth $ObjWidth) + (setTransparent) ) ) Modified: branches/multiphys/rcssserver3d/data/rsg/agent/nao/nao.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/nao.rsg 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/nao.rsg 2009-12-18 06:24:13 UTC (rev 125) @@ -71,6 +71,7 @@ ) (nd GyroRatePerceptor (setName torso)) + ;(nd Accelerometer (setName torso)) ;(nd HMDPPerceptor) ;(nd HMDPEffector) Modified: branches/multiphys/spark/lib/kerosin/renderserver/rendernode.cpp =================================================================== --- branches/multiphys/spark/lib/kerosin/renderserver/rendernode.cpp 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/lib/kerosin/renderserver/rendernode.cpp 2009-12-18 06:24:13 UTC (rev 125) @@ -26,10 +26,16 @@ using namespace kerosin; RenderNode::RenderNode() - : BaseNode() + : BaseNode(), + mTransparent(false) { } RenderNode::~RenderNode() { } + +void RenderNode::SetTransparent() +{ + mTransparent = true; +} Modified: branches/multiphys/spark/lib/kerosin/renderserver/rendernode.h =================================================================== --- branches/multiphys/spark/lib/kerosin/renderserver/rendernode.h 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/lib/kerosin/renderserver/rendernode.h 2009-12-18 06:24:13 UTC (rev 125) @@ -42,6 +42,11 @@ /** renders the node */ virtual void RenderInternal() = 0; + + bool IsTransparent() { return mTransparent; } + void SetTransparent(); +private: + bool mTransparent; }; DECLARE_ABSTRACTCLASS(RenderNode); Modified: branches/multiphys/spark/lib/kerosin/renderserver/rendernode_c.cpp =================================================================== --- branches/multiphys/spark/lib/kerosin/renderserver/rendernode_c.cpp 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/lib/kerosin/renderserver/rendernode_c.cpp 2009-12-18 06:24:13 UTC (rev 125) @@ -23,7 +23,14 @@ using namespace kerosin; +FUNCTION(RenderNode,setTransparent) +{ + obj->SetTransparent(); + return true; +} + void CLASS(RenderNode)::DefineClass() { DEFINE_BASECLASS(oxygen/BaseNode); + DEFINE_FUNCTION(setTransparent); } Modified: branches/multiphys/spark/lib/kerosin/renderserver/renderserver.cpp =================================================================== --- branches/multiphys/spark/lib/kerosin/renderserver/renderserver.cpp 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/lib/kerosin/renderserver/renderserver.cpp 2009-12-18 06:24:13 UTC (rev 125) @@ -123,7 +123,8 @@ } // standard rendering - RenderScene(mActiveScene); + RenderScene(mActiveScene, 0); + RenderScene(mActiveScene, 1); // reset GL lights glDisable(GL_LIGHTING); @@ -244,7 +245,7 @@ } void -RenderServer::RenderScene(boost::shared_ptr<BaseNode> node) +RenderServer::RenderScene(boost::shared_ptr<BaseNode> node, unsigned pass) { #if 0 shared_ptr<SphereCollider> collider = shared_dynamic_cast<SphereCollider>(node); @@ -254,7 +255,9 @@ } #endif shared_ptr<RenderNode> renderNode = shared_dynamic_cast<RenderNode>(node); - if (renderNode.get() != 0) + if (renderNode.get() != 0 && + ((pass == 0 && !renderNode->IsTransparent()) || (pass == 1 && renderNode->IsTransparent())) + ) { glPushMatrix(); @@ -268,7 +271,7 @@ glMultMatrixf(node->GetWorldTransform().m); - renderNode->RenderInternal(); + renderNode->RenderInternal(); if (mEnablePicking) { @@ -294,7 +297,7 @@ continue; } - RenderScene(node); + RenderScene(node, pass); } } Modified: branches/multiphys/spark/lib/kerosin/renderserver/renderserver.h =================================================================== --- branches/multiphys/spark/lib/kerosin/renderserver/renderserver.h 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/lib/kerosin/renderserver/renderserver.h 2009-12-18 06:24:13 UTC (rev 125) @@ -105,7 +105,7 @@ /** render a scene recursively. \param node the scene base node */ - void RenderScene(boost::shared_ptr<oxygen::BaseNode> node); + void RenderScene(boost::shared_ptr<oxygen::BaseNode> node, unsigned pass); /** sets the OpenGl view parameters for a camera */ Modified: branches/multiphys/spark/lib/kerosin/sceneserver/staticmesh_c.cpp =================================================================== --- branches/multiphys/spark/lib/kerosin/sceneserver/staticmesh_c.cpp 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/lib/kerosin/sceneserver/staticmesh_c.cpp 2009-12-18 06:24:13 UTC (rev 125) @@ -144,6 +144,12 @@ return true; } +FUNCTION(RenderNode,setTransparent) +{ + obj->SetTransparent(); + return true; +} + void CLASS(StaticMesh)::DefineClass() { DEFINE_BASECLASS(oxygen/BaseNode); @@ -154,4 +160,5 @@ DEFINE_FUNCTION(setExternalMeshName) DEFINE_FUNCTION(setExternalMeshScale) DEFINE_FUNCTION(resetMaterials) + DEFINE_FUNCTION(setTransparent); } Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/rigidbodyint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/rigidbodyint.h 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/rigidbodyint.h 2009-12-18 06:24:13 UTC (rev 125) @@ -62,9 +62,11 @@ virtual void SetVelocity(const salt::Vector3f& vel) = 0; virtual void SetRotation(const salt::Matrix& rot) = 0; virtual salt::Matrix GetRotation() const = 0; + virtual salt::Vector3f GetLocalAngularVelocity() const = 0; virtual salt::Vector3f GetAngularVelocity() const = 0; virtual void SetAngularVelocity(const salt::Vector3f& vel) = 0; virtual void AddForce(const salt::Vector3f& force) = 0; + virtual salt::Vector3f GetForce() const = 0; virtual void AddTorque(const salt::Vector3f& torque) = 0; virtual void SetPosition(const salt::Vector3f& pos) = 0; virtual salt::Vector3f GetPosition() const = 0; Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.cpp 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.cpp 2009-12-18 06:24:13 UTC (rev 125) @@ -362,6 +362,15 @@ return rot; } +Vector3f ODERigidBody::GetLocalAngularVelocity() const +{ + const dReal* vel = dBodyGetAngularVel(mODEBody); + Vector3f w; + dReal* wData = (dReal*) w.GetData(); + dBodyVectorFromWorld(mODEBody, vel[0], vel[1], vel[2], wData); + return w; +} + Vector3f ODERigidBody::GetAngularVelocity() const { const dReal* vel = dBodyGetAngularVel(mODEBody); @@ -413,6 +422,12 @@ dBodyAddForce(mODEBody, force.x(), force.y(), force.z()); } +Vector3f ODERigidBody::GetForce() const +{ + const dReal* f = dBodyGetForce(mODEBody); + return Vector3f(f[0], f[1], f[2]); +} + void ODERigidBody::AddTorque(const Vector3f& torque) { dBodyAddTorque(mODEBody, torque.x(), torque.y(), torque.z()); Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.h 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.h 2009-12-18 06:24:13 UTC (rev 125) @@ -63,9 +63,11 @@ void SetVelocity(const salt::Vector3f& vel); void SetRotation(const salt::Matrix& rot); salt::Matrix GetRotation() const; + salt::Vector3f GetLocalAngularVelocity() const; salt::Vector3f GetAngularVelocity() const; void SetAngularVelocity(const salt::Vector3f& vel); void AddForce(const salt::Vector3f& force); + salt::Vector3f GetForce() const; void AddTorque(const salt::Vector3f& torque); void SetPosition(const salt::Vector3f& pos); salt::Vector3f GetPosition() const; Modified: branches/multiphys/spark/lib/oxygen/physicsserver/physicsobject.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/physicsobject.cpp 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/lib/oxygen/physicsserver/physicsobject.cpp 2009-12-18 06:24:13 UTC (rev 125) @@ -46,7 +46,7 @@ } /** returns the world node */ -shared_ptr<World> PhysicsObject::GetWorld() +shared_ptr<World> PhysicsObject::GetWorld() const { shared_ptr<Scene> scene = GetScene(); if (scene.get() == 0) Modified: branches/multiphys/spark/lib/oxygen/physicsserver/physicsobject.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/physicsobject.h 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/lib/oxygen/physicsserver/physicsobject.h 2009-12-18 06:24:13 UTC (rev 125) @@ -66,10 +66,10 @@ colliders and joints have to be treated in one go).*/ virtual void DestroyPhysicsObject(){}; -protected: /** returns the world node */ - boost::shared_ptr<World> GetWorld(); + boost::shared_ptr<World> GetWorld() const; +protected: /** finds the nearest parent space node */ boost::shared_ptr<Space> GetSpace(); Modified: branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp 2009-12-18 06:24:13 UTC (rev 125) @@ -235,6 +235,11 @@ return mRigidBodyImp->GetRotation(); } +Vector3f RigidBody::GetLocalAngularVelocity() const +{ + return mRigidBodyImp->GetLocalAngularVelocity(); +} + Vector3f RigidBody::GetAngularVelocity() const { return mRigidBodyImp->GetAngularVelocity(); @@ -337,6 +342,11 @@ mRigidBodyImp->AddForce(force); } +Vector3f RigidBody::GetForce() const +{ + return mRigidBodyImp->GetForce(); +} + void RigidBody::AddTorque(const Vector3f& torque) { mRigidBodyImp->AddTorque(torque); Modified: branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.h 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.h 2009-12-18 06:24:13 UTC (rev 125) @@ -202,6 +202,9 @@ /** gets the rotation of this body */ salt::Matrix GetRotation() const; + + /** returns the current angular velocity of this body in local coordinates */ + salt::Vector3f GetLocalAngularVelocity() const; /** returns the current angular velocity of this body */ salt::Vector3f GetAngularVelocity() const; @@ -214,6 +217,9 @@ /** applies a force to the managed body */ void AddForce(const salt::Vector3f& force); + + /** returns the total force applied to this body */ + salt::Vector3f GetForce() const; /** aplies a force to the managed body */ void AddTorque(const salt::Vector3f& torque); Modified: branches/multiphys/spark/lib/oxygen/sceneserver/basenode.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/sceneserver/basenode.cpp 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/lib/oxygen/sceneserver/basenode.cpp 2009-12-18 06:24:13 UTC (rev 125) @@ -141,7 +141,7 @@ } } -shared_ptr<Scene> BaseNode::GetScene() +shared_ptr<Scene> BaseNode::GetScene() const { // is this node the scene node ? shared_ptr<Scene> self = Modified: branches/multiphys/spark/lib/oxygen/sceneserver/basenode.h =================================================================== --- branches/multiphys/spark/lib/oxygen/sceneserver/basenode.h 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/lib/oxygen/sceneserver/basenode.h 2009-12-18 06:24:13 UTC (rev 125) @@ -96,7 +96,7 @@ void UpdateHierarchy(); /** moves up the hierarchy, until it finds a scene */ - boost::shared_ptr<Scene> GetScene(); + boost::shared_ptr<Scene> GetScene() const; /** enables debug mode controls */ void EnableDebugMode(); Modified: branches/multiphys/spark/plugin/CMakeLists.txt =================================================================== --- branches/multiphys/spark/plugin/CMakeLists.txt 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/plugin/CMakeLists.txt 2009-12-18 06:24:13 UTC (rev 125) @@ -9,6 +9,7 @@ set(spark_libs ${spark_libs} /System/Library/Frameworks/CoreFoundation.framework) endif (APPLE AND USE_COREFOUNDATION) +add_subdirectory(accelerometer) add_subdirectory(filesystemstd) add_subdirectory(filesystemzip) add_subdirectory(forceeffector) Added: branches/multiphys/spark/plugin/accelerometer/CMakeLists.txt =================================================================== --- branches/multiphys/spark/plugin/accelerometer/CMakeLists.txt (rev 0) +++ branches/multiphys/spark/plugin/accelerometer/CMakeLists.txt 2009-12-18 06:24:13 UTC (rev 125) @@ -0,0 +1,16 @@ + +set(accelerometer_LIB_SRCS + export.cpp + accelerometer.h + accelerometer.cpp + accelerometer_c.cpp +) + +add_library(accelerometer MODULE ${accelerometer_LIB_SRCS}) + +target_link_libraries(accelerometer ${spark_libs} ${Boost_LIBRARIES}) + +set_target_properties(accelerometer PROPERTIES VERSION 0.0.0 SOVERSION 0) +if (NOT APPLE) + install(TARGETS accelerometer DESTINATION ${LIBDIR}/${CMAKE_PROJECT_NAME}) +endif (NOT APPLE) Added: branches/multiphys/spark/plugin/accelerometer/accelerometer.cpp =================================================================== --- branches/multiphys/spark/plugin/accelerometer/accelerometer.cpp (rev 0) +++ branches/multiphys/spark/plugin/accelerometer/accelerometer.cpp 2009-12-18 06:24:13 UTC (rev 125) @@ -0,0 +1,89 @@ +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + this file is part of rcssserver3D + Copyright (C) 2008 RoboCup Soccer Server 3D Maintenance Group + $Id$ + + 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; version 2 of the License. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "oxygen/physicsserver/world.h" +#include "oxygen/physicsserver/rigidbody.h" +#include "accelerometer.h" +#include <oxygen/sceneserver/transform.h> + +// using namespace kerosin; +using namespace oxygen; +using namespace boost; +using namespace zeitgeist; +using namespace salt; +using namespace std; + +Accelerometer::Accelerometer() : oxygen::Perceptor() +{ +} + +Accelerometer::~Accelerometer() +{ +} + +void Accelerometer::OnLink() +{ + shared_ptr<Transform> transformParent = shared_static_cast<Transform> + (FindParentSupportingClass<Transform>().lock()); + + mBody = shared_static_cast<const RigidBody> + (transformParent->GetChildOfClass("RigidBody")); + + mGravity = mBody->GetWorld()->GetGravity(); + mLastVel = mBody->GetVelocity(); +} + +bool Accelerometer::Percept(boost::shared_ptr<PredicateList> predList) +{ + Predicate &predicate = predList->AddPredicate(); + predicate.name = "ACC"; + predicate.parameter.Clear(); + + ParameterList &nameElement = predicate.parameter.AddList(); + nameElement.AddValue(std::string("n")); + nameElement.AddValue(GetName()); + + ParameterList &ratesElement = predicate.parameter.AddList(); + ratesElement.AddValue(std::string("a")); + ratesElement.AddValue(mAcc.x()); + ratesElement.AddValue(mAcc.y()); + ratesElement.AddValue(mAcc.z()); + + return true; +} + +void Accelerometer::PrePhysicsUpdateInternal(float deltaTime) +{ +// Vector3f F = mBody->GetForce(); +// float mass = mBody->GetMass(); +// mAcc = F / mass - mGravity; + + Vector3f vel = mBody->GetVelocity(); + Vector3f acc = (vel - mLastVel) / deltaTime; + acc -= mGravity; + + Matrix invRot = mBody->GetRotation(); + invRot.InvertRotationMatrix(); + acc = invRot * acc; + + float k = 0.9; + mAcc = k*mAcc + (1-k)*acc; + mLastVel = vel; +} Added: branches/multiphys/spark/plugin/accelerometer/accelerometer.h =================================================================== --- branches/multiphys/spark/plugin/accelerometer/accelerometer.h (rev 0) +++ branches/multiphys/spark/plugin/accelerometer/accelerometer.h 2009-12-18 06:24:13 UTC (rev 125) @@ -0,0 +1,49 @@ +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + this file is part of rcssserver3D + Copyright (C) 2008 RoboCup Soccer Server 3D Maintenance Group + $Id:$ + + 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; version 2 of the License. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef ACCELEROMETER_H +#define ACCELEROMETER_H + +#include <oxygen/agentaspect/perceptor.h> +#include <oxygen/physicsserver/rigidbody.h> + +class Accelerometer : public oxygen::Perceptor { +public: + Accelerometer(); + virtual ~Accelerometer(); + + //! \return true, if valid data is available and false otherwise. + bool Percept(boost::shared_ptr<oxygen::PredicateList> predList); + + virtual void OnLink(); + +protected: + virtual void PrePhysicsUpdateInternal(float deltaTime); + +private: + boost::shared_ptr<const oxygen::RigidBody> mBody; + salt::Vector3f mAcc; + salt::Vector3f mGravity; + salt::Vector3f mLastVel; +}; + +DECLARE_CLASS(Accelerometer); + +#endif //ACCELEROMETER_H Added: branches/multiphys/spark/plugin/accelerometer/accelerometer_c.cpp =================================================================== --- branches/multiphys/spark/plugin/accelerometer/accelerometer_c.cpp (rev 0) +++ branches/multiphys/spark/plugin/accelerometer/accelerometer_c.cpp 2009-12-18 06:24:13 UTC (rev 125) @@ -0,0 +1,29 @@ +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + this file is part of rcssserver3D + Copyright (C) 2008 RoboCup Soccer Server 3D Maintenance Group + $Id:$ + + 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; version 2 of the License. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "accelerometer.h" + +using namespace boost; +using namespace oxygen; + +void CLASS(Accelerometer)::DefineClass() +{ + DEFINE_BASECLASS(oxygen/Perceptor); +} Added: branches/multiphys/spark/plugin/accelerometer/export.cpp =================================================================== --- branches/multiphys/spark/plugin/accelerometer/export.cpp (rev 0) +++ branches/multiphys/spark/plugin/accelerometer/export.cpp 2009-12-18 06:24:13 UTC (rev 125) @@ -0,0 +1,26 @@ +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + this file is part of rcssserver3D + Copyright (C) 2008 RoboCup Soccer Server 3D Maintenance Group + $Id:$ + + 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; version 2 of the License. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "accelerometer.h" +#include <zeitgeist/zeitgeist.h> + +ZEITGEIST_EXPORT_BEGIN() + ZEITGEIST_EXPORT(Accelerometer); +ZEITGEIST_EXPORT_END() Modified: branches/multiphys/spark/plugin/sparkmonitor/sparkmonitor.cpp =================================================================== --- branches/multiphys/spark/plugin/sparkmonitor/sparkmonitor.cpp 2009-12-17 22:21:49 UTC (rev 124) +++ branches/multiphys/spark/plugin/sparkmonitor/sparkmonitor.cpp 2009-12-18 06:24:13 UTC (rev 125) @@ -249,6 +249,11 @@ ss << "(nd StaticMesh"; } + if (mesh->IsTransparent()) + { + ss << " (setTransparent)"; + } + ss << " (load " << mesh->GetMeshName(); const ParameterList& params = mesh->GetMeshParameter(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <a-...@us...> - 2009-12-22 08:21:12
|
Revision: 127 http://simspark.svn.sourceforge.net/simspark/?rev=127&view=rev Author: a-held Date: 2009-12-22 08:21:04 +0000 (Tue, 22 Dec 2009) Log Message: ----------- Enabled accelerometer in branch did some refactoring to make code simpler and more consistent Modified Paths: -------------- branches/multiphys/rcssserver3d/data/rsg/agent/nao/nao.rsg branches/multiphys/spark/lib/oxygen/CMakeLists.txt branches/multiphys/spark/lib/oxygen/physicsserver/angularmotor.cpp branches/multiphys/spark/lib/oxygen/physicsserver/balljoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp branches/multiphys/spark/lib/oxygen/physicsserver/body.h branches/multiphys/spark/lib/oxygen/physicsserver/boxcollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/fixedjoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/genericphysicsobjects.h branches/multiphys/spark/lib/oxygen/physicsserver/hinge2joint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/hingejoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/int/balljointint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/boxcolliderint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/capsulecolliderint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/colliderint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/fixedjointint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/hinge2jointint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/hingejointint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/jointint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/planecolliderint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/raycolliderint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/rigidbodyint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/sliderjointint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/spherecolliderint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/transformcolliderint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/universaljointint.h branches/multiphys/spark/lib/oxygen/physicsserver/joint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/joint.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeballjoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeballjoint.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeboxcollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeboxcollider.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecapsulecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecapsulecollider.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecollider.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odefixedjoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odefixedjoint.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehinge2joint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehinge2joint.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehingejoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehingejoint.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odejoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeplanecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeplanecollider.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderaycollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderaycollider.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odesliderjoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odesliderjoint.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odespherecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odespherecollider.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odetransformcollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odetransformcollider.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeuniversaljoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeuniversaljoint.h branches/multiphys/spark/lib/oxygen/physicsserver/planecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/raycollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.h branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody_c.cpp branches/multiphys/spark/lib/oxygen/physicsserver/sliderjoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/spherecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/transformcollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/universaljoint.cpp branches/multiphys/spark/spark/spark.rb Added Paths: ----------- branches/multiphys/spark/lib/oxygen/physicsserver/int/angularmotorint.h Modified: branches/multiphys/rcssserver3d/data/rsg/agent/nao/nao.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/nao.rsg 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/nao.rsg 2009-12-22 08:21:04 UTC (rev 127) @@ -71,7 +71,7 @@ ) (nd GyroRatePerceptor (setName torso)) - ;(nd Accelerometer (setName torso)) + (nd Accelerometer (setName torso)) ;(nd HMDPPerceptor) ;(nd HMDPEffector) Modified: branches/multiphys/spark/lib/oxygen/CMakeLists.txt =================================================================== --- branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2009-12-22 08:21:04 UTC (rev 127) @@ -55,6 +55,7 @@ physicsserver/angularmotor.h #interfaces + physicsserver/int/angularmotorint.h physicsserver/int/balljointint.h physicsserver/int/bodyint.h physicsserver/int/boxcolliderint.h Modified: branches/multiphys/spark/lib/oxygen/physicsserver/angularmotor.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/angularmotor.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/angularmotor.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -40,17 +40,17 @@ return; } - mODEJoint = dJointCreateAMotor((dWorldID) world, 0); + mJointID = (long) dJointCreateAMotor((dWorldID) world, 0); } void AngularMotor::SetMode(EMotorMode mode) { - dJointSetAMotorMode(mODEJoint,mode); + dJointSetAMotorMode( (dJointID) mJointID,mode); } AngularMotor::EMotorMode AngularMotor::GetMode() { - return static_cast<EMotorMode>(dJointGetAMotorMode(mODEJoint)); + return static_cast<EMotorMode>(dJointGetAMotorMode( (dJointID) mJointID)); } void AngularMotor::SetNumAxes(int num) @@ -63,58 +63,55 @@ return; } - dJointSetAMotorNumAxes(mODEJoint, num); + dJointSetAMotorNumAxes( (dJointID) mJointID, num); } int AngularMotor::GetNumAxes() { - return dJointGetAMotorNumAxes(mODEJoint); + return dJointGetAMotorNumAxes( (dJointID) mJointID); } void AngularMotor::SetMotorAxis(EAxisIndex idx, EAxisAnchor anchor, const salt::Vector3f& axis) { Vector3f globalAxis = GetWorldTransform() * axis; - dJointSetAMotorAxis (mODEJoint, idx, anchor, + dJointSetAMotorAxis ( (dJointID) mJointID, idx, anchor, globalAxis[0], globalAxis[1], globalAxis[2]); } AngularMotor::EAxisAnchor AngularMotor::GetAxisAnchor(EAxisIndex idx) { - return static_cast<EAxisAnchor>(dJointGetAMotorAxisRel (mODEJoint, idx)); + return static_cast<EAxisAnchor>(dJointGetAMotorAxisRel ( (dJointID) mJointID, idx)); } Vector3f AngularMotor::GetMotorAxis(EAxisIndex idx) { dVector3 dAxis; - dJointGetAMotorAxis(mODEJoint,idx,dAxis); + dJointGetAMotorAxis( (dJointID) mJointID,idx,dAxis); return Vector3f(dAxis[0],dAxis[1],dAxis[2]); } void AngularMotor::SetAxisAngle(EAxisIndex idx, float degAngle) { - dJointSetAMotorAngle(mODEJoint, idx, gDegToRad(degAngle)); + dJointSetAMotorAngle( (dJointID) mJointID, idx, gDegToRad(degAngle)); } float AngularMotor::GetAxisAngle(EAxisIndex idx) { - return gRadToDeg(dJointGetAMotorAngle(mODEJoint, idx)); + return gRadToDeg(dJointGetAMotorAngle((dJointID) mJointID, idx)); } float AngularMotor::GetAxisAngleRate(EAxisIndex idx) { - return gRadToDeg(dJointGetAMotorAngleRate(mODEJoint,idx)); + return gRadToDeg(dJointGetAMotorAngleRate((dJointID) mJointID,idx)); } void AngularMotor::SetParameter(int parameter, float value) { - dJointSetAMotorParam(mODEJoint, parameter, value); + dJointSetAMotorParam((dJointID) mJointID, parameter, value); } float AngularMotor::GetParameter(int parameter) const { - return dJointGetAMotorParam(mODEJoint, parameter); + return dJointGetAMotorParam((dJointID) mJointID, parameter); } - - - Modified: branches/multiphys/spark/lib/oxygen/physicsserver/balljoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/balljoint.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/balljoint.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -42,8 +42,7 @@ return; } - mBallJointImp->CreateBallJoint(world); - mODEJoint = dJointCreateBall((dWorldID) world, 0); + mJointID = mBallJointImp->CreateBallJoint(world); } void BallJoint::SetAnchor(const Vector3f& anchor) Modified: branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -24,7 +24,7 @@ using namespace oxygen; -Body::Body() : PhysicsObject(){ +Body::Body() : PhysicsObject(), mBodyID(0){ mBodyImp = boost::shared_ptr<ODEBody>(new ODEBody()); } Modified: branches/multiphys/spark/lib/oxygen/physicsserver/body.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/body.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/body.h 2009-12-22 08:21:04 UTC (rev 127) @@ -39,7 +39,11 @@ public: Body(); virtual ~Body(); - + +protected: + long mBodyID; + +private: boost::shared_ptr<BodyInt> mBodyImp; }; Modified: branches/multiphys/spark/lib/oxygen/physicsserver/boxcollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/boxcollider.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/boxcollider.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -44,8 +44,7 @@ } // create a unit box - mBoxColliderImp->CreateBox(); - mGeomID = mBoxColliderImp->GetGeomID(); + mGeomID = mBoxColliderImp->CreateBox(); return (mGeomID != 0); } Modified: branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -67,8 +67,7 @@ return false; } - mCapsuleColliderImp->CreateCapsule(); - mGeomID = mCapsuleColliderImp->GetGeomID(); + mGeomID = mCapsuleColliderImp->CreateCapsule(); return (mGeomID != 0); } Modified: branches/multiphys/spark/lib/oxygen/physicsserver/fixedjoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/fixedjoint.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/fixedjoint.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -40,8 +40,7 @@ return; } - mFixedJointImp->CreateFixedJoint(world); - mODEJoint = (dJointID) mFixedJointImp->GetJointID(); + mJointID = mFixedJointImp->CreateFixedJoint(world); } void FixedJoint::SetParameter(int /*parameter*/, float /*value*/) Modified: branches/multiphys/spark/lib/oxygen/physicsserver/genericphysicsobjects.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/genericphysicsobjects.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/genericphysicsobjects.h 2009-12-22 08:21:04 UTC (rev 127) @@ -36,6 +36,7 @@ class OXYGEN_API GenericPhysicsMatrix{}; class OXYGEN_API GenericContact{}; +class OXYGEN_API GenericMass{}; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/hinge2joint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/hinge2joint.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/hinge2joint.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -42,8 +42,7 @@ return; } - mHinge2JointImp->CreateHinge2Joint(world); - mODEJoint = (dJointID) mHinge2JointImp->GetJointID(); + mJointID = mHinge2JointImp->CreateHinge2Joint(world); } void Hinge2Joint::SetAnchor(const Vector3f& anchor) Modified: branches/multiphys/spark/lib/oxygen/physicsserver/hingejoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/hingejoint.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/hingejoint.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -42,8 +42,7 @@ return; } - mHingeJointImp->CreateHingeJoint(world); - mODEJoint = (dJointID) mHingeJointImp->GetJointID(); + mJointID = mHingeJointImp->CreateHingeJoint(world); } void HingeJoint::SetAnchor(const Vector3f& anchor) Added: branches/multiphys/spark/lib/oxygen/physicsserver/int/angularmotorint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/angularmotorint.h (rev 0) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/angularmotorint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -0,0 +1,42 @@ +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + this file is part of rcssserver3D + Fri May 9 2003 + Copyright (C) 2002,2003 Koblenz University + Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group + $Id: space.h 102 2009-11-18 07:24:29Z a-held $ + + 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; version 2 of the License. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#ifndef OXYGEN_ANGULARMOTORINT_H +#define OXYGEN_ANGULARMOTORINT_H + +#include <salt/vector.h> +#include <oxygen/oxygen_defines.h> + +namespace oxygen +{ +class RigidBody; +class Joint; + +class OXYGEN_API AngularMotorInt +{ +public: + virtual long CreateAngularMotor() = 0; +}; + +} //namespace oxygen + +#endif //OXYGEN_ANGULARMOTORINT_H Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/balljointint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/balljointint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/balljointint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -37,8 +37,7 @@ virtual void SetAnchor(const salt::Vector3f& anchor) = 0; virtual salt::Vector3f GetAnchor1() = 0; virtual salt::Vector3f GetAnchor2() = 0; - virtual void CreateBallJoint(long world) = 0; - virtual long GetJointID() = 0; + virtual long CreateBallJoint(long world) = 0; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/boxcolliderint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/boxcolliderint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/boxcolliderint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -36,9 +36,7 @@ virtual void SetBoxLengths(const salt::Vector3f& extents) = 0; virtual void GetBoxLengths(salt::Vector3f& extents) = 0; virtual float GetPointDepth(const salt::Vector3f& pos) = 0; - virtual void CreateBox() = 0; - - virtual long GetGeomID() = 0; + virtual long CreateBox() = 0; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/capsulecolliderint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/capsulecolliderint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/capsulecolliderint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -39,9 +39,7 @@ virtual float GetRadius() = 0; virtual float GetLength() = 0; virtual float GetPointDepth(const salt::Vector3f& pos) = 0; - - virtual long GetGeomID() = 0; - virtual void CreateCapsule() = 0; + virtual long CreateCapsule() = 0; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/colliderint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/colliderint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/colliderint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -44,7 +44,6 @@ virtual bool Intersect(boost::shared_ptr<Collider> collider, long geomID) = 0; virtual long GetParentSpaceID(long geomID) = 0; virtual void DestroyGeom(long geomID) = 0; - virtual long GetGeomID() = 0; virtual void TransformSetGeom(long parentGeomID, long geomID) = 0; virtual void SetSpace(long spaceID, long geomID, Collider* collider) = 0; virtual void SetBody(long bodyID, long geomID) = 0; @@ -58,9 +57,6 @@ return static_cast<Collider*>(dGeomGetData( (dGeomID) geomID)); #endif } - -protected: - long mGeomID; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/fixedjointint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/fixedjointint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/fixedjointint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -27,9 +27,8 @@ class OXYGEN_API FixedJointInt{ public: - virtual void CreateFixedJoint(long world) = 0; + virtual long CreateFixedJoint(long world) = 0; virtual void SetFixed() = 0; - virtual long GetJointID() = 0; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/hinge2jointint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/hinge2jointint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/hinge2jointint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -28,7 +28,7 @@ class OXYGEN_API Hinge2JointInt{ public: - virtual void CreateHinge2Joint(long world) = 0; + virtual long CreateHinge2Joint(long world) = 0; virtual void SetAnchor(const salt::Vector3f& anchor, const salt::Vector3f& up, const salt::Vector3f& right) = 0; @@ -39,7 +39,6 @@ virtual float GetAngleRate2() = 0; virtual void SetParameter(int parameter, float value) = 0; virtual float GetParameter(int parameter) const = 0; - virtual long GetJointID() = 0; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/hingejointint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/hingejointint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/hingejointint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -28,7 +28,7 @@ class OXYGEN_API HingeJointInt{ public: - virtual void CreateHingeJoint(long world) = 0; + virtual long CreateHingeJoint(long world) = 0; virtual void SetAnchor(const salt::Vector3f& anchor) = 0; virtual salt::Vector3f GetAnchor1() = 0; virtual salt::Vector3f GetAnchor2() = 0; @@ -38,7 +38,6 @@ virtual float GetAngleRate() const = 0; virtual void SetParameter(int parameter, float value) = 0; virtual float GetParameter(int parameter) const = 0; - virtual long GetJointID() = 0; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/jointint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/jointint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/jointint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -114,7 +114,6 @@ virtual void OnLink() = 0; protected: - long mJointID; boost::shared_ptr<dJointFeedback> mFeedback; float mJointMaxSpeed1; bool mIsLimitJointMaxSpeed1; Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/planecolliderint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/planecolliderint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/planecolliderint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -36,9 +36,7 @@ virtual void SetPlaneParams(float a, float b, float c, float d) = 0; virtual void SetParams(const salt::Vector3f& pos, salt::Vector3f normal) = 0; virtual float GetPointDepth(const salt::Vector3f& pos) = 0; - - virtual long GetGeomID() = 0; - virtual void CreatePlane() = 0; + virtual long CreatePlane() = 0; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/raycolliderint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/raycolliderint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/raycolliderint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -33,8 +33,7 @@ { public: virtual void SetParams(salt::Vector3f pos, salt::Vector3f dir, float length) = 0; - virtual void CreateRay() = 0; - virtual long GetGeomID() = 0; + virtual long CreateRay() = 0; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/rigidbodyint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/rigidbodyint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/rigidbodyint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -24,6 +24,7 @@ #define OXYGEN_RIGIDBODYINT_H #include <oxygen/oxygen_defines.h> +#include <oxygen/physicsserver/genericphysicsobjects.h> namespace oxygen { @@ -37,9 +38,9 @@ virtual bool IsEnabled() const = 0; virtual void UseGravity(bool f) = 0; virtual bool UsesGravity() const = 0; - virtual void CreateBody(long world) = 0; + virtual long CreateBody(long world) = 0; virtual void SetMass(float mass) = 0; - virtual void SetMassParameters(const float& mass) = 0; + virtual void SetMassParameters(const GenericMass& mass) = 0; virtual float GetMass() const = 0; virtual void SetSphere(float density, float radius) = 0; virtual void AddSphere(float density, float radius, const salt::Matrix& matrix) = 0; @@ -74,8 +75,6 @@ virtual salt::Matrix GetSynchronisationMatrix() = 0; virtual void BodySetData(RigidBody* rb) = 0; virtual RigidBody* BodyGetData(long bodyID) = 0; - - virtual long GetBodyID() = 0; virtual salt::Vector3f GetMassTrans() = 0; virtual void SetMassTrans(salt::Vector3f massTrans) = 0; virtual bool GetMassTransformed() = 0; @@ -90,12 +89,7 @@ #endif } -protected: - /** The ID of the managed body. This must be unique within the simulation. - It is used externally to reference this particular body. - */ - long mBodyID; - +protected: salt::Vector3f mMassTrans; bool mMassTransformed; }; Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/sliderjointint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/sliderjointint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/sliderjointint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -33,13 +33,12 @@ class OXYGEN_API SliderJointInt { public: - virtual void CreateSliderJoint(long world) = 0; + virtual long CreateSliderJoint(long world) = 0; virtual float GetPosition() = 0; virtual float GetPositionRate() = 0; virtual void SetSliderAxis(salt::Vector3f& up) = 0; virtual void SetParameter(int parameter, float value) = 0; virtual float GetParameter(int parameter) const = 0; - virtual long GetJointID() = 0; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/spherecolliderint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/spherecolliderint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/spherecolliderint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -36,9 +36,7 @@ virtual void SetRadius(float r) = 0; virtual float GetRadius() const = 0; virtual float GetPointDepth(const salt::Vector3f& pos) = 0; - virtual void CreateSphere() = 0; - - virtual long GetGeomID() = 0; + virtual long CreateSphere() = 0; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/transformcolliderint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/transformcolliderint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/transformcolliderint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -35,9 +35,8 @@ { public: - virtual void CreateTransformCollider() = 0; + virtual long CreateTransformCollider() = 0; virtual void SetColliderParameters(int cleanup, int info) = 0; - virtual long GetGeomID() = 0; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/universaljointint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/universaljointint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/universaljointint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -33,7 +33,7 @@ { public: - virtual void CreateUniversalJoint(long world) = 0; + virtual long CreateUniversalJoint(long world) = 0; virtual void SetAnchor(const salt::Vector3f& anchor) = 0; virtual salt::Vector3f GetAnchor1() = 0; virtual salt::Vector3f GetAnchor2() = 0; @@ -47,7 +47,6 @@ virtual float GetAngleRate2() const = 0; virtual void SetParameter(int parameter, float value) = 0; virtual float GetParameter(int parameter) const = 0; - virtual long GetJointID() = 0; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/joint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/joint.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/joint.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -28,7 +28,7 @@ using namespace salt; Joint::Joint() : -PhysicsObject(), mODEJoint(0), +PhysicsObject(), mJointID(0), mJointMaxSpeed1(0), mJointMaxSpeed2(0), mIsLimitJointMaxSpeed1(false), mIsLimitJointMaxSpeed2(false) { @@ -41,12 +41,12 @@ void Joint::OnLink() { - if (mODEJoint == 0) + if (mJointID == 0) { return; } - dJointSetData(mODEJoint, this); + dJointSetData( (dJointID) mJointID, this); } shared_ptr<Joint> Joint::GetJoint(long jointID) @@ -82,7 +82,7 @@ void Joint::Attach(shared_ptr<RigidBody> body1, shared_ptr<RigidBody> body2) { - if (mODEJoint == 0) + if (mJointID == 0) { GetLog()->Error() << "(Joint) ERROR: Attach called with uninitialized ODE joint\n"; @@ -117,7 +117,7 @@ GetLog()->Debug() << "(Joint) Attaching '" << path1 << "' to '" << path2 << '\n'; - dJointAttach(mODEJoint, (dBodyID) id1, (dBodyID) id2); + dJointAttach( (dJointID) mJointID, (dBodyID) id1, (dBodyID) id2); } shared_ptr<RigidBody> Joint::GetBody(const std::string& path) @@ -162,12 +162,12 @@ int Joint::GetType() const { - return dJointGetType(mODEJoint); + return dJointGetType( (dJointID) mJointID); } boost::shared_ptr<RigidBody> Joint::GetBody(EBodyIndex idx) { - long bodyID = (long) dJointGetBody(mODEJoint, idx); + long bodyID = (long) dJointGetBody( (dJointID) mJointID, idx); return RigidBody::GetBody(bodyID); } @@ -227,12 +227,12 @@ } } - dJointSetFeedback(mODEJoint,mFeedback.get()); + dJointSetFeedback( (dJointID) mJointID,mFeedback.get()); } bool Joint::FeedBackEnabled() const { - return (dJointGetFeedback(mODEJoint) != 0); + return (dJointGetFeedback( (dJointID) mJointID) != 0); } Vector3f Joint::GetFeedbackForce(EBodyIndex idx) const @@ -436,14 +436,14 @@ void Joint::DestroyPhysicsObject() { - if (! mODEJoint) + if (!mJointID) { return; } EnableFeedback(false); - dJointDestroy(mODEJoint); - mODEJoint = 0; + dJointDestroy( (dJointID) mJointID); + mJointID = 0; } void Joint::SetJointMaxSpeed1(float rad) Modified: branches/multiphys/spark/lib/oxygen/physicsserver/joint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/joint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/joint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -286,7 +286,7 @@ protected: /** the ID of the managed joint */ - dJointID mODEJoint; + long mJointID; /** the allocated joint feedback structure */ boost::shared_ptr<dJointFeedback> mFeedback; Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeballjoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeballjoint.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeballjoint.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -28,11 +28,11 @@ { } -void ODEBallJoint::CreateBallJoint(long world) +long ODEBallJoint::CreateBallJoint(long world) { dWorldID ODEWorld = (dWorldID) world; mODEJoint = dJointCreateBall(ODEWorld, 0); - mJointID = (long) mODEJoint; + return (long) mODEJoint; } void ODEBallJoint::SetAnchor(const Vector3f& gAnchor) @@ -57,7 +57,3 @@ return pos; } - -long ODEBallJoint::GetJointID(){ - return mJointID; -} Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeballjoint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeballjoint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeballjoint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -37,8 +37,7 @@ void SetAnchor(const salt::Vector3f& anchor); salt::Vector3f GetAnchor1(); salt::Vector3f GetAnchor2(); - void CreateBallJoint(long world); - long GetJointID(); + long CreateBallJoint(long world); }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -23,6 +23,6 @@ using namespace oxygen; -ODEBody::ODEBody() : ODEPhysicsObject(){ +ODEBody::ODEBody() : ODEPhysicsObject(), mODEBody(0){ } Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.h 2009-12-22 08:21:04 UTC (rev 127) @@ -31,6 +31,9 @@ { public: ODEBody(); + +protected: + dBodyID mODEBody; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeboxcollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeboxcollider.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeboxcollider.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -28,7 +28,6 @@ ODEBoxCollider::ODEBoxCollider() : ODEConvexCollider() { - } void ODEBoxCollider::SetBoxLengths(const Vector3f& extents) @@ -41,10 +40,10 @@ ); } -void ODEBoxCollider::CreateBox() +long ODEBoxCollider::CreateBox() { mODEGeom = dCreateBox (0, 1.0f, 1.0f, 1.0f); - mGeomID = (long) mODEGeom; + return (long) mODEGeom; } void ODEBoxCollider::GetBoxLengths(Vector3f& extents) @@ -61,7 +60,3 @@ return dGeomBoxPointDepth (mODEGeom,pos[0],pos[1],pos[2]); } - -long ODEBoxCollider::GetGeomID(){ - return mGeomID; -} Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeboxcollider.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeboxcollider.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeboxcollider.h 2009-12-22 08:21:04 UTC (rev 127) @@ -37,9 +37,7 @@ void SetBoxLengths(const salt::Vector3f& extents); void GetBoxLengths(salt::Vector3f& extents); float GetPointDepth(const salt::Vector3f& pos); - void CreateBox(); - - long GetGeomID(); + long CreateBox(); }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecapsulecollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecapsulecollider.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecapsulecollider.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -67,10 +67,10 @@ return length; } -void ODECapsuleCollider::CreateCapsule() +long ODECapsuleCollider::CreateCapsule() { mODEGeom = dCreateCapsule(0, 1.0f, 1.0f); - mGeomID = (long) mODEGeom; + return (long) mODEGeom; } float ODECapsuleCollider::GetPointDepth(const Vector3f& pos) @@ -78,7 +78,3 @@ return dGeomCapsulePointDepth (mODEGeom,pos[0],pos[1],pos[2]); } - -long ODECapsuleCollider::GetGeomID(){ - return mGeomID; -} Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecapsulecollider.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecapsulecollider.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecapsulecollider.h 2009-12-22 08:21:04 UTC (rev 127) @@ -42,9 +42,7 @@ float GetRadius(); float GetLength(); float GetPointDepth(const salt::Vector3f& pos); - - long GetGeomID(); - void CreateCapsule(); + long CreateCapsule(); }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecollider.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecollider.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -37,7 +37,6 @@ ODECollider::ODECollider() : ODEPhysicsObject(), mODEGeom(0) { - mGeomID = 0; } ODECollider::~ODECollider() @@ -97,13 +96,8 @@ dGeomID ODEGeom = (dGeomID) geomID; dGeomDestroy(ODEGeom); mODEGeom = 0; - mGeomID = 0; } -long ODECollider::GetGeomID(){ - return mGeomID; -} - void ODECollider::TransformSetGeom(long parentGeomID, long geomID){ dGeomID parentODEGeom = (dGeomID) parentGeomID; dGeomID ODEGeom = (dGeomID) geomID; Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecollider.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecollider.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecollider.h 2009-12-22 08:21:04 UTC (rev 127) @@ -44,7 +44,6 @@ bool Intersect(boost::shared_ptr<Collider> collider, long geomID); long GetParentSpaceID(long geomID); void DestroyGeom(long GeomID); - long GetGeomID(); void TransformSetGeom(long parentGeomID, long geomID); void SetSpace(long spaceID, long geomID, Collider* collider); void SetBody(long bodyID, long geomID); Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odefixedjoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odefixedjoint.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odefixedjoint.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -27,18 +27,14 @@ { } -void ODEFixedJoint::CreateFixedJoint(long world) +long ODEFixedJoint::CreateFixedJoint(long world) { dWorldID ODEworld = (dWorldID) world; mODEJoint = dJointCreateFixed(ODEworld, 0); - mJointID = (long) mODEJoint; + return (long) mODEJoint; } void ODEFixedJoint::SetFixed() { dJointSetFixed(mODEJoint); } - -long ODEFixedJoint::GetJointID(){ - return mJointID; -} Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odefixedjoint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odefixedjoint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odefixedjoint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -30,9 +30,8 @@ public: ODEFixedJoint(); - void CreateFixedJoint(long world); + long CreateFixedJoint(long world); void SetFixed(); - long GetJointID(); }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehinge2joint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehinge2joint.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehinge2joint.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -28,11 +28,11 @@ { } -void ODEHinge2Joint::CreateHinge2Joint(long world) +long ODEHinge2Joint::CreateHinge2Joint(long world) { dWorldID ODEWorld = (dWorldID) world; mODEJoint = dJointCreateHinge2(ODEWorld, 0); - mJointID = (long) mODEJoint; + return (long) mODEJoint; } void ODEHinge2Joint::SetAnchor(const Vector3f& gAnchor, @@ -84,7 +84,3 @@ { return dJointGetHinge2Param(mODEJoint, parameter); } - -long ODEHinge2Joint::GetJointID(){ - return mJointID; -} Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehinge2joint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehinge2joint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehinge2joint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -30,7 +30,7 @@ public: ODEHinge2Joint(); - void CreateHinge2Joint(long world); + long CreateHinge2Joint(long world); void SetAnchor(const salt::Vector3f& gAnchor, const salt::Vector3f& up, const salt::Vector3f& right); @@ -41,7 +41,6 @@ float GetAngleRate2(); void SetParameter(int parameter, float value); float GetParameter(int parameter) const; - long GetJointID(); }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehingejoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehingejoint.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehingejoint.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -27,11 +27,11 @@ { } -void ODEHingeJoint::CreateHingeJoint(long world) +long ODEHingeJoint::CreateHingeJoint(long world) { dWorldID ODEWorld = (dWorldID) world; mODEJoint = dJointCreateHinge(ODEWorld, 0); - mJointID = (long) mODEJoint; + return (long) mODEJoint; } void ODEHingeJoint::SetAnchor(const Vector3f& anchor) @@ -88,7 +88,3 @@ { return dJointGetHingeParam(mODEJoint, parameter); } - -long ODEHingeJoint::GetJointID(){ - return mJointID; -} Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehingejoint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehingejoint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odehingejoint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -30,7 +30,7 @@ public: ODEHingeJoint(); - void CreateHingeJoint(long world); + long CreateHingeJoint(long world); void SetAnchor(const salt::Vector3f& anchor); salt::Vector3f GetAnchor1(); salt::Vector3f GetAnchor2(); @@ -40,7 +40,6 @@ float GetAngleRate() const; void SetParameter(int parameter, float value); float GetParameter(int parameter) const; - long GetJointID(); }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odejoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odejoint.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odejoint.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -28,7 +28,6 @@ ODEJoint::ODEJoint() : ODEPhysicsObject(), mODEJoint(0) { - mJointID = 0; mJointMaxSpeed1 = mJointMaxSpeed2 = 0.0; mIsLimitJointMaxSpeed1 = mIsLimitJointMaxSpeed2 = false; } Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeplanecollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeplanecollider.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeplanecollider.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -33,11 +33,11 @@ dGeomPlaneSetParams(mODEGeom, a, b, c, d); } -void ODEPlaneCollider::CreatePlane() +long ODEPlaneCollider::CreatePlane() { // a plane with normal pointing up, going through the origin mODEGeom = dCreatePlane(0, 0, 1, 0, 0); - mGeomID = (long) mODEGeom; + return (long) mODEGeom; } void ODEPlaneCollider::SetParams(const salt::Vector3f& pos, salt::Vector3f normal) @@ -52,7 +52,3 @@ return dGeomPlanePointDepth (mODEGeom,pos[0],pos[1],pos[2]); } - -long ODEPlaneCollider::GetGeomID(){ - return mGeomID; -} Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeplanecollider.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeplanecollider.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeplanecollider.h 2009-12-22 08:21:04 UTC (rev 127) @@ -37,9 +37,7 @@ void SetPlaneParams(float a, float b, float c, float d); void SetParams(const salt::Vector3f& pos, salt::Vector3f normal); float GetPointDepth(const salt::Vector3f& pos); - - long GetGeomID(); - void CreatePlane(); + long CreatePlane(); }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderaycollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderaycollider.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderaycollider.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -25,7 +25,6 @@ ODERayCollider::ODERayCollider() : ODECollider() { - } void ODERayCollider::SetParams(salt::Vector3f pos, @@ -35,12 +34,8 @@ dGeomRaySetLength(mODEGeom, length); } -void ODERayCollider::CreateRay() +long ODERayCollider::CreateRay() { mODEGeom = dCreateRay(0, 1.0f); - mGeomID = (long) mODEGeom; + return (long) mODEGeom; } - -long ODERayCollider::GetGeomID(){ - return mGeomID; -} Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderaycollider.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderaycollider.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderaycollider.h 2009-12-22 08:21:04 UTC (rev 127) @@ -35,8 +35,7 @@ public: ODERayCollider(); void SetParams(salt::Vector3f pos, salt::Vector3f dir, float length); - void CreateRay(); - long GetGeomID(); + long CreateRay(); }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -32,16 +32,11 @@ using namespace salt; using namespace std; -ODERigidBody::ODERigidBody() : ODEBody(), mODEBody(0){ - mBodyID = 0; +ODERigidBody::ODERigidBody() : ODEBody(){ mMassTrans = Vector3f(0,0,0); mMassTransformed = false; } -long ODERigidBody::GetBodyID(){ - return mBodyID; -} - salt::Vector3f ODERigidBody::GetMassTrans(){ return mMassTrans; } @@ -91,21 +86,21 @@ return (dBodyGetGravityMode(mODEBody) != 0); } -void ODERigidBody::CreateBody(long world) +long ODERigidBody::CreateBody(long world) { // create the managed body mODEBody = dBodyCreate((dWorldID) world); - mBodyID = (long) mODEBody; + return (long) mODEBody; } void ODERigidBody::DestroyPhysicsObject(){ - if (mBodyID == 0) + if (mODEBody == 0) { return; } dBodyDestroy(mODEBody); - mBodyID = 0; + mODEBody = 0; } void ODERigidBody::BodySetData(RigidBody* rb) @@ -164,7 +159,7 @@ mMassTransformed = true; } -void ODERigidBody::SetMassParameters(const float& mass) +void ODERigidBody::SetMassParameters(const GenericMass& mass) { dMass& ODEMass = (dMass&) mass; dBodySetMass(mODEBody, &ODEMass); @@ -365,10 +360,9 @@ Vector3f ODERigidBody::GetLocalAngularVelocity() const { const dReal* vel = dBodyGetAngularVel(mODEBody); - Vector3f w; - dReal* wData = (dReal*) w.GetData(); - dBodyVectorFromWorld(mODEBody, vel[0], vel[1], vel[2], wData); - return w; + dReal w[3]; + dBodyVectorFromWorld(mODEBody, vel[0], vel[1], vel[2], w); + return Vector3f(w[0], w[1], w[2]); } Vector3f ODERigidBody::GetAngularVelocity() const Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.h 2009-12-22 08:21:04 UTC (rev 127) @@ -40,7 +40,7 @@ void UseGravity(bool f); bool UsesGravity() const; void SetMass(float mass); - void SetMassParameters(const float& mass); + void SetMassParameters(const GenericMass& mass); float GetMass() const; void SetSphere(float density, float radius); void AddSphere(float density, float radius, const salt::Matrix& matrix); @@ -83,11 +83,13 @@ void SetMassTransformed(bool f); protected: + /**These methods are only called internally. + */ void AddMass(const dMass& mass, const salt::Matrix& matrix); /** creates an ODE body within the given world */ - void CreateBody(long world); + long CreateBody(long world); /** sets up an ode mass struct representing a box of the given size and total_mass @@ -142,12 +144,6 @@ is oriented along the body's z axis. */ void PrepareCapsuleTotal(dMass& mass, float total_mass, float radius, float length) const; - -private: - /** An ODE-specific body ID. This is used internally to call ODE- - specific methods that manipulate this body. - */ - dBodyID mODEBody; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odesliderjoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odesliderjoint.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odesliderjoint.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -27,11 +27,11 @@ { } -void ODESliderJoint::CreateSliderJoint(long world) +long ODESliderJoint::CreateSliderJoint(long world) { dWorldID ODEWorld = (dWorldID) world; mODEJoint = dJointCreateSlider(ODEWorld, 0); - mJointID = (long) mODEJoint; + return (long) mODEJoint; } void ODESliderJoint::SetSliderAxis(Vector3f& up) @@ -58,7 +58,3 @@ { return dJointGetSliderParam(mODEJoint, parameter); } - -long ODESliderJoint::GetJointID(){ - return mJointID; -} Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odesliderjoint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odesliderjoint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odesliderjoint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -34,13 +34,12 @@ public: ODESliderJoint(); - void CreateSliderJoint(long world); + long CreateSliderJoint(long world); float GetPosition(); float GetPositionRate(); void SetSliderAxis(salt::Vector3f& up); void SetParameter(int parameter, float value); float GetParameter(int parameter) const; - long GetJointID(); }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odespherecollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odespherecollider.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odespherecollider.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -26,8 +26,6 @@ ODESphereCollider::ODESphereCollider() : ODEConvexCollider() { - mODEGeom = 0; - mGeomID = 0; } void ODESphereCollider::SetRadius(float r) @@ -40,10 +38,10 @@ return dGeomSphereGetRadius(mODEGeom); } -void ODESphereCollider::CreateSphere() +long ODESphereCollider::CreateSphere() { mODEGeom = dCreateSphere(0, 1.0f); - mGeomID = (long) mODEGeom; + return (long) mODEGeom; } float ODESphereCollider::GetPointDepth(const Vector3f& pos) @@ -51,7 +49,3 @@ return dGeomSpherePointDepth (mODEGeom,pos[0],pos[1],pos[2]); } - -long ODESphereCollider::GetGeomID(){ - return mGeomID; -} Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odespherecollider.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odespherecollider.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odespherecollider.h 2009-12-22 08:21:04 UTC (rev 127) @@ -36,9 +36,7 @@ void SetRadius(float r); float GetRadius() const; float GetPointDepth(const salt::Vector3f& pos); - void CreateSphere(); - - long GetGeomID(); + long CreateSphere(); }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odetransformcollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odetransformcollider.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odetransformcollider.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -24,20 +24,16 @@ using namespace oxygen; -ODETransformCollider::ODETransformCollider() : ODECollider(){ - +ODETransformCollider::ODETransformCollider() : ODECollider() +{ } -void ODETransformCollider::CreateTransformCollider(){ +long ODETransformCollider::CreateTransformCollider(){ mODEGeom = dCreateGeomTransform(0); - mGeomID = (long) mODEGeom; + return (long) mODEGeom; } void ODETransformCollider::SetColliderParameters(int cleanup, int info){ dGeomTransformSetCleanup(mODEGeom, cleanup); dGeomTransformSetInfo(mODEGeom, info); } - -long ODETransformCollider::GetGeomID(){ - return mGeomID; -} Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odetransformcollider.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odetransformcollider.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odetransformcollider.h 2009-12-22 08:21:04 UTC (rev 127) @@ -34,9 +34,8 @@ public: ODETransformCollider(); - void CreateTransformCollider(); void SetColliderParameters(int cleanup, int info); - long GetGeomID(); + long CreateTransformCollider(); }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeuniversaljoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeuniversaljoint.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeuniversaljoint.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -26,11 +26,11 @@ { } -void ODEUniversalJoint::CreateUniversalJoint(long world) +long ODEUniversalJoint::CreateUniversalJoint(long world) { dWorldID ODEWorld = (dWorldID) world; mODEJoint = dJointCreateUniversal(ODEWorld, 0); - mJointID = (long) mODEJoint; + return (long) mODEJoint; } void ODEUniversalJoint::SetAnchor(const Vector3f& anchor) @@ -109,7 +109,3 @@ { return dJointGetUniversalParam(mODEJoint, parameter); } - -long ODEUniversalJoint::GetJointID(){ - return mJointID; -} Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeuniversaljoint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeuniversaljoint.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeuniversaljoint.h 2009-12-22 08:21:04 UTC (rev 127) @@ -34,7 +34,7 @@ public: ODEUniversalJoint(); - void CreateUniversalJoint(long world); + long CreateUniversalJoint(long world); void SetAnchor(const salt::Vector3f& anchor); salt::Vector3f GetAnchor1(); salt::Vector3f GetAnchor2(); @@ -48,7 +48,6 @@ float GetAngleRate2() const; void SetParameter(int parameter, float value); float GetParameter(int parameter) const; - long GetJointID(); }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/planecollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/planecollider.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/planecollider.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -54,10 +54,9 @@ } //create default plane - mPlaneColliderImp->CreatePlane(); - mGeomID = mPlaneColliderImp->GetGeomID(); + mGeomID = mPlaneColliderImp->CreatePlane(); - return (mPlaneColliderImp->GetGeomID() != 0); + return (mGeomID != 0); } void PlaneCollider::SetParams(const salt::Vector3f& pos, salt::Vector3f normal) Modified: branches/multiphys/spark/lib/oxygen/physicsserver/raycollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/raycollider.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/raycollider.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -43,8 +43,7 @@ } // create a unit ray - mRayColliderImp->CreateRay(); - mGeomID = mRayColliderImp->GetGeomID(); + mGeomID = mRayColliderImp->CreateRay(); - return (mRayColliderImp->GetGeomID() != 0); + return (mGeomID != 0); } Modified: branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp 2009-12-22 08:21:04 UTC (rev 127) @@ -41,7 +41,7 @@ long RigidBody::GetBodyID() const { - return mRigidBodyImp->GetBodyID(); + return mBodyID; } void RigidBody::Enable() @@ -71,9 +71,7 @@ bool RigidBody::CreateBody() { - long bodyID = mRigidBodyImp->GetBodyID(); - - if (bodyID != 0) + if (mBodyID != 0) { return true; } @@ -84,9 +82,9 @@ return false; } - mRigidBodyImp->CreateBody(world); + mBodyID = mRigidBodyImp->CreateBody(world); - if (mRigidBodyImp->GetBodyID() == 0) + if (mBodyID == 0) { GetLog()->Error() << "(Body) ERROR: could not create new ODE body\n"; @@ -131,7 +129,7 @@ return mRigidBodyImp->GetMass(); } -void RigidBody::SetMassParameters(const float& mass){ +void RigidBody::SetMassParameters(const GenericMass& mass){ mRigidBodyImp->SetMassParameters(mass); } Modified: branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.h 2009-12-18 13:01:31 UTC (rev 126) +++ branches/multiphys/spark/lib/oxygen/physicsserver/rigidbo... [truncated message content] |
From: <a-...@us...> - 2010-01-04 04:51:30
|
Revision: 134 http://simspark.svn.sourceforge.net/simspark/?rev=134&view=rev Author: a-held Date: 2010-01-04 04:51:19 +0000 (Mon, 04 Jan 2010) Log Message: ----------- Added changes from revisions 128 to 133 into branch (probably not changes to svn props) commented out proxyserver from CMakeLists.txt because it causes a linker error on my computer Modified Paths: -------------- branches/multiphys/rcssserver3d/ChangeLog branches/multiphys/rcssserver3d/data/models/leftgoal.obj branches/multiphys/rcssserver3d/data/models/rightgoal.obj branches/multiphys/rcssserver3d/data/rsg/agent/nao/goal.rsg branches/multiphys/rcssserver3d/data/rsg/agent/nao/nao.rsg branches/multiphys/rcssserver3d/rcssmonitor3d/main.cpp branches/multiphys/rcssserver3d/simspark/naosoccersim.rb branches/multiphys/spark/ChangeLog branches/multiphys/spark/RELEASE branches/multiphys/spark/lib/kerosin/renderserver/renderserver.cpp branches/multiphys/spark/lib/oxygen/CMakeLists.txt branches/multiphys/spark/lib/oxygen/agentaspect/agentaspect.cpp branches/multiphys/spark/lib/oxygen/agentaspect/agentaspect.h branches/multiphys/spark/lib/oxygen/simulationserver/agentcontrol.cpp branches/multiphys/spark/lib/oxygen/simulationserver/agentcontrol.h branches/multiphys/spark/lib/oxygen/simulationserver/agentcontrol_c.cpp branches/multiphys/spark/lib/oxygen/simulationserver/netcontrol.cpp branches/multiphys/spark/lib/oxygen/simulationserver/netcontrol.h branches/multiphys/spark/lib/oxygen/simulationserver/netmessage.cpp branches/multiphys/spark/lib/oxygen/simulationserver/simcontrolnode.h branches/multiphys/spark/lib/zeitgeist/fileserver/fileserver.cpp branches/multiphys/spark/lib/zeitgeist/scriptserver/scriptserver.cpp branches/multiphys/spark/lib/zeitgeist/scriptserver/scriptserver.h branches/multiphys/spark/lib/zeitgeist/zeitgeist.cpp branches/multiphys/spark/plugin/CMakeLists.txt branches/multiphys/spark/spark/spark.rb Added Paths: ----------- branches/multiphys/spark/lib/oxygen/proxyserver/ branches/multiphys/spark/lib/oxygen/proxyserver/agentproxy.cpp branches/multiphys/spark/lib/oxygen/proxyserver/agentproxy.h branches/multiphys/spark/lib/oxygen/proxyserver/agentproxy_c.cpp branches/multiphys/spark/lib/oxygen/proxyserver/proxyserver.cpp branches/multiphys/spark/lib/oxygen/proxyserver/proxyserver.h branches/multiphys/spark/lib/oxygen/proxyserver/proxyserver_c.cpp branches/multiphys/spark/plugin/agentsynceffector/ branches/multiphys/spark/plugin/agentsynceffector/CMakeLists.txt branches/multiphys/spark/plugin/agentsynceffector/agentsynceffector.cpp branches/multiphys/spark/plugin/agentsynceffector/agentsynceffector.h branches/multiphys/spark/plugin/agentsynceffector/agentsynceffector_c.cpp branches/multiphys/spark/plugin/agentsynceffector/export.cpp Modified: branches/multiphys/rcssserver3d/ChangeLog =================================================================== --- branches/multiphys/rcssserver3d/ChangeLog 2010-01-03 17:34:56 UTC (rev 133) +++ branches/multiphys/rcssserver3d/ChangeLog 2010-01-04 04:51:19 UTC (rev 134) @@ -1,3 +1,31 @@ +2010-01-03 Hedayat Vatankhah <he...@gr...> + + * data/models/leftgoal.obj: + * data/models/rightgoal.obj: + * data/rsg/agent/nao/goal.rsg: + - Fix visual goal object so that it'll follow server dimensions (GoalWidth, + GoalHeight and GoalDepth) + +2009-12-31 Hedayat Vatankhah <he...@gr...> + + * rcssmonitor3d/main.cpp: + - changed the name printed on execution + +2009-12-29 Hedayat Vatankhah <he...@gr...> + + * data/rsg/agent/nao/nao.rsg: + - added AgentSyncEffector + + * rcssmonitor3d/main.cpp: + - some cleanup + - added a new option to specify the server address: --server + +2009-12-28 Hedayat Vatankhah <he...@gr...> + + * simspark/naosoccersim.rb: + - added new field settings (field height/width, goal width/depth and penalty + area width/length multiplied by 1.5 + 2009-10-31 Hedayat Vatankhah <he...@gr...> * RELEASE: Modified: branches/multiphys/rcssserver3d/data/models/leftgoal.obj =================================================================== --- branches/multiphys/rcssserver3d/data/models/leftgoal.obj 2010-01-03 17:34:56 UTC (rev 133) +++ branches/multiphys/rcssserver3d/data/models/leftgoal.obj 2010-01-04 04:51:19 UTC (rev 134) @@ -1,1964 +1,827 @@ -# Blender3D v245 OBJ File: leftgoal.blend +# Blender3D v249 OBJ File: # www.blender3d.org mtllib leftgoal.mtl -o Cylinder -v 0.490346 -0.000000 -0.021170 -v 0.494467 -0.000000 -0.016098 -v 0.497519 -0.000000 -0.010320 -v 0.499385 -0.000000 -0.004058 -v 0.499994 0.000000 0.002448 -v 0.499322 0.000000 0.008948 -v 0.497394 0.000000 0.015192 -v 0.494286 0.000000 0.020939 -v 0.490116 0.000000 0.025970 -v 0.485044 0.000000 0.030091 -v 0.479266 0.000000 0.033143 -v 0.473004 0.000000 0.035009 -v 0.466498 0.000000 0.035618 -v 0.459998 0.000000 0.034945 -v 0.453754 0.000000 0.033018 -v 0.448007 0.000000 0.029909 -v 0.442976 0.000000 0.025739 -v 0.438855 0.000000 0.020668 -v 0.435803 0.000000 0.014890 -v 0.433937 0.000000 0.008628 -v 0.433328 0.000000 0.002122 -v 0.434000 -0.000000 -0.004378 -v 0.435928 -0.000000 -0.010622 -v 0.439036 -0.000000 -0.016370 -v 0.443207 -0.000000 -0.021401 -v 0.448278 -0.000000 -0.025521 -v 0.454056 -0.000000 -0.028573 -v 0.460318 -0.000000 -0.030439 -v 0.466824 -0.000000 -0.031048 -v 0.473324 -0.000000 -0.030376 -v 0.479568 -0.000000 -0.028448 -v 0.485316 -0.000000 -0.025340 -v 0.490346 0.533333 -0.021170 -v 0.494467 0.533333 -0.016098 -v 0.497519 0.533333 -0.010320 -v 0.499385 0.533333 -0.004058 -v 0.499994 0.533333 0.002448 -v 0.499322 0.533333 0.008948 -v 0.497394 0.533333 0.015192 -v 0.494286 0.533333 0.020939 -v 0.490116 0.533333 0.025970 -v 0.485044 0.533333 0.030091 -v 0.479266 0.533333 0.033143 -v 0.473004 0.533333 0.035009 -v 0.466498 0.533333 0.035618 -v 0.459998 0.533333 0.034945 -v 0.453754 0.533333 0.033018 -v 0.448007 0.533333 0.029910 -v 0.442976 0.533333 0.025739 -v 0.438855 0.533333 0.020668 -v 0.435803 0.533333 0.014890 -v 0.433937 0.533333 0.008628 -v 0.433328 0.533333 0.002122 -v 0.434000 0.533333 -0.004378 -v 0.435928 0.533333 -0.010622 -v 0.439036 0.533333 -0.016370 -v 0.443206 0.533333 -0.021400 -v 0.448278 0.533333 -0.025521 -v 0.454056 0.533333 -0.028573 -v 0.460318 0.533333 -0.030439 -v 0.466824 0.533333 -0.031048 -v 0.473324 0.533333 -0.030376 -v 0.479568 0.533333 -0.028448 -v 0.485315 0.533333 -0.025340 -v 0.466661 0.000000 0.002285 -v 0.466661 0.533333 0.002285 -v -0.466661 0.533333 -0.002285 -v -0.466661 -0.000000 -0.002285 -v -0.448007 0.533333 -0.029910 -v -0.453755 0.533333 -0.033018 -v -0.459998 0.533333 -0.034946 -v -0.466498 0.533333 -0.035618 -v -0.473004 0.533333 -0.035009 -v -0.479266 0.533333 -0.033143 -v -0.485044 0.533333 -0.030091 -v -0.490116 0.533333 -0.025970 -v -0.494286 0.533333 -0.020939 -v -0.497394 0.533333 -0.015191 -v -0.499322 0.533333 -0.008948 -v -0.499994 0.533333 -0.002448 -v -0.499385 0.533333 0.004058 -v -0.497519 0.533333 0.010320 -v -0.494467 0.533333 0.016098 -v -0.490346 0.533333 0.021170 -v -0.485315 0.533333 0.025340 -v -0.479568 0.533333 0.028448 -v -0.473324 0.533333 0.030376 -v -0.466824 0.533333 0.031048 -v -0.460318 0.533333 0.030439 -v -0.454056 0.533333 0.028573 -v -0.448278 0.533333 0.025521 -v -0.443207 0.533333 0.021401 -v -0.439036 0.533333 0.016370 -v -0.435928 0.533333 0.010622 -v -0.434000 0.533333 0.004378 -v -0.433328 0.533333 -0.002122 -v -0.433937 0.533333 -0.008628 -v -0.435803 0.533333 -0.014890 -v -0.438855 0.533333 -0.020668 -v -0.442976 0.533333 -0.025739 -v -0.448007 -0.000000 -0.029909 -v -0.453754 -0.000000 -0.033018 -v -0.459998 -0.000000 -0.034945 -v -0.466498 -0.000000 -0.035618 -v -0.473004 -0.000000 -0.035009 -v -0.479266 -0.000000 -0.033143 -v -0.485044 -0.000000 -0.030091 -v -0.490116 -0.000000 -0.025970 -v -0.494286 -0.000000 -0.020939 -v -0.497394 -0.000000 -0.015192 -v -0.499322 -0.000000 -0.008948 -v -0.499994 -0.000000 -0.002448 -v -0.499385 0.000000 0.004058 -v -0.497519 0.000000 0.010320 -v -0.494467 0.000000 0.016098 -v -0.490346 0.000000 0.021170 -v -0.485316 0.000000 0.025340 -v -0.479568 0.000000 0.028448 -v -0.473324 0.000000 0.030376 -v -0.466824 0.000000 0.031048 -v -0.460318 0.000000 0.030439 -v -0.454056 0.000000 0.028573 -v -0.448278 0.000000 0.025521 -v -0.443207 0.000000 0.021401 -v -0.439036 0.000000 0.016370 -v -0.435928 0.000000 0.010622 -v -0.434000 0.000000 0.004378 -v -0.433328 -0.000000 -0.002122 -v -0.433937 -0.000000 -0.008628 -v -0.435803 -0.000000 -0.014890 -v -0.438855 -0.000000 -0.020668 -v -0.442976 -0.000000 -0.025739 -v -0.465814 0.527499 -0.014066 -v -0.465804 0.524974 -0.016139 -v -0.465796 0.522092 -0.017679 -v -0.465791 0.518966 -0.018627 -v -0.465790 0.515714 -0.018947 -v -0.465791 0.512463 -0.018627 -v -0.465796 0.509336 -0.017679 -v -0.465804 0.506455 -0.016139 -v -0.465814 0.503929 -0.014066 -v -0.465826 0.501856 -0.011540 -v -0.465840 0.500316 -0.008659 -v -0.465855 0.499368 -0.005532 -v -0.465871 0.499047 -0.002281 -v -0.465887 0.499368 0.000971 -v -0.465903 0.500316 0.004097 -v -0.465917 0.501856 0.006978 -v -0.465929 0.503929 0.009504 -v -0.465939 0.506455 0.011577 -v -0.465947 0.509336 0.013117 -v -0.465951 0.512463 0.014065 -v -0.465953 0.515714 0.014386 -v -0.465951 0.518966 0.014065 -v -0.465947 0.522092 0.013117 -v -0.465939 0.524974 0.011577 -v -0.465929 0.527499 0.009504 -v -0.465917 0.529572 0.006978 -v -0.465903 0.531112 0.004097 -v -0.465887 0.532061 0.000971 -v -0.465871 0.532381 -0.002281 -v -0.465855 0.532061 -0.005532 -v -0.465840 0.531112 -0.008659 -v -0.465826 0.529572 -0.011540 -v 0.467508 0.527499 -0.009496 -v 0.467519 0.524974 -0.011569 -v 0.467526 0.522092 -0.013109 -v 0.467531 0.518966 -0.014057 -v 0.467532 0.515714 -0.014378 -v 0.467531 0.512463 -0.014057 -v 0.467526 0.509336 -0.013109 -v 0.467519 0.506455 -0.011569 -v 0.467508 0.503929 -0.009496 -v 0.467496 0.501856 -0.006971 -v 0.467482 0.500316 -0.004089 -v 0.467467 0.499368 -0.000963 -v 0.467451 0.499047 0.002289 -v 0.467435 0.499368 0.005540 -v 0.467420 0.500316 0.008667 -v 0.467405 0.501856 0.011548 -v 0.467393 0.503929 0.014074 -v 0.467383 0.506455 0.016146 -v 0.467375 0.509336 0.017687 -v 0.467371 0.512463 0.018635 -v 0.467369 0.515714 0.018955 -v 0.467371 0.518966 0.018635 -v 0.467375 0.522092 0.017687 -v 0.467383 0.524974 0.016146 -v 0.467393 0.527499 0.014074 -v 0.467405 0.529572 0.011548 -v 0.467420 0.531112 0.008667 -v 0.467435 0.532061 0.005540 -v 0.467451 0.532381 0.002289 -v 0.467467 0.532061 -0.000963 -v 0.467482 0.531112 -0.004089 -v 0.467496 0.529572 -0.006971 -v -0.465871 0.515714 -0.002281 -v 0.467451 0.515714 0.002289 -v -0.459830 0.000132 -0.035903 -v -0.459830 0.266798 -0.035903 -v -0.458524 0.000831 -0.302566 -v 0.469231 0.000831 -0.299482 -v 0.467925 0.534842 -0.032819 -v 0.467925 0.000132 -0.032819 -v 0.467925 0.534842 -0.032819 -v 0.469231 0.000831 -0.299482 -v -0.463784 0.000831 -0.304050 -v -0.465090 0.534842 -0.037387 -v -0.465090 0.000132 -0.037387 -v -0.465090 0.534842 -0.037387 -v -0.463784 0.000831 -0.304050 -v 0.467925 0.534842 -0.032819 -v 0.469231 0.000831 -0.299482 -v -0.465090 0.000132 -0.037387 -v -0.465090 0.534842 -0.037387 -v -0.463784 0.000831 -0.304050 -v -0.465191 0.000831 -0.302566 -v -0.466496 0.266798 -0.035903 -v -0.466496 0.000132 -0.035903 -v 0.474809 0.000831 -0.302566 -v 0.473504 0.266798 -0.035903 -v 0.473504 0.000132 -0.035903 -v 0.468143 0.000831 -0.302566 -v 0.466837 0.266798 -0.035903 -v 0.466837 0.000132 -0.035903 -v 0.469231 0.000831 -0.299482 -v 0.467925 0.534842 -0.032819 -v 0.467925 0.000132 -0.032819 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.478737 0.520656 0.0 -vt 0.239368 1.000000 0.0 -vt 0.239368 0.520028 0.0 -vt 0.239368 0.520656 0.0 -vt 0.000000 0.520028 0.0 -vt 0.000000 1.000000 0.0 -vt 0.239368 0.520656 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.520028 0.0 -vt 0.478737 0.520656 0.0 -vt 0.239368 0.520028 0.0 -vt 0.239368 1.000000 0.0 -vt 0.812878 0.000000 0.0 -vt 0.812878 0.520028 0.0 -vt 0.000000 0.520027 0.0 -vt 0.812878 0.000000 0.0 -vt 0.000000 0.520027 0.0 -vt 0.000000 0.000000 0.0 -vt 0.812878 0.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 0.000000 0.520027 0.0 -vt 0.812878 0.000000 0.0 -vt 0.000000 0.520027 0.0 -vt 0.812878 0.520028 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 0.000000 0.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 0.000000 1.000000 0.0 -vt 1.000000 0.000000 0.0 -vt 1.000000 1.000000 0.0 -vn 0.000000 -1.000000 0.000000 -vn 0.685934 -0.668203 0.288064 -vn 0.616535 -0.668203 0.416333 -vn 0.999969 0.000000 0.004883 -vn -0.703970 0.315897 -0.636067 -vn -0.999969 0.000000 -0.004883 -vn -0.004364 -0.446730 0.894620 -vn 0.004364 0.446730 -0.894620 -vn 0.528642 -0.668203 -0.523484 -vn 0.620594 -0.668203 -0.410291 +o leftgoal +v 0.490346 -0.000000 -0.062326 +v 0.494467 -0.000000 -0.047393 +v 0.497519 -0.000000 -0.030383 +v 0.499385 -0.000000 -0.011947 +v 0.499994 0.000000 0.007207 +v 0.499322 0.000000 0.026343 +v 0.497394 0.000000 0.044726 +v 0.494286 0.000000 0.061645 +v 0.490116 0.000000 0.076457 +v 0.485044 0.000000 0.088589 +v 0.479266 0.000000 0.097575 +v 0.473004 0.000000 0.103068 +v 0.466498 0.000000 0.104861 +v 0.459998 0.000000 0.102880 +v 0.453754 0.000000 0.097207 +v 0.448007 0.000000 0.088054 +v 0.442976 0.000000 0.075777 +v 0.438855 0.000000 0.060848 +v 0.435803 0.000000 0.043837 +v 0.433937 0.000000 0.025401 +v 0.433328 0.000000 0.006247 +v 0.434000 -0.000000 -0.012889 +v 0.435928 -0.000000 -0.031272 +v 0.439036 -0.000000 -0.048194 +v 0.443207 -0.000000 -0.063006 +v 0.448278 -0.000000 -0.075135 +v 0.454056 -0.000000 -0.084120 +v 0.460318 -0.000000 -0.089614 +v 0.466824 -0.000000 -0.091407 +v 0.473324 -0.000000 -0.089428 +v 0.479568 -0.000000 -0.083752 +v 0.485316 -0.000000 -0.074602 +v 0.490346 0.997179 -0.062326 +v 0.494467 0.997179 -0.047393 +v 0.497519 0.997179 -0.030383 +v 0.499385 0.997179 -0.011947 +v 0.499994 0.997179 0.007207 +v 0.499322 0.997179 0.026343 +v 0.497394 0.997179 0.044726 +v 0.494286 0.997179 0.061645 +v 0.490116 0.997179 0.076457 +v 0.485044 0.997179 0.088589 +v 0.479266 0.997179 0.097575 +v 0.473004 0.997179 0.103068 +v 0.466498 0.997179 0.104861 +v 0.459998 0.997179 0.102880 +v 0.453754 0.997179 0.097207 +v 0.448007 0.997179 0.088057 +v 0.442976 0.997179 0.075777 +v 0.438855 0.997179 0.060848 +v 0.435803 0.997179 0.043837 +v 0.433937 0.997179 0.025401 +v 0.433328 0.997179 0.006247 +v 0.434000 0.997179 -0.012889 +v 0.435928 0.997179 -0.031272 +v 0.439036 0.997179 -0.048194 +v 0.443206 0.997179 -0.063003 +v 0.448278 0.997179 -0.075135 +v 0.454056 0.997179 -0.084120 +v 0.460318 0.997179 -0.089614 +v 0.466824 0.997179 -0.091407 +v 0.473324 0.997179 -0.089429 +v 0.479568 0.997179 -0.083752 +v 0.485315 0.997179 -0.074602 +v 0.466661 0.000000 0.006727 +v 0.466661 0.997179 0.006727 +v -0.466661 0.997179 -0.006727 +v -0.466661 -0.000000 -0.006727 +v -0.448007 0.997179 -0.088057 +v -0.453755 0.997179 -0.097207 +v -0.459998 0.997179 -0.102883 +v -0.466498 0.997179 -0.104861 +v -0.473004 0.997179 -0.103068 +v -0.479266 0.997179 -0.097575 +v -0.485044 0.997179 -0.088589 +v -0.490116 0.997179 -0.076457 +v -0.494286 0.997179 -0.061646 +v -0.497394 0.997179 -0.044723 +v -0.499322 0.997179 -0.026343 +v -0.499994 0.997179 -0.007207 +v -0.499385 0.997179 0.011947 +v -0.497519 0.997179 0.030383 +v -0.494467 0.997179 0.047393 +v -0.490346 0.997179 0.062326 +v -0.485315 0.997179 0.074602 +v -0.479568 0.997179 0.083752 +v -0.473324 0.997179 0.089428 +v -0.466824 0.997179 0.091407 +v -0.460318 0.997179 0.089614 +v -0.454056 0.997179 0.084120 +v -0.448278 0.997179 0.075135 +v -0.443207 0.997179 0.063006 +v -0.439036 0.997179 0.048194 +v -0.435928 0.997179 0.031272 +v -0.434000 0.997179 0.012889 +v -0.433328 0.997179 -0.006247 +v -0.433937 0.997179 -0.025401 +v -0.435803 0.997179 -0.043837 +v -0.438855 0.997179 -0.060848 +v -0.442976 0.997179 -0.075777 +v -0.448007 -0.000000 -0.088054 +v -0.453754 -0.000000 -0.097207 +v -0.459998 -0.000000 -0.102880 +v -0.466498 -0.000000 -0.104861 +v -0.473004 -0.000000 -0.103068 +v -0.479266 -0.000000 -0.097575 +v -0.485044 -0.000000 -0.088589 +v -0.490116 -0.000000 -0.076457 +v -0.494286 -0.000000 -0.061645 +v -0.497394 -0.000000 -0.044726 +v -0.499322 -0.000000 -0.026343 +v -0.499994 -0.000000 -0.007207 +v -0.499385 0.000000 0.011947 +v -0.497519 0.000000 0.030383 +v -0.494467 0.000000 0.047393 +v -0.490346 0.000000 0.062326 +v -0.485316 0.000000 0.074602 +v -0.479568 0.000000 0.083752 +v -0.473324 0.000000 0.089428 +v -0.466824 0.000000 0.091407 +v -0.460318 0.000000 0.089614 +v -0.454056 0.000000 0.084120 +v -0.448278 0.000000 0.075135 +v -0.443207 0.000000 0.063006 +v -0.439036 0.000000 0.048194 +v -0.435928 0.000000 0.031272 +v -0.434000 0.000000 0.012889 +v -0.433328 -0.000000 -0.006247 +v -0.433937 -0.000000 -0.025401 +v -0.435803 -0.000000 -0.043837 +v -0.438855 -0.000000 -0.060848 +v -0.442976 -0.000000 -0.075777 +v -0.465814 0.986271 -0.041411 +v -0.465804 0.981550 -0.047514 +v -0.465796 0.976161 -0.052048 +v -0.465791 0.970316 -0.054839 +v -0.465790 0.964236 -0.055781 +v -0.465791 0.958158 -0.054839 +v -0.465796 0.952311 -0.052048 +v -0.465804 0.946925 -0.047514 +v -0.465814 0.942202 -0.041411 +v -0.465826 0.938326 -0.033974 +v -0.465840 0.935446 -0.025493 +v -0.465855 0.933674 -0.016287 +v -0.465871 0.933074 -0.006715 +v -0.465887 0.933674 0.002859 +v -0.465903 0.935446 0.012062 +v -0.465917 0.938326 0.020544 +v -0.465929 0.942202 0.027980 +v -0.465939 0.946925 0.034083 +v -0.465947 0.952311 0.038617 +v -0.465951 0.958158 0.041408 +v -0.465953 0.964236 0.042353 +v -0.465951 0.970316 0.041408 +v -0.465947 0.976161 0.038617 +v -0.465939 0.981550 0.034083 +v -0.465929 0.986271 0.027980 +v -0.465917 0.990147 0.020544 +v -0.465903 0.993026 0.012062 +v -0.465887 0.994800 0.002859 +v -0.465871 0.995399 -0.006715 +v -0.465855 0.994800 -0.016287 +v -0.465840 0.993026 -0.025493 +v -0.465826 0.990147 -0.033974 +v 0.467508 0.986271 -0.027957 +v 0.467519 0.981550 -0.034060 +v 0.467526 0.976161 -0.038594 +v 0.467531 0.970316 -0.041385 +v 0.467532 0.964236 -0.042330 +v 0.467531 0.958158 -0.041385 +v 0.467526 0.952311 -0.038594 +v 0.467519 0.946925 -0.034060 +v 0.467508 0.942202 -0.027957 +v 0.467496 0.938326 -0.020523 +v 0.467482 0.935446 -0.012038 +v 0.467467 0.933674 -0.002835 +v 0.467451 0.933074 0.006739 +v 0.467435 0.933674 0.016310 +v 0.467420 0.935446 0.025516 +v 0.467405 0.938326 0.033998 +v 0.467393 0.942202 0.041435 +v 0.467383 0.946925 0.047535 +v 0.467375 0.952311 0.052071 +v 0.467371 0.958158 0.054862 +v 0.467369 0.964236 0.055804 +v 0.467371 0.970316 0.054862 +v 0.467375 0.976161 0.052071 +v 0.467383 0.981550 0.047535 +v 0.467393 0.986271 0.041435 +v 0.467405 0.990147 0.033998 +v 0.467420 0.993026 0.025516 +v 0.467435 0.994800 0.016310 +v 0.467451 0.995399 0.006739 +v 0.467467 0.994800 -0.002835 +v 0.467482 0.993026 -0.012038 +v 0.467496 0.990147 -0.020523 +v -0.465871 0.964236 -0.006715 +v 0.467451 0.964236 0.006739 +v -0.459830 0.000247 -0.105700 +v -0.459830 0.498835 -0.105700 +v -0.458524 0.001554 -0.890770 +v 0.469231 0.001554 -0.881690 +v 0.467925 1.000000 -0.096621 +v 0.467925 0.000247 -0.096621 +v 0.467925 1.000000 -0.096621 +v 0.469231 0.001554 -0.881690 +v -0.463784 0.001554 -0.895139 +v -0.465090 1.000000 -0.110069 +v -0.465090 0.000247 -0.110069 +v -0.465090 1.000000 -0.110069 +v -0.463784 0.001554 -0.895139 +v 0.467925 1.000000 -0.096621 +v 0.469231 0.001554 -0.881690 +v -0.465090 0.000247 -0.110069 +v -0.465090 1.000000 -0.110069 +v -0.463784 0.001554 -0.895139 +v -0.465191 0.001554 -0.890770 +v -0.466496 0.498835 -0.105700 +v -0.466496 0.000247 -0.105700 +v 0.474809 0.001554 -0.890770 +v 0.473504 0.498835 -0.105700 +v 0.473504 0.000247 -0.105700 +v 0.468143 0.001554 -0.890770 +v 0.466837 0.498835 -0.105700 +v 0.466837 0.000247 -0.105700 +v 0.469231 0.001554 -0.881690 +v 0.467925 1.000000 -0.096621 +v 0.467925 0.000247 -0.096621 +vn -0.000000 -1.000000 0.000000 +vn 0.999999 0.000000 0.001664 +vn -0.999999 -0.000000 -0.001664 +vn -0.011330 -0.618071 0.786040 +vn 0.011330 0.618071 -0.786040 vn 0.000000 1.000000 0.000000 -vn 0.620594 0.668203 -0.410291 -vn 0.528642 0.668203 -0.523484 -vn 0.688711 -0.668203 -0.281320 -vn 0.688711 0.668203 -0.281320 -vn 0.730369 -0.668203 -0.141545 -vn 0.730369 0.668203 -0.141545 -vn 0.743950 -0.668203 0.003632 -vn 0.743950 0.668203 0.003632 -vn 0.728935 -0.668203 0.148686 -vn 0.728935 0.668203 0.148686 -vn 0.685934 0.668203 0.288064 -vn 0.616535 0.668203 0.416333 -vn 0.523484 -0.668203 0.528611 -vn 0.523484 0.668203 0.528642 -vn 0.410291 -0.668203 0.620594 -vn 0.410291 0.668203 0.620594 -vn 0.281320 -0.668203 0.688711 -vn 0.281320 0.668203 0.688711 -vn 0.141514 -0.666372 0.732047 -vn 0.141545 0.668203 0.730369 -vn -0.003632 -0.668203 0.743950 -vn -0.003265 0.666372 0.745598 -vn -0.148686 -0.668203 0.728935 -vn -0.148686 0.668203 0.728935 -vn -0.288064 -0.668203 0.685934 -vn -0.288064 0.668203 0.685934 -vn -0.416333 -0.668203 0.616535 -vn -0.416333 0.668203 0.616535 -vn -0.528642 -0.668203 0.523484 -vn -0.528611 0.668203 0.523484 -vn -0.620594 -0.668203 0.410291 -vn -0.620594 0.668203 0.410291 -vn -0.688711 -0.668203 0.281320 -vn -0.688711 0.668203 0.281320 -vn -0.730369 -0.668203 0.141545 -vn -0.730369 0.668203 0.141545 -vn -0.743950 -0.668203 -0.003632 -vn -0.743950 0.668203 -0.003632 -vn -0.728935 -0.668203 -0.148686 -vn -0.728935 0.668203 -0.148686 -vn -0.685934 -0.668203 -0.288064 -vn -0.685934 0.668203 -0.288064 -vn -0.616535 -0.668203 -0.416333 -vn -0.616565 0.668203 -0.416333 -vn -0.523484 -0.668203 -0.528642 -vn -0.523484 0.668203 -0.528611 -vn -0.410291 -0.668203 -0.620594 -vn -0.410291 0.668203 -0.620594 -vn -0.281320 -0.668203 -0.688711 -vn -0.281320 0.668203 -0.688711 -vn -0.141545 -0.668203 -0.730369 -vn -0.141545 0.668203 -0.730369 -vn 0.003632 -0.668203 -0.743950 -vn 0.003632 0.668203 -0.743950 -vn 0.148686 -0.668203 -0.728935 -vn 0.148686 0.668203 -0.728935 -vn 0.288064 -0.668203 -0.685934 -vn 0.288034 0.668203 -0.685934 -vn 0.416333 -0.668203 -0.616535 -vn 0.416333 0.668203 -0.616565 -vn 0.528611 0.668203 -0.523484 -vn 0.528611 -0.668203 -0.523484 -vn 0.288064 0.668203 -0.685934 -vn -0.411481 0.666372 -0.621754 -vn -0.524369 -0.666372 -0.530045 -vn -0.003632 0.668203 0.743950 -vn 0.141545 -0.668203 0.730369 -vn 0.523484 0.668203 0.528611 -vn 0.743950 0.668172 0.003632 -vn 0.730369 -0.668172 -0.141545 -vn -0.663533 0.527360 -0.530625 -vn -0.663106 0.414319 -0.623371 -vn 0.669179 0.414319 -0.616840 -vn 0.668722 0.527360 -0.524094 -vn -0.662770 0.285409 -0.692282 -vn 0.669515 0.285409 -0.685751 -vn -0.662557 0.145482 -0.734733 -vn 0.669698 0.145482 -0.728202 -vn -0.662496 0.000000 -0.749046 -vn 0.669790 0.000000 -0.742515 -vn -0.662557 -0.145482 -0.734733 -vn 0.669698 -0.145482 -0.728202 -vn -0.662770 -0.285409 -0.692282 -vn 0.669515 -0.285409 -0.685751 -vn -0.663106 -0.414350 -0.623371 -vn 0.669179 -0.414350 -0.616840 -vn -0.663564 -0.527360 -0.530625 -vn 0.668722 -0.527360 -0.524094 -vn -0.664113 -0.620106 -0.417585 -vn 0.668142 -0.620106 -0.411084 -vn -0.664724 -0.689016 -0.288644 -vn 0.667531 -0.689016 -0.282113 -vn -0.665426 -0.731468 -0.148747 -vn 0.666860 -0.731468 -0.142216 -vn -0.668172 -0.743950 -0.003265 -vn 0.666128 -0.745781 0.003235 -vn -0.666829 -0.731468 0.142216 -vn 0.665426 -0.731468 0.148747 -vn -0.667531 -0.689016 0.282144 -vn 0.664724 -0.689016 0.288644 -vn -0.666341 -0.621265 0.412275 -vn 0.664113 -0.620106 0.417585 -vn -0.668722 -0.527360 0.524094 -vn 0.661733 -0.528764 0.531480 -vn -0.669179 -0.414350 0.616840 -vn 0.663106 -0.414350 0.623371 -vn -0.669515 -0.285409 0.685751 -vn 0.662770 -0.285409 0.692282 -vn -0.669729 -0.145482 0.728202 -vn 0.662557 -0.145482 0.734733 -vn -0.669790 0.000000 0.742515 -vn 0.662465 0.000000 0.749046 -vn -0.669729 0.145482 0.728202 -vn 0.662557 0.145482 0.734733 -vn -0.669515 0.285409 0.685751 -vn 0.662770 0.285379 0.692282 -vn -0.669179 0.414350 0.616840 -vn 0.663106 0.414350 0.623371 -vn -0.668722 0.527360 0.524094 -vn 0.663564 0.527360 0.530625 -vn -0.668172 0.620106 0.411084 -vn 0.664113 0.620106 0.417615 -vn -0.667531 0.689016 0.282144 -vn 0.664724 0.689016 0.288675 -vn -0.666829 0.731468 0.142216 -vn 0.665426 0.731468 0.148747 -vn -0.668172 0.743950 -0.003265 -vn 0.666128 0.745781 0.003235 -vn -0.665426 0.731468 -0.148747 -vn 0.666829 0.731468 -0.142216 -vn -0.664724 0.689016 -0.288644 -vn 0.667531 0.689016 -0.282113 -vn -0.664113 0.620106 -0.417585 -vn 0.668142 0.620106 -0.411054 +vn -0.999999 0.000005 -0.001640 +vn 0.999999 0.000113 0.001714 +vn -0.999999 -0.000078 -0.001675 +vn 0.999999 -0.000075 0.001634 +vn -0.999999 -0.000059 -0.001670 +vn 0.999999 0.000059 0.001670 +vn -0.999999 0.000094 -0.001651 +vn 0.999999 -0.000090 0.001651 +vn -0.999999 -0.000094 -0.001651 +vn 0.999999 0.000090 0.001651 +vn -0.999999 0.000059 -0.001670 +vn 0.999999 -0.000059 0.001670 +vn -0.999999 0.000078 -0.001675 +vn 0.999999 0.000075 0.001634 +vn -0.999999 -0.000005 -0.001640 +vn 0.999999 -0.000113 0.001714 +vn -0.999999 -0.000024 -0.001628 +vn 0.999999 0.000027 0.001625 +vn -0.999999 0.000000 -0.001651 +vn 0.999999 -0.000000 0.001651 +vn -0.999999 -0.000013 -0.001631 +vn 0.999999 0.000013 0.001631 +vn -0.999999 -0.000000 -0.001672 +vn 0.999999 0.000000 0.001672 +vn -0.999999 -0.000020 -0.001735 +vn 0.999999 -0.000013 0.001631 +vn -0.999999 0.000030 -0.001658 +vn 0.999998 0.000064 0.001749 +vn -0.999999 0.000049 -0.001640 +vn 0.999999 -0.000052 0.001638 +vn -0.999999 0.000025 -0.001655 +vn 0.999999 -0.000021 0.001658 +vn -0.999999 -0.000063 -0.001693 +vn 0.999999 0.000058 0.001692 +vn -0.999999 0.000104 -0.001649 +vn 0.999999 -0.000100 0.001650 +vn -0.999999 -0.000069 -0.001671 +vn 0.999999 0.000069 0.001672 +vn -0.999999 0.000069 -0.001671 +vn 0.999999 -0.000069 0.001672 +vn -0.999999 -0.000104 -0.001649 +vn 0.999999 0.000100 0.001650 +vn -0.999999 0.000063 -0.001693 +vn 0.999999 -0.000058 0.001692 +vn -0.999999 -0.000025 -0.001655 +vn 0.999999 0.000021 0.001658 +vn -0.999999 -0.000049 -0.001640 +vn 0.999999 0.000052 0.001638 +vn -0.999999 -0.000030 -0.001658 +vn 0.999999 -0.000064 0.001749 +vn -0.999998 0.000020 -0.001735 +vn -0.999999 0.000013 -0.001631 +vn -0.999999 0.000024 -0.001628 +vn 0.999999 -0.000027 0.001625 +vn -0.999999 -0.000000 -0.001662 +vn 0.999999 0.000000 0.001662 +vn 0.006663 0.886695 -0.462308 +vn 0.006662 0.886770 -0.462164 +vn 0.004632 0.946950 -0.321349 +vn 0.004633 0.946916 -0.321448 +vn 0.002728 0.981916 -0.189298 +vn 0.002728 0.981927 -0.189239 +vn 0.000899 0.998052 -0.062376 +vn 0.000899 0.998051 -0.062395 +vn -0.000899 0.998051 0.062395 +vn -0.000899 0.998052 0.062376 +vn -0.002728 0.981927 0.189239 +vn -0.002728 0.981916 0.189297 +vn -0.004634 0.946916 0.321448 +vn -0.004634 0.946916 0.321449 +vn -0.006662 0.886769 0.462164 +vn -0.006662 0.886770 0.462164 +vn -0.008821 0.790800 0.612011 +vn -0.008820 0.790943 0.611827 +vn -0.011027 0.644028 0.764923 +vn -0.011027 0.643783 0.765128 +vn -0.013007 0.430884 0.902314 +vn -0.013007 0.430884 0.902313 +vn -0.014241 0.153104 0.988107 +vn -0.014243 0.153571 0.988035 +vn -0.014244 -0.153150 0.988100 +vn -0.014240 -0.153617 0.988028 +vn -0.013008 -0.430773 0.902366 +vn -0.011023 -0.644161 0.764811 +vn -0.011028 -0.643916 0.765016 +vn -0.008825 -0.790688 0.612156 +vn -0.008820 -0.790831 0.611971 +vn -0.006662 -0.886770 0.462164 +vn -0.004634 -0.946916 0.321448 +vn -0.004634 -0.946916 0.321449 +vn -0.002725 -0.981961 0.189061 +vn -0.002726 -0.981950 0.189119 +vn -0.000902 -0.998039 0.062581 +vn -0.000902 -0.998041 0.062562 +vn 0.000902 -0.998041 -0.062562 +vn 0.000902 -0.998039 -0.062581 +vn 0.002726 -0.981950 -0.189120 +vn 0.002725 -0.981961 -0.189061 +vn 0.004631 -0.946950 -0.321349 +vn 0.004634 -0.946916 -0.321449 +vn 0.006664 -0.886694 -0.462308 +vn 0.006661 -0.886769 -0.462164 +vn 0.008822 -0.790831 -0.611970 +vn 0.008822 -0.790831 -0.611971 +vn 0.011028 -0.643915 -0.765018 +vn 0.011028 -0.643916 -0.765017 +vn 0.013008 -0.430776 -0.902365 +vn 0.013008 -0.430775 -0.902365 +vn 0.014240 -0.153614 -0.988028 +vn 0.014244 -0.153147 -0.988101 +vn 0.014243 0.153568 -0.988035 +vn 0.014241 0.153102 -0.988108 +vn 0.013007 0.430887 -0.902312 +vn 0.013007 0.430886 -0.902312 +vn 0.011030 0.643781 -0.765130 +vn 0.011030 0.643782 -0.765129 +vn 0.008820 0.790944 -0.611825 +vn 0.008820 0.790943 -0.611826 +vn 0.963950 -0.000000 -0.266084 +vn 0.984283 -0.000000 -0.176596 +vn 0.994917 -0.000000 -0.100701 +vn 0.999495 -0.000000 -0.031779 +vn 0.999384 0.000000 0.035094 +vn 0.994545 0.000000 0.104309 +vn 0.983549 0.000000 0.180642 +vn 0.962562 0.000000 0.271061 +vn 0.922616 0.000000 0.385721 +vn 0.841104 0.000000 0.540874 +vn 0.659480 0.000000 0.751722 +vn 0.265676 0.000000 0.964062 +vn -0.291181 0.000000 0.956668 +vn -0.672657 0.000000 0.739954 +vn -0.846824 0.000000 0.531873 +vn -0.846782 0.000001 0.531940 +vn -0.925316 0.000001 0.379197 +vn -0.925343 0.000000 0.379131 +vn -0.963964 0.000000 0.266033 +vn -0.984283 0.000000 0.176596 +vn -0.994917 0.000000 0.100703 +vn -0.999495 0.000000 0.031779 +vn -0.999384 -0.000000 -0.035095 +vn -0.994543 -0.000000 -0.104326 +vn -0.994545 0.000000 -0.104309 +vn -0.983549 0.000001 -0.180640 +vn -0.983544 -0.000000 -0.180671 +vn -0.962579 -0.000000 -0.271002 +vn -0.922622 -0.000000 -0.385705 +vn -0.841102 -0.000000 -0.540876 +vn -0.659481 -0.000000 -0.751721 +vn -0.265675 -0.000000 -0.964063 +vn 0.291182 -0.000000 -0.956668 +vn 0.291577 -0.000003 -0.956547 +vn 0.672715 -0.000002 -0.739902 +vn 0.672466 0.000001 -0.740128 +vn 0.846782 0.000001 -0.531939 +vn 0.846900 -0.000002 -0.531752 +vn 0.925349 -0.000001 -0.379117 +vn 0.925317 -0.000000 -0.379195 +vn 0.925343 -0.000000 -0.379131 +vn 0.925316 0.000001 -0.379197 +vn 0.846824 -0.000000 -0.531873 +vn 0.846782 0.000001 -0.531940 +vn 0.672657 -0.000000 -0.739954 +vn 0.291181 -0.000000 -0.956668 +vn -0.265676 -0.000000 -0.964062 +vn -0.659480 -0.000000 -0.751722 +vn -0.841104 -0.000000 -0.540874 +vn -0.922616 -0.000000 -0.385721 +vn -0.962565 -0.000000 -0.271052 +vn -0.962562 -0.000000 -0.271061 +vn -0.983549 -0.000000 -0.180642 +vn -0.999384 -0.000000 -0.035094 +vn -0.994917 0.000000 0.100702 +vn -0.994917 0.000000 0.100701 +vn -0.963950 0.000000 0.266084 +vn -0.925349 -0.000001 0.379117 +vn -0.925317 0.000000 0.379195 +vn -0.846823 0.000000 0.531874 +vn -0.846900 -0.000002 0.531752 +vn -0.672466 0.000000 0.740128 +vn -0.291577 0.000000 0.956547 +vn 0.265675 0.000000 0.964063 +vn 0.659481 0.000000 0.751721 +vn 0.841102 0.000000 0.540876 +vn 0.922622 0.000000 0.385705 +vn 0.962579 0.000000 0.271002 +vn 0.983544 0.000000 0.180671 +vn 0.999384 0.000000 0.035095 +vn 0.994916 -0.000000 -0... [truncated message content] |
From: <a-...@us...> - 2010-01-05 07:22:30
|
Revision: 136 http://simspark.svn.sourceforge.net/simspark/?rev=136&view=rev Author: a-held Date: 2010-01-05 07:22:17 +0000 (Tue, 05 Jan 2010) Log Message: ----------- Edited RigidBody class so that no variables are stored internally Added documentation of accelerometer in branch Modified Paths: -------------- branches/multiphys/rcssserver3d/doc/users/simspark.tex branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp branches/multiphys/spark/lib/oxygen/physicsserver/body.h branches/multiphys/spark/lib/oxygen/physicsserver/int/rigidbodyint.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.h branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp Modified: branches/multiphys/rcssserver3d/doc/users/simspark.tex =================================================================== --- branches/multiphys/rcssserver3d/doc/users/simspark.tex 2010-01-04 11:19:19 UTC (rev 135) +++ branches/multiphys/rcssserver3d/doc/users/simspark.tex 2010-01-05 07:22:17 UTC (rev 136) @@ -141,6 +141,17 @@ 13.07))} \end{itemize} +\subsubsection{Accelerometer} +This perceptor measures the proper acceleration it experiences +relative to free fall. As a consequence an accelerometer at rest +relative to the Earth's surface will indicate approximately 1 g +upwards. To obtain the acceleration due to motion with respect to the +earth, this ``gravity offset" should be subtracted. +\begin{itemize} + \item[Message format:] \texttt{(ACC (n <name>) (a <x> <y> <z>))} + \item[Example message:] \texttt{(ACC (n torso) (a 0.00 0.00 9.81))} +\end{itemize} + \subsection{Soccer Perceptors} \label{sec:soccerperceptors} Modified: branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp 2010-01-04 11:19:19 UTC (rev 135) +++ branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp 2010-01-05 07:22:17 UTC (rev 136) @@ -24,7 +24,9 @@ using namespace oxygen; -Body::Body() : PhysicsObject(), mBodyID(0){ +Body::Body() : PhysicsObject(), mBodyID(0), mMassTransformed(false), + mMassTrans(0,0,0) +{ mBodyImp = boost::shared_ptr<ODEBody>(new ODEBody()); } Modified: branches/multiphys/spark/lib/oxygen/physicsserver/body.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/body.h 2010-01-04 11:19:19 UTC (rev 135) +++ branches/multiphys/spark/lib/oxygen/physicsserver/body.h 2010-01-05 07:22:17 UTC (rev 136) @@ -42,6 +42,8 @@ protected: long mBodyID; + bool mMassTransformed; + salt::Vector3f mMassTrans; private: boost::shared_ptr<BodyInt> mBodyImp; Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/rigidbodyint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/rigidbodyint.h 2010-01-04 11:19:19 UTC (rev 135) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/rigidbodyint.h 2010-01-05 07:22:17 UTC (rev 136) @@ -33,52 +33,47 @@ { public: - virtual void Enable() = 0; - virtual void Disable() = 0; - virtual bool IsEnabled() const = 0; - virtual void UseGravity(bool f) = 0; - virtual bool UsesGravity() const = 0; - virtual long CreateBody(long world) = 0; - virtual void SetMass(float mass) = 0; - virtual void SetMassParameters(const GenericMass& mass) = 0; - virtual float GetMass() const = 0; - virtual void SetSphere(float density, float radius) = 0; - virtual void AddSphere(float density, float radius, const salt::Matrix& matrix) = 0; - virtual void SetSphereTotal(float total_mass, float radius) = 0; - virtual void AddSphereTotal(float total_mass, float radius, const salt::Matrix& matrix) = 0; - virtual void SetBox(float density, const salt::Vector3f& size) = 0; - virtual void AddBox(float density, const salt::Vector3f& size, const salt::Matrix& matrix) = 0; - virtual void SetBoxTotal(float total_mass, const salt::Vector3f& size) = 0; - virtual void AddBoxTotal(float total_mass, const salt::Vector3f& size, const salt::Matrix& matrix) = 0; - virtual void SetCylinder(float density, float radius, float length) = 0; - virtual void AddCylinder(float density, float radius, float length, const salt::Matrix& matrix) = 0; - virtual void SetCylinderTotal(float total_mass, float radius, float length) = 0; - virtual void AddCylinderTotal(float total_mass, float radius, float length, const salt::Matrix& matrix) = 0; - virtual void SetCapsule(float density, float radius, float length) = 0; - virtual void AddCapsule(float density, float radius, float length, const salt::Matrix& matrix) = 0; - virtual void SetCapsuleTotal(float total_mass, float radius, float length) = 0; - virtual void AddCapsuleTotal(float total_mass, float radius, float length, const salt::Matrix& matrix) = 0; - virtual void TranslateMass(const salt::Vector3f& v) = 0; - virtual salt::Vector3f GetVelocity() const = 0; - virtual void SetVelocity(const salt::Vector3f& vel) = 0; - virtual void SetRotation(const salt::Matrix& rot) = 0; - virtual salt::Matrix GetRotation() const = 0; - virtual salt::Vector3f GetLocalAngularVelocity() const = 0; - virtual salt::Vector3f GetAngularVelocity() const = 0; - virtual void SetAngularVelocity(const salt::Vector3f& vel) = 0; - virtual void AddForce(const salt::Vector3f& force) = 0; - virtual salt::Vector3f GetForce() const = 0; - virtual void AddTorque(const salt::Vector3f& torque) = 0; - virtual void SetPosition(const salt::Vector3f& pos) = 0; - virtual salt::Vector3f GetPosition() const = 0; - virtual void DestroyPhysicsObject() = 0; - virtual salt::Matrix GetSynchronisationMatrix() = 0; - virtual void BodySetData(RigidBody* rb) = 0; + virtual void Enable(long bodyID) = 0; + virtual void Disable(long bodyID) = 0; + virtual bool IsEnabled(long bodyID) const = 0; + virtual void UseGravity(bool f, long bodyID) = 0; + virtual bool UsesGravity(long bodyID) const = 0; + virtual void SetMass(float mass, long bodyID) = 0; + virtual void SetMassParameters(const GenericMass& mass, long bodyID) = 0; + virtual float GetMass(long bodyID) const = 0; + virtual void SetSphere(float density, float radius, long bodyID) = 0; + virtual salt::Vector3f AddSphere(float density, float radius, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID) = 0; + virtual void SetSphereTotal(float total_mass, float radius, long bodyID) = 0; + virtual salt::Vector3f AddSphereTotal(float total_mass, float radius, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID) = 0; + virtual void SetBox(float density, const salt::Vector3f& size, long bodyID) = 0; + virtual salt::Vector3f AddBox(float density, const salt::Vector3f& size, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID) = 0; + virtual void SetBoxTotal(float total_mass, const salt::Vector3f& size, long bodyID) = 0; + virtual salt::Vector3f AddBoxTotal(float total_mass, const salt::Vector3f& size, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID) = 0; + virtual void SetCylinder(float density, float radius, float length, long bodyID) = 0; + virtual salt::Vector3f AddCylinder(float density, float radius, float length, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID) = 0; + virtual void SetCylinderTotal(float total_mass, float radius, float length, long bodyID) = 0; + virtual salt::Vector3f AddCylinderTotal(float total_mass, float radius, float length, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID) = 0; + virtual void SetCapsule(float density, float radius, float length, long bodyID) = 0; + virtual salt::Vector3f AddCapsule(float density, float radius, float length, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID) = 0; + virtual void SetCapsuleTotal(float total_mass, float radius, float length, long bodyID) = 0; + virtual salt::Vector3f AddCapsuleTotal(float total_mass, float radius, float length, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID) = 0; + virtual void TranslateMass(const salt::Vector3f& v, long bodyID) = 0; + virtual salt::Vector3f GetVelocity(long bodyID) const = 0; + virtual void SetVelocity(const salt::Vector3f& vel, long bodyID) = 0; + virtual void SetRotation(const salt::Matrix& rot, long bodyID) = 0; + virtual salt::Matrix GetRotation(long bodyID) const = 0; + virtual salt::Vector3f GetLocalAngularVelocity(long bodyID) const = 0; + virtual salt::Vector3f GetAngularVelocity(long bodyID) const = 0; + virtual void SetAngularVelocity(const salt::Vector3f& vel, long bodyID) = 0; + virtual void AddForce(const salt::Vector3f& force, long bodyID) = 0; + virtual salt::Vector3f GetForce(long bodyID) const = 0; + virtual void AddTorque(const salt::Vector3f& torque, long bodyID) = 0; + virtual void SetPosition(const salt::Vector3f& pos, long bodyID) = 0; + virtual salt::Vector3f GetPosition(long bodyID) const = 0; + virtual void DestroyPhysicsObject(long bodyID) = 0; + virtual salt::Matrix GetSynchronisationMatrix(long bodyID) = 0; + virtual void BodySetData(RigidBody* rb, long bodyID) = 0; virtual RigidBody* BodyGetData(long bodyID) = 0; - virtual salt::Vector3f GetMassTrans() = 0; - virtual void SetMassTrans(salt::Vector3f massTrans) = 0; - virtual bool GetMassTransformed() = 0; - virtual void SetMassTransformed(bool f) = 0; // Here, we have to cheat with the preprocessor, since a static method // is required, and the bridge pattern requires member variables to @@ -89,9 +84,7 @@ #endif } -protected: - salt::Vector3f mMassTrans; - bool mMassTransformed; + virtual long CreateBody(long world) = 0; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.cpp 2010-01-04 11:19:19 UTC (rev 135) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.cpp 2010-01-05 07:22:17 UTC (rev 136) @@ -23,6 +23,6 @@ using namespace oxygen; -ODEBody::ODEBody() : ODEPhysicsObject(), mODEBody(0){ +ODEBody::ODEBody() : ODEPhysicsObject(){ } Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.h 2010-01-04 11:19:19 UTC (rev 135) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.h 2010-01-05 07:22:17 UTC (rev 136) @@ -31,9 +31,6 @@ { public: ODEBody(); - -protected: - dBodyID mODEBody; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.cpp 2010-01-04 11:19:19 UTC (rev 135) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.cpp 2010-01-05 07:22:17 UTC (rev 136) @@ -33,98 +33,85 @@ using namespace std; ODERigidBody::ODERigidBody() : ODEBody(){ - mMassTrans = Vector3f(0,0,0); - mMassTransformed = false; } -salt::Vector3f ODERigidBody::GetMassTrans(){ - return mMassTrans; -} - -void ODERigidBody::SetMassTrans(Vector3f massTrans){ - mMassTrans = massTrans; -} - -bool ODERigidBody::GetMassTransformed(){ - return mMassTransformed; -} - -void ODERigidBody::SetMassTransformed(bool f){ - mMassTransformed = f; -} - -void ODERigidBody::Enable() +void ODERigidBody::Enable(long bodyID) { - dBodyEnable(mODEBody); + dBodyID ODEBody = (dBodyID) bodyID; + dBodyEnable(ODEBody); } -void ODERigidBody::Disable() +void ODERigidBody::Disable(long bodyID) { - dBodyDisable(mODEBody); + dBodyID ODEBody = (dBodyID) bodyID; + dBodyDisable(ODEBody); } -bool ODERigidBody::IsEnabled() const +bool ODERigidBody::IsEnabled(long bodyID) const { - return (dBodyIsEnabled(mODEBody) != 0); + dBodyID ODEBody = (dBodyID) bodyID; + return (dBodyIsEnabled(ODEBody) != 0); } -void ODERigidBody::UseGravity(bool f) +void ODERigidBody::UseGravity(bool f, long bodyID) { + dBodyID ODEBody = (dBodyID) bodyID; if (f == true) { // body is affected by gravity - dBodySetGravityMode(mODEBody, 1); + dBodySetGravityMode(ODEBody, 1); } else { // body is not affected by gravity - dBodySetGravityMode(mODEBody, 0); + dBodySetGravityMode(ODEBody, 0); } } -bool ODERigidBody::UsesGravity() const{ - return (dBodyGetGravityMode(mODEBody) != 0); +bool ODERigidBody::UsesGravity(long bodyID) const{ + dBodyID ODEBody = (dBodyID) bodyID; + return (dBodyGetGravityMode(ODEBody) != 0); } long ODERigidBody::CreateBody(long world) { // create the managed body - mODEBody = dBodyCreate((dWorldID) world); - return (long) mODEBody; + dBodyID ODEBody = dBodyCreate((dWorldID) world); + return (long) ODEBody; } -void ODERigidBody::DestroyPhysicsObject(){ - if (mODEBody == 0) - { - return; - } - - dBodyDestroy(mODEBody); - mODEBody = 0; +void ODERigidBody::DestroyPhysicsObject(long bodyID) +{ + dBodyID ODEBody = (dBodyID) bodyID; + dBodyDestroy(ODEBody); } -void ODERigidBody::BodySetData(RigidBody* rb) +void ODERigidBody::BodySetData(RigidBody* rb, long bodyID) { - dBodySetData(mODEBody, rb); + dBodyID ODEBody = (dBodyID) bodyID; + dBodySetData(ODEBody, rb); } -void ODERigidBody::SetMass(float mass) +void ODERigidBody::SetMass(float mass, long bodyID) { + dBodyID ODEBody = (dBodyID) bodyID; dMass ODEMass; - dBodyGetMass(mODEBody, &ODEMass); + dBodyGetMass(ODEBody, &ODEMass); dMassAdjust(&ODEMass, mass); - dBodySetMass(mODEBody, &ODEMass); + dBodySetMass(ODEBody, &ODEMass); } -float ODERigidBody::GetMass() const +float ODERigidBody::GetMass(long bodyID) const { + dBodyID ODEBody = (dBodyID) bodyID; dMass m; - dBodyGetMass(mODEBody, &m); + dBodyGetMass(ODEBody, &m); return m.mass; } -void ODERigidBody::AddMass(const dMass& ODEMass, const Matrix& matrix) +Vector3f ODERigidBody::AddMass(const dMass& ODEMass, const Matrix& matrix, Vector3f massTrans, const long bodyID) { + dBodyID ODEBody = (dBodyID) bodyID; dMass transMass(ODEMass); dMatrix3 ODEMatrix; @@ -135,10 +122,10 @@ const Vector3f& trans(matrix.Pos()); dMassTranslate(&transMass,trans[0],trans[1],trans[2]); - dMassTranslate(&transMass,mMassTrans[0],mMassTrans[1],mMassTrans[2]); + dMassTranslate(&transMass,massTrans[0],massTrans[1],massTrans[2]); dMass bodyMass; - dBodyGetMass(mODEBody, &bodyMass); + dBodyGetMass(ODEBody, &bodyMass); dMassAdd(&bodyMass, &transMass); /** ODE currently requires that the center mass is always in the @@ -148,21 +135,20 @@ dMassTranslate(&bodyMass, -trans2[0], -trans2[1], -trans2[2]); bodyMass.c[0] = bodyMass.c[1] = bodyMass.c[2] = 0.0f; - dBodySetMass(mODEBody, (const dMass*)&bodyMass); + dBodySetMass(ODEBody, (const dMass*)&bodyMass); // Move body so mass is at right position again - SetPosition(GetPosition() + trans2); + SetPosition(GetPosition(bodyID) + trans2, bodyID); // Keep track of total translation of mass - mMassTrans = mMassTrans - trans2; - - mMassTransformed = true; + return massTrans - trans2; } -void ODERigidBody::SetMassParameters(const GenericMass& mass) +void ODERigidBody::SetMassParameters(const GenericMass& mass, long bodyID) { + dBodyID ODEBody = (dBodyID) bodyID; dMass& ODEMass = (dMass&) mass; - dBodySetMass(mODEBody, &ODEMass); + dBodySetMass(ODEBody, &ODEMass); } void ODERigidBody::PrepareSphere(dMass& mass, float density, float radius) const @@ -170,18 +156,19 @@ dMassSetSphere(&mass, density, radius); } -void ODERigidBody::SetSphere(float density, float radius) +void ODERigidBody::SetSphere(float density, float radius, long bodyID) { + dBodyID ODEBody = (dBodyID) bodyID; dMass ODEMass; PrepareSphere(ODEMass, density, radius); - dBodySetMass(mODEBody, &ODEMass); + dBodySetMass(ODEBody, &ODEMass); } -void ODERigidBody::AddSphere(float density, float radius, const Matrix& matrix) +salt::Vector3f ODERigidBody::AddSphere(float density, float radius, const Matrix& matrix, salt::Vector3f massTrans, long bodyID) { dMass ODEMass; PrepareSphere(ODEMass, density, radius); - AddMass(ODEMass, matrix); + return AddMass(ODEMass, matrix, massTrans, bodyID); } void ODERigidBody::PrepareSphereTotal(dMass& mass, float total_mass, float radius) const @@ -189,18 +176,19 @@ dMassSetSphereTotal(&mass, total_mass, radius); } -void ODERigidBody::SetSphereTotal(float total_mass, float radius) +void ODERigidBody::SetSphereTotal(float total_mass, float radius, long bodyID) { - dMass ODEMass;; + dBodyID ODEBody = (dBodyID) bodyID; + dMass ODEMass; PrepareSphereTotal(ODEMass, total_mass, radius); - dBodySetMass(mODEBody, &ODEMass); + dBodySetMass(ODEBody, &ODEMass); } -void ODERigidBody::AddSphereTotal(float total_mass, float radius, const Matrix& matrix) +salt::Vector3f ODERigidBody::AddSphereTotal(float total_mass, float radius, const Matrix& matrix, salt::Vector3f massTrans, long bodyID) { dMass ODEMass; PrepareSphereTotal(ODEMass, total_mass, radius); - AddMass(ODEMass, matrix); + return AddMass(ODEMass, matrix, massTrans, bodyID); } void ODERigidBody::PrepareBox(dMass& mass, float density, const Vector3f& size) const @@ -208,18 +196,19 @@ dMassSetBox(&mass, density, size[0], size[1], size[2]); } -void ODERigidBody::SetBox(float density, const Vector3f& size) +void ODERigidBody::SetBox(float density, const Vector3f& size, long bodyID) { + dBodyID ODEBody = (dBodyID) bodyID; dMass ODEMass; PrepareBox(ODEMass, density, size); - dBodySetMass(mODEBody, &ODEMass); + dBodySetMass(ODEBody, &ODEMass); } -void ODERigidBody::AddBox(float density, const Vector3f& size, const Matrix& matrix) +salt::Vector3f ODERigidBody::AddBox(float density, const Vector3f& size, const Matrix& matrix, salt::Vector3f massTrans, long bodyID) { dMass ODEMass; PrepareBox(ODEMass, density, size); - AddMass(ODEMass, matrix); + return AddMass(ODEMass, matrix, massTrans, bodyID); } void ODERigidBody::PrepareBoxTotal(dMass& mass, float total_mass, const Vector3f& size) const @@ -227,18 +216,19 @@ dMassSetBoxTotal(&mass, total_mass, size[0], size[1], size[2]); } -void ODERigidBody::SetBoxTotal(float total_mass, const Vector3f& size) +void ODERigidBody::SetBoxTotal(float total_mass, const Vector3f& size, long bodyID) { + dBodyID ODEBody = (dBodyID) bodyID; dMass ODEMass; PrepareBoxTotal(ODEMass, total_mass, size); - dBodySetMass(mODEBody, &ODEMass); + dBodySetMass(ODEBody, &ODEMass); } -void ODERigidBody::AddBoxTotal(float total_mass, const Vector3f& size, const Matrix& matrix) +salt::Vector3f ODERigidBody::AddBoxTotal(float total_mass, const Vector3f& size, const Matrix& matrix, salt::Vector3f massTrans, long bodyID) { dMass ODEMass; PrepareBoxTotal(ODEMass, total_mass, size); - AddMass(ODEMass, matrix); + return AddMass(ODEMass, matrix, massTrans, bodyID); } void ODERigidBody::PrepareCylinder (dMass& mass, float density, float radius, float length) const @@ -249,18 +239,19 @@ dMassSetCylinder (&mass, density, direction, radius, length); } -void ODERigidBody::SetCylinder (float density, float radius, float length) +void ODERigidBody::SetCylinder (float density, float radius, float length, long bodyID) { + dBodyID ODEBody = (dBodyID) bodyID; dMass ODEMass; PrepareCylinder(ODEMass, density, radius, length); - dBodySetMass(mODEBody, &ODEMass); + dBodySetMass(ODEBody, &ODEMass); } -void ODERigidBody::AddCylinder (float density, float radius, float length, const Matrix& matrix) +salt::Vector3f ODERigidBody::AddCylinder(float density, float radius, float length, const Matrix& matrix, salt::Vector3f massTrans, long bodyID) { dMass ODEMass; PrepareCylinder(ODEMass, density, radius, length); - AddMass(ODEMass, matrix); + return AddMass(ODEMass, matrix, massTrans, bodyID); } void ODERigidBody::PrepareCylinderTotal(dMass& mass, float total_mass, float radius, float length) const @@ -271,18 +262,19 @@ dMassSetCylinderTotal(&mass, total_mass, direction, radius, length); } -void ODERigidBody::SetCylinderTotal(float total_mass, float radius, float length) +void ODERigidBody::SetCylinderTotal(float total_mass, float radius, float length, long bodyID) { + dBodyID ODEBody = (dBodyID) bodyID; dMass ODEMass; PrepareCylinderTotal(ODEMass, total_mass, radius, length); - dBodySetMass(mODEBody, &ODEMass); + dBodySetMass(ODEBody, &ODEMass); } -void ODERigidBody::AddCylinderTotal(float total_mass, float radius, float length, const Matrix& matrix) +salt::Vector3f ODERigidBody::AddCylinderTotal(float total_mass, float radius, float length, const Matrix& matrix, salt::Vector3f massTrans, long bodyID) { dMass ODEMass; PrepareCylinderTotal(ODEMass, total_mass, radius, length); - AddMass(ODEMass, matrix); + return AddMass(ODEMass, matrix, massTrans, bodyID); } void ODERigidBody::PrepareCapsule (dMass& mass, float density, float radius, float length) const @@ -293,18 +285,19 @@ dMassSetCapsule (&mass, density, direction, radius, length); } -void ODERigidBody::SetCapsule (float density, float radius, float length) +void ODERigidBody::SetCapsule (float density, float radius, float length, long bodyID) { + dBodyID ODEBody = (dBodyID) bodyID; dMass ODEMass; PrepareCapsule(ODEMass, density, radius, length); - dBodySetMass(mODEBody, &ODEMass); + dBodySetMass(ODEBody, &ODEMass); } -void ODERigidBody::AddCapsule (float density, float radius, float length, const Matrix& matrix) +salt::Vector3f ODERigidBody::AddCapsule (float density, float radius, float length, const Matrix& matrix, salt::Vector3f massTrans, long bodyID) { dMass ODEMass; PrepareCapsule(ODEMass, density, radius, length); - AddMass(ODEMass, matrix); + return AddMass(ODEMass, matrix, massTrans, bodyID); } void ODERigidBody::PrepareCapsuleTotal(dMass& mass, float total_mass, float radius, float length) const @@ -315,71 +308,80 @@ dMassSetCapsuleTotal(&mass, total_mass, direction, radius, length); } -void ODERigidBody::SetCapsuleTotal(float total_mass, float radius, float length) +void ODERigidBody::SetCapsuleTotal(float total_mass, float radius, float length, long bodyID) { + dBodyID ODEBody = (dBodyID) bodyID; dMass ODEMass; PrepareCapsuleTotal(ODEMass, total_mass, radius, length); - dBodySetMass(mODEBody, &ODEMass); + dBodySetMass(ODEBody, &ODEMass); } -void ODERigidBody::AddCapsuleTotal(float total_mass, float radius, float length, const salt::Matrix& matrix) +salt::Vector3f ODERigidBody::AddCapsuleTotal(float total_mass, float radius, float length, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID) { dMass ODEMass; PrepareCapsuleTotal(ODEMass, total_mass, radius, length); - AddMass(ODEMass, matrix); + return AddMass(ODEMass, matrix, massTrans, bodyID); } -Vector3f ODERigidBody::GetVelocity() const +Vector3f ODERigidBody::GetVelocity(long bodyID) const { - const dReal* vel = dBodyGetLinearVel(mODEBody); + dBodyID ODEBody = (dBodyID) bodyID; + const dReal* vel = dBodyGetLinearVel(ODEBody); return Vector3f(vel[0], vel[1], vel[2]); } -void ODERigidBody::SetVelocity(const Vector3f& vel) +void ODERigidBody::SetVelocity(const Vector3f& vel, long bodyID) { - dBodySetLinearVel(mODEBody, vel[0], vel[1], vel[2]); + dBodyID ODEBody = (dBodyID) bodyID; + dBodySetLinearVel(ODEBody, vel[0], vel[1], vel[2]); } -void ODERigidBody::SetRotation(const Matrix& rot) +void ODERigidBody::SetRotation(const Matrix& rot, long bodyID) { + dBodyID ODEBody = (dBodyID) bodyID; dMatrix3 ODEMatrix; GenericPhysicsMatrix& matrixRef = (GenericPhysicsMatrix&) ODEMatrix; ConvertRotationMatrix(rot, matrixRef); - dBodySetRotation(mODEBody, ODEMatrix); + dBodySetRotation(ODEBody, ODEMatrix); } -salt::Matrix ODERigidBody::GetRotation() const +salt::Matrix ODERigidBody::GetRotation(long bodyID) const { - const dReal* ODEMatrix = dBodyGetRotation(mODEBody); + dBodyID ODEBody = (dBodyID) bodyID; + const dReal* ODEMatrix = dBodyGetRotation(ODEBody); GenericPhysicsMatrix* matrixPtr = (GenericPhysicsMatrix*) ODEMatrix; salt::Matrix rot; ConvertRotationMatrix(matrixPtr,rot); return rot; } -Vector3f ODERigidBody::GetLocalAngularVelocity() const +Vector3f ODERigidBody::GetLocalAngularVelocity(long bodyID) const { - const dReal* vel = dBodyGetAngularVel(mODEBody); + dBodyID ODEBody = (dBodyID) bodyID; + const dReal* vel = dBodyGetAngularVel(ODEBody); dReal w[3]; - dBodyVectorFromWorld(mODEBody, vel[0], vel[1], vel[2], w); + dBodyVectorFromWorld(ODEBody, vel[0], vel[1], vel[2], w); return Vector3f(w[0], w[1], w[2]); } -Vector3f ODERigidBody::GetAngularVelocity() const +Vector3f ODERigidBody::GetAngularVelocity(long bodyID) const { - const dReal* vel = dBodyGetAngularVel(mODEBody); + dBodyID ODEBody = (dBodyID) bodyID; + const dReal* vel = dBodyGetAngularVel(ODEBody); return Vector3f(vel[0], vel[1], vel[2]); } -void ODERigidBody::SetAngularVelocity(const Vector3f& vel) +void ODERigidBody::SetAngularVelocity(const Vector3f& vel, long bodyID) { - dBodySetAngularVel(mODEBody, vel[0], vel[1], vel[2]); + dBodyID ODEBody = (dBodyID) bodyID; + dBodySetAngularVel(ODEBody, vel[0], vel[1], vel[2]); } -salt::Matrix ODERigidBody::GetSynchronisationMatrix() +salt::Matrix ODERigidBody::GetSynchronisationMatrix(long bodyID) { - const dReal* pos = dBodyGetPosition(mODEBody); - const dReal* rot = dBodyGetRotation(mODEBody); + dBodyID ODEBody = (dBodyID) bodyID; + const dReal* pos = dBodyGetPosition(ODEBody); + const dReal* rot = dBodyGetRotation(ODEBody); Matrix mat; mat.m[0] = rot[0]; @@ -404,44 +406,50 @@ RigidBody* ODERigidBody::BodyGetData(long bodyID) { - dBodyID ODEBodyID = (dBodyID) bodyID; + dBodyID ODEBody = (dBodyID) bodyID; RigidBody* bodyPtr = - static_cast<RigidBody*>(dBodyGetData(ODEBodyID)); + static_cast<RigidBody*>(dBodyGetData(ODEBody)); return bodyPtr; } -void ODERigidBody::AddForce(const Vector3f& force) +void ODERigidBody::AddForce(const Vector3f& force, long bodyID) { - dBodyAddForce(mODEBody, force.x(), force.y(), force.z()); + dBodyID ODEBody = (dBodyID) bodyID; + dBodyAddForce(ODEBody, force.x(), force.y(), force.z()); } -Vector3f ODERigidBody::GetForce() const +Vector3f ODERigidBody::GetForce(long bodyID) const { - const dReal* f = dBodyGetForce(mODEBody); + dBodyID ODEBody = (dBodyID) bodyID; + const dReal* f = dBodyGetForce(ODEBody); return Vector3f(f[0], f[1], f[2]); } -void ODERigidBody::AddTorque(const Vector3f& torque) +void ODERigidBody::AddTorque(const Vector3f& torque, long bodyID) { - dBodyAddTorque(mODEBody, torque.x(), torque.y(), torque.z()); + dBodyID ODEBody = (dBodyID) bodyID; + dBodyAddTorque(ODEBody, torque.x(), torque.y(), torque.z()); } -void ODERigidBody::SetPosition(const Vector3f& pos) +void ODERigidBody::SetPosition(const Vector3f& pos, long bodyID) { - dBodySetPosition(mODEBody, pos.x(), pos.y(), pos.z()); + dBodyID ODEBody = (dBodyID) bodyID; + dBodySetPosition(ODEBody, pos.x(), pos.y(), pos.z()); // the parent node will be updated in the next physics cycle } -Vector3f ODERigidBody::GetPosition() const +Vector3f ODERigidBody::GetPosition(long bodyID) const { - const dReal* pos = dBodyGetPosition(mODEBody); + dBodyID ODEBody = (dBodyID) bodyID; + const dReal* pos = dBodyGetPosition(ODEBody); return Vector3f(pos[0], pos[1], pos[2]); } -void ODERigidBody::TranslateMass(const Vector3f& v) +void ODERigidBody::TranslateMass(const Vector3f& v, long bodyID) { + dBodyID ODEBody = (dBodyID) bodyID; dMass m; - dBodyGetMass(mODEBody, &m); + dBodyGetMass(ODEBody, &m); dMassTranslate(&m,v[0],v[1],v[2]); } Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.h 2010-01-04 11:19:19 UTC (rev 135) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/oderigidbody.h 2010-01-05 07:22:17 UTC (rev 136) @@ -34,63 +34,53 @@ public: ODERigidBody(); - void Enable(); - void Disable(); - bool IsEnabled() const; - void UseGravity(bool f); - bool UsesGravity() const; - void SetMass(float mass); - void SetMassParameters(const GenericMass& mass); - float GetMass() const; - void SetSphere(float density, float radius); - void AddSphere(float density, float radius, const salt::Matrix& matrix); - void SetSphereTotal(float total_mass, float radius); - void AddSphereTotal(float total_mass, float radius, const salt::Matrix& matrix); - void SetBox(float density, const salt::Vector3f& size); - void AddBox(float density, const salt::Vector3f& size, const salt::Matrix& matrix); - void SetBoxTotal(float total_mass, const salt::Vector3f& size); - void AddBoxTotal(float total_mass, const salt::Vector3f& size, const salt::Matrix& matrix); - void SetCylinder(float density, float radius, float length); - void AddCylinder(float density, float radius, float length, const salt::Matrix& matrix); - void SetCylinderTotal(float total_mass, float radius, float length); - void AddCylinderTotal(float total_mass, float radius, float length, const salt::Matrix& matrix); - void SetCapsule(float density, float radius, float length); - void AddCapsule(float density, float radius, float length, const salt::Matrix& matrix); - void SetCapsuleTotal(float total_mass, float radius, float length); - void AddCapsuleTotal(float total_mass, float radius, float length, const salt::Matrix& matrix); - void TranslateMass(const salt::Vector3f& v); - salt::Vector3f GetVelocity() const; - void SetVelocity(const salt::Vector3f& vel); - void SetRotation(const salt::Matrix& rot); - salt::Matrix GetRotation() const; - salt::Vector3f GetLocalAngularVelocity() const; - salt::Vector3f GetAngularVelocity() const; - void SetAngularVelocity(const salt::Vector3f& vel); - void AddForce(const salt::Vector3f& force); - salt::Vector3f GetForce() const; - void AddTorque(const salt::Vector3f& torque); - void SetPosition(const salt::Vector3f& pos); - salt::Vector3f GetPosition() const; - void DestroyPhysicsObject(); - salt::Matrix GetSynchronisationMatrix(); - void BodySetData(RigidBody* rb); - RigidBody* BodyGetData(long bodyID); + void Enable(long bodyID); + void Disable(long bodyID); + bool IsEnabled(long bodyID) const; + void UseGravity(bool f, long bodyID); + bool UsesGravity(long bodyID) const; + void SetMass(float mass, long bodyID); + void SetMassParameters(const GenericMass& mass, long bodyID); + float GetMass(long bodyID) const; + void SetSphere(float density, float radius, long bodyID); + salt::Vector3f AddSphere(float density, float radius, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID); + void SetSphereTotal(float total_mass, float radius, long bodyID); + salt::Vector3f AddSphereTotal(float total_mass, float radius, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID); + void SetBox(float density, const salt::Vector3f& size, long bodyID); + salt::Vector3f AddBox(float density, const salt::Vector3f& size, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID); + void SetBoxTotal(float total_mass, const salt::Vector3f& size, long bodyID); + salt::Vector3f AddBoxTotal(float total_mass, const salt::Vector3f& size, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID); + void SetCylinder(float density, float radius, float length, long bodyID); + salt::Vector3f AddCylinder(float density, float radius, float length, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID); + void SetCylinderTotal(float total_mass, float radius, float length, long bodyID); + salt::Vector3f AddCylinderTotal(float total_mass, float radius, float length, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID); + void SetCapsule(float density, float radius, float length, long bodyID); + salt::Vector3f AddCapsule(float density, float radius, float length, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID); + void SetCapsuleTotal(float total_mass, float radius, float length, long bodyID); + salt::Vector3f AddCapsuleTotal(float total_mass, float radius, float length, const salt::Matrix& matrix, salt::Vector3f massTrans, long bodyID); + void TranslateMass(const salt::Vector3f& v, long bodyID); + salt::Vector3f GetVelocity(long bodyID) const; + void SetVelocity(const salt::Vector3f& vel, long bodyID); + void SetRotation(const salt::Matrix& rot, long bodyID); + salt::Matrix GetRotation(long bodyID) const; + salt::Vector3f GetLocalAngularVelocity(long bodyID) const; + salt::Vector3f GetAngularVelocity(long bodyID) const; + void SetAngularVelocity(const salt::Vector3f& vel, long bodyID); + void AddForce(const salt::Vector3f& force, long bodyID); + salt::Vector3f GetForce(long bodyID) const; + void AddTorque(const salt::Vector3f& torque, long bodyID); + void SetPosition(const salt::Vector3f& pos, long bodyID); + salt::Vector3f GetPosition(long bodyID) const; + void DestroyPhysicsObject(long bodyID); + salt::Matrix GetSynchronisationMatrix(long bodyID); + void BodySetData(RigidBody* rb, long bodyID); + RigidBody* BodyGetData(long bodyID); + long CreateBody(long world); - long GetBodyID(); - salt::Vector3f GetMassTrans(); - void SetMassTrans(salt::Vector3f massTrans); - bool GetMassTransformed(); - void SetMassTransformed(bool f); - protected: - /**These methods are only called internally. - */ - void AddMass(const dMass& mass, const salt::Matrix& matrix); + //These methods are only called internally and are not declared in the interface. + salt::Vector3f AddMass(const dMass& mass, const salt::Matrix& matrix, salt::Vector3f massTrans, const long ODEBody); - /** creates an ODE body within the given world - */ - long CreateBody(long world); - /** sets up an ode mass struct representing a box of the given size and total_mass */ Modified: branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp 2010-01-04 11:19:19 UTC (rev 135) +++ branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp 2010-01-05 07:22:17 UTC (rev 136) @@ -46,27 +46,27 @@ void RigidBody::Enable() { - mRigidBodyImp->Enable(); + mRigidBodyImp->Enable(mBodyID); } void RigidBody::Disable() { - mRigidBodyImp->Disable(); + mRigidBodyImp->Disable(mBodyID); } bool RigidBody::IsEnabled() const { - return mRigidBodyImp->IsEnabled(); + return mRigidBodyImp->IsEnabled(mBodyID); } void RigidBody::UseGravity(bool f) { - mRigidBodyImp->UseGravity(f); + mRigidBodyImp->UseGravity(f, mBodyID); } bool RigidBody::UsesGravity() const { - return mRigidBodyImp->UsesGravity(); + return mRigidBodyImp->UsesGravity(mBodyID); } bool RigidBody::CreateBody() @@ -96,7 +96,10 @@ void RigidBody::DestroyPhysicsObject() { - mRigidBodyImp->DestroyPhysicsObject(); + if (mBodyID == 0) return; + + mRigidBodyImp->DestroyPhysicsObject(mBodyID); + mBodyID = 0; } void RigidBody::OnLink() @@ -109,143 +112,152 @@ } // let the body, take on the world space position of the parent - mRigidBodyImp->BodySetData(this); + mRigidBodyImp->BodySetData(this, mBodyID); shared_ptr<BaseNode> baseNode = shared_static_cast<BaseNode> (GetParent().lock()); const Matrix& mat = baseNode->GetWorldTransform(); - mRigidBodyImp->SetRotation(mat); - mRigidBodyImp->SetPosition(mat.Pos()); + mRigidBodyImp->SetRotation(mat, mBodyID); + mRigidBodyImp->SetPosition(mat.Pos(), mBodyID); } void RigidBody::SetMass(float mass) { - mRigidBodyImp->SetMass(mass); + mRigidBodyImp->SetMass(mass, mBodyID); } float RigidBody::GetMass() const { - return mRigidBodyImp->GetMass(); + return mRigidBodyImp->GetMass(mBodyID); } -void RigidBody::SetMassParameters(const GenericMass& mass){ - mRigidBodyImp->SetMassParameters(mass); +void RigidBody::SetMassParameters(const GenericMass& mass) +{ + mRigidBodyImp->SetMassParameters(mass, mBodyID); } void RigidBody::SetSphere(float density, float radius) { - mRigidBodyImp->SetSphere(density, radius); + mRigidBodyImp->SetSphere(density, radius, mBodyID); } void RigidBody::AddSphere(float density, float radius, const Matrix& matrix) { - mRigidBodyImp->AddSphere(density, radius, matrix); + mMassTrans = mRigidBodyImp->AddSphere(density, radius, matrix, mMassTrans, mBodyID); + mMassTransformed = true; } void RigidBody::SetSphereTotal(float total_mass, float radius) { - mRigidBodyImp->SetSphereTotal(total_mass, radius); + mRigidBodyImp->SetSphereTotal(total_mass, radius, mBodyID); } void RigidBody::AddSphereTotal(float total_mass, float radius, const Matrix& matrix) { - mRigidBodyImp->AddSphereTotal(total_mass, radius, matrix); + mMassTrans = mRigidBodyImp->AddSphereTotal(total_mass, radius, matrix, mMassTrans, mBodyID); + mMassTransformed = true; } void RigidBody::SetBox(float density, const Vector3f& size) { - mRigidBodyImp->SetBox(density, size); + mRigidBodyImp->SetBox(density, size, mBodyID); } void RigidBody::AddBox(float density, const Vector3f& size, const Matrix& matrix) { - mRigidBodyImp->AddBox(density, size, matrix); + mMassTrans = mRigidBodyImp->AddBox(density, size, matrix, mMassTrans, mBodyID); + mMassTransformed = true; } void RigidBody::SetBoxTotal(float total_mass, const Vector3f& size) { - mRigidBodyImp->SetBoxTotal(total_mass, size); + mRigidBodyImp->SetBoxTotal(total_mass, size, mBodyID); } void RigidBody::AddBoxTotal(float total_mass, const Vector3f& size, const Matrix& matrix) { - mRigidBodyImp->AddBoxTotal(total_mass, size, matrix); + mMassTrans = mRigidBodyImp->AddBoxTotal(total_mass, size, matrix, mMassTrans, mBodyID); + mMassTransformed = true; } void RigidBody::SetCylinder (float density, float radius, float length) { - mRigidBodyImp->SetCylinder(density, radius, length); + mRigidBodyImp->SetCylinder(density, radius, length, mBodyID); } void RigidBody::AddCylinder (float density, float radius, float length, const Matrix& matrix) { - mRigidBodyImp->AddCylinder(density, radius, length, matrix); + mMassTrans = mRigidBodyImp->AddCylinder(density, radius, length, matrix, mMassTrans, mBodyID); + mMassTransformed = true; } void RigidBody::SetCylinderTotal(float total_mass, float radius, float length) { - mRigidBodyImp->SetCylinderTotal(total_mass, radius, length); + mRigidBodyImp->SetCylinderTotal(total_mass, radius, length, mBodyID); } void RigidBody::AddCylinderTotal(float total_mass, float radius, float length, const Matrix& matrix) { - mRigidBodyImp->AddCylinderTotal(total_mass, radius, length, matrix); + mMassTrans = mRigidBodyImp->AddCylinderTotal(total_mass, radius, length, matrix, mMassTrans, mBodyID); + mMassTransformed = true; } void RigidBody::SetCapsule (float density, float radius, float length) { - mRigidBodyImp->SetCapsule(density, radius, length); + mRigidBodyImp->SetCapsule(density, radius, length, mBodyID); } void RigidBody::AddCapsule (float density, float radius, float length, const Matrix& matrix) { - mRigidBodyImp->AddCapsule(density, radius, length, matrix); + mMassTrans = mRigidBodyImp->AddCapsule(density, radius, length, matrix, mMassTrans, mBodyID); + mMassTransformed = true; } void RigidBody::SetCapsuleTotal(float total_mass, float radius, float length) { - mRigidBodyImp->SetCapsuleTotal(total_mass, radius, length); + mRigidBodyImp->SetCapsuleTotal(total_mass, radius, length, mBodyID); } void RigidBody::AddCapsuleTotal(float total_mass, float radius, float length, const salt::Matrix& matrix) { - mRigidBodyImp->AddCapsuleTotal(total_mass, radius, length, matrix); + mMassTrans = mRigidBodyImp->AddCapsuleTotal(total_mass, radius, length, matrix, mMassTrans, mBodyID); + mMassTransformed = true; } Vector3f RigidBody::GetVelocity() const { - return mRigidBodyImp->GetVelocity(); + return mRigidBodyImp->GetVelocity(mBodyID); } void RigidBody::SetVelocity(const Vector3f& vel) { - mRigidBodyImp->SetVelocity(vel); + mRigidBodyImp->SetVelocity(vel, mBodyID); } void RigidBody::SetRotation(const Matrix& rot) { - mRigidBodyImp->SetRotation(rot); + mRigidBodyImp->SetRotation(rot, mBodyID); } salt::Matrix RigidBody::GetRotation() const { - return mRigidBodyImp->GetRotation(); + return mRigidBodyImp->GetRotation(mBodyID); } Vector3f RigidBody::GetLocalAngularVelocity() const { - return mRigidBodyImp->GetLocalAngularVelocity(); + return mRigidBodyImp->GetLocalAngularVelocity(mBodyID); } Vector3f RigidBody::GetAngularVelocity() const { - return mRigidBodyImp->GetAngularVelocity(); + return mRigidBodyImp->GetAngularVelocity(mBodyID); } void RigidBody::SetAngularVelocity(const Vector3f& vel) { - mRigidBodyImp->SetAngularVelocity(vel); + mRigidBodyImp->SetAngularVelocity(vel, mBodyID); } void RigidBody::SynchronizeParent() const @@ -253,7 +265,7 @@ shared_ptr<BaseNode> baseNode = shared_static_cast<BaseNode> (GetParent().lock()); - Matrix mat = mRigidBodyImp->GetSynchronisationMatrix(); + Matrix mat = mRigidBodyImp->GetSynchronisationMatrix(mBodyID); baseNode->SetWorldTransform(mat); } @@ -261,9 +273,8 @@ void RigidBody::PrePhysicsUpdateInternal(float /*deltaTime*/) { // Check whether mass/body has been translated - if (mRigidBodyImp->GetMassTransformed()) + if (mMassTransformed) { - Vector3f massTrans = mRigidBodyImp->GetMassTrans(); weak_ptr<Node> parent = GetParent(); // Update colliders (only those encapsulated in transform colliders) @@ -277,7 +288,7 @@ if (collider.get()) { Vector3f pos = collider->GetPosition(); - pos = pos + massTrans; + pos = pos + mMassTrans; collider->SetLocalPosition(pos); } } @@ -289,12 +300,12 @@ { shared_ptr<Transform> transform = shared_dynamic_cast<Transform>(*iter); Matrix worldTransform = transform->GetWorldTransform(); - worldTransform.Pos() = worldTransform.Pos() + massTrans; + worldTransform.Pos() = worldTransform.Pos() + mMassTrans; transform->SetWorldTransform(worldTransform); } - mRigidBodyImp->SetMassTrans(Vector3f(0,0,0)); - mRigidBodyImp->SetMassTransformed(false); + mMassTrans = Vector3f(0,0,0); + mMassTransformed = false; } } @@ -337,30 +348,30 @@ void RigidBody::AddForce(const Vector3f& force) { - mRigidBodyImp->AddForce(force); + mRigidBodyImp->AddForce(force, mBodyID); } Vector3f RigidBody::GetForce() const { - return mRigidBodyImp->GetForce(); + return mRigidBodyImp->GetForce(mBodyID); } void RigidBody::AddTorque(const Vector3f& torque) { - mRigidBodyImp->AddTorque(torque); + mRigidBodyImp->AddTorque(torque, mBodyID); } void RigidBody::SetPosition(const Vector3f& pos) { - mRigidBodyImp->SetPosition(pos); + mRigidBodyImp->SetPosition(pos, mBodyID); } Vector3f RigidBody::GetPosition() const { - return mRigidBodyImp->GetPosition(); + return mRigidBodyImp->GetPosition(mBodyID); } void RigidBody::TranslateMass(const Vector3f& v) { - mRigidBodyImp->TranslateMass(v); + mRigidBodyImp->TranslateMass(v, mBodyID); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <a-...@us...> - 2010-01-13 06:29:03
|
Revision: 141 http://simspark.svn.sourceforge.net/simspark/?rev=141&view=rev Author: a-held Date: 2010-01-13 06:28:54 +0000 (Wed, 13 Jan 2010) Log Message: ----------- Copy changes from r139 and r140 to branch implemented bridge pattern for AngularMotor, started on ContactJointHandler modified rcsoccersim3d script to also start the hello world agent Modified Paths: -------------- branches/multiphys/rcssserver3d/CMakeLists.txt branches/multiphys/rcssserver3d/ChangeLog branches/multiphys/rcssserver3d/RELEASE branches/multiphys/rcssserver3d/data/models/leftgoal.obj branches/multiphys/rcssserver3d/data/models/rightgoal.obj branches/multiphys/rcssserver3d/rcssserver3d/CMakeLists.txt branches/multiphys/rcssserver3d/rcssserver3d/main.cpp branches/multiphys/spark/RELEASE branches/multiphys/spark/lib/oxygen/CMakeLists.txt branches/multiphys/spark/lib/oxygen/physicsserver/angularmotor.cpp branches/multiphys/spark/lib/oxygen/physicsserver/angularmotor.h branches/multiphys/spark/lib/oxygen/physicsserver/angularmotor_c.cpp branches/multiphys/spark/lib/oxygen/physicsserver/contactjointhandler.cpp branches/multiphys/spark/lib/oxygen/physicsserver/contactjointhandler.h branches/multiphys/spark/lib/oxygen/physicsserver/genericphysicsobjects.h branches/multiphys/spark/lib/oxygen/physicsserver/int/angularmotorint.h branches/multiphys/spark/lib/oxygen/physicsserver/int/bodyint.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odebody.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odejoint.cpp branches/multiphys/spark/plugin/collisionperceptor/touchperceptorhandler.cpp Added Paths: ----------- branches/multiphys/rcssserver3d/rcssserver3d/ branches/multiphys/spark/lib/oxygen/physicsserver/int/contactjointhandlerint.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeangularmotor.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odeangularmotor.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecontactjointhandler.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecontactjointhandler.h Removed Paths: ------------- branches/multiphys/rcssserver3d/simspark/ Modified: branches/multiphys/rcssserver3d/CMakeLists.txt =================================================================== --- branches/multiphys/rcssserver3d/CMakeLists.txt 2010-01-10 23:45:10 UTC (rev 140) +++ branches/multiphys/rcssserver3d/CMakeLists.txt 2010-01-13 06:28:54 UTC (rev 141) @@ -76,7 +76,7 @@ add_subdirectory(plugin) add_subdirectory(rcssagent3d) add_subdirectory(rcssmonitor3d) -add_subdirectory(simspark) +add_subdirectory(rcssserver3d) ########### install files ############### Modified: branches/multiphys/rcssserver3d/ChangeLog =================================================================== --- branches/multiphys/rcssserver3d/ChangeLog 2010-01-10 23:45:10 UTC (rev 140) +++ branches/multiphys/rcssserver3d/ChangeLog 2010-01-13 06:28:54 UTC (rev 141) @@ -1,3 +1,25 @@ +2010-01-11 Hedayat Vatankhah <he...@gr...> + + * RELEASE: + - added some notes about the name change and also the new script + (rcsoccersim3d) + + * CMakeLists.txt: + * rcssserver3d/main.cpp: + * rcssserver3d/CMakeLists.txt: + - renamed simspark -> rcssserver3d. creating a simspark symbolic link for + backward compatibility + + * rcssserver3d/rcsoccersim3d.in: + - added rcsoccersim3d script to run both rcssserver3d (simspark) and + rcssmonitor3d, and terminate the simulator when the monitor stops + +2010-01-09 Hedayat Vatankhah <he...@gr...> + + * data/models/leftgoal.obj: + * data/models/rightgoal.obj: + - fixed net visualization in the new models + 2010-01-03 Hedayat Vatankhah <he...@gr...> * data/models/leftgoal.obj: Modified: branches/multiphys/rcssserver3d/RELEASE =================================================================== --- branches/multiphys/rcssserver3d/RELEASE 2010-01-10 23:45:10 UTC (rev 140) +++ branches/multiphys/rcssserver3d/RELEASE 2010-01-13 06:28:54 UTC (rev 141) @@ -1,7 +1,10 @@ RELEASE News of rcssserver3d-0.6.3 (In progress) * Most notable changes: - - No internal monitor by default. Run rcssmonitor3d separately to see the game. + - Name change: simspark -> rcssserver3d. To make the functionality more clear. + - No internal monitor by default. Run rcssmonitor3d separately to see the game. + As another option, you might run rcsoccersim3d which runs both + rcssserver3d (simspark) and rcssmonitor3d on the local machine. - Added HMDP effector/perceptor - Some compilation fixes - Improved Windows support Modified: branches/multiphys/rcssserver3d/data/models/leftgoal.obj =================================================================== --- branches/multiphys/rcssserver3d/data/models/leftgoal.obj 2010-01-10 23:45:10 UTC (rev 140) +++ branches/multiphys/rcssserver3d/data/models/leftgoal.obj 2010-01-13 06:28:54 UTC (rev 141) @@ -1,235 +1,247 @@ # Blender3D v249 OBJ File: # www.blender3d.org mtllib leftgoal.mtl -o leftgoal +o Cylinder +v -0.466661 -0.000000 -0.006727 +v -0.435928 0.000000 0.031272 +v -0.439036 0.000000 0.048194 +v 0.469231 0.001554 -0.881690 +v 0.467925 1.000000 -0.096621 +v 0.467925 0.000247 -0.096621 +v -0.463784 0.001554 -0.895139 +v -0.465090 0.000247 -0.110069 +v -0.465090 1.000000 -0.110069 +v -0.463784 0.001554 -0.895139 +v -0.465090 1.000000 -0.110069 +v -0.465090 0.000247 -0.110069 +v 0.469231 0.001554 -0.881690 +v 0.467925 0.000247 -0.096621 +v 0.467925 1.000000 -0.096621 +v 0.469231 0.001554 -0.881690 +v 0.467925 1.000000 -0.096621 +v -0.465090 1.000000 -0.110069 +v -0.463784 0.001554 -0.895139 +v 0.469231 0.001554 -0.881690 +v 0.467925 1.000000 -0.096621 +v 0.466661 0.000000 0.006727 v 0.490346 -0.000000 -0.062326 v 0.494467 -0.000000 -0.047393 +v 0.466661 0.997179 0.006727 +v 0.494467 0.997179 -0.047393 +v 0.490346 0.997179 -0.062326 v 0.497519 -0.000000 -0.030383 +v 0.497519 0.997179 -0.030383 v 0.499385 -0.000000 -0.011947 +v 0.499385 0.997179 -0.011947 v 0.499994 0.000000 0.007207 +v 0.499994 0.997179 0.007207 v 0.499322 0.000000 0.026343 +v 0.499322 0.997179 0.026343 v 0.497394 0.000000 0.044726 +v 0.497394 0.997179 0.044726 v 0.494286 0.000000 0.061645 +v 0.494286 0.997179 0.061645 v 0.490116 0.000000 0.076457 +v 0.490116 0.997179 0.076457 v 0.485044 0.000000 0.088589 +v 0.485044 0.997179 0.088589 v 0.479266 0.000000 0.097575 +v 0.479266 0.997179 0.097575 v 0.473004 0.000000 0.103068 +v 0.473004 0.997179 0.103068 v 0.466498 0.000000 0.104861 +v 0.466498 0.997179 0.104861 v 0.459998 0.000000 0.102880 +v 0.459998 0.997179 0.102880 v 0.453754 0.000000 0.097207 +v 0.453754 0.997179 0.097207 v 0.448007 0.000000 0.088054 +v 0.448007 0.997179 0.088057 v 0.442976 0.000000 0.075777 +v 0.442976 0.997179 0.075777 v 0.438855 0.000000 0.060848 +v 0.438855 0.997179 0.060848 v 0.435803 0.000000 0.043837 +v 0.435803 0.997179 0.043837 v 0.433937 0.000000 0.025401 +v 0.433937 0.997179 0.025401 v 0.433328 0.000000 0.006247 +v 0.433328 0.997179 0.006247 v 0.434000 -0.000000 -0.012889 +v 0.434000 0.997179 -0.012889 v 0.435928 -0.000000 -0.031272 +v 0.435928 0.997179 -0.031272 v 0.439036 -0.000000 -0.048194 +v 0.439036 0.997179 -0.048194 v 0.443207 -0.000000 -0.063006 +v 0.443206 0.997179 -0.063003 v 0.448278 -0.000000 -0.075135 +v 0.448278 0.997179 -0.075135 v 0.454056 -0.000000 -0.084120 +v 0.454056 0.997179 -0.084120 v 0.460318 -0.000000 -0.089614 +v 0.460318 0.997179 -0.089614 v 0.466824 -0.000000 -0.091407 +v 0.466824 0.997179 -0.091407 v 0.473324 -0.000000 -0.089428 +v 0.473324 0.997179 -0.089429 v 0.479568 -0.000000 -0.083752 +v 0.479568 0.997179 -0.083752 v 0.485316 -0.000000 -0.074602 -v 0.490346 0.997179 -0.062326 -v 0.494467 0.997179 -0.047393 -v 0.497519 0.997179 -0.030383 -v 0.499385 0.997179 -0.011947 -v 0.499994 0.997179 0.007207 -v 0.499322 0.997179 0.026343 -v 0.497394 0.997179 0.044726 -v 0.494286 0.997179 0.061645 -v 0.490116 0.997179 0.076457 -v 0.485044 0.997179 0.088589 -v 0.479266 0.997179 0.097575 -v 0.473004 0.997179 0.103068 -v 0.466498 0.997179 0.104861 -v 0.459998 0.997179 0.102880 -v 0.453754 0.997179 0.097207 -v 0.448007 0.997179 0.088057 -v 0.442976 0.997179 0.075777 -v 0.438855 0.997179 0.060848 -v 0.435803 0.997179 0.043837 -v 0.433937 0.997179 0.025401 -v 0.433328 0.997179 0.006247 -v 0.434000 0.997179 -0.012889 -v 0.435928 0.997179 -0.031272 -v 0.439036 0.997179 -0.048194 -v 0.443206 0.997179 -0.063003 -v 0.448278 0.997179 -0.075135 -v 0.454056 0.997179 -0.084120 -v 0.460318 0.997179 -0.089614 -v 0.466824 0.997179 -0.091407 -v 0.473324 0.997179 -0.089429 -v 0.479568 0.997179 -0.083752 v 0.485315 0.997179 -0.074602 -v 0.466661 0.000000 0.006727 -v 0.466661 0.997179 0.006727 v -0.466661 0.997179 -0.006727 -v -0.466661 -0.000000 -0.006727 +v -0.442976 0.997179 -0.075777 v -0.448007 0.997179 -0.088057 +v -0.448007 -0.000000 -0.088054 +v -0.442976 -0.000000 -0.075777 v -0.453755 0.997179 -0.097207 +v -0.453754 -0.000000 -0.097207 v -0.459998 0.997179 -0.102883 +v -0.459998 -0.000000 -0.102880 v -0.466498 0.997179 -0.104861 +v -0.466498 -0.000000 -0.104861 v -0.473004 0.997179 -0.103068 +v -0.473004 -0.000000 -0.103068 v -0.479266 0.997179 -0.097575 +v -0.479266 -0.000000 -0.097575 v -0.485044 0.997179 -0.088589 +v -0.485044 -0.000000 -0.088589 v -0.490116 0.997179 -0.076457 +v -0.490116 -0.000000 -0.076457 v -0.494286 0.997179 -0.061646 +v -0.494286 -0.000000 -0.061645 v -0.497394 0.997179 -0.044723 +v -0.497394 -0.000000 -0.044726 v -0.499322 0.997179 -0.026343 +v -0.499322 -0.000000 -0.026343 v -0.499994 0.997179 -0.007207 +v -0.499994 -0.000000 -0.007207 v -0.499385 0.997179 0.011947 +v -0.499385 0.000000 0.011947 v -0.497519 0.997179 0.030383 +v -0.497519 0.000000 0.030383 v -0.494467 0.997179 0.047393 +v -0.494467 0.000000 0.047393 v -0.490346 0.997179 0.062326 +v -0.490346 0.000000 0.062326 v -0.485315 0.997179 0.074602 +v -0.485316 0.000000 0.074602 v -0.479568 0.997179 0.083752 +v -0.479568 0.000000 0.083752 v -0.473324 0.997179 0.089428 +v -0.473324 0.000000 0.089428 v -0.466824 0.997179 0.091407 +v -0.466824 0.000000 0.091407 v -0.460318 0.997179 0.089614 +v -0.460318 0.000000 0.089614 v -0.454056 0.997179 0.084120 +v -0.454056 0.000000 0.084120 v -0.448278 0.997179 0.075135 +v -0.448278 0.000000 0.075135 v -0.443207 0.997179 0.063006 +v -0.443207 0.000000 0.063006 v -0.439036 0.997179 0.048194 v -0.435928 0.997179 0.031272 v -0.434000 0.997179 0.012889 +v -0.434000 0.000000 0.012889 v -0.433328 0.997179 -0.006247 +v -0.433328 -0.000000 -0.006247 v -0.433937 0.997179 -0.025401 +v -0.433937 -0.000000 -0.025401 v -0.435803 0.997179 -0.043837 +v -0.435803 -0.000000 -0.043837 v -0.438855 0.997179 -0.060848 -v -0.442976 0.997179 -0.075777 -v -0.448007 -0.000000 -0.088054 -v -0.453754 -0.000000 -0.097207 -v -0.459998 -0.000000 -0.102880 -v -0.466498 -0.000000 -0.104861 -v -0.473004 -0.000000 -0.103068 -v -0.479266 -0.000000 -0.097575 -v -0.485044 -0.000000 -0.088589 -v -0.490116 -0.000000 -0.076457 -v -0.494286 -0.000000 -0.061645 -v -0.497394 -0.000000 -0.044726 -v -0.499322 -0.000000 -0.026343 -v -0.499994 -0.000000 -0.007207 -v -0.499385 0.000000 0.011947 -v -0.497519 0.000000 0.030383 -v -0.494467 0.000000 0.047393 -v -0.490346 0.000000 0.062326 -v -0.485316 0.000000 0.074602 -v -0.479568 0.000000 0.083752 -v -0.473324 0.000000 0.089428 -v -0.466824 0.000000 0.091407 -v -0.460318 0.000000 0.089614 -v -0.454056 0.000000 0.084120 -v -0.448278 0.000000 0.075135 -v -0.443207 0.000000 0.063006 -v -0.439036 0.000000 0.048194 -v -0.435928 0.000000 0.031272 -v -0.434000 0.000000 0.012889 -v -0.433328 -0.000000 -0.006247 -v -0.433937 -0.000000 -0.025401 -v -0.435803 -0.000000 -0.043837 v -0.438855 -0.000000 -0.060848 -v -0.442976 -0.000000 -0.075777 +v -0.465871 0.964236 -0.006715 v -0.465814 0.986271 -0.041411 v -0.465804 0.981550 -0.047514 +v 0.467451 0.964236 0.006739 +v 0.467519 0.981550 -0.034060 +v 0.467508 0.986271 -0.027957 v -0.465796 0.976161 -0.052048 +v 0.467526 0.976161 -0.038594 v -0.465791 0.970316 -0.054839 +v 0.467531 0.970316 -0.041385 v -0.465790 0.964236 -0.055781 +v 0.467532 0.964236 -0.042330 v -0.465791 0.958158 -0.054839 +v 0.467531 0.958158 -0.041385 v -0.465796 0.952311 -0.052048 +v 0.467526 0.952311 -0.038594 v -0.465804 0.946925 -0.047514 +v 0.467519 0.946925 -0.034060 v -0.465814 0.942202 -0.041411 +v 0.467508 0.942202 -0.027957 v -0.465826 0.938326 -0.033974 +v 0.467496 0.938326 -0.020523 v -0.465840 0.935446 -0.025493 +v 0.467482 0.935446 -0.012038 v -0.465855 0.933674 -0.016287 +v 0.467467 0.933674 -0.002835 v -0.465871 0.933074 -0.006715 +v 0.467451 0.933074 0.006739 v -0.465887 0.933674 0.002859 +v 0.467435 0.933674 0.016310 v -0.465903 0.935446 0.012062 +v 0.467420 0.935446 0.025516 v -0.465917 0.938326 0.020544 +v 0.467405 0.938326 0.033998 v -0.465929 0.942202 0.027980 +v 0.467393 0.942202 0.041435 v -0.465939 0.946925 0.034083 +v 0.467383 0.946925 0.047535 v -0.465947 0.952311 0.038617 +v 0.467375 0.952311 0.052071 v -0.465951 0.958158 0.041408 +v 0.467371 0.958158 0.054862 v -0.465953 0.964236 0.042353 +v 0.467369 0.964236 0.055804 v -0.465951 0.970316 0.041408 +v 0.467371 0.970316 0.054862 v -0.465947 0.976161 0.038617 +v 0.467375 0.976161 0.052071 v -0.465939 0.981550 0.034083 +v 0.467383 0.981550 0.047535 v -0.465929 0.986271 0.027980 +v 0.467393 0.986271 0.041435 v -0.465917 0.990147 0.020544 +v 0.467405 0.990147 0.033998 v -0.465903 0.993026 0.012062 +v 0.467420 0.993026 0.025516 v -0.465887 0.994800 0.002859 +v 0.467435 0.994800 0.016310 v -0.465871 0.995399 -0.006715 +v 0.467451 0.995399 0.006739 v -0.465855 0.994800 -0.016287 +v 0.467467 0.994800 -0.002835 v -0.465840 0.993026 -0.025493 +v 0.467482 0.993026 -0.012038 v -0.465826 0.990147 -0.033974 -v 0.467508 0.986271 -0.027957 -v 0.467519 0.981550 -0.034060 -v 0.467526 0.976161 -0.038594 -v 0.467531 0.970316 -0.041385 -v 0.467532 0.964236 -0.042330 -v 0.467531 0.958158 -0.041385 -v 0.467526 0.952311 -0.038594 -v 0.467519 0.946925 -0.034060 -v 0.467508 0.942202 -0.027957 -v 0.467496 0.938326 -0.020523 -v 0.467482 0.935446 -0.012038 -v 0.467467 0.933674 -0.002835 -v 0.467451 0.933074 0.006739 -v 0.467435 0.933674 0.016310 -v 0.467420 0.935446 0.025516 -v 0.467405 0.938326 0.033998 -v 0.467393 0.942202 0.041435 -v 0.467383 0.946925 0.047535 -v 0.467375 0.952311 0.052071 -v 0.467371 0.958158 0.054862 -v 0.467369 0.964236 0.055804 -v 0.467371 0.970316 0.054862 -v 0.467375 0.976161 0.052071 -v 0.467383 0.981550 0.047535 -v 0.467393 0.986271 0.041435 -v 0.467405 0.990147 0.033998 -v 0.467420 0.993026 0.025516 -v 0.467435 0.994800 0.016310 -v 0.467451 0.995399 0.006739 -v 0.467467 0.994800 -0.002835 -v 0.467482 0.993026 -0.012038 v 0.467496 0.990147 -0.020523 -v -0.465871 0.964236 -0.006715 -v 0.467451 0.964236 0.006739 +v -0.458524 0.001554 -0.890770 +v -0.459830 0.498835 -0.105700 v -0.459830 0.000247 -0.105700 -v -0.459830 0.498835 -0.105700 -v -0.458524 0.001554 -0.890770 -v 0.469231 0.001554 -0.881690 -v 0.467925 1.000000 -0.096621 -v 0.467925 0.000247 -0.096621 -v 0.467925 1.000000 -0.096621 -v 0.469231 0.001554 -0.881690 -v -0.463784 0.001554 -0.895139 -v -0.465090 1.000000 -0.110069 -v -0.465090 0.000247 -0.110069 -v -0.465090 1.000000 -0.110069 -v -0.463784 0.001554 -0.895139 -v 0.467925 1.000000 -0.096621 -v 0.469231 0.001554 -0.881690 -v -0.465090 0.000247 -0.110069 -v -0.465090 1.000000 -0.110069 -v -0.463784 0.001554 -0.895139 v -0.465191 0.001554 -0.890770 +v -0.466496 0.000247 -0.105700 v -0.466496 0.498835 -0.105700 -v -0.466496 0.000247 -0.105700 v 0.474809 0.001554 -0.890770 v 0.473504 0.498835 -0.105700 v 0.473504 0.000247 -0.105700 v 0.468143 0.001554 -0.890770 +v 0.466837 0.000247 -0.105700 v 0.466837 0.498835 -0.105700 -v 0.466837 0.000247 -0.105700 -v 0.469231 0.001554 -0.881690 -v 0.467925 1.000000 -0.096621 -v 0.467925 0.000247 -0.096621 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.478737 0.520656 +vt 0.239368 1.000000 +vt 0.239368 0.520028 +vt 0.239368 0.520656 +vt 0.000000 0.520028 +vt 0.812878 0.000000 +vt 0.812878 0.520028 +vt 0.000000 0.520027 +vt 1.000000 1.000000 vn -0.000000 -1.000000 0.000000 vn 0.999999 0.000000 0.001664 vn -0.999999 -0.000000 -0.001664 @@ -428,400 +440,400 @@ vn 0.963964 -0.000000 -0.266033 usemtl grey_naogoalnet.png s off -f 68//1 126//1 125//1 -f 206//2 205//2 204//2 -f 207//3 209//3 208//3 -f 216//2 215//2 214//2 -f 226//3 228//3 227//3 -f 213//4 212//4 210//4 -f 213//4 210//4 211//4 -f 202//5 207//5 208//5 -f 202//5 208//5 203//5 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 6/6/2 +f 7/7/3 8/8/3 9/1/3 +f 10/7/2 11/1/2 12/8/2 +f 13/4/3 14/6/3 15/5/3 +f 16/9/4 17/10/4 18/11/4 +f 16/9/4 18/11/4 19/2/4 +f 20/9/5 7/2/5 9/11/5 +f 20/9/5 9/11/5 21/10/5 usemtl yellow -f 65//1 1//1 2//1 -f 66//6 34//6 33//6 -f 65//1 2//1 3//1 -f 66//6 35//6 34//6 -f 65//1 3//1 4//1 -f 66//6 36//6 35//6 -f 65//1 4//1 5//1 -f 66//6 37//6 36//6 -f 65//1 5//1 6//1 -f 66//6 38//6 37//6 -f 65//1 6//1 7//1 -f 66//6 39//6 38//6 -f 65//1 7//1 8//1 -f 66//6 40//6 39//6 -f 65//1 8//1 9//1 -f 66//6 41//6 40//6 -f 65//1 9//1 10//1 -f 66//6 42//6 41//6 -f 65//1 10//1 11//1 -f 66//6 43//6 42//6 -f 65//1 11//1 12//1 -f 66//6 44//6 43//6 -f 65//1 12//1 13//1 -f 66//6 45//6 44//6 -f 65//1 13//1 14//1 -f 66//6 46//6 45//6 -f 65//1 14//1 15//1 -f 66//6 47//6 46//6 -f 65//1 15//1 16//1 -f 66//6 48//6 47//6 -f 65//1 16//1 17//1 -f 66//6 49//6 48//6 -f 65//1 17//1 18//1 -f 66//6 50//6 49//6 -f 65//1 18//1 19//1 -f 66//6 51//6 50//6 -f 65//1 19//1 20//1 -f 66//6 52//6 51//6 -f 65//1 20//1 21//1 -f 66//6 53//6 52//6 -f 65//1 21//1 22//1 -f 66//6 54//6 53//6 -f 65//1 22//1 23//1 -f 66//6 55//6 54//6 -f 65//1 23//1 24//1 -f 66//6 56//6 55//6 -f 65//1 24//1 25//1 -f 66//6 57//6 56//6 -f 65//1 25//1 26//1 -f 66//6 58//6 57//6 -f 65//1 26//1 27//1 -f 66//6 59//6 58//6 -f 65//1 27//1 28//1 -f 66//6 60//6 59//6 -f 65//1 28//1 29//1 -f 66//6 61//6 60//6 -f 65//1 29//1 30//1 -f 66//6 62//6 61//6 -f 65//1 30//1 31//1 -f 66//6 63//6 62//6 -f 65//1 31//1 32//1 -f 66//6 64//6 63//6 -f 32//1 1//1 65//1 -f 66//6 33//6 64//6 -f 67//6 100//6 69//6 -f 68//1 101//1 132//1 -f 67//6 69//6 70//6 -f 68//1 102//1 101//1 -f 67//6 70//6 71//6 -f 68//1 103//1 102//1 -f 67//6 71//6 72//6 -f 68//1 104//1 103//1 -f 67//6 72//6 73//6 -f 68//1 105//1 104//1 -f 67//6 73//6 74//6 -f 68//1 106//1 105//1 -f 67//6 74//6 75//6 -f 68//1 107//1 106//1 -f 67//6 75//6 76//6 -f 68//1 108//1 107//1 -f 67//6 76//6 77//6 -f 68//1 109//1 108//1 -f 67//6 77//6 78//6 -f 68//1 110//1 109//1 -f 67//6 78//6 79//6 -f 68//1 111//1 110//1 -f 67//6 79//6 80//6 -f 68//1 112//1 111//1 -f 67//6 80//6 81//6 -f 68//1 113//1 112//1 -f 67//6 81//6 82//6 -f 68//1 114//1 113//1 -f 67//6 82//6 83//6 -f 68//1 115//1 114//1 -f 67//6 83//6 84//6 -f 68//1 116//1 115//1 -f 67//6 84//6 85//6 -f 68//1 117//1 116//1 -f 67//6 85//6 86//6 -f 68//1 118//1 117//1 -f 67//6 86//6 87//6 -f 68//1 119//1 118//1 -f 67//6 87//6 88//6 -f 68//1 120//1 119//1 -f 67//6 88//6 89//6 -f 68//1 121//1 120//1 -f 67//6 89//6 90//6 -f 68//1 122//1 121//1 -f 67//6 90//6 91//6 -f 68//1 123//1 122//1 -f 67//6 91//6 92//6 -f 68//1 124//1 123//1 -f 67//6 92//6 93//6 -f 68//1 125//1 124//1 -f 67//6 93//6 94//6 -f 67//6 94//6 95//6 -f 68//1 127//1 126//1 -f 67//6 95//6 96//6 -f 68//1 128//1 127//1 -f 67//6 96//6 97//6 -f 68//1 129//1 128//1 -f 67//6 97//6 98//6 -f 68//1 130//1 129//1 -f 67//6 98//6 99//6 -f 68//1 131//1 130//1 -f 67//6 99//6 100//6 -f 68//1 132//1 131//1 -f 197//7 133//7 134//7 -f 198//8 166//8 165//8 -f 197//9 134//9 135//9 -f 198//10 167//10 166//10 -f 197//11 135//11 136//11 -f 198//12 168//12 167//12 -f 197//13 136//13 137//13 -f 198//14 169//14 168//14 -f 197//15 137//15 138//15 -f 198//16 170//16 169//16 -f 197//17 138//17 139//17 -f 198//18 171//18 170//18 -f 197//19 139//19 140//19 -f 198//20 172//20 171//20 -f 197//21 140//21 141//21 -f 198//22 173//22 172//22 -f 197//23 141//23 142//23 -f 198//24 174//24 173//24 -f 197//25 142//25 143//25 -f 198//26 175//26 174//26 -f 197//27 143//27 144//27 -f 198//28 176//28 175//28 -f 197//29 144//29 145//29 -f 198//30 177//30 176//30 -f 197//29 145//29 146//29 -f 198//30 178//30 177//30 -f 197//31 146//31 147//31 -f 198//32 179//32 178//32 -f 197//33 147//33 148//33 -f 198//34 180//34 179//34 -f 197//35 148//35 149//35 -f 198//36 181//36 180//36 -f 197//37 149//37 150//37 -f 198//38 182//38 181//38 -f 197//39 150//39 151//39 -f 198//40 183//40 182//40 -f 197//41 151//41 152//41 -f 198//42 184//42 183//42 -f 197//43 152//43 153//43 -f 198//44 185//44 184//44 -f 197//45 153//45 154//45 -f 198//46 186//46 185//46 -f 197//47 154//47 155//47 -f 198//48 187//48 186//48 -f 197//49 155//49 156//49 -f 198//50 188//50 187//50 -f 197//51 156//51 157//51 -f 198//52 189//52 188//52 -f 197//53 157//53 158//53 -f 198//54 190//54 189//54 -f 197//55 158//55 159//55 -f 198//56 191//56 190//56 -f 197//57 159//57 160//57 -f 198//28 192//28 191//28 -f 197//29 160//29 161//29 -f 198//30 193//30 192//30 -f 197//29 161//29 162//29 -f 198//30 194//30 193//30 -f 197//58 162//58 163//58 -f 198//32 195//32 194//32 -f 197//25 163//25 164//25 -f 198//26 196//26 195//26 -f 197//59 164//59 133//59 -f 198//60 165//60 196//60 -f 201//2 200//2 199//2 -f 217//61 219//61 218//61 -f 220//62 221//62 222//62 -f 223//3 225//3 224//3 -f 164//63 196//63 165//63 -f 164//64 165//64 133//64 -f 163//65 195//65 196//65 -f 163//66 196//66 164//66 -f 162//67 194//67 195//67 -f 162//68 195//68 163//68 -f 161//69 193//69 194//69 -f 161//70 194//70 162//70 -f 160//71 192//71 193//71 -f 160//72 193//72 161//72 -f 159//73 191//73 192//73 -f 159//74 192//74 160//74 -f 158//75 190//75 191//75 -f 158//76 191//76 159//76 -f 157//77 189//77 190//77 -f 157//78 190//78 158//78 -f 156//79 188//79 189//79 -f 156//80 189//80 157//80 -f 155//81 187//81 188//81 -f 155//82 188//82 156//82 -f 154//83 186//83 187//83 -f 154//84 187//84 155//84 -f 153//85 185//85 186//85 -f 153//86 186//86 154//86 -f 152//87 184//87 185//87 -f 152//88 185//88 153//88 -f 151//89 183//89 184//89 -f 151//89 184//89 152//89 -f 150//90 182//90 183//90 -f 150//91 183//91 151//91 -f 149//92 181//92 182//92 -f 149//93 182//93 150//93 -f 148//94 180//94 181//94 -f 148//94 181//94 149//94 -f 147//95 179//95 180//95 -f 147//96 180//96 148//96 -f 146//97 178//97 179//97 -f 146//98 179//98 147//98 -f 145//99 177//99 178//99 -f 145//100 178//100 146//100 -f 144//101 176//101 177//101 -f 144//102 177//102 145//102 -f 143//103 175//103 176//103 -f 143//104 176//104 144//104 -f 142//105 174//105 175//105 -f 142//106 175//106 143//106 -f 141//107 173//107 174//107 -f 141//108 174//108 142//108 -f 140//109 172//109 173//109 -f 140//110 173//110 141//110 -f 139//111 171//111 172//111 -f 139//112 172//112 140//112 -f 138//113 170//113 171//113 -f 138//114 171//114 139//114 -f 137//115 169//115 170//115 -f 137//116 170//116 138//116 -f 136//117 168//117 169//117 -f 136//118 169//118 137//118 -f 135//119 167//119 168//119 -f 135//120 168//120 136//120 -f 134//121 166//121 167//121 -f 134//122 167//122 135//122 -f 133//123 165//123 166//123 -f 133//124 166//124 134//124 -f 132//125 100//125 99//125 -f 132//125 99//125 131//125 -f 131//126 99//126 98//126 -f 131//126 98//126 130//126 -f 130//127 98//127 97//127 -f 130//127 97//127 129//127 -f 129//128 97//128 96//128 -f 129//128 96//128 128//128 -f 128//129 96//129 95//129 -f 128//129 95//129 127//129 -f 127//130 95//130 94//130 -f 127//130 94//130 126//130 -f 126//131 94//131 93//131 -f 126//131 93//131 125//131 -f 125//132 93//132 92//132 -f 125//132 92//132 124//132 -f 124//133 92//133 91//133 -f 124//133 91//133 123//133 -f 123//134 91//134 90//134 -f 123//134 90//134 122//134 -f 122//135 90//135 89//135 -f 122//135 89//135 121//135 -f 121//136 89//136 88//136 -f 121//136 88//136 120//136 -f 120//137 88//137 87//137 -f 120//137 87//137 119//137 -f 119//138 87//138 86//138 -f 119//138 86//138 118//138 -f 118//139 86//139 85//139 -f 118//140 85//140 117//140 -f 117//141 85//141 84//141 -f 117//142 84//142 116//142 -f 116//143 84//143 83//143 -f 116//143 83//143 115//143 -f 115//144 83//144 82//144 -f 115//144 82//144 114//144 -f 114//145 82//145 81//145 -f 114//145 81//145 113//145 -f 113//146 81//146 80//146 -f 113//146 80//146 112//146 -f 112//147 80//147 79//147 -f 112//147 79//147 111//147 -f 111//148 79//148 78//148 -f 111//149 78//149 110//149 -f 110//150 78//150 77//150 -f 110//151 77//151 109//151 -f 109//152 77//152 76//152 -f 109//152 76//152 108//152 -f 108//153 76//153 75//153 -f 108//153 75//153 107//153 -f 107//154 75//154 74//154 -f 107//154 74//154 106//154 -f 106//155 74//155 73//155 -f 106//155 73//155 105//155 -f 105//156 73//156 72//156 -f 105//156 72//156 104//156 -f 104//157 72//157 71//157 -f 104//158 71//158 103//158 -f 103//159 71//159 70//159 -f 103//160 70//160 102//160 -f 102//161 70//161 69//161 -f 102//162 69//162 101//162 -f 101//163 69//163 100//163 -f 101//164 100//164 132//164 -f 33//165 1//165 32//165 -f 33//166 32//166 64//166 -f 31//167 63//167 64//167 -f 31//168 64//168 32//168 -f 30//169 62//169 63//169 -f 30//169 63//169 31//169 -f 29//170 61//170 62//170 -f 29//170 62//170 30//170 -f 28//171 60//171 61//171 -f 28//171 61//171 29//171 -f 27//172 59//172 60//172 -f 27//172 60//172 28//172 -f 26//173 58//173 59//173 -f 26//173 59//173 27//173 -f 25//153 57//153 58//153 -f 25//174 58//174 26//174 -f 24//175 56//175 57//175 -f 24//176 57//176 25//176 -f 23//177 55//177 56//177 -f 23//177 56//177 24//177 -f 22//149 54//149 55//149 -f 22//149 55//149 23//149 -f 21//178 53//178 54//178 -f 21//178 54//178 22//178 -f 20//146 52//146 53//146 -f 20//146 53//146 21//146 -f 19//179 51//179 52//179 -f 19//180 52//180 20//180 -f 18//144 50//144 51//144 -f 18//144 51//144 19//144 -f 17//181 49//181 50//181 -f 17//181 50//181 18//181 -f 16//182 48//182 49//182 -f 16//183 49//183 17//183 -f 15//184 47//184 48//184 -f 15//185 48//185 16//185 -f 14//186 46//186 47//186 -f 14//186 47//186 15//186 -f 13//187 45//187 46//187 -f 13//187 46//187 14//187 -f 12//188 44//188 45//188 -f 12//188 45//188 13//188 -f 11//189 43//189 44//189 -f 11//189 44//189 12//189 -f 10//190 42//190 43//190 -f 10//190 43//190 11//190 -f 9//191 41//191 42//191 -f 9//191 42//191 10//191 -f 8//192 40//192 41//192 -f 8//192 41//192 9//192 -f 7//193 39//193 40//193 -f 7//193 40//193 8//193 -f 6//130 38//130 39//130 -f 6//130 39//130 7//130 -f 5//194 37//194 38//194 -f 5//194 38//194 6//194 -f 4//128 36//128 37//128 -f 4//128 37//128 5//128 -f 3//195 35//195 36//195 -f 3//195 36//195 4//195 -f 2//126 34//126 35//126 -f 2//126 35//126 3//126 -f 1//196 33//196 34//196 -f 1//196 34//196 2//196 +f 22/1/1 23/2/1 24/3/1 +f 25/1/6 26/2/6 27/3/6 +f 22/1/1 24/2/1 28/3/1 +f 25/1/6 29/2/6 26/3/6 +f 22/1/1 28/2/1 30/3/1 +f 25/1/6 31/2/6 29/3/6 +f 22/1/1 30/2/1 32/3/1 +f 25/1/6 33/2/6 31/3/6 +f 22/1/1 32/2/1 34/3/1 +f 25/1/6 35/2/6 33/3/6 +f 22/1/1 34/2/1 36/3/1 +f 25/1/6 37/2/6 35/3/6 +f 22/1/1 36/2/1 38/3/1 +f 25/1/6 39/2/6 37/3/6 +f 22/1/1 38/2/1 40/3/1 +f 25/1/6 41/2/6 39/3/6 +f 22/1/1 40/2/1 42/3/1 +f 25/1/6 43/2/6 41/3/6 +f 22/1/1 42/2/1 44/3/1 +f 25/1/6 45/2/6 43/3/6 +f 22/1/1 44/2/1 46/3/1 +f 25/1/6 47/2/6 45/3/6 +f 22/1/1 46/2/1 48/3/1 +f 25/1/6 49/2/6 47/3/6 +f 22/1/1 48/2/1 50/3/1 +f 25/1/6 51/2/6 49/3/6 +f 22/1/1 50/2/1 52/3/1 +f 25/1/6 53/2/6 51/3/6 +f 22/1/1 52/2/1 54/3/1 +f 25/1/6 55/2/6 53/3/6 +f 22/1/1 54/2/1 56/3/1 +f 25/1/6 57/2/6 55/3/6 +f 22/1/1 56/2/1 58/3/1 +f 25/1/6 59/2/6 57/3/6 +f 22/1/1 58/2/1 60/3/1 +f 25/1/6 61/2/6 59/3/6 +f 22/1/1 60/2/1 62/3/1 +f 25/1/6 63/2/6 61/3/6 +f 22/1/1 62/2/1 64/3/1 +f 25/1/6 65/2/6 63/3/6 +f 22/1/1 64/2/1 66/3/1 +f 25/1/6 67/2/6 65/3/6 +f 22/1/1 66/2/1 68/3/1 +f 25/1/6 69/2/6 67/3/6 +f 22/1/1 68/2/1 70/3/1 +f 25/1/6 71/2/6 69/3/6 +f 22/1/1 70/2/1 72/3/1 +f 25/1/6 73/2/6 71/3/6 +f 22/1/1 72/2/1 74/3/1 +f 25/1/6 75/2/6 73/3/6 +f 22/1/1 74/2/1 76/3/1 +f 25/1/6 77/2/6 75/3/6 +f 22/1/1 76/2/1 78/3/1 +f 25/1/6 79/2/6 77/3/6 +f 22/1/1 78/2/1 80/3/1 +f 25/1/6 81/2/6 79/3/6 +f 22/1/1 80/2/1 82/3/1 +f 25/1/6 83/2/6 81/3/6 +f 22/1/1 82/2/1 84/3/1 +f 25/1/6 85/2/6 83/3/6 +f 22/1/1 84/2/1 86/3/1 +f 25/1/6 87/2/6 85/3/6 +f 86/1/1 23/2/1 22/3/1 +f 25/1/6 27/2/6 87/3/6 +f 88/1/6 89/2/6 90/3/6 +f 1/1/1 91/2/1 92/3/1 +f 88/1/6 90/2/6 93/3/6 +f 1/1/1 94/2/1 91/3/1 +f 88/1/6 93/2/6 95/3/6 +f 1/1/1 96/2/1 94/3/1 +f 88/1/6 95/2/6 97/3/6 +f 1/1/1 98/2/1 96/3/1 +f 88/1/6 97/2/6 99/3/6 +f 1/1/1 100/2/1 98/3/1 +f 88/1/6 99/2/6 101/3/6 +f 1/1/1 102/2/1 100/3/1 +f 88/1/6 101/2/6 103/3/6 +f 1/1/1 104/2/1 102/3/1 +f 88/1/6 103/2/6 105/3/6 +f 1/1/1 106/2/1 104/3/1 +f 88/1/6 105/2/6 107/3/6 +f 1/1/1 108/2/1 106/3/1 +f 88/1/6 107/2/6 109/3/6 +f 1/1/1 110/2/1 108/3/1 +f 88/1/6 109/2/6 111/3/6 +f 1/1/1 112/2/1 110/3/1 +f 88/1/6 111/2/6 113/3/6 +f 1/1/1 114/2/1 112/3/1 +f 88/1/6 113/2/6 115/3/6 +f 1/1/1 116/2/1 114/3/1 +f 88/1/6 115/2/6 117/3/6 +f 1/1/1 118/2/1 116/3/1 +f 88/1/6 117/2/6 119/3/6 +f 1/1/1 120/2/1 118/3/1 +f 88/1/6 119/2/6 121/3/6 +f 1/1/1 122/2/1 120/3/1 +f 88/1/6 121/2/6 123/3/6 +f 1/1/1 124/2/1 122/3/1 +f 88/1/6 123/2/6 125/3/6 +f 1/1/1 126/2/1 124/3/1 +f 88/1/6 125/2/6 127/3/6 +f 1/1/1 128/2/1 126/3/1 +f 88/1/6 127/2/6 129/3/6 +f 1/1/1 130/2/1 128/3/1 +f 88/1/6 129/2/6 131/3/6 +f 1/1/1 132/2/1 130/3/1 +f 88/1/6 131/2/6 133/3/6 +f 1/1/1 134/2/1 132/3/1 +f 88/1/6 133/2/6 135/3/6 +f 1/1/1 136/2/1 134/3/1 +f 88/1/6 135/2/6 137/3/6 +f 1/1/1 138/2/1 136/3/1 +f 88/1/6 137/2/6 139/3/6 +f 1/1/1 3/2/1 138/3/1 +f 88/1/6 139/2/6 140/3/6 +f 88/1/6 140/2/6 141/3/6 +f 1/1/1 142/2/1 2/3/1 +f 88/1/6 141/2/6 143/3/6 +f 1/1/1 144/2/1 142/3/1 +f 88/1/6 143/2/6 145/3/6 +f 1/1/1 146/2/1 144/3/1 +f 88/1/6 145/2/6 147/3/6 +f 1/1/1 148/2/1 146/3/1 +f 88/1/6 147/2/6 149/3/6 +f 1/1/1 150/2/1 148/3/1 +f 88/1/6 149/2/6 89/3/6 +f 1/1/1 92/2/1 150/3/1 +f 151/1/7 152/2/7 153/3/7 +f 154/1/8 155/2/8 156/3/8 +f 151/1/9 153/2/9 157/3/9 +f 154/1/10 158/2/10 155/3/10 +f 151/1/11 157/2/11 159/3/11 +f 154/1/12 160/2/12 158/3/12 +f 151/1/13 159/2/13 161/3/13 +f 154/1/14 162/2/14 160/3/14 +f 151/1/15 161/2/15 163/3/15 +f 154/1/16 164/2/16 162/3/16 +f 151/1/17 163/2/17 165/3/17 +f 154/1/18 166/2/18 164/3/18 +f 151/1/19 165/2/19 167/3/19 +f 154/1/20 168/2/20 166/3/20 +f 151/1/21 167/2/21 169/3/21 +f 154/1/22 170/2/22 168/3/22 +f 151/1/23 169/2/23 171/3/23 +f 154/1/24 172/2/24 170/3/24 +f 151/1/25 171/2/25 173/3/25 +f 154/1/26 174/2/26 172/3/26 +f 151/1/27 173/2/27 175/3/27 +f 154/1/28 176/2/28 174/3/28 +f 151/1/29 175/2/29 177/3/29 +f 154/1/30 178/2/30 176/3/30 +f 151/1/29 177/2/29 179/3/29 +f 154/1/30 180/2/30 178/3/30 +f 151/1/31 179/2/31 181/3/31 +f 154/1/32 182/2/32 180/3/32 +f 151/1/33 181/2/33 183/3/33 +f 154/1/34 184/2/34 182/3/34 +f 151/1/35 183/2/35 185/3/35 +f 154/1/36 186/2/36 184/3/36 +f 151/1/37 185/2/37 187/3/37 +f 154/1/38 188/2/38 186/3/38 +f 151/1/39 187/2/39 189/3/39 +f 154/1/40 190/2/40 188/3/40 +f 151/1/41 189/2/41 191/3/41 +f 154/1/42 192/2/42 190/3/42 +f 151/1/43 191/2/43 193/3/43 +f 154/1/44 194/2/44 192/3/44 +f 151/1/45 193/2/45 195/3/45 +f 154/1/46 196/2/46 194/3/46 +f 151/1/47 195/2/47 197/3/47 +f 154/1/48 198/2/48 196/3/48 +f 151/1/49 197/2/49 199/3/49 +f 154/1/50 200/2/50 198/3/50 +f 151/1/51 199/2/51 201/3/51 +f 154/1/52 202/2/52 200/3/52 +f 151/1/53 201/2/53 203/3/53 +f 154/1/54 204/2/54 202/3/54 +f 151/1/55 203/2/55 205/3/55 +f 154/1/56 206/2/56 204/3/56 +f 151/1/57 205/2/57 207/3/57 +f 154/1/28 208/2/28 206/3/28 +f 151/1/29 207/2/29 209/3/29 +f 154/1/30 210/2/30 208/3/30 +f 151/1/29 209/2/29 211/3/29 +f 154/1/30 212/2/30 210/3/30 +f 151/1/58 211/2/58 213/3/58 +f 154/1/32 214/2/32 212/3/32 +f 151/1/25 213/2/25 215/3/25 +f 154/1/26 216/2/26 214/3/26 +f 151/1/59 215/2/59 152/3/59 +f 154/1/60 156/2/60 216/3/60 +f 217/1/2 218/2/2 219/3/2 +f 220/1/61 221/3/61 222/2/61 +f 223/1/62 224/2/62 225/3/62 +f 226/1/3 227/3/3 228/2/3 +f 215/1/63 216/2/63 156/3/63 +f 215/1/64 156/3/64 152/12/64 +f 213/1/65 214/2/65 216/3/65 +f 213/1/66 216/3/66 215/12/66 +f 211/1/67 212/2/67 214/3/67 +f 211/1/68 214/3/68 213/12/68 +f 209/1/69 210/2/69 212/3/69 +f 209/1/70 212/3/70 211/12/70 +f 207/1/71 208/2/71 210/3/71 +f 207/1/72 210/3/72 209/12/72 +f 205/1/73 206/2/73 208/3/73 +f 205/1/74 208/3/74 207/12/74 +f 203/1/75 204/2/75 206/3/75 +f 203/1/76 206/3/76 205/12/76 +f 201/1/77 202/2/77 204/3/77 +f 201/1/78 204/3/78 203/12/78 +f 199/1/79 200/2/79 202/3/79 +f 199/1/80 202/3/80 201/12/80 +f 197/1/81 198/2/81 200/3/81 +f 197/1/82 200/3/82 199/12/82 +f 195/1/83 196/2/83 198/3/83 +f 195/1/84 198/3/84 197/12/84 +f 193/1/85 194/2/85 196/3/85 +f 193/1/86 196/3/86 195/12/86 +f 191/1/87 192/2/87 194/3/87 +f 191/1/88 194/3/88 193/12/88 +f 189/1/89 190/2/89 192/3/89 +f 189/1/89 192/3/89 191/12/89 +f 187/1/90 188/2/90 190/3/90 +f 187/1/91 190/3/91 189/12/91 +f 185/1/92 186/2/92 188/3/92 +f 185/1/93 188/3/93 187/12/93 +f 183/1/94 184/2/94 186/3/94 +f 183/1/94 186/3/94 185/12/94 +f 181/1/95 182/2/95 184/3/95 +f 181/1/96 184/3/96 183/12/96 +f 179/1/97 180/2/97 182/3/97 +f 179/1/98 182/3/98 181/12/98 +f 177/1/99 178/2/99 180/3/99 +f 177/1/100 180/3/100 179/12/100 +f 175/1/101 176/2/101 178/3/101 +f 175/1/102 178/3/102 177/12/102 +f 173/1/103 174/2/103 176/3/103 +f 173/1/104 176/3/104 175/12/104 +f 171/1/105 172/2/105 174/3/105 +f 171/1/106 174/3/106 173/12/106 +f 169/1/107 170/2/107 172/3/107 +f 169/1/108 172/3/108 171/12/108 +f 167/1/109 168/2/109 170/3/109 +f 167/1/110 170/3/110 169/12/110 +f 165/1/111 166/2/111 168/3/111 +f 165/1/112 168/3/112 167/12/112 +f 163/1/113 164/2/113 166/3/113 +f 163/1/114 166/3/114 165/12/114 +f 161/1/115 162/2/115 164/3/115 +f 161/1/116 164/3/116 163/12/116 +f 159/1/117 160/2/117 162/3/117 +f 159/1/118 162/3/118 161/12/118 +f 157/1/119 158/2/119 160/3/119 +f 157/1/120 160/3/120 159/12/120 +f 153/1/121 155/2/121 158/3/121 +f 153/1/122 158/3/122 157/12/122 +f 152/1/123 156/2/123 155/3/123 +f 152/1/124 155/3/124 153/12/124 +f 92/1/125 89/2/125 149/3/125 +f 92/1/125 149/3/125 150/12/125 +f 150/1/126 149/2/126 147/3/126 +f 150/1/126 147/3/126 148/12/126 +f 148/1/127 147/2/127 145/3/127 +f 148/1/127 145/3/127 146/12/127 +f 146/1/128 145/2/128 143/3/128 +f 146/1/128 143/3/128 144/12/128 +f 144/1/129 143/2/129 141/3/129 +f 144/1/129 141/3/129 142/12/129 +f 142/1/130 141/2/130 140/3/130 +f 142/1/130 140/3/130 2/12/130 +f 2/1/131 140/2/131 139/3/131 +f 2/1/131 139/3/131 3/12/131 +f 3/1/132 139/2/132 137/3/132 +f 3/1/132 137/3/132 138/12/132 +f 138/1/133 137/2/133 135/3/133 +f 138/1/133 135/3/133 136/12/133 +f 136/1/134 135/2/134 133/3/134 +f 136/1/134 133/3/134 134/12/134 +f 134/1/135 133/2/135 131/3/135 +f 134/1/135 131/3/135 132/12/135 +f 132/1/136 131/2/136 129/3/136 +f 132/1/136 129/3/136 130/12/136 +f 130/1/137 129/2/137 127/3/137 +f 130/1/137 127/3/137 128/12/137 +f 128/1/138 127/2/138 125/3/138 +f 128/1/138 125/3/138 126/12/138 +f 126/1/139 125/2/139 123/3/139 +f 126/1/140 123/3/140 124/12/140 +f 124/1/141 123/2/141 121/3/141 +f 124/1/142 121/3/142 122/12/142 +f 122/1/143 121/2/143 119/3/143 +f 122/1/143 119/3/143 120/12/143 +f 120/1/144 119/2/144 117/3/144 +f 120/1/144 117/3/144 118/12/144 +f 118/1/145 117/2/145 115/3/145 +f 118/1/145 115/3/145 116/12/145 +f 116/1/146 115/2/146 113/3/146 +f 116/1/146 113/3/146 114/12/146 +f 114/1/147 113/2/147 111/3/147 +f 114/1/147 111/3/147 112/12/147 +f 112/1/148 111/2/148 109/3/148 +f 112/1/149 109/3/149 110/12/149 +f 110/1/150 109/2/150 107/3/150 +f 110/1/151 107/3/151 108/12/151 +f 108/1/152 107/2/152 105/3/152 +f 108/1/152 105/3/152 106/12/152 +f 106/1/153 105/2/153 103/3/153 +f 106/1/153 103/3/153 104/12/153 +f 104/1/154 103/2/154 101/3/154 +f 104/1/154 101/3/154 102/12/154 +f 102/1/155 101/2/155 99/3/155 +f 102/1/155 99/3/155 100/12/155 +f 100/1/156 99/2/156 97/3/156 +f 100/1/156 97/3/156 98/12/156 +f 98/1/157 97/2/157 95/3/157 +f 98/1/158 95/3/158 96/12/158 +f 96/1/159 95/2/159 93/3/159 +f 96/1/160 93/3/160 94/12/160 +f 94/1/161 93/2/161 90/3/161 +f 94/1/162 90/3/162 91/12/162 +f 91/1/163 90/2/163 89/3/163 +f 91/1/164 89/3/164 92/12/164 +f 27/1/165 23/2/165 86/3/165 +f 27/1/166 86/3/166 87/12/166 +f 84/1/167 85/2/167 87/3/167 +f 84/1/168 87/3/168 86/12/168 +f 82/1/169 83/2/169 85/3/169 +f 82/1/169 85/3/169 84/12/169 +f 80/1/170 81/2/170 83/3/170 +f 80/1/170 83/3/170 82/12/170 +f 78/1/171 79/2/171 81/3/171 +f 78/1/171 81/3/171 80/12/171 +f 76/1/172 77/2/172 79/3/172 +f 76/1/172 79/3/172 78/12/172 +f 74/1/173 75/2/173 77/3/173 +f 74/1/173 77/3/173 76/12/173 +f 72/1/153 73/2/153 75/3/153 +f 72/1/174 75/3/174 74/12/174 +f 70/1/175 71/2/175 73/3/175 +f 70/1/176 73/3/176 72/12/176 +f 68/1/177 69/2/177 71/3/177 +f 68/1/177 71/3/177 70/12/177 +f 66/1/149 67/2/149 69/3/149 +f 66/1/149 69/3/149 68/12/149 +f 64/1/178 65/2/178 67/3/178 +f 64/1/178 67/3/178 66/12/178 +f 62/1/146 63/2/146 65/3/146 +f 62/1/146 65/3/146 64/12/146 +f 60/1/179 61/2/179 63/3/179 +f 60/1/180 63/3/180 62/12/180 +f 58/1/144 59/2/144 61/3/144 +f 58/1/144 61/3/144 60/12/144 +f 56/1/181 57/2/181 59/3/181 +f 56/1/181 59/3/181 58/12/181 +f 54/1/182 55/2/182 57/3/182 +f 54/1/183 57/3/183 56/12/183 +f 52/1/184 53/2/184 55/3/184 +f 52/1/185 55/3/185 54/12/185 +f 50/1/186 51/2/186 53/3/186 +f 50/1/186 53/3/186 52/12/186 +f 48/1/187 49/2/187 51/3/187 +f 48/1/187 51/3/187 50/12/187 +f 46/1/188 47/2/188 49/3/188 +f 46/1/188 49/3/188 48/12/188 +f 44/1/189 45/2/189 47/3/189 +f 44/1/189 47/3/189 46/12/189 +f 42/1/190 43/2/190 45/3/190 +f 42/1/190 45/3/190 44/12/190 +f 40/1/191 41/2/191 43/3/191 +f 40/1/191 43/3/191 42/12/191 +f 38/1/192 39/2/192 41/3/192 +f 38/1/192 41/3/192 40/12/192 +f 36/1/193 37/2/193 39/3/193 +f 36/1/193 39/3/193 38/12/193 +f 34/1/130 35/2/130 37/3/130 +f 34/1/130 37/3/130 36/12/130 +f 32/1/194 33/2/194 35/3/194 +f 32/1/194 35/3/194 34/12/194 +f 30/1/128 31/2/128 33/3/128 +f 30/1/128 33/3/128 32/12/128 +f 28/1/195 29/2/195 31/3/195 +f 28/1/195 31/3/195 30/12/195 +f 24/1/126 26/2/126 29/3/126 +f 24/1/126 29/3/126 28/12/126 +f 23/1/196 27/2/196 26/3/196 +f 23/1/196 26/3/196 24/12/196 Modified: branches/multiphys/rcssserver3d/data/models/rightgoal.obj =================================================================== --- branches/multiphys/rcssserver3d/data/models/rightgoal.obj 2010-01-10 23:45:10 UTC (rev 140) +++ branches/multiphys/rcssserver3d/data/models/rightgoal.obj 2010-01-13 06:28:54 UTC (rev 141) @@ -1,235 +1,247 @@ # Blender3D v249 OBJ File: # www.blender3d.org mtllib rightgoal.mtl -o rightgoal +o Cylinder +v 0.466661 0.000000 0.006727 v 0.490346 -0.000000 -0.062326 v 0.494467 -0.000000 -0.047393 +v 0.466661 0.997179 0.006727 +v 0.494467 0.997179 -0.047393 +v 0.490346 0.997179 -0.062326 v 0.497519 -0.000000 -0.030383 +v 0.497519 0.997179 -0.030383 v 0.499385 -0.000000 -0.011947 +v 0.499385 0.997179 -0.011947 v 0.499994 0.000000 0.007207 +v 0.499994 0.997179 0.007207 v 0.499322 0.000000 0.026343 +v 0.499322 0.997179 0.026343 v 0.497394 0.000000 0.044726 +v 0.497394 0.997179 0.044726 v 0.494286 0.000000 0.061645 +v 0.494286 0.997179 0.061645 v 0.490116 0.000000 0.076457 +v 0.490116 0.997179 0.076457 v 0.485044 0.000000 0.088589 +v 0.485044 0.997179 0.088589 v 0.479266 0.000000 0.097575 +v 0.479266 0.997179 0.097575 v 0.473004 0.000000 0.103068 +v 0.473004 0.997179 0.103068 v 0.466498 0.000000 0.104861 +v 0.466498 0.997179 0.104861 v 0.459998 0.000000 0.102880 +v 0.459998 0.997179 0.102880 v 0.453754 0.000000 0.097207 +v 0.453754 0.997179 0.097207 v 0.448007 0.000000 0.088054 +v 0.448007 0.997179 0.088057 v 0.442976 0.000000 0.075777 +v 0.442976 0.997179 0.075777 v 0.438855 0.000000 0.060848 +v 0.438855 0.997179 0.060848 v 0.435803 0.000000 0.043837 +v 0.435803 0.997179 0.043837 v 0.433937 0.000000 0.025401 +v 0.433937 0.997179 0.025401 v 0.433328 0.000000 0.006247 +v 0.433328 0.997179 0.006247 v 0.434000 -0.000000 -0.012889 +v 0.434000 0.997179 -0.012889 v 0.435928 -0.000000 -0.031272 +v 0.435928 0.997179 -0.031272 v 0.439036 -0.000000 -0.048194 +v 0.439036 0.997179 -0.048194 v 0.443207 -0.000000 -0.063006 +v 0.443206 0.997179 -0.063003 v 0.448278 -0.000000 -0.075135 +v 0.448278 0.997179 -0.075135 v 0.454056 -0.000000 -0.084120 +v 0.454056 0.997179 -0.084120 v 0.460318 -0.000000 -0.089614 +v 0.460318 0.997179 -0.089614 v 0.466824 -0.000000 -0.091407 +v 0.466824 0.997179 -0.091407 v 0.473324 -0.000000 -0.089428 +v 0.473324 0.997179 -0.089429 v 0.479568 -0.000000 -0.083752 +v 0.479568 0.997179 -0.083752 v 0.485316 -0.000000 -0.074602 -v 0.490346 0.997179 -0.062326 -v 0.494467 0.997179 -0.047393 -v 0.497519 0.997179 -0.030383 -v 0.499385 0.997179 -0.011947 -v 0.499994 0.997179 0.007207 -v 0.499322 0.997179 0.026343 -v 0.497394 0.997179 0.044726 -v 0.494286 0.997179 0.061645 -v 0.490116 0.997179 0.076457 -v 0.485044 0.997179 0.088589 -v 0.479266 0.997179 0.097575 -v 0.473004 0.997179 0.103068 -v 0.466498 0.997179 0.104861 -v 0.459998 0.997179 0.102880 -v 0.453754 0.997179 0.097207 -v 0.448007 0.997179 0.088057 -v 0.442976 0.997179 0.075777 -v 0.438855 0.997179 0.060848 -v 0.435803 0.997179 0.043837 -v 0.433937 0.997179 0.025401 -v 0.433328 0.997179 0.006247 -v 0.434000 0.997179 -0.012889 -v 0.435928 0.997179 -0.031272 -v 0.439036 0.997179 -0.048194 -v 0.443206 0.997179 -0.063003 -v 0.448278 0.997179 -0.075135 -v 0.454056 0.997179 -0.084120 -v 0.460318 0.997179 -0.089614 -v 0.466824 0.997179 -0.091407 -v 0.473324 0.997179 -0.089429 -v 0.479568 0.997179 -0.083752 v 0.485315 0.997179 -0.074602 -v 0.466661 0.000000 0.006727 -v 0.466661 0.997179 0.006727 v -0.466661 0.997179 -0.006727 +v -0.442976 0.997179 -0.075777 +v -0.448007 0.997179 -0.088057 v -0.466661 -0.000000 -0.006727 -v -0.448007 0.997179 -0.088057 +v -0.448007 -0.000000 -0.088054 +v -0.442976 -0.000000 -0.075777 v -0.453755 0.997179 -0.097207 +v -0.453754 -0.000000 -0.097207 v -0.459998 0.997179 -0.102883 +v -0.459998 -0.000000 -0.102880 v -0.466498 0.997179 -0.104861 +v -0.466498 -0.000000 -0.104861 v -0.473004 0.997179 -0.103068 +v -0.473004 -0.000000 -0.103068 v -0.479266 0.997179 -0.097575 +v -0.479266 -0.000000 -0.097575 v -0.485044 0.997179 -0.088589 +v -0.485044 -0.000000 -0.088589 v -0.490116 0.997179 -0.076457 +v -0.490116 -0.000000 -0.076457 v -0.494286 0.997179 -0.061646 +v -0.494286 -0.000000 -0.061645 v -0.497394 0.997179 -0.044723 +v -0.497394 -0.000000 -0.044726 v -0.499322 0.997179 -0.026343 +v -0.499322 -0.000000 -0.026343 v -0.499994 0.997179 -0.007207 +v -0.499994 -0.000000 -0.007207 v -0.499385 0.997179 0.011947 +v -0.499385 0.000000 0.011947 v -0.497519 0.997179 0.030383 +v -0.497519 0.000000 0.030383 v -0.494467 0.997179 0.047393 +v -0.494467 0.000000 0.047393 v -0.490346 0.997179 0.062326 +v -0.490346 0.000000 0.062326 v -0.485315 0.997179 0.074602 +v -0.485316 0.000000 0.074602 v -0.479568 0.997179 0.083752 +v -0.479568 0.000000 0.083752 v -0.473324 0.997179 0.089428 +v -0.473324 0.000000 0.089428 v -0.466824 0.997179 0.091407 +v -0.466824 0.000000 0.091407 v -0.460318 0.997179 0.089614 +v -0.460318 0.000000 0.089614 v -0.454056 0.997179 0.084120 +v -0.454056 0.000000 0.084120 v -0.448278 0.997179 0.075135 +v -0.448278 0.000000 0.075135 v -0.443207 0.997179 0.063006 +v -0.443207 0.000000 0.063006 v -0.439036 0.997179 0.048194 +v -0.439036 0.000000 0.048194 v -0.435928 0.997179 0.031272 v -0.434000 0.997179 0.012889 +v -0.434000 0.000000 0.012889 +v -0.435928 0.000000 0.031272 v -0.433328 0.997179 -0.006247 +v -0.433328 -0.000000 -0.006247 v -0.433937 0.997179 -0.025401 +v -0.433937 -0.000000 -0.025401 v -0.435803 0.997179 -0.043837 +v -0.435803 -0.000000 -0.043837 v -0.438855 0.997179 -0.060848 -v -0.442976 0.997179 -0.075777 -v -0.448007 -0.000000 -0.088054 -v -0.453754 -0.000000 -0.097207 -v -0.459998 -0.000000 -0.102880 -v -0.466498 -0.000000 -0.104861 -v -0.473004 -0.000000 -0.103068 -v -0.479266 -0.000000 -0.097575 -v -0.485044 -0.000000 -0.088589 -v -0.490116 -0.000000 -0.076457 -v -0.494286 -0.000000 -0.061645 -v -0.497394 -0.000000 -0.044726 -v -0.499322 -0.000000 -0.026343 -v -0.499994 -0.000000 -0.007207 -v -0.499385 0.000000 0.011947 -v -0.497519 0.000000 0.030383 -v -0.494467 0.000000 0.047393 -v -0.490346 0.000000 0.062326 -v -0.485316 0.000000 0.074602 -v -0.479568 0.000000 0.083752 -v -0.473324 0.000000 0.089428 -v -0.466824 0.000000 0.091407 -v -0.460318 0.000000 0.089614 -v -0.454056 0.000000 0.084120 -v -0.448278 0.000000 0.075135 -v -0.443207 0.000000 0.063006 -v -0.439036 0.000000 0.048194 -v -0.435928 0.000000 0.031272 -v -0.434000 0.000000 0.012889 -v -0.433328 -0.000000 -0.006247 -v -0.433937 -0.000000 -0.025401 -v -0.435803 -0.000000 -0.043837 v -0.438855 -0.000000 -0.060848 -v -0.442976 -0.000000 -0.075777 +v -0.465871 0.964236 -0.006715 v -0.465814 0.986271 -0.041411 v -0.465804 0.981550 -0.047514 +v 0.467451 0.964236 0.006739 +v 0.467519 0.981550 -0.034060 +v 0.467508 0.986271 -0.027957 v -0.465796 0.976161 -0.052048 +v 0.467526 0.976161 -0.038594 v -0.465791 0.970316 -0.054839 +v 0.467531 0.970316 -0.041385 v -0.465790 0.964236 -0.055781 +v 0.467532 0.964236 -0.042330 v -0.465791 0.958158 -0.054839 +v 0.467531 0.958158 -0.041385 v -0.465796 0.952311 -0.052048 +v 0.467526 0.952311 -0.038594 v -0.465804 0.946925 -0.047514 +v 0.467519 0.946925 -0.034060 v -0.465814 0.942202 -0.041411 +v 0.467508 0.942202 -0.027957 v -0.465826 0.938326 -0.033974 +v 0.467496 0.938326 -0.020523 v -0.465840 0.935446 -0.025493 +v 0.467482 0.935446 -0.012038 v -0.465855 0.933674 -0.016287 +v 0.467467 0.933674 -0.002835 v -0.465871 0.933074 -0.006715 +v 0.467451 0.933074 0.006739 v -0.465887 0.933674 0.002859 +v 0.467435 0.933674 0.016310 v -0.465903 0.935446 0.012062 +v 0.467420 0.935446 0.025516 v -0.465917 0.938326 0.020544 +v 0.467405 0.938326 0.033998 v -0.465929 0.942202 0.027980 +v 0.467393 0.942202 0.041435 v -0.465939 0.946925 0.034083 +v 0.467383 0.946925 0.047535 v -0.465947 0.952311 0.038617 +v 0.467375 0.952311 0.052071 v -0.465951 0.958158 0.041408 +v 0.467371 0.958158 0.054862 v -0.465953 0.964236 0.042353 +v 0.467369 0.964236 0.055804 v -0.465951 0.970316 0.041408 +v 0.467371 0.970316 0.054862 v -0.465947 0.976161 0.038617 +v 0.467375 0.976161 0.052071 v -0.465939 0.981550 0.034083 +v 0.467383 0.981550 0.047535 v -0.465929 0.986271 0.027980 +v 0.467393 0.986271 0.041435 v -0.465917 0.990147 0.020544 +v 0.467405 0.990147 0.033998 v -0.465903 0.993026 0.012062 +v 0.467420 0.993026 0.025516 v -0.465887 0.994800 0.002859 +v 0.467435 0.994800 0.016310 v -0.465871 0.995399 -0.006715 +v 0.467451 0.995399 0.006739 v -0.465855 0.994800 -0.016287 +v 0.467467 0.994800 -0.002835 v -0.465840 0.993026 -0.025493 +v 0.467482 0.993026 -0.012038 v -0.465826 0.990147 -0.033974 -v 0.467508 0.986271 -0.027957 -v 0.467519 0.981550 -0.034060 -v 0.467526 0.976161 -0.038594 -v 0.467531 0.970316 -0.041385 -v 0.467532 0.964236 -0.042330 -v 0.467531 0.958158 -0.041385 -v 0.467526 0.952311 -0.038594 -v 0.467519 0.946925 -0.034060 -v 0.467508 0.942202 -0.027957 -v 0.467496 0.938326 -0.020523 -v 0.467482 0.935446 -0.012038 -v 0.467467 0.933674 -0.002835 -v 0.467451 0.933074 0.006739 -v 0.467435 0.933674 0.016310 -v 0.467420 0.935446 0.025516 -v 0.467405 0.938326 0.033998 -v 0.467393 0.942202 0.041435 -v 0.467383 0.946925 0.047535 -v 0.467375 0.952311 0.052071 -v 0.467371 0.958158 0.054862 -v 0.467369 0.964236 0.055804 -v 0.467371 0.970316 0.054862 -v 0.467375 0.976161 0.052071 -v 0.467383 0.981550 0.047535 -v 0.467393 0.986271 0.041435 -v 0.467405 0.990147 0.033998 -v 0.467420 0.993026 0.025516 -v 0.467435 0.994800 0.016310 -v 0.467451 0.995399 0.006739 -v 0.467467 0.994800 -0.002835 -v 0.467482 0.993026 -0.012038 v 0.467496 0.990147 -0.020523 -v -0.465871 0.964236 -0.006715 -v 0.467451 0.964236 0.006739 +v -0.458524 0.001554 -0.890770 +v -0.459830 0.498835 -0.105700 v -0.459830 0.000247 -0.105700 -v -0.459830 0.498835 -0.105700 -v -0.458524 0.001554 -0.890770 +v -0.465191 0.001554 -0.890770 +v -0.466496 0.000247 -0.105700 +v -0.466496 0.498835 -0.105700 +v 0.474809 0.001554 -0.890770 +v 0.473504 0.498835 -0.105700 +v 0.473504 0.000247 -0.105700 +v 0.468143 0.001554 -0.890770 +v 0.466837 0.000247 -0.105700 +v 0.466837 0.498835 -0.105700 v 0.469231 0.001554 -0.881690 v 0.467925 1.000000 -0.096621 v 0.467925 0.000247 -0.096621 -v 0.467925 1.000000 -0.096621 -v 0.469231 0.001554 -0.881690 v -0.463784 0.001554 -0.895139 -v -0.465090 1.000000 -0.110069 v -0.465090 0.000247 -0.110069 v -0.465090 1.000000 -0.110069 v -0.463784 0.001554 -0.895139 +v -0.465090 1.000000 -0.110069 +v -0.465090 0.000247 -0.110069 +v 0.469231 0.001554 -0.881690 +v 0.467925 0.000247 -0.096621 v 0.467925 1.000000 -0.096621 v 0.469231 0.001554 -0.881690 -v -0.465090 0.000247 -0.110069 +v 0.467925 1.000000 -0.096621 v -0.465090 1.000000 -0.110069 v -0.463784 0.001554 -0.895139 -v -0.465191 0.001554 -0.890770 -v -0.466496 0.498835 -0.105700 -v -0.466496 0.000247 -0.105700 -v 0.474809 0.001554 -0.890770 -v 0.473504 0.498835 -0.105700 -v 0.473504 0.000247 -0.105700 -v 0.468143 0.001554 -0.890770 -v 0.466837 0.498835 -0.105700 -v 0.466837 0.000247 -0.105700 v 0.469231 0.001554 -0.881690 v 0.467925 1.000000 -0.096621 -v 0.467925 0.000247 -0.096621 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.478737 0.520656 +vt 0.239368 1.000000 +vt 0.239368 0.520028 +vt 0.239368 0.520656 +vt 0.000000 0.520028 +vt 0.812878 0.000000 +vt 0.812878 0.520028 +vt 0.000000 0.520027 +vt 1.000000 1.000000 vn -0.000000 -1.000000 0.000000 vn 0.999999 0.000000 0.001664 vn -0.999999 -0.000000 -0.001664 @@ -428,401 +440,401 @@ vn 0.963964 -0.000000 -0.266033 usemtl grey_naogoalnet.png s off -f 68//1 126//1 125//1 -f 206//2 205//2 204//2 -f 207//3 209//3 208//3 -f 216//2 215//2 214//2 -f 226//3 228//3 227//3 -f 213//4 212//4 210//4 -f 213//4 210//4 211//4 -f 202//5 207//5 208//5 -f 202//5 208//5 203//5 +f 70/1/1 124/2/1 120/3/1 +f 211/4/2 212/5/2 213/6/2 +f 214/7/3 215/8/3 216/1/3 +f 217/7/2 218/1/2 219/8/2 +f 220/4/3 221/6/3 222/5/3 +f 223/9/4 224/10/4 225/11/4 +f 223/9/4 225/11/4 226/2/4 +f 227/9/5 214/2/5 216/11/5 +f 227/9/5 216/11/5 228/10/5 usemtl white -f 201//2 200//2 199//2 -f 217//6 219//6 218//6 -f 220//7 221//7 222//7 -f 223//3 225//3 224//3 +f 199/1/2 200/2/2 201/3/2 +f 202/1/6 203/3/6 204/2/6 +f 205/1/7 206/2/7 207/3/7 +f 208/1/3 209/3/3 210/2/3 usemtl sky-blue -f 65//1 1//1 2//1 -f 66//8 34//8 33//8 -f 65//1 2//1 3//1 -f 66//8 35//8 34//8 -f 65//1 3//1 4//1 -f 66//8 36//8 35//8 -f 65//1 4//1 5//1 -f 66//8 37//8 36//8 -f 65//1 5//1 6//1 -f 66//8 38//8 37//8 -f 65//1 6//1 7//1 -f 66//8 39//8 38//8 -f 65//1 7//1 8//1 -f 66//8 40//8 39//8 -f 65//1 8//1 9//1 -f 66//8 41//8 40//8 -f 65//1 9//1 10//1 -f 66//8 42//8 41//8 -f 65//1 10//1 11//1 -f 66//8 43//8 42//8 -f 65//1 11//1 12//1 -f 66//8 44//8 43//8 -f 65//1 12//1 13//1 -f 66//8 45//8 44//8 -f 65//1 13//1 14//1 -f 66//8 46//8 45//8 -f 65//1 14//1 15//1 -f 66//8 47//8 46//8 -f 65//1 15//1 16//1 -f 66//8 48//8 47//8 -f 65//1 16//1 17//1 -f 66//8 49//8 48//8 -f 65//1 17//1 18//1 -f 66//8 50//8 49//8 -f 65//1 18//1 19//1 -f 66//8 51//8 50//8 -f 65//1 19//1 20//1 -f 66//8 52//8 51//8 -f 65//1 20//1 21//1 -f 66//8 53//8 52//8 -f 65//1 21//1 22//1 -f 66//8 54//8 53//8 -f 65//1 22//1 23//1 -f 66//8 55//8 54//8 -f 65//1 23//1 24//1 -f 66//8 56//8 55//8 -f 65//1 24//1 25//1 -f 66//8 57//8 56//8 -f 65//1 25//1 26//1 -f 66//8 58//8 57//8 -f 65//1 26//1 27//1 -f 66//8 59//8 58//8 -f 65//1 27//1 28//1 -f 66//8 60//8 59//8 -f 65//1 28//1 29//1 -f 66//8 61//8 60//8 -f 65//1 29//1 30//1 -f 66//8 62//8 61//8 -f 65//1 30//1 31//1 -f 66//8 63//8 62//8 -f 65//1 31//1 32//1 -f 66//8 64//8 63//8 -f 32//1 1//1 65//1 -f 66//8 33//8 64//8 -f 67//8 100//8 69//8 -f 68//1 101//1 132//1 -f 67//8 69//8 70//8 -f 68//1 102//1 101//1 -f 67//8 70//8 71//8 -f 68//1 103//1 102//1 -f 67//8 71//8 72//8 -f 68//1 104//1 103//1 -f 67//8 72//8 73//8 -f 68//1 105//1 104//1 -f 67//8 73//8 74//8 -f 68//1 106//1 105//1 -f 67//8 74//8 75//8 -f 68//1 107//1 106//1 -f 67//8 75//8 76//8 -f 68//1 108//1 107//1 -f 67//8 76//8 77//8 -f 68//1 109//1 108//1 -f 67//8 77//8 78//8 -f 68//1 110//1 109//1 -f 67//8 78//8 79//8 -f 68//1 111//1 110//1 -f 67//8 79//8 80//8 -f 68//1 112//1 111//1 -f 67//8 80//8 81//8 -f 68//1 113//1 112//1 -f 67//8 81//8 82//8 -f 68//1 114//1 113//1 -f 67//8 82//8 83//8 -f 68//1 115//1 114//1 -f 67//8 83//8 84//8 -f 68//1 116//1 115//1 -f 67//8 84//8 85//8 -f 68//1 117//1 116//1 -f 67//8 85//8 86//8 -f 68//1 118//1 117//1 -f 67//8 86//8 87//8 -f 68//1 119//1 118//1 -f 67//8 87//8 88//8 -f 68//1 120//1 119//1 -f 67//8 88//8 89//8 -f 68//1 121//1 120//1 -f 67//8 89//8 90//8 -f 68//1 122//1 121//1 -f 67//8 90//8 91//8 -f 68//1 123//1 122//1 -f 67//8 91//8 92//8 -f 68//1 124//1 123//1 -f 67//8 92//8 93//8 -f 68//1 125//1 124//1 -f 67//8 93//8 94//8 -f 67//8 94//8 95//8 -f 68//1 127//1 126//1 -f 67//8 95//8 96//8 -f 68//1 128//1 127//1 -f 67//8 96//8 97//8 -f 68//1 129//1 128//1 -f 67//8 97//8 98//8 -f 68//1 130//1 129//1 -f 67//8 98//8 99//8 -f 68//1 131//1 130//1 -f 67//8 99//8 100//8 -f 68//1 132//1 131//1 -f 197//9 133//9 134//9 -f 198//10 166//10 165//10 -f 197//11 134//11 135//11 -f 198//12 167//12 166//12 -f 197//13 135//13 136//13 -f 198//14 168//14 167//14 -f 197//15 136//15 137//15 -f 198//16 169//16 168//16 -f 197//17 137//17 138//17 -f 198//18 170//18 169//18 -f 197//19 138//19 139//19 -f 198//20 171//20 170//20 -f 197//21 139//21 140//21 -f 198//22 172//22 171//22 -f 197//23 140//23 141//23 -f 198//24 173//24 172//24 -f 197//25 141//25 142//25 -f 198//26 174//26 173//26 -f 197//27 142//27 143//27 -f 198//28 175//28 174//28 -f 197//29 143//29 144//29 -f 198//30 176//30 175//30 -f 197//31 144//31 145//31 -f 198//32 177//32 176//32 -f 197//31 145//31 146//31 -f 198//32 178//32 177//32 -f 197//33 146//33 147//33 -f 198//34 179//34 178//34 -f 197//35 147//35 148//35 -f 198//36 180//36 179//36 -f 197//37 148//37 149//37 -f 198//38 181//38 180//38 -f 197//39 149//39 150//39 -f 198//40 182//40 181//40 -f 197//41 150//41 151//41 -f 198//42 183//42 182//42 -f 197//43 151//43 152//43 -f 198//44 184//44 183//44 -f 197//45 152//45 153//45 -f 198//46 185//46 184//46 -f 197//47 153//47 154//47 -f 198//48 186//48 185//48 -f 197//49 154//49 155//49 -f 198//50 187//50 186//50 -f 197//51 155//51 156//51 -f 198//52 188//52 187//52 -f 197//53 156//53 157//53 -f 198//54 189//54 188//54 -f 197//55 157//55 158//55 -f 198//56 190//56 189//56 -f 197//57 158//57 159//57 -f 198//58 191//58 190//58 -f 197//59 159//59 160//59 -f 198//30 192//30 191//30 -f 197//31 160//31 161//31 -f 198//32 193//32 192//32 -f 197//31 161//31 162//31 -f 198//32 194//32 193//32 -f 197//60 162//60 163//60 -f 198//34 195//34 194//34 -f 197//27 163//27 164//27 -f 198//28 196//28 195//28 -f 197//61 164//61 133//61 -f 198//62 165//62 196//62 -f 164//63 196//63 165//63 -f 164//64 165//64 133//64 -f 163//65 195//65 196//65 -f 163//66 196//66 164//66 -f 162//67 194//67 195//67 -f 162//68 195//68 163//68 -f 161//69 193//69 194//69 -f 161//70 194//70 162//70 -f 160//71 192//71 193//71 -f 160//72 193//72 161//72 -f 159//73 191//73 192//73 -f 159//74 192//74 160//74 -f 158//75 190//75 191//75 -f 158//76 191//76 159//76 -f 157//77 189//77 190//77 -f 157//78 190//78 158//78 -f 156//79 188//79 189//79 -f 156//80 189//80 157//80 -f 155//81 187//81 188//81 -f 155//82 188//82 156//82 -f 154//83 186//83 187//83 -f 154//84 187//84 155//84 -f 153//85 185//85 186//85 -f 153//86 186//86 154//86 -f 152//87 184//87 185//87 -f 152//88 185//88 153//88 -f 151//89 183//89 184//89 -f 151//89 184//89 152//89 -f 150//90 182//90 183//90 -f 150//91 183//91 151//91 -f 149//92 181//92 182//92 -f 149//93 182//93 150//93 -f 148//94 180//94 181//94 -f 148//94 181//94 149//94 -f 147//95 179//95 180//95 -f 147//96 180//96 148//96 -f 146//97 178//97 179//97 -f 146//98 179//98 147//98 -f 145//99 177//99 178//99 -f 145//100 178//100 146//100 -f 144//101 176//101 177//101 -f 144//102 177//102 145//102 -f 143//103 175//103 176//103 -f 143//104 176//104 144//104 -f 142//105 174//105 175//105 -f 142//106 175//106 143//106 -f 141//107 173//107 174//107 -f 141//108 174//108 142//108 -f 140//109 172//109 173//109 -f 140//110 173//110 141//110 -f 139//111 171//111 172//111 -f 139//112 172//112 140//112 -f 138//113 170//113 171//113 -f 138//114 171//114 139//114 -f 137//115 169//115 170//115 -f 137//116 170//116 138//116 -f 136//117 168//117 169//117 -f 136//118 169//118 137//118 -f 135//119 167//119 168//119 -f 135//120 168//120 136//120 -f 134//121 166//121 167//121 -f 134//122 167//122 135//122 -f 133//123 165//123 166//123 -f 133//124 166//124 134//124 -f 132//125 100//125 99//125 -f 132//125 99//125 131//125 -f 131//126 99//126 98//126 -f 131//126 98//126 130//126 -f 130//127 98//127 97//127 -f 130//127 97//127 129//127 -f 129//128 97//128 96//128 -f 129//128 96//128 128//128 -f 128//129 96//129 95//129 -f 128//129 95//129 127//129 -f 127//130 95//130 94//130 -f 127//130 94//130 126//130 -f 126//131 94//131 93//131 -f 126//131 93//131 125//131 -f 125//132 93//132 92//132 -f 125//132 92//132 124//132 -f 124//133 92//133 91//133 -f 124//133 91//133 123//133 -f 123//134 91//134 90//134 -f 123//134 90//134 122//134 -f 122//135 90//135 89//135 -f 122//135 89//135 121//135 -f 121//136 89//136 88//136 -f 121//136 88//136 120//136 -f 120//137 88//137 87//137 -f 120//137 87//137 119//137 -f 119//138 87//138 86//138 -f 119//138 86//138 118//138 -f 118//139 86//139 85//139 -f 118//140 85//140 117//140 -f 117//141 85//141 84//141 -f 117//142 84//142 116//142 -f 116//143 84//143 83//143 -f 116//143 83//143 115//143 -f 115//144 83//144 82//144 -f 115//144 82//144 114//144 -f 114//145 82//145 81//145 -f 114//145 81//145 113//145 -f 113//146 81//146 80//146 -f 113//146 80//146 112//146 -f 112//147 80//147 79//147 -f 112//147 79//147 111//147 -f 111//148 79//148 78//148 -f 111//149 78//149 110//149 -f 110//150 78//150 77//150 -f 110//151 77//151 109//151 -f 109//152 77//152 76//152 -f 109//152 76//152 108//152 -f 108//153 76//153 75//153 -f 108//153 75//153 107//153 -f 107//154 75//154 74//154 -f 107//154 74//154 106//154 -f 106//155 74//155 73//155 -f 106//155 73//155 105//155 -f 105//156 73//156 72//156 -f 105//156 72//156 104//156 -f 104//157 72//157 71//157 -f 104//158 71//158 103//158 -f 103//159 71//159 70//159 -f 103//160 70//160 102//160 -f 102//161 70//161 69//161 -f 102//162 69//162 101//162 -f 101//163 69//163 100//163 -f 101//164 100//164 132//164 -f 33//165 1//165 32//165 -f 33//166 32//166 64//166 -f 31//167 63//167 64//167 -f 31//168 64//168 32//168 -f 30//169 62//169 63//169 -f 30//169 63//169 31//169 -f 29//170 61//170 62//170 -f 29//170 62//170 30//170 -f 28//171 60//171 61//171 -f 28//171 61//171 29//171 -f 27//172 59//172 60//172 -f 27//172 60//172 28//172 -f 26//173 58//173 59//173 -f 26//173 59//173 27//173 -f 25//153 57//153 58//153 -f 25//174 58//174 26//174 -f 24//175 56//175 57//175 -f 24//176 57//176 25//176 -f 23//177 55//177 56//177 -f 23//177 56//177 24//177 -f 22//149 54//149 55//149 -f 22//149 55//149 23//149 -f 21//178 53//178 54//178 -f 21//178 54//178 22//178 -f 20//146 52//146 53//146 -f 20//146 53//146 21//146 -f 19//179 51//179 52//179 -f 19//180 52//180 20//180 -f 18//144 50//144 51//144 -f 18//144 51//144 19//144 -f 17//181 49//181 50//181 -f 17//181 50//181 18//181 -f 16//182 48//182 49//182 -f 16//183 49//183 17//183 -f 15//184 47//184 48//184 -f 15//185 48//185 16//185 -f 14//186 46//186 47//186 -f 14//186 47//186 15//186 -f 13//187 45//187 46//187 -f 13//187 46//187 14//187 -f 12//188 44//188 45//188 -f 12//188 45//188 13//188 -f 11//189 43//189 44//189 -f 11//189 44//189 12//189 -f 10//190 42//190 43//190 -f 10//190 43//190 11//190 -f 9//191 41//191 42//191 -f 9//191 42//191 10//191 -f 8//192 40//192 41//192 -f 8//192 41//192 9//192 -f 7//193 39//193 40//193 -f 7//193 40//193 8//193 -f 6//130 38//130 39//130 -f 6//130 39//130 7//130 -f 5//194 37//194 38//194 -f 5//194 38//194 6//194 -f 4//128 36//128 37//128 -f 4//128 37//128 5//128 -f 3//195 35//195 36//195 -f 3//195 36//195 4//195 -f 2//126 34//126 35//126 -f 2//126 35//126 3//126 -f 1//196 33//196 34//196 -f 1//196 34//196 2//196 +f 1/1/1 2/2/1 3/3/1 +f 4/1/8 5/2/8 6/3/8 +f 1/1/1 3/2/1 7/3/1 +f 4/1/8 8/2/8 5/3/8 +f 1/1/1 7/2/1 9/3/1 +f 4/1/8 10/2/8 8/3/8 +f 1/1/1 9/2/1 11/3/1 +f 4/1/8 12/2/8 10/3/8 +f 1/1/1 11/2/1 13/3/1 +f 4/1/8 14/2/8 12/3/8 +f 1/1/1 13/2/1 15/3/1 +f 4/1/8 16/2/8 14/3/8 +f 1/1/1 15/2/1 17/3/1 +f 4/1/8 18/2/8 16/3/8 +f 1/1/1 17/2/1 19/3/1 +f 4/1/8 20/2/8 18/3/8 +f 1/1/1 19/2/1 21/3/1 +f 4/1/8 22/2/8 20/3/8 +f 1/1/1 21/2/1 23/3/1 +f 4/1/8 24/2/8 22/3/8 +f 1/1/1 23/2/1 25/3/1 +f 4/1/8 26/2/8 24/3/8 +f 1/1/1 25/2/1 27/3/1 +f 4/1/8 28/2/8 26/3/8 +f 1/1/1 27/2/1 29/3/1 +f 4/1/8 30/2/8 28/3/8 +f 1/1/1 29/2/1 31/3/1 +f 4/1/8 32/2/8 30/3/8 +f 1/1/1 31/2/1 33/3/1 +f 4/1/8 34/2/8 32/3/8 +f 1/1/1 33/2/1 35/3/1 +f 4... [truncated message content] |
From: <a-...@us...> - 2010-01-13 13:21:38
|
Revision: 142 http://simspark.svn.sourceforge.net/simspark/?rev=142&view=rev Author: a-held Date: 2010-01-13 13:21:31 +0000 (Wed, 13 Jan 2010) Log Message: ----------- Finished bridge pattern for ContactJointHandler class made the collisionperceptor plugin a little less ODE-specific added the rcsoccersim3d script that SVN "forgot" in the last update Changes to soccer.rsg are temporary Modified Paths: -------------- branches/multiphys/rcssserver3d/data/rsg/agent/nao/soccer.rsg branches/multiphys/spark/lib/oxygen/physicsserver/contactjointhandler.cpp branches/multiphys/spark/lib/oxygen/physicsserver/contactjointhandler.h branches/multiphys/spark/lib/oxygen/physicsserver/int/contactjointhandlerint.h branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecontactjointhandler.cpp branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecontactjointhandler.h branches/multiphys/spark/lib/oxygen/physicsserver/space.cpp branches/multiphys/spark/lib/oxygen/physicsserver/space.h branches/multiphys/spark/plugin/collisionperceptor/forceresistanceperceptor.cpp branches/multiphys/spark/plugin/collisionperceptor/forceresistanceperceptor.h branches/multiphys/spark/plugin/collisionperceptor/touchperceptorhandler.cpp branches/multiphys/spark/plugin/collisionperceptor/touchperceptorhandler.h Added Paths: ----------- branches/multiphys/rcssserver3d/rcssserver3d/rcsoccersim3d.in Modified: branches/multiphys/rcssserver3d/data/rsg/agent/nao/soccer.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/soccer.rsg 2010-01-13 06:28:54 UTC (rev 141) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/soccer.rsg 2010-01-13 13:21:31 UTC (rev 142) @@ -81,6 +81,49 @@ ) ) +; create falling box + (nd AgentAspect + (setName fallBox) + (setLocalPos -4.9 -3.5 200) + (importScene rsg/boxspheres/box.rsg 1 1 1 100 matGrey) +) + + (nd AgentAspect + (setName 2Box) + (setLocalPos -4.9 -3.5 0.5) + (importScene rsg/boxspheres/box.rsg 1 0.1 2 1 matRed) +) + +(nd AgentAspect + (setName 3Box) + (setLocalPos -4.9 -2 0.5) + (importScene rsg/boxspheres/box.rsg 1 0.1 2 1 matRed) +) + +(nd AgentAspect + (setName 4Box) + (setLocalPos -4.9 -0.5 0.5) + (importScene rsg/boxspheres/box.rsg 1 0.1 2 2 matRed) +) + +(nd AgentAspect + (setName 5Box) + (setLocalPos -4.9 1 0.5) + (importScene rsg/boxspheres/box.rsg 1 0.1 2 2 matRed) +) + +(nd AgentAspect + (setName 6Box) + (setLocalPos -4.9 2.5 0.5) + (importScene rsg/boxspheres/box.rsg 1 0.1 2 3 matRed) +) + +(nd AgentAspect + (setName Sphere) + (setLocalPos -4.9 -4.2 0.5) + (importScene rsg/boxspheres/sphere.rsg 0.5 0.2 matYellow) +) + ; create skybox (nd Transform (setLocalPos 0 0 0) Added: branches/multiphys/rcssserver3d/rcssserver3d/rcsoccersim3d.in =================================================================== --- branches/multiphys/rcssserver3d/rcssserver3d/rcsoccersim3d.in (rev 0) +++ branches/multiphys/rcssserver3d/rcssserver3d/rcsoccersim3d.in 2010-01-13 13:21:31 UTC (rev 142) @@ -0,0 +1,72 @@ +#! /bin/sh + +bindir="@CMAKE_INSTALL_PREFIX@/@BINDIR@" +libdir="@CMAKE_INSTALL_PREFIX@/@LIBDIR@" + +LIBPATH="$libdir/simspark:$libdir/rcssserver3d" +if [ x"$LIBPATH" != x ] ; then + if [ x"$LD_LIBRARY_PATH" = x ] ; then + LD_LIBRARY_PATH=$LIBPATH + else + LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH + fi + export LD_LIBRARY_PATH +fi + +#-------------------------------------------------- +# option +# + +SERV="$bindir/rcssserver3d" +if [ ! -f $SERV ]; then + echo "Error: $SERV does not exist!" + echo "" + exit 1 +fi + +MON="$bindir/rcssmonitor3d" +if [ ! -f $MON ]; then + echo "Error: $MON does not exist!" + echo "" + exit 1 +fi + +AGT="$bindir/rcssagent3d" +if [ ! -f $AGT ]; then + echo "Error: $AGT does not exist!" + echo "" + exit 1 +fi + +#-------------------------------------------------- +# set handler +# + +trap kill_server INT + +#-------------------------------------------------- +# start server +# + +$SERV & +PID=$! + +#-------------------------------------------------- +# kill server +# +kill_server() +{ + kill -s INT $PID + echo "" + exit 0 +} + +#-------------------------------------------------- +# start monitor +# + +sleep 2 + +$MON & $AGT + +kill_server Property changes on: branches/multiphys/rcssserver3d/rcssserver3d/rcsoccersim3d.in ___________________________________________________________________ Added: svn:executable + * Modified: branches/multiphys/spark/lib/oxygen/physicsserver/contactjointhandler.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/contactjointhandler.cpp 2010-01-13 06:28:54 UTC (rev 141) +++ branches/multiphys/spark/lib/oxygen/physicsserver/contactjointhandler.cpp 2010-01-13 13:21:31 UTC (rev 142) @@ -32,135 +32,16 @@ ContactJointHandler::ContactJointHandler() : CollisionHandler() { mContactJointHandlerImp = boost::shared_ptr<ODEContactJointHandler>(new ODEContactJointHandler()); - - - // set up default contact surface parameters - mSurfaceParameter.mode = dContactBounce; - mSurfaceParameter.mu = dInfinity; - mSurfaceParameter.bounce = 0.8f; - mSurfaceParameter.bounce_vel = 2.0f; - - // In contactjointhandler_c.cpp, setContactSlip function, only - // accept one parameter, so two parameter is a mistake, and then - // these two value will be not initialized, but slipe mode is open - mSurfaceParameter.slip1 = 5e-3; - mSurfaceParameter.slip2 = 5e-3; - - - //mContactJointHandlerImp->Initialize(); + mContactJointHandlerImp->Initialize(); } ContactJointHandler::~ContactJointHandler() { } -float -ContactJointHandler::MixValues(const float v1, const float v2, const int n) const -{ - switch(n) - { - default: - case 0: - // undefined, default 0 - return 0.0f; - - case 1: - // first one defined - return v1; - - case 2: - // second one defined - return v2; - - case 3: - // both defined, return average - return (v1 + v2) / 2.0f; - } -} - void -ContactJointHandler::CalcSurfaceParam(dSurfaceParameters& surface, - const dSurfaceParameters& collideeParam) -{ - // init surface - surface.mode = 0; - - // calculate average mu; mu can be dInfinity, so first multiply with - // 0.5 and the sum up to avoid a range error - surface.mu = mSurfaceParameter.mu*0.5f + collideeParam.mu*0.5f; - - // soft cfm - const int nCfm = - ((mSurfaceParameter.mode & dContactSoftCFM) ? 1:0) + - ((collideeParam.mode & dContactSoftCFM) ? 2:0); - - if (nCfm>0) - { - surface.soft_cfm = MixValues - (mSurfaceParameter.soft_cfm, collideeParam.soft_cfm, nCfm); - surface.mode |= dContactSoftCFM; - } - - // soft_erp - const int nErp = - ((mSurfaceParameter.mode & dContactSoftERP) ? 1:0) + - ((collideeParam.mode & dContactSoftERP) ? 2:0); - - if (nErp>0) - { - surface.soft_erp = MixValues - (mSurfaceParameter.soft_erp, collideeParam.soft_erp, nErp); - surface.mode |= dContactSoftERP; - } - - // bounce - const int nBounce = - ((mSurfaceParameter.mode & dContactBounce) ? 1:0) + - ((collideeParam.mode & dContactBounce) ? 2:0); - - if (nBounce>0) - { - surface.bounce = MixValues - (mSurfaceParameter.bounce, collideeParam.bounce, nBounce); - - surface.bounce_vel = MixValues - (mSurfaceParameter.bounce_vel, collideeParam.bounce_vel, nBounce); - - surface.mode |= dContactBounce; - } - - // slip1 - const int nSlip1 = - ((mSurfaceParameter.mode & dContactSlip1) ? 1 : 0) + - ((collideeParam.mode & dContactSlip1) ? 2 : 0); - - if (nSlip1 > 0) - { - surface.slip1 = MixValues - (mSurfaceParameter.slip1, collideeParam.slip1, nSlip1); - - surface.mode |= dContactSlip1; - } - - // slip2 - const int nSlip2 = - ((mSurfaceParameter.mode & dContactSlip2) ? 1 : 0) + - ((collideeParam.mode & dContactSlip2) ? 2 : 0); - - if (nSlip2 > 0) - { - surface.slip2 = MixValues - (mSurfaceParameter.slip2, collideeParam.slip2, nSlip2); - - surface.mode |= dContactSlip2; - } -} - -void ContactJointHandler::HandleCollision(shared_ptr<Collider> collidee, GenericContact& contact) { - dContact& ODEContact = (dContact&) contact; - if ( (mCollider.get() == 0) || (mWorld.get() == 0) || @@ -172,8 +53,8 @@ // to create a contact joint it we must have at least one body to // attach it to. - dBodyID myBody = dGeomGetBody((dGeomID) mCollider->GetGeomID()); - dBodyID collideeBody = dGeomGetBody((dGeomID) collidee->GetGeomID()); + long myBody = mContactJointHandlerImp->RetrieveBody(mCollider->GetGeomID()); + long collideeBody = mContactJointHandlerImp->RetrieveBody(collidee->GetGeomID()); if ( (myBody == 0) && @@ -192,143 +73,134 @@ return; } - // calculate the resulting surface parameters - CalcSurfaceParam(ODEContact.surface,handler->mSurfaceParameter); + // calculate the resulting surface parameters + mContactJointHandlerImp->CalcSurfaceParam( + contact, handler->GetSurfaceParameter()); // create the contact joint and attach it to the body - dJointID joint = dJointCreateContact - ((dWorldID) mWorld->GetWorldID(), mSpace->GetODEJointGroup(), &ODEContact); + long joint = mContactJointHandlerImp->CreateContactJoint( + mWorld->GetWorldID(), mSpace->GetODEJointGroup(), contact); - dJointAttach (joint, myBody, collideeBody); + mContactJointHandlerImp->AttachContactJoint(joint, myBody, collideeBody); } void ContactJointHandler::SetSurfaceParameter(const GenericSurfaceParameter& surface) { - dSurfaceParameters& ODESurface = (dSurfaceParameters&) surface; - mSurfaceParameter = ODESurface; + mContactJointHandlerImp->SetSurfaceParameter(surface); } -const GenericSurfaceParameter& +GenericSurfaceParameter& ContactJointHandler::GetSurfaceParameter() const { - return (GenericSurfaceParameter&) mSurfaceParameter; + return mContactJointHandlerImp->GetSurfaceParameter(); } void ContactJointHandler::SetContactMode(int mode, bool set) { - if (set) - { - mSurfaceParameter.mode |= mode; - } else - { - mSurfaceParameter.mode &= ~mode; - } + mContactJointHandlerImp->SetContactMode(mode, set); } int ContactJointHandler::GetContactMode() const { - return mSurfaceParameter.mode; + return mContactJointHandlerImp->GetContactMode(); } void ContactJointHandler::SetContactBounceMode(bool set) { - SetContactMode(dContactBounce,set); + mContactJointHandlerImp->SetContactBounceMode(set); } void ContactJointHandler::SetMinBounceVel(float vel) { - mSurfaceParameter.bounce_vel = std::max<float>(0.0f,vel); + mContactJointHandlerImp->SetMinBounceVel(vel); } float ContactJointHandler::GetMinBounceVel() const { - return mSurfaceParameter.bounce_vel; + return mContactJointHandlerImp->GetMinBounceVel(); } void ContactJointHandler::SetBounceValue(float bounce) { - mSurfaceParameter.bounce = std::max<float>(0.0f,bounce); + mContactJointHandlerImp->SetBounceValue(bounce); } float ContactJointHandler::GetBounceValue() const { - return mSurfaceParameter.bounce; + return mContactJointHandlerImp->GetBounceValue(); } void ContactJointHandler::SetContactSoftERPMode(bool set) { - SetContactMode(dContactSoftERP,set); + mContactJointHandlerImp->SetContactSoftERPMode(set); } void ContactJointHandler::SetContactSoftERP(float erp) { - salt::gClamp(erp,0.0f,1.0f); - mSurfaceParameter.soft_erp = erp; + mContactJointHandlerImp->SetContactSoftERP(erp); } float ContactJointHandler::GetContactSoftERP() const { - return mSurfaceParameter.soft_erp; + return mContactJointHandlerImp->GetContactSoftERP(); } void ContactJointHandler::SetContactSoftCFMMode(bool set) { - SetContactMode(dContactSoftCFM,set); + mContactJointHandlerImp->SetContactSoftCFMMode(set); } void ContactJointHandler::SetContactSoftCFM(float cfm) { - mSurfaceParameter.soft_cfm = std::max<float>(0.0f,cfm); + mContactJointHandlerImp->SetContactSoftCFM(cfm); } float ContactJointHandler::GetContactSoftCFM() const { - return mSurfaceParameter.soft_cfm; + return mContactJointHandlerImp->GetContactSoftCFM(); } void ContactJointHandler::SetContactSlipMode (bool set) { - SetContactMode(dContactSlip1,set); - SetContactMode(dContactSlip2,set); + mContactJointHandlerImp->SetContactSlipMode(set); } void ContactJointHandler::SetContactSlip(float slip) { - mSurfaceParameter.slip1 = slip; - mSurfaceParameter.slip2 = slip; + mContactJointHandlerImp->SetContactSlip(slip); } float ContactJointHandler::GetContactSlip1() const { - return mSurfaceParameter.slip1; + return mContactJointHandlerImp->GetContactSlip1(); } float ContactJointHandler::GetContactSlip2() const { - return mSurfaceParameter.slip2; + return mContactJointHandlerImp->GetContactSlip2(); } void ContactJointHandler::SetContactMu(float mu) { - mSurfaceParameter.mu = mu; + mContactJointHandlerImp->SetContactMu(mu); } float ContactJointHandler::GetContactMu() const { - return mSurfaceParameter.mu; + return mContactJointHandlerImp->GetContactMu(); } Modified: branches/multiphys/spark/lib/oxygen/physicsserver/contactjointhandler.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/contactjointhandler.h 2010-01-13 06:28:54 UTC (rev 141) +++ branches/multiphys/spark/lib/oxygen/physicsserver/contactjointhandler.h 2010-01-13 13:21:31 UTC (rev 142) @@ -65,10 +65,10 @@ */ void SetSurfaceParameter(const GenericSurfaceParameter& surface); - /** returns the surface parameters for the contact joints taht the + /** returns the surface parameters for the contact joints that the CollisionHandler creates */ - const GenericSurfaceParameter& GetSurfaceParameter() const; + GenericSurfaceParameter& GetSurfaceParameter() const; /** sets or resets a contact mode flag in the surface parameter*/ void SetContactMode(int mode, bool set); @@ -139,16 +139,8 @@ /** returns the Coulomb friction coefficient */ float GetContactMu() const; - -protected: - f_inline float MixValues(const float v1, const float v2, const int n) const; - - void CalcSurfaceParam(dSurfaceParameters& surface, - const dSurfaceParameters& collideeParam); - dSurfaceParameters mSurfaceParameter; - -private: +protected: boost::shared_ptr<ContactJointHandlerInt> mContactJointHandlerImp; }; Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/contactjointhandlerint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/contactjointhandlerint.h 2010-01-13 06:28:54 UTC (rev 141) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/contactjointhandlerint.h 2010-01-13 13:21:31 UTC (rev 142) @@ -1,4 +1,4 @@ -/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- +/* -*- mode: c++= 0; c-basic-offset: 4= 0; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 @@ -6,24 +6,27 @@ Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: space.h 102 2009-11-18 07:24:29Z a-held $ - This program is free software; you can redistribute it and/or modify + This program is free software= 0; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. + the Free Software Foundation= 0; version 2 of the License. This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of + but WITHOUT ANY WARRANTY= 0; 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 + along with this program= 0; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef OXYGEN_CONTACTJOINTHANDLERINT_H #define OXYGEN_CONTACTJOINTHANDLERINT_H +#include <oxygen/physicsserver/ode/odewrapper.h> + #include <oxygen/oxygen_defines.h> +#include <oxygen/physicsserver/genericphysicsobjects.h> namespace oxygen { @@ -33,7 +36,35 @@ public: virtual float MixValues(const float v1, const float v2, const int n) const = 0; virtual void Initialize() = 0; + virtual long RetrieveBody(long geomID) = 0; + virtual long CreateContactJoint(long worldID, long jointGroupID, GenericContact& contact) = 0; + virtual void AttachContactJoint(long jointID, long bodyID1, long bodyID2) = 0; + virtual void CalcSurfaceParam(GenericContact& surface, GenericSurfaceParameter& collideeParam) = 0; + virtual void SetSurfaceParameter(const GenericSurfaceParameter& surface) = 0; + virtual GenericSurfaceParameter& GetSurfaceParameter() const = 0; + virtual void SetContactMode(int mode, bool set) = 0; + virtual int GetContactMode() const = 0; + virtual void SetContactBounceMode(bool set) = 0; + virtual void SetBounceValue(float bounce) = 0; + virtual float GetBounceValue() const = 0; + virtual void SetMinBounceVel(float vel) = 0; + virtual float GetMinBounceVel() const = 0; + virtual void SetContactSoftERPMode(bool set) = 0; + virtual void SetContactSoftERP(float erp) = 0; + virtual float GetContactSoftERP() const = 0; + virtual void SetContactSoftCFMMode(bool set) = 0; + virtual void SetContactSoftCFM(float cfm) = 0; + virtual float GetContactSoftCFM() const = 0; + virtual void SetContactSlipMode (bool set) = 0; + virtual void SetContactSlip(float slip) = 0; + virtual float GetContactSlip1() const = 0; + virtual float GetContactSlip2() const = 0; + virtual void SetContactMu(float mu) = 0; + virtual float GetContactMu() const = 0; + + /** the ODE surface parameters of the created contact joint */ + dSurfaceParameters mSurfaceParameter; }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecontactjointhandler.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecontactjointhandler.cpp 2010-01-13 06:28:54 UTC (rev 141) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecontactjointhandler.cpp 2010-01-13 13:21:31 UTC (rev 142) @@ -39,6 +39,40 @@ mSurfaceParameter.slip2 = 5e-3; } +long ODEContactJointHandler::RetrieveBody(long geomID){ + dGeomID ODEGeom = (dGeomID) geomID; + dBodyID ODEBody = dGeomGetBody(ODEGeom); + return (long) ODEBody; +} + +long +ODEContactJointHandler::CreateContactJoint(long worldID, long jointGroupID, GenericContact& contact){ + dWorldID ODEWorld = (dWorldID) worldID; + dJointGroupID ODEJointGroup = (dJointGroupID) jointGroupID; + dContact& ODEContact = (dContact&) contact; + + dJointID ODEJoint = dJointCreateContact + (ODEWorld, ODEJointGroup, &ODEContact); + + return (long) ODEJoint; +} + +void ODEContactJointHandler::AttachContactJoint(long jointID, long bodyID1, long bodyID2){ + dJointID ODEJoint = (dJointID) jointID; + dBodyID ODEBody1 = (dBodyID) bodyID1; + dBodyID ODEBody2 = (dBodyID) bodyID2; + + dJointAttach (ODEJoint, ODEBody1, ODEBody2); +} + +void +ODEContactJointHandler::CalcSurfaceParam(GenericContact& surface, GenericSurfaceParameter& collideeParam){ + dContact& ODEContact = (dContact&) surface; + dSurfaceParameters& ODEParams = (dSurfaceParameters&) collideeParam; + + CalcSurfaceParamInternal(ODEContact.surface, ODEParams); +} + float ODEContactJointHandler::MixValues(const float v1, const float v2, const int n) const { @@ -64,8 +98,8 @@ } void -ODEContactJointHandler::CalcSurfaceParam(dSurfaceParameters& surface, - const dSurfaceParameters& collideeParam) +ODEContactJointHandler::CalcSurfaceParamInternal(dSurfaceParameters& surface, + const dSurfaceParameters& collideeParam) { // init surface surface.mode = 0; @@ -140,3 +174,134 @@ surface.mode |= dContactSlip2; } } + +void +ODEContactJointHandler::SetSurfaceParameter(const GenericSurfaceParameter& surface) +{ + dSurfaceParameters& ODESurface = (dSurfaceParameters&) surface; + mSurfaceParameter = ODESurface; +} + +GenericSurfaceParameter& +ODEContactJointHandler::GetSurfaceParameter() const +{ + return (GenericSurfaceParameter&) mSurfaceParameter; +} + +void +ODEContactJointHandler::SetContactMode(int mode, bool set) +{ + if (set) + { + mSurfaceParameter.mode |= mode; + } else + { + mSurfaceParameter.mode &= ~mode; + } +} + +int +ODEContactJointHandler::GetContactMode() const +{ + return mSurfaceParameter.mode; +} + +void +ODEContactJointHandler::SetContactBounceMode(bool set) +{ + SetContactMode(dContactBounce,set); +} + +void +ODEContactJointHandler::SetMinBounceVel(float vel) +{ + mSurfaceParameter.bounce_vel = std::max<float>(0.0f,vel); +} + +float +ODEContactJointHandler::GetMinBounceVel() const +{ + return mSurfaceParameter.bounce_vel; +} + +void +ODEContactJointHandler::SetBounceValue(float bounce) +{ + mSurfaceParameter.bounce = std::max<float>(0.0f,bounce); +} + +float +ODEContactJointHandler::GetBounceValue() const +{ + return mSurfaceParameter.bounce; +} + +void +ODEContactJointHandler::SetContactSoftERPMode(bool set) +{ + SetContactMode(dContactSoftERP,set); +} + +void +ODEContactJointHandler::SetContactSoftERP(float erp) +{ + salt::gClamp(erp,0.0f,1.0f); + mSurfaceParameter.soft_erp = erp; +} + +float +ODEContactJointHandler::GetContactSoftERP() const +{ + return mSurfaceParameter.soft_erp; +} + +void +ODEContactJointHandler::SetContactSoftCFMMode(bool set) +{ + SetContactMode(dContactSoftCFM,set); +} + +void +ODEContactJointHandler::SetContactSoftCFM(float cfm) +{ + mSurfaceParameter.soft_cfm = std::max<float>(0.0f,cfm); +} + +float ODEContactJointHandler::GetContactSoftCFM() const +{ + return mSurfaceParameter.soft_cfm; +} + +void ODEContactJointHandler::SetContactSlipMode (bool set) +{ + SetContactMode(dContactSlip1,set); + SetContactMode(dContactSlip2,set); +} + +void ODEContactJointHandler::SetContactSlip(float slip) +{ + mSurfaceParameter.slip1 = slip; + mSurfaceParameter.slip2 = slip; +} + +float +ODEContactJointHandler::GetContactSlip1() const +{ + return mSurfaceParameter.slip1; +} + +float +ODEContactJointHandler::GetContactSlip2() const +{ + return mSurfaceParameter.slip2; +} + +void ODEContactJointHandler::SetContactMu(float mu) +{ + mSurfaceParameter.mu = mu; +} + +float ODEContactJointHandler::GetContactMu() const +{ + return mSurfaceParameter.mu; +} Modified: branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecontactjointhandler.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecontactjointhandler.h 2010-01-13 06:28:54 UTC (rev 141) +++ branches/multiphys/spark/lib/oxygen/physicsserver/ode/odecontactjointhandler.h 2010-01-13 13:21:31 UTC (rev 142) @@ -32,15 +32,38 @@ { public: ODEContactJointHandler(); - float MixValues(const float v1, const float v2, const int n) const; void Initialize(); + long RetrieveBody(long geomID); + long CreateContactJoint(long worldID, long jointGroupID, GenericContact& contact); + void AttachContactJoint(long jointID, long bodyID1, long bodyID2); + void CalcSurfaceParam(GenericContact& surface, GenericSurfaceParameter& collideeParam); + + void SetSurfaceParameter(const GenericSurfaceParameter& surface); + GenericSurfaceParameter& GetSurfaceParameter() const; + void SetContactMode(int mode, bool set); + int GetContactMode() const; + void SetContactBounceMode(bool set); + void SetBounceValue(float bounce); + float GetBounceValue() const; + void SetMinBounceVel(float vel); + float GetMinBounceVel() const; + void SetContactSoftERPMode(bool set); + void SetContactSoftERP(float erp); + float GetContactSoftERP() const; + void SetContactSoftCFMMode(bool set); + void SetContactSoftCFM(float cfm); + float GetContactSoftCFM() const; + void SetContactSlipMode (bool set); + void SetContactSlip(float slip); + float GetContactSlip1() const; + float GetContactSlip2() const; + void SetContactMu(float mu); + float GetContactMu() const; -protected: - /** the ODE surface parameters of the created contact joint */ - dSurfaceParameters mSurfaceParameter; - - void CalcSurfaceParam(dSurfaceParameters& surface, - const dSurfaceParameters& collideeParam); +protected: + f_inline float MixValues(const float v1, const float v2, const int n) const; + void CalcSurfaceParamInternal(dSurfaceParameters& surface, + const dSurfaceParameters& collideeParam); }; } //namespace oxygen Modified: branches/multiphys/spark/lib/oxygen/physicsserver/space.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/space.cpp 2010-01-13 06:28:54 UTC (rev 141) +++ branches/multiphys/spark/lib/oxygen/physicsserver/space.cpp 2010-01-13 13:21:31 UTC (rev 142) @@ -52,9 +52,9 @@ return mSpaceImp->GetSpaceID(); } -dJointGroupID Space::GetODEJointGroup() const +long Space::GetODEJointGroup() const { - return mSpaceImp->GetODEJointGroup(); + return (long) mSpaceImp->GetODEJointGroup(); } void Space::Collide() Modified: branches/multiphys/spark/lib/oxygen/physicsserver/space.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/space.h 2010-01-13 06:28:54 UTC (rev 141) +++ branches/multiphys/spark/lib/oxygen/physicsserver/space.h 2010-01-13 13:21:31 UTC (rev 142) @@ -52,7 +52,7 @@ long GetSpaceID() const; /** retuns the ID of joint group for all created contact joints */ - dJointGroupID GetODEJointGroup() const; + long GetODEJointGroup() const; /** starts ODE's collision culling system. ODE will quickly identify which pairs of geoms are potentially Modified: branches/multiphys/spark/plugin/collisionperceptor/forceresistanceperceptor.cpp =================================================================== --- branches/multiphys/spark/plugin/collisionperceptor/forceresistanceperceptor.cpp 2010-01-13 06:28:54 UTC (rev 141) +++ branches/multiphys/spark/plugin/collisionperceptor/forceresistanceperceptor.cpp 2010-01-13 13:21:31 UTC (rev 142) @@ -52,10 +52,11 @@ mBody.reset(); } -dJointFeedback *ForceResistancePerceptor::AddTouchInfo(dContact &contact) +GenericJointFeedback* ForceResistancePerceptor::AddTouchInfo(oxygen::GenericContact& contact) { - mContactList.push_front(make_pair(contact.geom, dJointFeedback())); - return &mContactList.front().second; + dContact& ODEContact = (dContact&) contact; + mContactList.push_front(make_pair(ODEContact.geom, dJointFeedback())); + return (GenericJointFeedback*) &mContactList.front().second; } bool ForceResistancePerceptor::Percept( Modified: branches/multiphys/spark/plugin/collisionperceptor/forceresistanceperceptor.h =================================================================== --- branches/multiphys/spark/plugin/collisionperceptor/forceresistanceperceptor.h 2010-01-13 06:28:54 UTC (rev 141) +++ branches/multiphys/spark/plugin/collisionperceptor/forceresistanceperceptor.h 2010-01-13 13:21:31 UTC (rev 142) @@ -24,6 +24,7 @@ #define FORCERESISTANCEPERCEPTOR_H_ #include <oxygen/agentaspect/perceptor.h> +#include <oxygen/physicsserver/genericphysicsobjects.h> #include <oxygen/physicsserver/ode/odewrapper.h> #include <oxygen/sceneserver/transform.h> #include <salt/vector.h> @@ -42,7 +43,7 @@ * feedback information. * \return the address of allocated memory */ - dJointFeedback *AddTouchInfo(dContact &contact); + oxygen::GenericJointFeedback* AddTouchInfo(oxygen::GenericContact& contact); /** adds touch information to predList \return true if data is available Modified: branches/multiphys/spark/plugin/collisionperceptor/touchperceptorhandler.cpp =================================================================== --- branches/multiphys/spark/plugin/collisionperceptor/touchperceptorhandler.cpp 2010-01-13 06:28:54 UTC (rev 141) +++ branches/multiphys/spark/plugin/collisionperceptor/touchperceptorhandler.cpp 2010-01-13 13:21:31 UTC (rev 142) @@ -22,7 +22,7 @@ #include "touchperceptorhandler.h" #include <oxygen/physicsserver/collider.h> -#include <oxygen/physicsserver/genericphysicsobjects.h> +#include <oxygen/physicsserver/ode/odecontactjointhandler.h> #include <oxygen/sceneserver/transform.h> #include <oxygen/physicsserver/world.h> #include <oxygen/physicsserver/space.h> @@ -59,15 +59,15 @@ } void TouchPerceptorHandler::HandleCollision( - boost::shared_ptr<Collider> collidee, dContact& contact) + boost::shared_ptr<Collider> collidee, GenericContact& contact) { if (mCollider.get() == 0 || mWorld.get() == 0 || mSpace.get() == 0) return; - // to create a contact joint it we must have at least one body to + // to create a contact joint we must have at least one body to // attach it to. - dBodyID myBody = dGeomGetBody((dGeomID) mCollider->GetGeomID()); - dBodyID collideeBody = dGeomGetBody((dGeomID) collidee->GetGeomID()); + long myBody = mContactJointHandlerImp->RetrieveBody(mCollider->GetGeomID()); + long collideeBody = mContactJointHandlerImp->RetrieveBody(collidee->GetGeomID()); if (myBody == 0 && collideeBody == 0) return; @@ -78,17 +78,19 @@ if (handler.get() == 0) return; - CalcSurfaceParam(contact.surface, (dSurfaceParameters&) handler->GetSurfaceParameter()); + mContactJointHandlerImp->CalcSurfaceParam( + contact, handler->GetSurfaceParameter()); - dJointID joint = dJointCreateContact((dWorldID) mWorld->GetWorldID(), - mSpace->GetODEJointGroup(), &contact); + // create the contact joint and attach it to the body + long joint = mContactJointHandlerImp->CreateContactJoint( + mWorld->GetWorldID(), mSpace->GetODEJointGroup(), contact); - dJointAttach (joint, myBody, collideeBody); - + mContactJointHandlerImp->AttachContactJoint(joint, myBody, collideeBody); + if (mForceResistancePercept.get() != 0) { - dJointFeedback *feedback = + GenericJointFeedback* feedback = mForceResistancePercept->AddTouchInfo(contact); - dJointSetFeedback(joint, feedback); + dJointSetFeedback( (dJointID) joint, (dJointFeedback*) feedback); } } Modified: branches/multiphys/spark/plugin/collisionperceptor/touchperceptorhandler.h =================================================================== --- branches/multiphys/spark/plugin/collisionperceptor/touchperceptorhandler.h 2010-01-13 06:28:54 UTC (rev 141) +++ branches/multiphys/spark/plugin/collisionperceptor/touchperceptorhandler.h 2010-01-13 13:21:31 UTC (rev 142) @@ -24,6 +24,7 @@ #define TOUCHPERCEPTORHANDLER_H_ #include <oxygen/physicsserver/contactjointhandler.h> +#include <oxygen/physicsserver/genericphysicsobjects.h> class ForceResistancePerceptor; @@ -34,7 +35,7 @@ { public: virtual void HandleCollision(boost::shared_ptr<oxygen::Collider> collidee, - dContact& contact); + oxygen::GenericContact& contact); protected: virtual void OnLink(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <a-...@us...> - 2010-02-24 05:11:50
|
Revision: 169 http://simspark.svn.sourceforge.net/simspark/?rev=169&view=rev Author: a-held Date: 2010-02-24 05:11:43 +0000 (Wed, 24 Feb 2010) Log Message: ----------- Undo some temporal changes to prepare for svn merge Modified Paths: -------------- branches/multiphys/rcssserver3d/data/rsg/agent/nao/soccer.rsg branches/multiphys/rcssserver3d/rcssserver3d/rcsoccersim3d.in branches/multiphys/spark/lib/oxygen/CMakeLists.txt Modified: branches/multiphys/rcssserver3d/data/rsg/agent/nao/soccer.rsg =================================================================== --- branches/multiphys/rcssserver3d/data/rsg/agent/nao/soccer.rsg 2010-02-23 09:13:36 UTC (rev 168) +++ branches/multiphys/rcssserver3d/data/rsg/agent/nao/soccer.rsg 2010-02-24 05:11:43 UTC (rev 169) @@ -81,49 +81,6 @@ ) ) -; create falling box - (nd AgentAspect - (setName fallBox) - (setLocalPos -4.9 -3.5 200) - (importScene rsg/boxspheres/box.rsg 1 1 1 100 matGrey) -) - - (nd AgentAspect - (setName 2Box) - (setLocalPos -4.9 -3.5 0.5) - (importScene rsg/boxspheres/box.rsg 1 0.1 2 1 matRed) -) - -(nd AgentAspect - (setName 3Box) - (setLocalPos -4.9 -2 0.5) - (importScene rsg/boxspheres/box.rsg 1 0.1 2 1 matRed) -) - -(nd AgentAspect - (setName 4Box) - (setLocalPos -4.9 -0.5 0.5) - (importScene rsg/boxspheres/box.rsg 1 0.1 2 2 matRed) -) - -(nd AgentAspect - (setName 5Box) - (setLocalPos -4.9 1 0.5) - (importScene rsg/boxspheres/box.rsg 1 0.1 2 2 matRed) -) - -(nd AgentAspect - (setName 6Box) - (setLocalPos -4.9 2.5 0.5) - (importScene rsg/boxspheres/box.rsg 1 0.1 2 3 matRed) -) - -(nd AgentAspect - (setName Sphere) - (setLocalPos -4.9 -4.2 0.5) - (importScene rsg/boxspheres/sphere.rsg 0.5 0.2 matYellow) -) - ; create skybox (nd Transform (setLocalPos 0 0 0) Modified: branches/multiphys/rcssserver3d/rcssserver3d/rcsoccersim3d.in =================================================================== --- branches/multiphys/rcssserver3d/rcssserver3d/rcsoccersim3d.in 2010-02-23 09:13:36 UTC (rev 168) +++ branches/multiphys/rcssserver3d/rcssserver3d/rcsoccersim3d.in 2010-02-24 05:11:43 UTC (rev 169) @@ -67,6 +67,6 @@ sleep 2 -$MON & $AGT +$MON kill_server Modified: branches/multiphys/spark/lib/oxygen/CMakeLists.txt =================================================================== --- branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2010-02-23 09:13:36 UTC (rev 168) +++ branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2010-02-24 05:11:43 UTC (rev 169) @@ -227,10 +227,10 @@ physicsserver/angularmotor.cpp physicsserver/angularmotor_c.cpp - #proxyserver/agentproxy.cpp - #proxyserver/proxyserver.cpp - #proxyserver/agentproxy_c.cpp - #proxyserver/proxyserver_c.cpp + proxyserver/agentproxy.cpp + proxyserver/proxyserver.cpp + proxyserver/agentproxy_c.cpp + proxyserver/proxyserver_c.cpp sceneserver/basenode.cpp sceneserver/basenode_c.cpp sceneserver/fpscontroller.cpp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <a-...@us...> - 2010-02-25 06:42:05
|
Revision: 172 http://simspark.svn.sourceforge.net/simspark/?rev=172&view=rev Author: a-held Date: 2010-02-25 06:41:58 +0000 (Thu, 25 Feb 2010) Log Message: ----------- merge trunk into branch to bring branch up to date Modified Paths: -------------- branches/multiphys/rcssserver3d/CMakeLists.txt branches/multiphys/rcssserver3d/ChangeLog branches/multiphys/rcssserver3d/NEWS branches/multiphys/rcssserver3d/RELEASE branches/multiphys/rcssserver3d/doc/users/definitions.tex branches/multiphys/rcssserver3d/doc/users/gettingstarted.tex branches/multiphys/rcssserver3d/doc/users/simulations.tex branches/multiphys/rcssserver3d/doc/users/user-manual.tex branches/multiphys/rcssserver3d/rcssmonitor3d/main.cpp branches/multiphys/rcssserver3d/windows/install_extra.nsi branches/multiphys/rcssserver3d/windows/uninstall_extra.nsi branches/multiphys/spark/CMakeLists.txt branches/multiphys/spark/ChangeLog branches/multiphys/spark/NEWS branches/multiphys/spark/RELEASE branches/multiphys/spark/lib/oxygen/CMakeLists.txt branches/multiphys/spark/lib/oxygen/physicsserver/world.h Removed Paths: ------------- branches/multiphys/rsgedit/.cproject branches/multiphys/rsgedit/.project Property Changed: ---------------- branches/multiphys/ branches/multiphys/rcssserver3d/rcssserver3d/ Property changes on: branches/multiphys ___________________________________________________________________ Modified: svn:mergeinfo - /trunk:95-101 + /trunk:95-171 Modified: branches/multiphys/rcssserver3d/CMakeLists.txt =================================================================== --- branches/multiphys/rcssserver3d/CMakeLists.txt 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/rcssserver3d/CMakeLists.txt 2010-02-25 06:41:58 UTC (rev 172) @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.6) project(rcssserver3d CXX C) -set(PACKAGE_VERSION "0.6.2") +set(PACKAGE_VERSION "0.6.3") ########## check for headerfiles/libraries ########## include(CheckIncludeFile) @@ -86,29 +86,6 @@ install(FILES ${CMAKE_BINARY_DIR}/rcssserver3d_config.h DESTINATION ${INCLUDEDIR}/${CMAKE_PROJECT_NAME}) -if (WIN32) # try to find and install third-party .dlls to bin/ directory - string(REGEX REPLACE "(.*)\\.lib" "\\1.dll" ODEDLL "${ODE_LIBRARY}") - if (EXISTS ${ODEDLL}) - install(PROGRAMS ${ODEDLL} DESTINATION ${BINDIR}) - endif (EXISTS ${ODEDLL}) - - install(DIRECTORY "${Boost_LIBRARY_DIRS}/" DESTINATION ${BINDIR} - FILES_MATCHING PATTERN "*.dll") - - string(REGEX REPLACE "(.*)\\.lib" "\\1.dll" DevIL_DLL "${DevIL_LIBRARY_IL}") - if (EXISTS ${DevIL_DLL}) - install(PROGRAMS ${DevIL_DLL} DESTINATION ${BINDIR}) - endif (EXISTS ${DevIL_DLL}) - - install(DIRECTORY "${FREETYPE_INCLUDE_DIR_ft2build}/../bin/" DESTINATION ${BINDIR} - FILES_MATCHING PATTERN "*.dll") - - set(SDL_DLL "${SDL_INCLUDE_DIR}/../lib/sdl.dll") - if (EXISTS ${SDL_DLL}) - install(PROGRAMS ${SDL_DLL} DESTINATION ${BINDIR}) - endif (EXISTS ${SDL_DLL}) -endif (WIN32) - ########### uninstall support ############ CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" Modified: branches/multiphys/rcssserver3d/ChangeLog =================================================================== --- branches/multiphys/rcssserver3d/ChangeLog 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/rcssserver3d/ChangeLog 2010-02-25 06:41:58 UTC (rev 172) @@ -1,3 +1,31 @@ +2010-01-18 Hedayat Vatankhah <he...@gr...> + + * windows/uninstall_extra.nsi: + - rename: simspark -> rcssserver3d + +2010-01-17 Hedayat Vatankhah <he...@gr...> + + * doc/users/gettingstarted.tex: + * doc/users/simulations.tex: + * doc/users/user-manual.tex: + - updated to reflect some new changes + + * RELEASE: + * NEWS: + - preparing for a new release + + * CMakeLists.txt: + - removed installation of third party libraries. these are now included + in simspark package. + - bumped package version to 0.6.3 + + * windows/install_extra.nsi: + - use rcssserver3d instead of simspark. + - added thirdparty library path to the path + + * rcssserver3d/CMakeLists.txt: + - do not install shell scripts and symbolic links on Windows + 2010-01-11 Hedayat Vatankhah <he...@gr...> * RELEASE: Modified: branches/multiphys/rcssserver3d/NEWS =================================================================== --- branches/multiphys/rcssserver3d/NEWS 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/rcssserver3d/NEWS 2010-02-25 06:41:58 UTC (rev 172) @@ -1,3 +1,33 @@ +[0.6.3] +In this release, we are preparing for a simulation with more robots than before. +The current target is to have 6 vs 6 games, so we have made some changes to +make the simulator more suitable for it. The most notable changes made in +rcssserver3d package in this direction are: +1. Disabling the internal monitor by default: starting from this version, the +simulation server (simspark binary, now called rcssserver3d) no longer brings +up a monitor when run. To actually view the simulation, a monitor (e.g. +rcsmonitor3d which is included in this package) should be run separately. This +separation noticeably improves the performance of the server. A new executable +called "rcsoccersim3d" is provided which runs both the simulation server and a +monitor on the local machine. +2. Bigger field: in this version, field dimensions and goal width are 1.5 times +larger than before to provide enough area for 6 vs 6 games. + +* New names: + - rcssserver3d: the old simspark binary has been renamed to rcssserver3d, as + it more clearly shows the functionality of the simulator. A symbolic link + called simspark is provided for compatibility. + - rcsoccersim3d: as stated above, running rcssserver3d (formerly simspark) + no longer starts a monitor to view the simulation, and a monitor should be + run separately. For users' convenience a new executable called rcsoccersim3d + is provided which runs both rcssserver3d and rcssmonitor3 to connect to + the running simulator. + +* Other notable changes: + - Added HMDP effector/perceptor + - Some compilation fixes + - Improved Windows support + [0.6.2] This release is mainly a bug-fix release, and is the last release before RoboCup 2009 competitions. Modified: branches/multiphys/rcssserver3d/RELEASE =================================================================== --- branches/multiphys/rcssserver3d/RELEASE 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/rcssserver3d/RELEASE 2010-02-25 06:41:58 UTC (rev 172) @@ -1,10 +1,30 @@ -RELEASE News of rcssserver3d-0.6.3 (In progress) +RELEASE News of rcssserver3d-0.6.3 -* Most notable changes: - - Name change: simspark -> rcssserver3d. To make the functionality more clear. - - No internal monitor by default. Run rcssmonitor3d separately to see the game. - As another option, you might run rcsoccersim3d which runs both - rcssserver3d (simspark) and rcssmonitor3d on the local machine. +In this release, we are preparing for a simulation with more robots than before. +The current target is to have 6 vs 6 games, so we have made some changes to +make the simulator more suitable for it. The most notable changes made in +rcssserver3d package in this direction are: +1. Disabling the internal monitor by default: starting from this version, the +simulation server (simspark binary, now called rcssserver3d) no longer brings +up a monitor when run. To actually view the simulation, a monitor (e.g. +rcsmonitor3d which is included in this package) should be run separately. This +separation noticeably improves the performance of the server. A new executable +called "rcsoccersim3d" is provided which runs both the simulation server and a +monitor on the local machine. +2. Bigger field: in this version, field dimensions and goal width are 1.5 times +larger than before to provide enough area for 6 vs 6 games. + +* New names: + - rcssserver3d: the old simspark binary has been renamed to rcssserver3d, as + it more clearly shows the functionality of the simulator. A symbolic link + called simspark is provided for compatibility. + - rcsoccersim3d: as stated above, running rcssserver3d (formerly simspark) + no longer starts a monitor to view the simulation, and a monitor should be + run separately. For users' convenience a new executable called rcsoccersim3d + is provided which runs both rcssserver3d and rcssmonitor3 to connect to + the running simulator. + +* Other notable changes: - Added HMDP effector/perceptor - Some compilation fixes - Improved Windows support Modified: branches/multiphys/rcssserver3d/doc/users/definitions.tex =================================================================== --- branches/multiphys/rcssserver3d/doc/users/definitions.tex 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/rcssserver3d/doc/users/definitions.tex 2010-02-25 06:41:58 UTC (rev 172) @@ -128,7 +128,7 @@ \vspace*{-0.25cm} \hspace*{-3cm}% \begin{minipage}[b]{3cm} - \textsf{\Large\flushleft{February 2009}} + \textsf{\Large\flushleft{January 2010}} \end{minipage} \end{titlepage}% Modified: branches/multiphys/rcssserver3d/doc/users/gettingstarted.tex =================================================================== --- branches/multiphys/rcssserver3d/doc/users/gettingstarted.tex 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/rcssserver3d/doc/users/gettingstarted.tex 2010-02-25 06:41:58 UTC (rev 172) @@ -5,8 +5,6 @@ \section{Download and Installation Instructions} \label{section:install} -%Currently the simspark SVN builds only for Linux (the Win32 build system is not yet ported/tested, so we should focus on *nix systems. - This chapter explains how to install SimSpark on an Ubuntu Linux. It should work with slight modifications on other distributions like Fedora, Suse and especially Debian system\footnote{For more guides please visit Simspark Wiki: @@ -50,18 +48,21 @@ \begin{enumerate} \item Ruby \item The Open Dynamics Engine (ODE) -\item The boost C++ libraries +\item The Boost C++ Libraries +\item Freetype +\item Developer Image Library (DevIL) +\item OpenGL +\item SDL \end{enumerate} -The rendering of SimSpark can be omitted from the build process +Some parts of SimSpark can be omitted from the build process therefore these packages are optional: \begin{enumerate} -\item OpenGL -\item SDL -\item Freetype -\item Developer Image Library (DevIL) -\item Tiff library (libtiff) +\item wxWidgets Library +\item FMOD Sound Library +\item Latex (pdflatex): to generate developers manual +\item Doxygen: to generate API documentation \end{enumerate} \texttt{\$ sudo apt-get install g++ subversion cmake libfreetype6-dev libode0-dev libsdl-dev ruby1.8 ruby1.8-dev libdevil-dev libboost-dev libboost-thread-dev libboost-regex-dev} @@ -145,7 +146,7 @@ \item Run the simulation -\texttt{\$ simspark} +\texttt{\$ rcsoccersim3d} \item Optionally @@ -197,7 +198,7 @@ \item{Start the Server} The first step is to start the simulation server. To do this type -\texttt{simspark} on the console. The server is by default configured +\texttt{rcssserver3d} on the console. The server is by default configured to run without internal monitor support and to start the soccer simulation. @@ -206,7 +207,7 @@ \begin{verbatim} -simspark, a monolithic simulator 0.1 +rcssserver3d, a monolithic simulator 0.6.x Copyright (C) 2004 Markus Rollmann, Universit�t Koblenz. Copyright (C) 2004, The RoboCup Soccer Server Maintenance Group. Modified: branches/multiphys/rcssserver3d/doc/users/simulations.tex =================================================================== --- branches/multiphys/rcssserver3d/doc/users/simulations.tex 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/rcssserver3d/doc/users/simulations.tex 2010-02-25 06:41:58 UTC (rev 172) @@ -9,7 +9,7 @@ \subsection{Overview} -We implemented a simulation for SimSpark where two teams of up to 5 +We implemented a simulation for SimSpark where two teams of up to 6 humanoid robots play soccer against each other. This seemingly simple setup poses a challenge to agent implementers on several levels. @@ -48,12 +48,12 @@ \subsection{Environment and Objects on the Field} -The dimensions of the soccer field are 50 by 32 meters. The center -spot has a radius of 4.5 meters. Each goal is 9 by 2 meter with a -height of 4 meters. The soccer field is surrounded by a border of 10 +The dimensions of the soccer field are 18 by 12 meters. The center +spot has a radius of 4.5 meters. Each goal is 2.1 by 0.6 meter with a +height of 0.8 meters. The soccer field is surrounded by a border of 10 meters in each direction. Space outside this border area is not -reachable by an agent. The soccer ball has a radius of 0.4 meter and a -mass of 430 gram. +reachable by an agent. The soccer ball has a radius of 0.04 meter and a +mass of 26 grams. At each corner of the soccer field, and at the goal posts, a distinctive flag is placed. The positions of these flags are fixed and known to Modified: branches/multiphys/rcssserver3d/doc/users/user-manual.tex =================================================================== --- branches/multiphys/rcssserver3d/doc/users/user-manual.tex 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/rcssserver3d/doc/users/user-manual.tex 2010-02-25 06:41:58 UTC (rev 172) @@ -4,7 +4,7 @@ \\ Feng Xue \\ Marian Buchta \\ Hedayat Vatankhah} \title{Simspark User Manual} -\date{February 2009} +\date{January 2010} \begin{document} Modified: branches/multiphys/rcssserver3d/rcssmonitor3d/main.cpp =================================================================== --- branches/multiphys/rcssserver3d/rcssmonitor3d/main.cpp 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/rcssserver3d/rcssmonitor3d/main.cpp 2010-02-25 06:41:58 UTC (rev 172) @@ -31,7 +31,7 @@ #endif #if __APPLE__ -#include <SDL.h> +#include <SDL/SDL.h> #endif using namespace spark; Property changes on: branches/multiphys/rcssserver3d/rcssserver3d ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/rcssserver3d/simspark:95-101 + /trunk/rcssserver3d/rcssserver3d:102-171 /trunk/rcssserver3d/simspark:95-101 Modified: branches/multiphys/rcssserver3d/windows/install_extra.nsi =================================================================== --- branches/multiphys/rcssserver3d/windows/install_extra.nsi 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/rcssserver3d/windows/install_extra.nsi 2010-02-25 06:41:58 UTC (rev 172) @@ -1,24 +1,24 @@ -CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Simspark.lnk" "$INSTDIR\bin\simspark.cmd" +CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\RCSSServer3D.lnk" "$INSTDIR\bin\rcssserver3d.cmd" CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\RCSSMonitor3D.lnk" "$INSTDIR\bin\rcssmonitor3d.cmd" !insertmacro MUI_STARTMENU_WRITE_END !define MUI_STARTMENUPAGE_CURRENT_ID "SOMETHING_NOT_AVAILABLE" WriteRegExpandStr HKLM 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment\' 'RCSSSERVER3D_DIR' '$INSTDIR' ClearErrors -FileOpen $0 $INSTDIR\bin\simspark.cmd w -FileWrite $0 'PATH=%PATH%;%SPARK_DIR%\lib\simspark;%RCSSSERVER3D_DIR%\lib\rcssserver3d$\n' +FileOpen $0 $INSTDIR\bin\rcssserver3d.cmd w +FileWrite $0 'PATH=%PATH%;%SPARK_DIR%\lib\simspark;%SPARK_DIR%\lib\thirdparty;%RCSSSERVER3D_DIR%\lib\rcssserver3d$\n' FileWrite $0 'cd "%RCSSSERVER3D_DIR%\bin\"$\n' -FileWrite $0 'simspark.exe %1 %2 %3 %4' +FileWrite $0 'rcssserver3d.exe %1 %2 %3 %4' FileClose $0 ClearErrors FileOpen $0 $INSTDIR\bin\rcssmonitor3d.cmd w -FileWrite $0 'PATH=%PATH%;%SPARK_DIR%\lib\simspark;%RCSSSERVER3D_DIR%\lib\rcssserver3d$\n' +FileWrite $0 'PATH=%PATH%;%SPARK_DIR%\lib\simspark;%SPARK_DIR%\lib\thirdparty;%RCSSSERVER3D_DIR%\lib\rcssserver3d$\n' FileWrite $0 'cd "%RCSSSERVER3D_DIR%\bin\"$\n' FileWrite $0 'rcssmonitor3d.exe %1 %2 %3 %4' FileClose $0 ClearErrors FileOpen $0 $INSTDIR\bin\rcssagent3d.cmd w -FileWrite $0 'PATH=%PATH%;%SPARK_DIR%\lib\simspark;%RCSSSERVER3D_DIR%\lib\rcssserver3d$\n' +FileWrite $0 'PATH=%PATH%;%SPARK_DIR%\lib\simspark;%SPARK_DIR%\lib\thirdparty;%RCSSSERVER3D_DIR%\lib\rcssserver3d$\n' FileWrite $0 'cd "%RCSSSERVER3D_DIR%\bin\"$\n' FileWrite $0 'rcssagent3d.exe %1 %2 %3 %4' FileClose $0 Modified: branches/multiphys/rcssserver3d/windows/uninstall_extra.nsi =================================================================== --- branches/multiphys/rcssserver3d/windows/uninstall_extra.nsi 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/rcssserver3d/windows/uninstall_extra.nsi 2010-02-25 06:41:58 UTC (rev 172) @@ -1,4 +1,4 @@ -Delete '$INSTDIR\bin\simspark.cmd' +Delete '$INSTDIR\bin\rcssserver3d.cmd' Delete '$INSTDIR\bin\rcssmonitor3d.cmd' Delete '$INSTDIR\bin\rcssagent3d.cmd' DeleteRegValue HKLM 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment\' 'RCSSSERVER3D_DIR' @@ -6,5 +6,5 @@ Var /GLOBAL STARTMENU_DIR_FORLINKS !insertmacro MUI_STARTMENU_GETFOLDER Application $STARTMENU_DIR_FORLINKS -Delete "$SMPROGRAMS\$STARTMENU_DIR_FORLINKS\Simspark.lnk" +Delete "$SMPROGRAMS\$STARTMENU_DIR_FORLINKS\RCSSServer3D.lnk" Delete "$SMPROGRAMS\$STARTMENU_DIR_FORLINKS\RCSSMonitor3D.lnk" Deleted: branches/multiphys/rsgedit/.cproject =================================================================== --- branches/multiphys/rsgedit/.cproject 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/rsgedit/.cproject 2010-02-25 06:41:58 UTC (rev 172) @@ -1,203 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<?fileVersion 4.0.0?> - -<cproject> -<storageModule moduleId="org.eclipse.cdt.core.settings"> -<cconfiguration id="org.eclipse.linuxtools.cdt.autotools.configuration.build.1624744412"> -<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.linuxtools.cdt.autotools.configuration.build.1624744412" moduleId="org.eclipse.cdt.core.settings" name="Build (GNU)"> -<externalSettings/> -<extensions> -<extension id="org.eclipse.linuxtools.cdt.autotools.AutotoolsScannerInfoProvider" point="org.eclipse.cdt.core.ScannerInfoProvider"/> -<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> -<extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/> -<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> -<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> -<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> -<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> -</extensions> -</storageModule> -<storageModule moduleId="cdtBuildSystem" version="4.0.0"> -<configuration artifactName="rsgedit" buildArtefactType="org.eclipse.linuxtools.cdt.autotools.buildArtefactType.autotools" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.linuxtools.cdt.autotools.buildArtefactType.autotools" cleanCommand="rm -rf" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.linuxtools.cdt.autotools.configuration.build.1624744412" name="Build (GNU)" parent="org.eclipse.linuxtools.cdt.autotools.configuration.build"> -<folderInfo id="org.eclipse.linuxtools.cdt.autotools.configuration.build.1624744412." name="/" resourcePath=""> -<toolChain id="org.eclipse.linuxtools.cdt.autotools.toolChain.1056057064" name="GNU Autotools Toolchain" superClass="org.eclipse.linuxtools.cdt.autotools.toolChain"> -<targetPlatform id="org.eclipse.linuxtools.cdt.autotools.toolchain.targetPlatform.757894881" isAbstract="false" name="GNU Autotools Target Platform" superClass="org.eclipse.linuxtools.cdt.autotools.toolchain.targetPlatform"/> -<builder buildPath="${workspace_loc:/rsgedit/build}" id="org.eclipse.linuxtools.cdt.autotools.toolchain.builder.2124673284" managedBuildOn="true" name="Autotools Makefile Generator.Build (GNU)" superClass="org.eclipse.linuxtools.cdt.autotools.toolchain.builder"/> -<tool id="org.eclipse.linuxtools.cdt.autotools.gnu.toolchain.tool.configure.1477411908" name="configure" superClass="org.eclipse.linuxtools.cdt.autotools.gnu.toolchain.tool.configure"/> -<tool id="org.eclipse.linuxtools.cdt.autotools.toolchain.tool.autogen.2131199809" name="autogen.sh" superClass="org.eclipse.linuxtools.cdt.autotools.toolchain.tool.autogen"/> -</toolChain> -</folderInfo> -</configuration> -</storageModule> -<storageModule moduleId="scannerConfiguration"> -<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="makefileGenerator"> -<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<scannerConfigBuildInfo instanceId="org.eclipse.linuxtools.cdt.autotools.configuration.build.1624744412;org.eclipse.linuxtools.cdt.autotools.configuration.build.1624744412."> -<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"/> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="makefileGenerator"> -<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -</scannerConfigBuildInfo> -</storageModule> -<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> -</cconfiguration> -</storageModule> -<storageModule moduleId="cdtBuildSystem" version="4.0.0"> -<project id="rsgedit.org.eclipse.linuxtools.cdt.autotools.projectType.255708800" name="GNU Autotools" projectType="org.eclipse.linuxtools.cdt.autotools.projectType"/> -</storageModule> -</cproject> Deleted: branches/multiphys/rsgedit/.project =================================================================== --- branches/multiphys/rsgedit/.project 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/rsgedit/.project 2010-02-25 06:41:58 UTC (rev 172) @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>rsgedit</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.linuxtools.cdt.autotools.genmakebuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.cdt.core.ccnature</nature> - <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> - <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> - <nature>org.eclipse.cdt.core.cnature</nature> - </natures> -</projectDescription> Modified: branches/multiphys/spark/CMakeLists.txt =================================================================== --- branches/multiphys/spark/CMakeLists.txt 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/spark/CMakeLists.txt 2010-02-25 06:41:58 UTC (rev 172) @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.6) project(simspark CXX C) -set(PACKAGE_VERSION "0.1.2") +set(PACKAGE_VERSION "0.2") ########## check for headerfiles/libraries ########## include(CheckIncludeFile) @@ -143,15 +143,15 @@ set(SALT_SO_VERSION 0) set(SALT_VERSION ${SALT_SO_VERSION}.3.2) set(ZEITGEIST_SO_VERSION 3) -set(ZEITGEIST_VERSION ${ZEITGEIST_SO_VERSION}.0.2) +set(ZEITGEIST_VERSION ${ZEITGEIST_SO_VERSION}.1.0) set(OXYGEN_SO_VERSION 3) -set(OXYGEN_VERSION ${OXYGEN_SO_VERSION}.2.4) +set(OXYGEN_VERSION ${OXYGEN_SO_VERSION}.3.0) set(KEROSIN_SO_VERSION 1) -set(KEROSIN_VERSION ${KEROSIN_SO_VERSION}.0.2) +set(KEROSIN_VERSION ${KEROSIN_SO_VERSION}.1.0) set(SPARK_SO_VERSION 0) set(SPARK_VERSION ${SPARK_SO_VERSION}.0.0) set(RCSSNET_SO_VERSION 0) -set(RCSSNET_VERSION ${RCSSNET_SO_VERSION}.0.0) +set(RCSSNET_VERSION ${RCSSNET_SO_VERSION}.1.0) ########## additional variables for -config scripts ########## set(prefix ${CMAKE_INSTALL_PREFIX}) @@ -190,6 +190,35 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/sparkconfig.h DESTINATION ${INCLUDEDIR}/${CMAKE_PROJECT_NAME}) +if (WIN32) # try to find and install third-party .dlls to lib/thirdparty directory + set(THLIBDIR ${LIBDIR}/thirdparty) + + string(REGEX REPLACE "(.*)\\.lib" "\\1.dll" ODEDLL "${ODE_LIBRARY}") + if (EXISTS ${ODEDLL}) + install(PROGRAMS ${ODEDLL} DESTINATION ${THLIBDIR}) + endif (EXISTS ${ODEDLL}) + + install(DIRECTORY "${Boost_LIBRARY_DIRS}/" DESTINATION ${THLIBDIR} + FILES_MATCHING PATTERN "*.dll") + + string(REGEX REPLACE "(.*)\\.lib" "\\1.dll" DevIL_DLL "${DevIL_LIBRARY_IL}") + if (EXISTS ${DevIL_DLL}) + install(PROGRAMS ${DevIL_DLL} DESTINATION ${THLIBDIR}) + endif (EXISTS ${DevIL_DLL}) + + string(REGEX REPLACE "(.*)/ruby.exe" "\\1/" RUBY_BINDIR "${RUBY_EXECUTABLE}") + install(DIRECTORY "${RUBY_BINDIR}" + DESTINATION ${THLIBDIR} FILES_MATCHING PATTERN "*.dll") + + install(DIRECTORY "${FREETYPE_INCLUDE_DIR_ft2build}/../bin/" + DESTINATION ${THLIBDIR} FILES_MATCHING PATTERN "*.dll") + + set(SDL_DLL "${SDL_INCLUDE_DIR}/../lib/sdl.dll") + if (EXISTS ${SDL_DLL}) + install(PROGRAMS ${SDL_DLL} DESTINATION ${THLIBDIR}) + endif (EXISTS ${SDL_DLL}) +endif (WIN32) + ########### uninstall support ############ CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" Modified: branches/multiphys/spark/ChangeLog =================================================================== --- branches/multiphys/spark/ChangeLog 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/spark/ChangeLog 2010-02-25 06:41:58 UTC (rev 172) @@ -1,3 +1,19 @@ +2010-01-17 Hedayat Vatankhah <he...@gr...> + + * NEWS: + * RELEASE: + - preparing for the new release (0.2) + + * lib/oxygen/proxyserver/agentproxy.cpp: + - added a temporary workaround to allow compilation under windows + + * CMakeLists.txt: + - add required third party .dlls on windows to simspark rather than + rcssserver3d, which will be installed in lib/thirdparty directory. + ruby dlls will be included too. + - bumped library major versions: zeitgeist, oxygen, kerosin and rcssnet + - bumped package version to 0.2 + 2010-01-01 Hedayat Vatankhah <he...@gr...> * lib/oxygen/proxyserver/proxyserver.h: Modified: branches/multiphys/spark/NEWS =================================================================== --- branches/multiphys/spark/NEWS 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/spark/NEWS 2010-02-25 06:41:58 UTC (rev 172) @@ -1,3 +1,37 @@ +[0.2] +In this release you can find some bug and compilation fixes, improved Windows +support and some new features including a new sensor and features to facilitate +agent debugging and development. It also provides a more deterministic behavior +for agents which should make them more reliable. + +* New features: + - An Accelerometer sensor which reports the linear acceleration + - A "Sync Mode" operation is introduced. In this mode, the server will not + advance to the next cycle until all connected agents send a "(syn)" command + to the server. You can use this mode by setting "agentSyncMode" to true in + simspark.rb (or spark.rb) + - Simulator will run in simulation time mode instead of real time + if "useRealTime" variable is set to false in simspark.rb (or spark.rb) + +* More deterministic agent-server communication + - Simspark will now collect received commands right before sending + sense data of the last cycle. So, any commands which is sent by agents + after receiving new sense data will be executed in the next cycle, not the + current one. This results in a more deterministic behavior, and agents' + efficiency should not change between remote and local runs considerably. + +* More convenience: + - Simspark should always accept connections. No more "Connection refused" + messages and the need to wait for simspark's network port to be freed! + - To make changes to most of the resource files (e.g. simspark.rb), you can + create a copy in ~/.simspark directory and make desired changes there. The + directory structure of the original files should be preserved (e.g. + rsg/agent/nao/nao.rgs) + +* Fixes: + - Compilation fixes + - Fixed some rendering bugs (agents not visible through goals) + [0.1.2] This release brings some bugfixes, better performance and also better Windows support. A Windows installer will be available too. This is the first version Modified: branches/multiphys/spark/RELEASE =================================================================== --- branches/multiphys/spark/RELEASE 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/spark/RELEASE 2010-02-25 06:41:58 UTC (rev 172) @@ -1,12 +1,20 @@ -RELEASE News of simspark-0.1.3 (in progress) +RELEASE News of simspark-0.2 -SOME INTERESTING COMMENTS! +In this release you can find some bug and compilation fixes, improved Windows +support and some new features including a new sensor and features to facilitate +agent debugging and development. It also provides a more deterministic behavior +for agents which should make them more reliable. -Main changes of this release are: - - Compilation fixes - - Improved Windows support - - Simspark should always accept connections. No more "Connection refused" - messages and the need to wait for simspark's network port to be freed! +* New features: + - An Accelerometer sensor which reports the linear acceleration + - A "Sync Mode" operation is introduced. In this mode, the server will not + advance to the next cycle until all connected agents send a "(syn)" command + to the server. You can use this mode by setting "agentSyncMode" to true in + simspark.rb (or spark.rb) + - Simulator will run in simulation time mode instead of real time + if "useRealTime" variable is set to false in simspark.rb (or spark.rb) + +* More deterministic agent-server communication - Simspark will now collect received commands right before sending sense data of the last cycle. So, any commands which is sent by agents after receiving new sense data will be executed in the next cycle, not the @@ -25,5 +33,17 @@ directory structure of the original files should be preserved (e.g. rsg/agent/nao/nao.rgs) +* More convenience: + - Simspark should always accept connections. No more "Connection refused" + messages and the need to wait for simspark's network port to be freed! + - To make changes to most of the resource files (e.g. simspark.rb), you can + create a copy in ~/.simspark directory and make desired changes there. The + directory structure of the original files should be preserved (e.g. + rsg/agent/nao/nao.rgs) + +* Fixes: + - Compilation fixes + - Fixed some rendering bugs (agents not visible through goals) + You can get the package on the Simspark page on SourceForge at http://sourceforge.net/projects/simspark/ Modified: branches/multiphys/spark/lib/oxygen/CMakeLists.txt =================================================================== --- branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2010-02-25 06:41:58 UTC (rev 172) @@ -121,6 +121,8 @@ monitorserver/monitoritem.h monitorserver/custommonitor.h monitorserver/monitorcmdparser.h + proxyserver/agentproxy.h + proxyserver/proxyserver.h ) if(SPADES_FOUND) set(oxygen_LIB_HDRS @@ -283,6 +285,10 @@ monitorserver/custommonitor_c.cpp monitorserver/monitorcmdparser.cpp monitorserver/monitorcmdparser_c.cpp + proxyserver/agentproxy.cpp + proxyserver/agentproxy_c.cpp + proxyserver/proxyserver.cpp + proxyserver/proxyserver_c.cpp ) if(SPADES_FOUND) set(oxygen_LIB_SRCS Modified: branches/multiphys/spark/lib/oxygen/physicsserver/world.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/world.h 2010-02-24 05:31:06 UTC (rev 171) +++ branches/multiphys/spark/lib/oxygen/physicsserver/world.h 2010-02-25 06:41:58 UTC (rev 172) @@ -127,6 +127,6 @@ DECLARE_CLASS(World); -} +}; #endif //OXYGEN_WORLD_H This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <a-...@us...> - 2010-02-25 07:00:02
|
Revision: 173 http://simspark.svn.sourceforge.net/simspark/?rev=173&view=rev Author: a-held Date: 2010-02-25 06:59:54 +0000 (Thu, 25 Feb 2010) Log Message: ----------- Clean up after SVN merge Modified Paths: -------------- branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector.cpp branches/multiphys/spark/lib/oxygen/CMakeLists.txt Modified: branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector.cpp =================================================================== --- branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector.cpp 2010-02-25 06:41:58 UTC (rev 172) +++ branches/multiphys/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector.cpp 2010-02-25 06:59:54 UTC (rev 173) @@ -264,7 +264,7 @@ double tpos = servo_target_pos[i]; float err = servo_gain[i] * (tpos - servo_angle[i]); - joint->SetParameter(dParamVel, err); + joint->SetParameter(2 /*dParamVel*/, err); if (abs(err) > 0.00001) { Modified: branches/multiphys/spark/lib/oxygen/CMakeLists.txt =================================================================== --- branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2010-02-25 06:41:58 UTC (rev 172) +++ branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2010-02-25 06:59:54 UTC (rev 173) @@ -89,8 +89,8 @@ physicsserver/int/universaljointint.h physicsserver/int/worldint.h - #proxyserver/agentproxy.h - #proxyserver/proxyserver.h + proxyserver/agentproxy.h + proxyserver/proxyserver.h sceneserver/sceneimporter.h sceneserver/basenode.h sceneserver/fpscontroller.h @@ -121,8 +121,6 @@ monitorserver/monitoritem.h monitorserver/custommonitor.h monitorserver/monitorcmdparser.h - proxyserver/agentproxy.h - proxyserver/proxyserver.h ) if(SPADES_FOUND) set(oxygen_LIB_HDRS @@ -229,10 +227,6 @@ physicsserver/angularmotor.cpp physicsserver/angularmotor_c.cpp - proxyserver/agentproxy.cpp - proxyserver/proxyserver.cpp - proxyserver/agentproxy_c.cpp - proxyserver/proxyserver_c.cpp sceneserver/basenode.cpp sceneserver/basenode_c.cpp sceneserver/fpscontroller.cpp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |