From: <he...@us...> - 2008-12-19 19:13:43
|
Revision: 20 http://simspark.svn.sourceforge.net/simspark/?rev=20&view=rev Author: hedayat Date: 2008-12-19 19:13:20 +0000 (Fri, 19 Dec 2008) Log Message: ----------- Replaced make_shared() function calls with .lock() function call, fixing a compilation problem with recent boost versoins. Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/plugin/soccer/agentstateperceptor/agentstateperceptor.cpp trunk/rcssserver3d/plugin/soccer/catcheffector/catcheffector.cpp trunk/rcssserver3d/plugin/soccer/driveeffector/driveeffector.cpp trunk/rcssserver3d/plugin/soccer/kickeffector/kickeffector.cpp trunk/rcssserver3d/plugin/soccer/pantilteffector/pantilteffector.cpp trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.cpp trunk/rcssserver3d/plugin/soccer/sayeffector/sayeffector.cpp trunk/rcssserver3d/plugin/soccer/visionperceptor/visionperceptor.cpp Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2008-12-19 18:12:56 UTC (rev 19) +++ trunk/rcssserver3d/ChangeLog 2008-12-19 19:13:20 UTC (rev 20) @@ -0,0 +1,12 @@ +2008-12-19 Hedayat Vatankhah <he...@gr...> + + * plugin/soccer/kickeffector/kickeffector.cpp: + * plugin/soccer/driveeffector/driveeffector.cpp: + * plugin/soccer/catcheffector/catcheffector.cpp: + * plugin/soccer/visionperceptor/visionperceptor.cpp: + * plugin/soccer/sayeffector/sayeffector.cpp: + * plugin/soccer/pantilteffector/pantilteffector.cpp: + * plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.cpp: + * plugin/soccer/agentstateperceptor/agentstateperceptor.cpp: + - Replaced make_shared() with .lock() function call.(fixed compilation + error with recent boost versions.) \ No newline at end of file Modified: trunk/rcssserver3d/plugin/soccer/agentstateperceptor/agentstateperceptor.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/agentstateperceptor/agentstateperceptor.cpp 2008-12-19 18:12:56 UTC (rev 19) +++ trunk/rcssserver3d/plugin/soccer/agentstateperceptor/agentstateperceptor.cpp 2008-12-19 19:13:20 UTC (rev 20) @@ -61,7 +61,7 @@ predicate.parameter.Clear(); shared_ptr<BaseNode> parent = - shared_dynamic_cast<BaseNode>(make_shared(GetParent())); + shared_dynamic_cast<BaseNode>(GetParent().lock()); if (parent.get() == 0) { Modified: trunk/rcssserver3d/plugin/soccer/catcheffector/catcheffector.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/catcheffector/catcheffector.cpp 2008-12-19 18:12:56 UTC (rev 19) +++ trunk/rcssserver3d/plugin/soccer/catcheffector/catcheffector.cpp 2008-12-19 19:13:20 UTC (rev 20) @@ -177,7 +177,7 @@ SoccerBase::GetSoccerRuleAspect(*this,mSoccerRule); - mAgent = shared_dynamic_cast<AgentAspect>(make_shared(GetParent())); + mAgent = shared_dynamic_cast<AgentAspect>(GetParent().lock()); if (mAgent.get() == 0) { Modified: trunk/rcssserver3d/plugin/soccer/driveeffector/driveeffector.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/driveeffector/driveeffector.cpp 2008-12-19 18:12:56 UTC (rev 19) +++ trunk/rcssserver3d/plugin/soccer/driveeffector/driveeffector.cpp 2008-12-19 19:13:20 UTC (rev 20) @@ -50,7 +50,7 @@ } shared_ptr<BaseNode> parent = - shared_dynamic_cast<BaseNode>(make_shared(GetParent())); + shared_dynamic_cast<BaseNode>(GetParent().lock()); if (parent.get() == 0) { Modified: trunk/rcssserver3d/plugin/soccer/kickeffector/kickeffector.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/kickeffector/kickeffector.cpp 2008-12-19 18:12:56 UTC (rev 19) +++ trunk/rcssserver3d/plugin/soccer/kickeffector/kickeffector.cpp 2008-12-19 19:13:20 UTC (rev 20) @@ -181,7 +181,7 @@ SoccerBase::GetBall(*this,mBall); SoccerBase::GetBallBody(*this,mBallBody); - mAgent = shared_dynamic_cast<AgentAspect>(make_shared(GetParent())); + mAgent = shared_dynamic_cast<AgentAspect>(GetParent().lock()); if (mAgent.get() == 0) { Modified: trunk/rcssserver3d/plugin/soccer/pantilteffector/pantilteffector.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/pantilteffector/pantilteffector.cpp 2008-12-19 18:12:56 UTC (rev 19) +++ trunk/rcssserver3d/plugin/soccer/pantilteffector/pantilteffector.cpp 2008-12-19 19:13:20 UTC (rev 20) @@ -50,7 +50,7 @@ } shared_ptr<BaseNode> parent = - shared_dynamic_cast<BaseNode>(make_shared(GetParent())); + shared_dynamic_cast<BaseNode>(GetParent().lock()); if (parent.get() == 0) { Modified: trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.cpp 2008-12-19 18:12:56 UTC (rev 19) +++ trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.cpp 2008-12-19 19:13:20 UTC (rev 20) @@ -155,7 +155,7 @@ SoccerBase::GetActiveScene(*this,mActiveScene); shared_ptr<AgentAspect> agent_aspect = - make_shared(FindParentSupportingClass<AgentAspect>()); + FindParentSupportingClass<AgentAspect>().lock(); if (agent_aspect == 0) { GetLog()->Error() @@ -164,7 +164,7 @@ else { mAgentAspect = agent_aspect; - agent_aspect = make_shared(agent_aspect->FindParentSupportingClass<AgentAspect>()); + agent_aspect = agent_aspect->FindParentSupportingClass<AgentAspect>().lock(); if (agent_aspect != 0) { mAgentAspect = agent_aspect; @@ -236,12 +236,12 @@ od.mObj = shared_static_cast<ObjectState>(*i); shared_ptr<BaseNode> node = shared_dynamic_cast<BaseNode>(mActiveScene); - shared_ptr<AgentAspect> agent_aspect = make_shared( - od.mObj->FindParentSupportingClass<AgentAspect>()); + shared_ptr<AgentAspect> agent_aspect = + od.mObj->FindParentSupportingClass<AgentAspect>().lock(); if (agent_aspect != 0) { - shared_ptr<AgentAspect> aspect = make_shared( - agent_aspect->FindParentSupportingClass<AgentAspect>()); + shared_ptr<AgentAspect> aspect = + agent_aspect->FindParentSupportingClass<AgentAspect>().lock(); if (aspect != 0) { agent_aspect = aspect; @@ -293,7 +293,7 @@ if (agent_aspect != 0) { shared_ptr<AgentAspect> aspect = - make_shared(agent_aspect->FindParentSupportingClass<AgentAspect>()); + agent_aspect->FindParentSupportingClass<AgentAspect>().lock(); if (aspect != 0) { agent_aspect = aspect; Modified: trunk/rcssserver3d/plugin/soccer/sayeffector/sayeffector.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/sayeffector/sayeffector.cpp 2008-12-19 18:12:56 UTC (rev 19) +++ trunk/rcssserver3d/plugin/soccer/sayeffector/sayeffector.cpp 2008-12-19 19:13:20 UTC (rev 20) @@ -142,7 +142,7 @@ SoccerBase::GetAgentState(*this,mAgentState); SoccerBase::GetSoccerRuleAspect(*this,mSoccerRule); - mAgent = shared_dynamic_cast<AgentAspect>(make_shared(GetParent())); + mAgent = shared_dynamic_cast<AgentAspect>(GetParent().lock()); if (mAgent.get() == 0) { Modified: trunk/rcssserver3d/plugin/soccer/visionperceptor/visionperceptor.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/visionperceptor/visionperceptor.cpp 2008-12-19 18:12:56 UTC (rev 19) +++ trunk/rcssserver3d/plugin/soccer/visionperceptor/visionperceptor.cpp 2008-12-19 19:13:20 UTC (rev 20) @@ -77,7 +77,7 @@ SoccerBase::GetActiveScene(*this,mActiveScene); shared_ptr<AgentAspect> agent_aspect = - make_shared(FindParentSupportingClass<AgentAspect>()); + FindParentSupportingClass<AgentAspect>().lock(); if (agent_aspect == 0) { GetLog()->Error() @@ -86,7 +86,7 @@ else { mAgentAspect = agent_aspect; - agent_aspect = make_shared(agent_aspect->FindParentSupportingClass<AgentAspect>()); + agent_aspect = agent_aspect->FindParentSupportingClass<AgentAspect>().lock(); if (agent_aspect != 0) { mAgentAspect = agent_aspect; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2009-01-20 16:13:49
|
Revision: 23 http://simspark.svn.sourceforge.net/simspark/?rev=23&view=rev Author: hedayat Date: 2009-01-20 16:13:20 +0000 (Tue, 20 Jan 2009) Log Message: ----------- Some small fixes in running scripts Adding rcssserver3d's installation directory to the list of resource locations (not very clean!) Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/configure.ac trunk/rcssserver3d/rcssmonitor3d/Makefile.am trunk/rcssserver3d/rcssmonitor3d/main.cpp trunk/rcssserver3d/rcssmonitor3d/rcssmonitor3d.rb trunk/rcssserver3d/simspark/main.cpp trunk/rcssserver3d/simspark/simspark.rb trunk/rcssserver3d/windows/rcssserver3d_config.h Property Changed: ---------------- trunk/rcssserver3d/ Property changes on: trunk/rcssserver3d ___________________________________________________________________ Modified: svn:ignore - .project .cproject Makefile.in rcssserver3d_config.h rcssserver3d_config.h.in configure stamp-h1 aclocal.m4 autom4te.cache config.status .cdtconfigure.Build (GNU) libtool Makefile + .project .cproject Makefile.in rcssserver3d_config.h rcssserver3d_config.h.in configure stamp-h1 aclocal.m4 autom4te.cache config.status .cdtconfigure.Build (GNU) libtool Makefile .settings Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2009-01-20 16:06:07 UTC (rev 22) +++ trunk/rcssserver3d/ChangeLog 2009-01-20 16:13:20 UTC (rev 23) @@ -1,3 +1,19 @@ +2009-01-20 Hedayat Vatankhah <he...@gr...> + + * rcssmonitor3d/Makefile.am: + - added rpath + + * rcssmonitor3d/rcssmonitor3d.rb: + - changed monitorspark.rb to rcssmonitor3d.rb + + * rcssmonitor3d/main.cpp (MonitorSpark::InitApp): + * simspark/main.cpp (SimSpark::InitApp): + - adding rcss3d's installation directory to the list of resource locations. + + * windows/rcssserver3d_config.h: + * configure.ac: + - added new define: RCSS_BUNDLE_PATH to store rcss3d's data directory. + 2008-12-19 Hedayat Vatankhah <he...@gr...> * plugin/soccer/kickeffector/kickeffector.cpp: Modified: trunk/rcssserver3d/configure.ac =================================================================== --- trunk/rcssserver3d/configure.ac 2009-01-20 16:06:07 UTC (rev 22) +++ trunk/rcssserver3d/configure.ac 2009-01-20 16:13:20 UTC (rev 23) @@ -40,6 +40,8 @@ AC_CHECK_HEADERS([backward/hash_map hash_map],break, AC_MSG_NOTICE(['hash_map' will be substituted by 'map'. If you need hash_map install stlport])) +AC_DEFINE_UNQUOTED(RCSS_BUNDLE_PATH,["$prefix/share/"PACKAGE_NAME],["Data dir"]) + # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE Modified: trunk/rcssserver3d/rcssmonitor3d/Makefile.am =================================================================== --- trunk/rcssserver3d/rcssmonitor3d/Makefile.am 2009-01-20 16:06:07 UTC (rev 22) +++ trunk/rcssserver3d/rcssmonitor3d/Makefile.am 2009-01-20 16:13:20 UTC (rev 23) @@ -12,9 +12,15 @@ @SPARK_CPPFLAGS@ @ZEITGEIST_CPPFLAGS@ \ @OXYGEN_CPPFLAGS@ @KEROSIN_CPPFLAGS@ +if NO_RPATH AM_LDFLAGS = @SALT_LDFLAGS@ \ @SPARK_LDFLAGS@ @ZEITGEIST_LDFLAGS@ \ @OXYGEN_LDFLAGS@ @KEROSIN_LDFLAGS@ +else +AM_LDFLAGS = -Wl,--rpath,$(DESTDIR)$(pkglibdir) \ + @SALT_LDFLAGS@ @SPARK_LDFLAGS@ @ZEITGEIST_LDFLAGS@ \ + @OXYGEN_LDFLAGS@ @KEROSIN_LDFLAGS@ +endif rcssmonitor3d_SOURCES = \ main.cpp Modified: trunk/rcssserver3d/rcssmonitor3d/main.cpp =================================================================== --- trunk/rcssserver3d/rcssmonitor3d/main.cpp 2009-01-20 16:06:07 UTC (rev 22) +++ trunk/rcssserver3d/rcssmonitor3d/main.cpp 2009-01-20 16:13:20 UTC (rev 23) @@ -20,10 +20,16 @@ #include <spark/spark.h> #include <zeitgeist/zeitgeist.h> +#include <zeitgeist/fileserver/fileserver.h> #include <oxygen/simulationserver/simulationserver.h> #include <kerosin/renderserver/rendercontrol.h> #include <kerosin/inputserver/inputcontrol.h> +#ifdef HAVE_CONFIG_H +#undef PACKAGE_NAME +#include <rcssserver3d_config.h> +#endif + using namespace spark; using namespace kerosin; using namespace oxygen; @@ -93,6 +99,7 @@ bool MonitorSpark::InitApp(int argc, char** argv) { + GetCore()->GetFileServer()->AddResourceLocation(RCSS_BUNDLE_PATH); GetSimulationServer()->SetSimStep(0.02); PrintGreeting(); @@ -115,7 +122,7 @@ GetScriptServer()->Eval(fileStr); } - GetScriptServer()->Run("monitorspark.rb"); + GetScriptServer()->Run("rcssmonitor3d.rb"); // tell the inputControl node the loaction of our camera shared_ptr<InputControl> inputCtr = GetInputControl(); Modified: trunk/rcssserver3d/rcssmonitor3d/rcssmonitor3d.rb =================================================================== --- trunk/rcssserver3d/rcssmonitor3d/rcssmonitor3d.rb 2009-01-20 16:06:07 UTC (rev 22) +++ trunk/rcssserver3d/rcssmonitor3d/rcssmonitor3d.rb 2009-01-20 16:13:20 UTC (rev 23) @@ -1,5 +1,5 @@ # -# monitorspark.rb +# rcssmonitor3d.rb # sparkSetupRendering() @@ -27,7 +27,7 @@ ) # setup default input bindings -run "bindings.rb" +run "scripts/bindings.rb" # setup default materials common to all simulations run "scripts/materials.rb" Modified: trunk/rcssserver3d/simspark/main.cpp =================================================================== --- trunk/rcssserver3d/simspark/main.cpp 2009-01-20 16:06:07 UTC (rev 22) +++ trunk/rcssserver3d/simspark/main.cpp 2009-01-20 16:13:20 UTC (rev 23) @@ -20,10 +20,16 @@ #include <spark/spark.h> #include <zeitgeist/zeitgeist.h> +#include <zeitgeist/fileserver/fileserver.h> #include <oxygen/simulationserver/simulationserver.h> #include <kerosin/renderserver/rendercontrol.h> #include <kerosin/inputserver/inputcontrol.h> +#ifdef HAVE_CONFIG_H +#undef PACKAGE_NAME +#include <rcssserver3d_config.h> +#endif + using namespace spark; using namespace kerosin; using namespace oxygen; @@ -88,6 +94,7 @@ bool SimSpark::InitApp(int argc, char** argv) { + GetCore()->GetFileServer()->AddResourceLocation(RCSS_BUNDLE_PATH); GetSimulationServer()->SetSimStep(0.02f); PrintGreeting(); Modified: trunk/rcssserver3d/simspark/simspark.rb =================================================================== --- trunk/rcssserver3d/simspark/simspark.rb 2009-01-20 16:06:07 UTC (rev 22) +++ trunk/rcssserver3d/simspark/simspark.rb 2009-01-20 16:13:20 UTC (rev 23) @@ -35,7 +35,7 @@ end # setup default input bindings -run "bindings.rb" +run "scripts/bindings.rb" # setup default materials common to all simulations run "scripts/materials.rb" Modified: trunk/rcssserver3d/windows/rcssserver3d_config.h =================================================================== --- trunk/rcssserver3d/windows/rcssserver3d_config.h 2009-01-20 16:06:07 UTC (rev 22) +++ trunk/rcssserver3d/windows/rcssserver3d_config.h 2009-01-20 16:13:20 UTC (rev 23) @@ -4,6 +4,7 @@ #define HAVE_KEROSIN_KEROSIN_H 1 #define PACKAGE_NAME "rcssserver3d" +#define RCSS_BUNDLE_PATH "." #define HAVE_WINSOCK2_H 1 #define HAVE_SOCKET 1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2009-01-21 18:14:26
|
Revision: 27 http://simspark.svn.sourceforge.net/simspark/?rev=27&view=rev Author: hedayat Date: 2009-01-21 18:14:01 +0000 (Wed, 21 Jan 2009) Log Message: ----------- Added CMake support to rcssserver3d Modified Paths: -------------- trunk/rcssserver3d/doc/Doxyfile.in Added Paths: ----------- trunk/rcssserver3d/CMakeLists.txt trunk/rcssserver3d/cmake/ trunk/rcssserver3d/cmake/FindSpark.cmake trunk/rcssserver3d/data/CMakeLists.txt trunk/rcssserver3d/doc/CMakeLists.txt trunk/rcssserver3d/doc/users/CMakeLists.txt trunk/rcssserver3d/plugin/CMakeLists.txt trunk/rcssserver3d/plugin/soccer/CMakeLists.txt trunk/rcssserver3d/plugin/soccermonitor/CMakeLists.txt trunk/rcssserver3d/rcssagent3d/CMakeLists.txt trunk/rcssserver3d/rcssmonitor3d/CMakeLists.txt trunk/rcssserver3d/rcssserver3d_config.h.cmake trunk/rcssserver3d/simspark/CMakeLists.txt Added: trunk/rcssserver3d/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/CMakeLists.txt (rev 0) +++ trunk/rcssserver3d/CMakeLists.txt 2009-01-21 18:14:01 UTC (rev 27) @@ -0,0 +1,81 @@ +cmake_minimum_required(VERSION 2.6) + +project(rcssserver3d CXX C) +set(PACKAGE_VERSION "0.6") + +########## check for headerfiles/libraries ########## +include(CheckIncludeFile) +check_include_file("sys/socket.h" HAVE_SYS_SOCKET_H) +check_include_file("netinet/in.h" HAVE_NETINET_IN_H) +check_include_file("arpa/inet.h" HAVE_ARPA_INET_H) + +set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/) +find_package(Spark REQUIRED) +find_package(Freetype REQUIRED) + +########## add extra flags ########## +set(CMAKE_BUILD_TYPE Debug CACHE STRING "Release or Debug build type") +add_definitions(-DHAVE_CONFIG_H) +include_directories(${CMAKE_BINARY_DIR}) +if (UNIX) + set(CMAKE_CXX_FLAGS "-Wno-deprecated") + set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -W -Wall -Woverloaded-virtual") + set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG") +endif (UNIX) + +set(BINDIR "bin" CACHE PATH "The directory to install binaries into.") +set(LIBDIR "lib" CACHE PATH "The directory to install libraries into.") +set(DATADIR "share" CACHE PATH "The directory to install data files into.") +set(INCLUDEDIR "include" CACHE PATH "The directory to install includes into.") +set(RPATH_DIRECTORIES ${SPARK_LIB_DIR} + "${CMAKE_INSTALL_PREFIX}/${LIBDIR}/${CMAKE_PROJECT_NAME}") +set(CMAKE_SHARED_MODULE_PREFIX "") + +mark_as_advanced(BINDIR LIBDIR DATADIR INCLUDEDIR) + +########## generate configuration file ########## +if (APPLE) + # TODO: it probably doesn't work on Mac OSX. Please fix it! + set(BUNDLE_PATH ${CMAKE_INSTALL_PREFIX}/share/${CMAKE_PROJECT_NAME}) +elseif (UNIX) + set(BUNDLE_PATH ${CMAKE_INSTALL_PREFIX}/share/${CMAKE_PROJECT_NAME}) +else (APPLE) + set(BUNDLE_PATH .) +endif (APPLE) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/rcssserver3d_config.h.cmake + ${CMAKE_CURRENT_BINARY_DIR}/rcssserver3d_config.h) + +########## add subdirectories ############ +add_subdirectory(data) +add_subdirectory(doc) +add_subdirectory(plugin) +add_subdirectory(rcssagent3d) +add_subdirectory(rcssmonitor3d) +add_subdirectory(simspark) + + +########### install files ############### + +install(FILES AUTHORS ChangeLog COPYING NEWS README THANKS TODO + DESTINATION ${DATADIR}/doc/${CMAKE_PROJECT_NAME}) +install(FILES ${CMAKE_BINARY_DIR}/rcssserver3d_config.h + DESTINATION ${INCLUDEDIR}/${CMAKE_PROJECT_NAME}) + +########### CPack section ############# +set(CPACK_SOURCE_GENERATOR TGZ) +set(CPACK_SOURCE_IGNORE_FILES + /CVS/ /[.]svn/ /.*[.]o /autom4te[.]cache/ /[.].* /bootstrap /RELEASE + /rpm.am /msi.am) +set(CPACK_PACKAGE_VERSION ${PACKAGE_VERSION}) +set(CPACK_SOURCE_PACKAGE_FILE_NAME + ${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION}) + +include(CPack) + +#original Makefile.am contents follow: + +#DISTCLEANFILES = $(top_builddir)/macosX/SDLMain.o $(top_builddir)/macosX/libSDLmain.a +#EXTRA_DIST = macosX/fwcopy macosX/mkapp macosX/plugincopy \ +# macosX/SDLMain.h macosX/SDLMain.m \ +# windows/rcssserver3d_config.h windows/simspark.iss windows/spark.ico Property changes on: trunk/rcssserver3d/CMakeLists.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/rcssserver3d/cmake/FindSpark.cmake =================================================================== --- trunk/rcssserver3d/cmake/FindSpark.cmake (rev 0) +++ trunk/rcssserver3d/cmake/FindSpark.cmake 2009-01-21 18:14:01 UTC (rev 27) @@ -0,0 +1,145 @@ +# - Find Spark +# Find the native Spark includes and libraries +# +# SPARK_INCLUDE_DIR - where to find spark include files +# SPARK_LIB_DIR - where to find spark libraries +# SPARK_LIBRARIES - List of libraries when using spark. +# SPARK_FOUND - True if spark found. +# SALT_INCLUDE_DIR - where to find salt include files +# SALT_LIBRARIES - List of libraries when using salt. +# SALT_FOUND - True if salt found. +# ZEITGEIST_INCLUDE_DIR - where to find zeitgeist include files +# ZEITGEIST_LIBRARIES - List of libraries when using zeitgeist. +# ZEITGEIST_FOUND - True if zeitgeist found. +# OXYGEN_INCLUDE_DIR - where to find oxygen include files +# OXYGEN_LIBRARIES - List of libraries when using oxygen. +# OXYGEN_FOUND - True if oxygen found. +# KEROSIN_INCLUDE_DIR - where to find kerosin include files +# KEROSIN_LIBRARIES - List of libraries when using kerosin. +# KEROSIN_FOUND - True if kerosin found. + +# Spark section +IF (SPARK_INCLUDE_DIR) + # Already in cache, be silent + SET(SPARK_FIND_QUIETLY TRUE) +ENDIF (SPARK_INCLUDE_DIR) + +FIND_PATH(SPARK_INCLUDE_DIR spark/spark.h PATH_SUFFIXES simspark) + +SET(SPARK_NAMES spark spark_debug) +FIND_LIBRARY(SPARK_LIBRARY NAMES ${SPARK_NAMES} PATH_SUFFIXES simspark ) +GET_FILENAME_COMPONENT(SPARK_LIB_DIR ${SPARK_LIBRARY} PATH) + +# handle the QUIETLY and REQUIRED arguments and set SPARK_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(SPARK DEFAULT_MSG SPARK_LIBRARY + SPARK_INCLUDE_DIR) + +IF(SPARK_FOUND) + SET( SPARK_LIBRARIES ${SPARK_LIBRARY} ) +ELSE(SPARK_FOUND) + SET( SPARK_LIBRARIES ) +ENDIF(SPARK_FOUND) + +MARK_AS_ADVANCED( SPARK_LIBRARY SPARK_INCLUDE_DIR ) + +# Salt section +IF (SALT_INCLUDE_DIR) + # Already in cache, be silent + SET(SALT_FIND_QUIETLY TRUE) +ENDIF (SALT_INCLUDE_DIR) + +FIND_PATH(SALT_INCLUDE_DIR salt/salt.h PATH_SUFFIXES simspark) + +SET(SALT_NAMES salt salt_debug) +FIND_LIBRARY(SALT_LIBRARY NAMES ${SALT_NAMES} PATH_SUFFIXES simspark ) + +# handle the QUIETLY and REQUIRED arguments and set SALT_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(SALT DEFAULT_MSG SALT_LIBRARY + SALT_INCLUDE_DIR) + +IF(SALT_FOUND) + SET( SALT_LIBRARIES ${SALT_LIBRARY} ) +ELSE(SALT_FOUND) + SET( SALT_LIBRARIES ) +ENDIF(SALT_FOUND) + +MARK_AS_ADVANCED( SALT_LIBRARY SALT_INCLUDE_DIR ) + +# Zeitgeist section +IF (ZEITGEIST_INCLUDE_DIR) + # Already in cache, be silent + SET(ZEITGEIST_FIND_QUIETLY TRUE) +ENDIF (ZEITGEIST_INCLUDE_DIR) + +FIND_PATH(ZEITGEIST_INCLUDE_DIR zeitgeist/zeitgeist.h PATH_SUFFIXES simspark) + +SET(ZEITGEIST_NAMES zeitgeist zeitgeist_debug) +FIND_LIBRARY(ZEITGEIST_LIBRARY NAMES ${ZEITGEIST_NAMES} PATH_SUFFIXES simspark) + +# handle the QUIETLY and REQUIRED arguments and set ZEITGEIST_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(ZEITGEIST DEFAULT_MSG ZEITGEIST_LIBRARY + ZEITGEIST_INCLUDE_DIR) + +IF(ZEITGEIST_FOUND) + SET( ZEITGEIST_LIBRARIES ${ZEITGEIST_LIBRARY} ) +ELSE(ZEITGEIST_FOUND) + SET( ZEITGEIST_LIBRARIES ) +ENDIF(ZEITGEIST_FOUND) + +MARK_AS_ADVANCED( ZEITGEIST_LIBRARY ZEITGEIST_INCLUDE_DIR ) + +# Oxygen section +IF (OXYGEN_INCLUDE_DIR) + # Already in cache, be silent + SET(OXYGEN_FIND_QUIETLY TRUE) +ENDIF (OXYGEN_INCLUDE_DIR) + +FIND_PATH(OXYGEN_INCLUDE_DIR oxygen/oxygen.h PATH_SUFFIXES simspark) + +SET(OXYGEN_NAMES oxygen oxygen_debug) +FIND_LIBRARY(OXYGEN_LIBRARY NAMES ${OXYGEN_NAMES} PATH_SUFFIXES simspark ) + +# handle the QUIETLY and REQUIRED arguments and set OXYGEN_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(OXYGEN DEFAULT_MSG OXYGEN_LIBRARY + OXYGEN_INCLUDE_DIR) + +IF(OXYGEN_FOUND) + SET( OXYGEN_LIBRARIES ${OXYGEN_LIBRARY} ) +ELSE(OXYGEN_FOUND) + SET( OXYGEN_LIBRARIES ) +ENDIF(OXYGEN_FOUND) + +MARK_AS_ADVANCED( OXYGEN_LIBRARY OXYGEN_INCLUDE_DIR ) + +# Kerosin section +IF (KEROSIN_INCLUDE_DIR) + # Already in cache, be silent + SET(KEROSIN_FIND_QUIETLY TRUE) +ENDIF (KEROSIN_INCLUDE_DIR) + +FIND_PATH(KEROSIN_INCLUDE_DIR kerosin/kerosin.h PATH_SUFFIXES simspark) + +SET(KEROSIN_NAMES kerosin kerosin_debug) +FIND_LIBRARY(KEROSIN_LIBRARY NAMES ${KEROSIN_NAMES} PATH_SUFFIXES simspark ) + +# handle the QUIETLY and REQUIRED arguments and set KEROSIN_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(KEROSIN DEFAULT_MSG KEROSIN_LIBRARY + KEROSIN_INCLUDE_DIR) + +IF(KEROSIN_FOUND) + SET( KEROSIN_LIBRARIES ${KEROSIN_LIBRARY} ) +ELSE(KEROSIN_FOUND) + SET( KEROSIN_LIBRARIES ) +ENDIF(KEROSIN_FOUND) + +MARK_AS_ADVANCED( KEROSIN_LIBRARY KEROSIN_INCLUDE_DIR ) Added: trunk/rcssserver3d/data/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/data/CMakeLists.txt (rev 0) +++ trunk/rcssserver3d/data/CMakeLists.txt 2009-01-21 18:14:01 UTC (rev 27) @@ -0,0 +1,5 @@ +########### install files ############### + +install(DIRECTORY models scripts materials rsg textures + DESTINATION ${DATADIR}/${CMAKE_PROJECT_NAME} + PATTERN ".svn" EXCLUDE) Property changes on: trunk/rcssserver3d/data/CMakeLists.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/rcssserver3d/doc/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/doc/CMakeLists.txt (rev 0) +++ trunk/rcssserver3d/doc/CMakeLists.txt 2009-01-21 18:14:01 UTC (rev 27) @@ -0,0 +1,37 @@ +add_subdirectory(users) + +find_package(Doxygen) +find_package(Perl) + +if (DOXYGEN_DOT_EXECUTABLE) + set(HAVE_DOT "YES") +else (DOXYGEN_DOT_EXECUTABLE) + set(HAVE_DOT "NO") +endif (DOXYGEN_DOT_EXECUTABLE) + +if (PERL_FOUND) + set(PERL ${PERL_EXECUTABLE}) +else (PERL_FOUND) + set(PERL "perl") +endif (PERL_FOUND) + +if (DOXYGEN_EXECUTABLE) + # variables needed by Doxyfile.in + set(PACKAGE ${CMAKE_PROJECT_NAME}) + set(VERSION ${PACKAGE_VERSION}) + set(top_srcdir ${CMAKE_SOURCE_DIR}) + set(top_builddir ${CMAKE_BINARY_DIR}) + + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in + ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) + + add_custom_target(doc ${DOXYGEN_EXECUTABLE} Doxyfile) + + set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "api") + +endif (DOXYGEN_EXECUTABLE) + +add_custom_target(comment ALL echo '***' + COMMAND echo '*** To \(re-\)build the Doxygen API documentation, use \"make +doc\"' + COMMAND echo '***') Property changes on: trunk/rcssserver3d/doc/CMakeLists.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/rcssserver3d/doc/Doxyfile.in =================================================================== --- trunk/rcssserver3d/doc/Doxyfile.in 2009-01-21 17:46:14 UTC (rev 26) +++ trunk/rcssserver3d/doc/Doxyfile.in 2009-01-21 18:14:01 UTC (rev 27) @@ -5,7 +5,7 @@ #--------------------------------------------------------------------------- PROJECT_NAME = @PACKAGE@ PROJECT_NUMBER = @VERSION@ -OUTPUT_DIRECTORY = @top_srcdir@/doc/ +OUTPUT_DIRECTORY = @top_builddir@/doc/ OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = NO EXTRACT_ALL = YES Added: trunk/rcssserver3d/doc/users/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/doc/users/CMakeLists.txt (rev 0) +++ trunk/rcssserver3d/doc/users/CMakeLists.txt 2009-01-21 18:14:01 UTC (rev 27) @@ -0,0 +1,28 @@ +find_package(LATEX) + +if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/user-manual.tex) + if (PDFLATEX_COMPILER) +# include(../../cmake/UseLATEX.cmake) +# add_latex_document(user-manual.tex INPUTS agentspark.tex gettingstarted.tex +# robots.tex introduction.tex monitorspark.tex simspark.tex license.tex +# overview.tex simulations.tex definitions.tex resources.tex user-manual.tex +# BIBFILES references.bib IMAGE_DIRS fig DEFAULT_PDF) + endif (PDFLATEX_COMPILER) +else (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/user-manual.tex) + add_custom_target(comment2 ALL echo '***' + COMMAND echo '*** The users manual \(PDF\) can be found in doc/users.' + COMMAND echo '***') +endif (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/user-manual.tex) + +set(CLEAN_FILES + definitions.aux + user-manual.log + user-manual.pdf + user-manual.aux + user-manual.toc + user-manual.out + user-manual.bbl + user-manual.blg +) + +set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${CLEAN_FILES}") Property changes on: trunk/rcssserver3d/doc/users/CMakeLists.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/rcssserver3d/plugin/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/plugin/CMakeLists.txt (rev 0) +++ trunk/rcssserver3d/plugin/CMakeLists.txt 2009-01-21 18:14:01 UTC (rev 27) @@ -0,0 +1,2 @@ +add_subdirectory(soccer) +add_subdirectory(soccermonitor) Property changes on: trunk/rcssserver3d/plugin/CMakeLists.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/rcssserver3d/plugin/soccer/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/plugin/soccer/CMakeLists.txt (rev 0) +++ trunk/rcssserver3d/plugin/soccer/CMakeLists.txt 2009-01-21 18:14:01 UTC (rev 27) @@ -0,0 +1,128 @@ +########### next target ############### +set(soccer_LIB_HDRS + soccertypes.h + agentstate/agentstate.h + agentstateperceptor/agentstateperceptor.h + ball/ball.h + ballstateaspect/ballstateaspect.h + beameffector/beamaction.h + beameffector/beameffector.h + catcheffector/catchaction.h + catcheffector/catcheffector.h + createeffector/createaction.h + createeffector/createeffector.h + driveeffector/driveaction.h + driveeffector/driveeffector.h + fieldflag/fieldflag.h + gamestateaspect/gamestateaspect.h + gamestateaspect/gamestateitem.h + gamestateperceptor/gamestateperceptor.h + hearperceptor/hearperceptor.h + initeffector/initaction.h + initeffector/initeffector.h + initeffector/singlematiniteffector.h + initeffector/staticmeshiniteffector.h + kickeffector/kickaction.h + kickeffector/kickeffector.h + objectstate/objectstate.h + pantilteffector/pantiltaction.h + pantilteffector/pantilteffector.h + restrictedvisionperceptor/restrictedvisionperceptor.h + sayeffector/sayaction.h + sayeffector/sayeffector.h + sexpmonitor/sexpmonitor.h + internalsoccermonitor/internalsoccerrender.h + internalsoccermonitor/internalsoccerinput.h + soccerbase/soccerbase.h + soccercontrolaspect/soccercontrolaspect.h + soccernode/soccernode.h + soccerruleaspect/soccerruleaspect.h + trainercommandparser/trainercommandparser.h + gametimeperceptor/gametimeperceptor.h + visionperceptor/visionperceptor.h + agentintegration/soccerbotbehavior.h +) + +set(soccer_LIB_SRCS + export.cpp + agentstate/agentstate.cpp + agentstate/agentstate_c.cpp + agentstateperceptor/agentstateperceptor.cpp + agentstateperceptor/agentstateperceptor_c.cpp + ball/ball.cpp + ball/ball_c.cpp + ballstateaspect/ballstateaspect.cpp + ballstateaspect/ballstateaspect_c.cpp + beameffector/beameffector.cpp + beameffector/beameffector_c.cpp + catcheffector/catcheffector.cpp + catcheffector/catcheffector_c.cpp + createeffector/createeffector.cpp + createeffector/createeffector_c.cpp + driveeffector/driveeffector.cpp + driveeffector/driveeffector_c.cpp + fieldflag/fieldflag_c.cpp + gamestateaspect/gamestateaspect.cpp + gamestateaspect/gamestateaspect_c.cpp + gamestateaspect/gamestateitem.cpp + gamestateaspect/gamestateitem_c.cpp + gamestateperceptor/gamestateperceptor.cpp + gamestateperceptor/gamestateperceptor_c.cpp + hearperceptor/hearperceptor.cpp + hearperceptor/hearperceptor_c.cpp + initeffector/initeffector.cpp + initeffector/initeffector_c.cpp + initeffector/singlematiniteffector.cpp + initeffector/singlematiniteffector_c.cpp + initeffector/staticmeshiniteffector.cpp + initeffector/staticmeshiniteffector_c.cpp + kickeffector/kickeffector.cpp + kickeffector/kickeffector_c.cpp + objectstate/objectstate.cpp + objectstate/objectstate_c.cpp + pantilteffector/pantilteffector.cpp + pantilteffector/pantilteffector_c.cpp + restrictedvisionperceptor/restrictedvisionperceptor.cpp + restrictedvisionperceptor/restrictedvisionperceptor_c.cpp + sayeffector/sayeffector.cpp + sayeffector/sayeffector_c.cpp + sexpmonitor/sexpmonitor.cpp + sexpmonitor/sexpmonitor_c.cpp + internalsoccermonitor/internalsoccerrender.cpp + internalsoccermonitor/internalsoccerrender_c.cpp + internalsoccermonitor/internalsoccerinput.cpp + internalsoccermonitor/internalsoccerinput_c.cpp + soccerbase/soccerbase.cpp + soccercontrolaspect/soccercontrolaspect.cpp + soccercontrolaspect/soccercontrolaspect_c.cpp + soccernode/soccernode.cpp + soccernode/soccernode_c.cpp + soccerruleaspect/soccerruleaspect.cpp + soccerruleaspect/soccerruleaspect_c.cpp + trainercommandparser/trainercommandparser.cpp + trainercommandparser/trainercommandparser_c.cpp + visionperceptor/visionperceptor.cpp + visionperceptor/visionperceptor_c.cpp + gametimeperceptor/gametimeperceptor.cpp + gametimeperceptor/gametimeperceptor_c.cpp + agentintegration/soccerbotbehavior.cpp + agentintegration/soccerbotbehavior_c.cpp +) + +include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${SPARK_INCLUDE_DIR} + ${SALT_INCLUDE_DIR} ${ZEITGEIST_INCLUDE_DIR} ${OXYGEN_INCLUDE_DIR} + ${KEROSIN_INCLUDE_DIR} ${FREETYPE_INCLUDE_DIRS}) + +add_library(soccer MODULE ${soccer_LIB_SRCS} ${soccer_LIB_HDRS}) + +target_link_libraries(soccer) + +set_target_properties(soccer PROPERTIES VERSION 1.0.0 SOVERSION 1) +install(TARGETS soccer DESTINATION ${LIBDIR}/${CMAKE_PROJECT_NAME}) + + +########### install files ############### + +install(DIRECTORY ./ DESTINATION ${INCLUDEDIR}/${CMAKE_PROJECT_NAME}/soccer + FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE) + Property changes on: trunk/rcssserver3d/plugin/soccer/CMakeLists.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/rcssserver3d/plugin/soccermonitor/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/plugin/soccermonitor/CMakeLists.txt (rev 0) +++ trunk/rcssserver3d/plugin/soccermonitor/CMakeLists.txt 2009-01-21 18:14:01 UTC (rev 27) @@ -0,0 +1,38 @@ +########### next target ############### +set(soccermonitor_LIB_HDRS + soccermonitor.h + soccerrender.h + soccerinput.h + soccerinputlogplayer.h +) + +set(soccermonitor_LIB_SRCS + export.cpp + soccermonitor.cpp + soccermonitor_c.cpp + soccerrender.cpp + soccerrender_c.cpp + soccerinput.cpp + soccerinput_c.cpp + soccerinputlogplayer.cpp + soccerinputlogplayer_c.cpp +) + +include_directories(${CMAKE_SOURCE_DIR}/plugin ${SPARK_INCLUDE_DIR} + ${SALT_INCLUDE_DIR} ${ZEITGEIST_INCLUDE_DIR} ${OXYGEN_INCLUDE_DIR} + ${KEROSIN_INCLUDE_DIR} ${FREETYPE_INCLUDE_DIRS}) + +add_library(soccermonitor MODULE ${soccermonitor_LIB_SRCS} + ${soccermonitor_LIB_HDRS}) + +target_link_libraries(soccermonitor) + +set_target_properties(soccermonitor PROPERTIES VERSION 1.0.0 SOVERSION 1) +install(TARGETS soccermonitor DESTINATION ${LIBDIR}/${CMAKE_PROJECT_NAME}) + + +########### install files ############### + +install(FILES soccermonitor.h soccerrender.h soccerinput.h + soccerinputlogplayer.h + DESTINATION ${INCLUDEDIR}/${CMAKE_PROJECT_NAME}/soccermonitor) Property changes on: trunk/rcssserver3d/plugin/soccermonitor/CMakeLists.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/rcssserver3d/rcssagent3d/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/rcssagent3d/CMakeLists.txt (rev 0) +++ trunk/rcssserver3d/rcssagent3d/CMakeLists.txt 2009-01-21 18:14:01 UTC (rev 27) @@ -0,0 +1,26 @@ +########### next target ############### + +set(rcssagent3d_SRCS + main.cpp + behavior.h + soccerbehavior.h + soccerbehavior.cpp + soccerbotbehavior.h + soccerbotbehavior.cpp + hoap2behavior.h + hoap2behavior.cpp + naobehavior.h + naobehavior.cpp +) + +include_directories(${SPARK_INCLUDE_DIR} ${SALT_INCLUDE_DIR} + ${ZEITGEIST_INCLUDE_DIR} ${OXYGEN_INCLUDE_DIR} ${KEROSIN_INCLUDE_DIR}) + +add_executable(rcssagent3d ${rcssagent3d_SRCS}) + +target_link_libraries(rcssagent3d ${SPARK_LIBRARIES} ${SALT_LIBRARIES} + ${ZEITGEIST_LIBRARIES} ${OXYGEN_LIBRARIES} ${KEROSIN_LIBRARIES}) + +set_target_properties(rcssagent3d PROPERTIES + INSTALL_RPATH "${RPATH_DIRECTORIES}") +install(TARGETS rcssagent3d DESTINATION ${BINDIR}) Property changes on: trunk/rcssserver3d/rcssagent3d/CMakeLists.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/rcssserver3d/rcssmonitor3d/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/rcssmonitor3d/CMakeLists.txt (rev 0) +++ trunk/rcssserver3d/rcssmonitor3d/CMakeLists.txt 2009-01-21 18:14:01 UTC (rev 27) @@ -0,0 +1,38 @@ +########### next target ############### + +set(rcssmonitor3d_SRCS + main.cpp +) + +include_directories(${SPARK_INCLUDE_DIR} ${SALT_INCLUDE_DIR} + ${ZEITGEIST_INCLUDE_DIR} ${OXYGEN_INCLUDE_DIR} ${KEROSIN_INCLUDE_DIR}) + +add_executable(rcssmonitor3d ${rcssmonitor3d_SRCS}) + +target_link_libraries(rcssmonitor3d ${SPARK_LIBRARIES} ${SALT_LIBRARIES} + ${ZEITGEIST_LIBRARIES} ${OXYGEN_LIBRARIES} ${KEROSIN_LIBRARIES}) + +set_target_properties(rcssmonitor3d PROPERTIES + INSTALL_RPATH "${RPATH_DIRECTORIES}") +install(TARGETS rcssmonitor3d DESTINATION ${BINDIR}) + + +########### install files ############### + +install(FILES soccersim-monitor.rb rcssmonitor3d.rb soccerbindings.rb + DESTINATION ${DATADIR}/${CMAKE_PROJECT_NAME}) + + + +#original Makefile.am contents follow: + +#LDADD = -lpthread +#if NO_RPATH +#AM_LDFLAGS = @SALT_LDFLAGS@ \ +# @SPARK_LDFLAGS@ @ZEITGEIST_LDFLAGS@ \ +# @OXYGEN_LDFLAGS@ @KEROSIN_LDFLAGS@ +#else +#AM_LDFLAGS = -Wl,--rpath,$(DESTDIR)$(pkglibdir) \ +# @SALT_LDFLAGS@ @SPARK_LDFLAGS@ @ZEITGEIST_LDFLAGS@ \ +# @OXYGEN_LDFLAGS@ @KEROSIN_LDFLAGS@ +#endif Property changes on: trunk/rcssserver3d/rcssmonitor3d/CMakeLists.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/rcssserver3d/rcssserver3d_config.h.cmake =================================================================== --- trunk/rcssserver3d/rcssserver3d_config.h.cmake (rev 0) +++ trunk/rcssserver3d/rcssserver3d_config.h.cmake 2009-01-21 18:14:01 UTC (rev 27) @@ -0,0 +1,7 @@ +#cmakedefine HAVE_SYS_SOCKET_H 1 + +#cmakedefine HAVE_NETINET_IN_H 1 + +#cmakedefine HAVE_ARPA_INET_H 1 + +#define RCSS_BUNDLE_PATH "${BUNDLE_PATH}" \ No newline at end of file Added: trunk/rcssserver3d/simspark/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/simspark/CMakeLists.txt (rev 0) +++ trunk/rcssserver3d/simspark/CMakeLists.txt 2009-01-21 18:14:01 UTC (rev 27) @@ -0,0 +1,37 @@ +########### next target ############### + +set(simspark_SRCS + main.cpp +) + +include_directories(${SPARK_INCLUDE_DIR} ${SALT_INCLUDE_DIR} + ${ZEITGEIST_INCLUDE_DIR} ${OXYGEN_INCLUDE_DIR} ${KEROSIN_INCLUDE_DIR}) + +add_executable(simspark ${simspark_SRCS}) + +target_link_libraries(simspark ${SPARK_LIBRARIES} ${SALT_LIBRARIES} + ${ZEITGEIST_LIBRARIES} ${OXYGEN_LIBRARIES} ${KEROSIN_LIBRARIES}) + +set_target_properties(simspark PROPERTIES INSTALL_RPATH "${RPATH_DIRECTORIES}") +install(TARGETS simspark DESTINATION ${BINDIR}) + + +########### install files ############### + +install(FILES simspark.rb soccersim.rb naosoccersim.rb + internalsoccermonitor.rb internalsoccerbindings.rb + DESTINATION ${DATADIR}/${CMAKE_PROJECT_NAME}) + +#original Makefile.am contents follow: + +#LDADD = -lpthread +# +#if NO_RPATH +#AM_LDFLAGS = @SALT_LDFLAGS@ \ +# @SPARK_LDFLAGS@ @ZEITGEIST_LDFLAGS@ \ +# @OXYGEN_LDFLAGS@ @KEROSIN_LDFLAGS@ +#else +#AM_LDFLAGS = -Wl,--rpath,$(DESTDIR)$(pkglibdir) \ +# @SALT_LDFLAGS@ @SPARK_LDFLAGS@ @ZEITGEIST_LDFLAGS@ \ +# @OXYGEN_LDFLAGS@ @KEROSIN_LDFLAGS@ +#endif Property changes on: trunk/rcssserver3d/simspark/CMakeLists.txt ___________________________________________________________________ Added: svn:mime-type + text/plain This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2009-01-22 16:56:19
|
Revision: 31 http://simspark.svn.sourceforge.net/simspark/?rev=31&view=rev Author: hedayat Date: 2009-01-22 16:55:58 +0000 (Thu, 22 Jan 2009) Log Message: ----------- Enabled documentation support for rcssserver3d Modified Paths: -------------- trunk/rcssserver3d/doc/users/CMakeLists.txt trunk/rcssserver3d/rcssmonitor3d/CMakeLists.txt trunk/rcssserver3d/simspark/CMakeLists.txt Added Paths: ----------- trunk/rcssserver3d/cmake/UseLATEX.cmake Added: trunk/rcssserver3d/cmake/UseLATEX.cmake =================================================================== --- trunk/rcssserver3d/cmake/UseLATEX.cmake (rev 0) +++ trunk/rcssserver3d/cmake/UseLATEX.cmake 2009-01-22 16:55:58 UTC (rev 31) @@ -0,0 +1,770 @@ +# File: UseLATEX.cmake +# CMAKE commands to actually use the LaTeX compiler +# Version: 1.7.0 +# Author: Kenneth Moreland (kmorel at sandia dot gov) +# +# Copyright 2004 Sandia Corporation. +# Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive +# license for use of this work by or on behalf of the +# U.S. Government. Redistribution and use in source and binary forms, with +# or without modification, are permitted provided that this Notice and any +# statement of authorship are reproduced on all copies. +# +# The following MACROS are defined: +# +# ADD_LATEX_DOCUMENT(<tex_file> +# [BIBFILES <bib_files>] +# [INPUTS <input_tex_files>] +# [IMAGE_DIRS] <image_directories> +# [IMAGES] <image_files> +# [CONFIGURE] <tex_files> +# [DEPENDS] <tex_files> +# [USE_INDEX] [USE_GLOSSARY] +# [DEFAULT_PDF] [MANGLE_TARGET_NAMES]) +# Adds targets that compile <tex_file>. The latex output is placed +# in LATEX_OUTPUT_PATH or CMAKE_CURRENT_BINARY_DIR if the former is +# not set. The latex program is picky about where files are located, +# so all input files are copied from the source directory to the +# output directory. This includes the target tex file, any tex file +# listed with the INPUTS option, the bibliography files listed with +# the BIBFILES option, and any .cls, .bst, and .clo files found in +# the current source directory. Images found in the IMAGE_DIRS +# directories or listed by IMAGES are also copied to the output +# directory and coverted to an appropriate format if necessary. Any +# tex files also listed with the CONFIGURE option are also processed +# with the CMake CONFIGURE_FILE command (with the @ONLY flag. Any +# file listed in CONFIGURE but not the target tex file or listed with +# INPUTS has no effect. DEPENDS can be used to specify generated files +# that are needed to compile the latex target. +# +# The following targets are made: +# dvi: Makes <name>.dvi +# pdf: Makes <name>.pdf using pdflatex. +# safepdf: Makes <name>.pdf using ps2pdf. If using the default +# program arguments, this will ensure all fonts are +# embedded and no lossy compression has been performed +# on images. +# ps: Makes <name>.ps +# html: Makes <name>.html +# auxclean: Deletes <name>.aux. This is sometimes necessary +# if a LaTeX error occurs and writes a bad aux file. +# +# If the argument MANGLE_TARGET_NAMES is given, then each of the +# target names above will be mangled with the <tex_file> name. This +# is to make the targets unique if ADD_LATEX_DOCUMENT is called for +# multiple documents. If the argument USE_INDEX is given, then +# commands to build an index are made. If the argument USE_GLOSSARY +# is given, then commands to build a glossary are made. +# +# History: +# +# 1.7.0 Added DEPENDS options (thanks to Theodore Papadopoulp). +# +# 1.6.1 Ported the makeglossaries command to CMake and embedded the port +# into UseLATEX.cmake. +# +# 1.6.0 Allow the use of the makeglossaries command. Thanks to Oystein +# S. Haaland for the patch. +# +# 1.5.0 Allow any type of file in the INPUTS lists, not just tex file +# (suggested by Eric Noulard). As a consequence, the ability to +# specify tex files without the .tex extension is removed. The removed +# function is of dubious value anyway. +# +# When copying input files, skip over any file that exists in the +# binary directory but does not exist in the source directory with the +# assumption that these files were added by some other mechanism. I +# find this useful when creating large documents with multiple +# chapters that I want to build separately (for speed) as I work on +# them. I use the same boilerplate as the starting point for all +# and just copy it with different configurations. This was what the +# separate ADD_LATEX_DOCUMENT method was supposed to originally be for. +# Since its external use is pretty much deprecated, I removed that +# documentation. +# +# 1.4.1 Copy .sty files along with the other class and package files. +# +# 1.4.0 Added a MANGLE_TARGET_NAMES option that will mangle the target names. +# +# Fixed problem with copying bib files that became apparent with +# CMake 2.4. +# +# 1.3.0 Added a LATEX_OUTPUT_PATH variable that allows you or the user to +# specify where the built latex documents to go. This is especially +# handy if you want to do in-source builds. +# +# Removed the ADD_LATEX_IMAGES macro and absorbed the functionality +# into ADD_LATEX_DOCUMENT. The old interface was always kind of +# clunky anyway since you had to specify the image directory in both +# places. It also made supporting LATEX_OUTPUT_PATH problematic. +# +# Added support for jpeg files. +# +# 1.2.0 Changed the configuration options yet again. Removed the NO_CONFIGURE +# Replaced it with a CONFIGURE option that lists input files for which +# configure should be run. +# +# The pdf target no longer depends on the dvi target. This allows you +# to build latex documents that require pdflatex. Also added an option +# to make the pdf target the default one. +# +# 1.1.1 Added the NO_CONFIGURE option. The @ character can be used when +# specifying table column separators. If two or more are used, then +# will incorrectly substitute them. +# +# 1.1.0 Added ability include multiple bib files. Added ability to do copy +# sub-tex files for multipart tex files. +# +# 1.0.0 If both ps and pdf type images exist, just copy the one that +# matches the current render mode. Replaced a bunch of STRING +# commands with GET_FILENAME_COMPONENT commands that were made to do +# the desired function. +# +# 0.4.0 First version posted to CMake Wiki. +# + +############################################################################# +# Find the location of myself while originally executing. If you do this +# inside of a macro, it will recode where the macro was invoked. +############################################################################# +SET(LATEX_USE_LATEX_LOCATION ${CMAKE_CURRENT_LIST_FILE} + CACHE INTERNAL "Location of UseLATEX.cmake file." FORCE + ) + +############################################################################# +# Generic helper macros +############################################################################# + +# Helpful list macros. +MACRO(LATEX_CAR var) + SET(${var} ${ARGV1}) +ENDMACRO(LATEX_CAR) +MACRO(LATEX_CDR var junk) + SET(${var} ${ARGN}) +ENDMACRO(LATEX_CDR) + +MACRO(LATEX_LIST_CONTAINS var value) + SET(${var}) + FOREACH (value2 ${ARGN}) + IF (${value} STREQUAL ${value2}) + SET(${var} TRUE) + ENDIF (${value} STREQUAL ${value2}) + ENDFOREACH (value2) +ENDMACRO(LATEX_LIST_CONTAINS) + +# Parse macro arguments. +MACRO(LATEX_PARSE_ARGUMENTS prefix arg_names option_names) + SET(DEFAULT_ARGS) + FOREACH(arg_name ${arg_names}) + SET(${prefix}_${arg_name}) + ENDFOREACH(arg_name) + FOREACH(option ${option_names}) + SET(${prefix}_${option}) + ENDFOREACH(option) + + SET(current_arg_name DEFAULT_ARGS) + SET(current_arg_list) + FOREACH(arg ${ARGN}) + LATEX_LIST_CONTAINS(is_arg_name ${arg} ${arg_names}) + IF (is_arg_name) + SET(${prefix}_${current_arg_name} ${current_arg_list}) + SET(current_arg_name ${arg}) + SET(current_arg_list) + ELSE (is_arg_name) + LATEX_LIST_CONTAINS(is_option ${arg} ${option_names}) + IF (is_option) + SET(${prefix}_${arg} TRUE) + ELSE (is_option) + SET(current_arg_list ${current_arg_list} ${arg}) + ENDIF (is_option) + ENDIF (is_arg_name) + ENDFOREACH(arg) + SET(${prefix}_${current_arg_name} ${current_arg_list}) +ENDMACRO(LATEX_PARSE_ARGUMENTS) + +# Match the contents of a file to a regular expression. +MACRO(LATEX_FILE_MATCH variable filename regexp default) + # The FILE STRINGS command would be a bit better, but it's not supported on + # older versions of CMake. + FILE(READ ${filename} file_contents) + STRING(REGEX MATCHALL "${regexp}" + ${variable} ${file_contents} + ) + IF (NOT ${variable}) + SET(${variable} "${default}") + ENDIF (NOT ${variable}) +ENDMACRO(LATEX_FILE_MATCH) + +############################################################################# +# Macros that perform processing during a LaTeX build. +############################################################################# +MACRO(LATEX_MAKEGLOSSARIES) + MESSAGE("**************************** In makeglossaries") + IF (NOT LATEX_TARGET) + MESSAGE(SEND_ERROR "Need to define LATEX_TARGET") + ENDIF (NOT LATEX_TARGET) + + IF (NOT MAKEINDEX_COMPILER) + MESSAGE(SEND_ERROR "Need to define MAKEINDEX_COMPILER") + ENDIF (NOT MAKEINDEX_COMPILER) + + SET(aux_file ${LATEX_TARGET}.aux) + + IF (NOT EXISTS ${aux_file}) + MESSAGE(SEND_ERROR "${aux_file} does not exist. Run latex on your target file.") + ENDIF (NOT EXISTS ${aux_file}) + + LATEX_FILE_MATCH(newglossary_lines ${aux_file} + "@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}" + "@newglossary{main}{glg}{gls}{glo}" + ) + + LATEX_FILE_MATCH(istfile_line ${aux_file} + "@istfilename[ \t]*{([^}]*)}" + "@istfilename{${LATEX_TARGET}.ist}" + ) + STRING(REGEX REPLACE "@istfilename[ \t]*{([^}]*)}" "\\1" + istfile ${istfile_line} + ) + + FOREACH(newglossary ${newglossary_lines}) + STRING(REGEX REPLACE + "@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}" + "\\1" glossary_name ${newglossary} + ) + STRING(REGEX REPLACE + "@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}" + "${LATEX_TARGET}.\\2" glossary_log ${newglossary} + ) + STRING(REGEX REPLACE + "@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}" + "${LATEX_TARGET}.\\3" glossary_out ${newglossary} + ) + STRING(REGEX REPLACE + "@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}" + "${LATEX_TARGET}.\\4" glossary_in ${newglossary} + ) + MESSAGE("${MAKEINDEX_COMPILER} ${MAKEGLOSSARIES_COMPILER_FLAGS} -s ${istfile} -t ${glossary_log} -o ${glossary_out} ${glossary_in}") + EXEC_PROGRAM(${MAKEINDEX_COMPILER} ARGS ${MAKEGLOSSARIES_COMPILER_FLAGS} + -s ${istfile} -t ${glossary_log} -o ${glossary_out} ${glossary_in} + ) + ENDFOREACH(newglossary) +ENDMACRO(LATEX_MAKEGLOSSARIES) + +############################################################################# +# Helper macros for establishing LaTeX build. +############################################################################# + +MACRO(LATEX_NEEDIT VAR NAME) + IF (NOT ${VAR}) + MESSAGE(SEND_ERROR "I need the ${NAME} command.") + ENDIF(NOT ${VAR}) +ENDMACRO(LATEX_NEEDIT) + +MACRO(LATEX_WANTIT VAR NAME) + IF (NOT ${VAR}) + MESSAGE(STATUS "I could not find the ${NAME} command.") + ENDIF(NOT ${VAR}) +ENDMACRO(LATEX_WANTIT) + +MACRO(LATEX_SETUP_VARIABLES) + SET(LATEX_OUTPUT_PATH "${LATEX_OUTPUT_PATH}" + CACHE PATH "If non empty, specifies the location to place LaTeX output." + ) + + FIND_PACKAGE(LATEX) + + MARK_AS_ADVANCED(CLEAR + LATEX_COMPILER + PDFLATEX_COMPILER + BIBTEX_COMPILER + MAKEINDEX_COMPILER + DVIPS_CONVERTER + PS2PDF_CONVERTER + LATEX2HTML_CONVERTER + ) + + LATEX_NEEDIT(LATEX_COMPILER latex) + LATEX_WANTIT(PDFLATEX_COMPILER pdflatex) + LATEX_NEEDIT(BIBTEX_COMPILER bibtex) + LATEX_NEEDIT(MAKEINDEX_COMPILER makeindex) + LATEX_WANTIT(DVIPS_CONVERTER dvips) + LATEX_WANTIT(PS2PDF_CONVERTER ps2pdf) + LATEX_WANTIT(LATEX2HTML_CONVERTER latex2html) + + SET(LATEX_COMPILER_FLAGS "-interaction=nonstopmode" + CACHE STRING "Flags passed to latex.") + SET(PDFLATEX_COMPILER_FLAGS ${LATEX_COMPILER_FLAGS} + CACHE STRING "Flags passed to pdflatex.") + SET(BIBTEX_COMPILER_FLAGS "" + CACHE STRING "Flags passed to bibtex.") + SET(MAKEINDEX_COMPILER_FLAGS "" + CACHE STRING "Flags passed to makeindex.") + SET(MAKEGLOSSARIES_COMPILER_FLAGS "" + CACHE STRING "Flags passed to makeglossaries.") + SET(DVIPS_CONVERTER_FLAGS "-Ppdf -G0 -t letter" + CACHE STRING "Flags passed to dvips.") + SET(PS2PDF_CONVERTER_FLAGS "-dMaxSubsetPct=100 -dCompatibilityLevel=1.3 -dSubsetFonts=true -dEmbedAllFonts=true -dAutoFilterColorImages=false -dAutoFilterGrayImages=false -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode -dMonoImageFilter=/FlateEncode" + CACHE STRING "Flags passed to ps2pdf.") + SET(LATEX2HTML_CONVERTER_FLAGS "" + CACHE STRING "Flags passed to latex2html.") + MARK_AS_ADVANCED( + LATEX_COMPILER_FLAGS + PDFLATEX_COMPILER_FLAGS + BIBTEX_COMPILER_FLAGS + MAKEINDEX_COMPILER_FLAGS + MAKEGLOSSARIES_COMPILER_FLAGS + DVIPS_CONVERTER_FLAGS + PS2PDF_CONVERTER_FLAGS + LATEX2HTML_CONVERTER_FLAGS + ) + SEPARATE_ARGUMENTS(LATEX_COMPILER_FLAGS) + SEPARATE_ARGUMENTS(PDFLATEX_COMPILER_FLAGS) + SEPARATE_ARGUMENTS(BIBTEX_COMPILER_FLAGS) + SEPARATE_ARGUMENTS(MAKEINDEX_COMPILER_FLAGS) + SEPARATE_ARGUMENTS(MAKEGLOSSARIES_COMPILER_FLAGS) + SEPARATE_ARGUMENTS(DVIPS_CONVERTER_FLAGS) + SEPARATE_ARGUMENTS(PS2PDF_CONVERTER_FLAGS) + SEPARATE_ARGUMENTS(LATEX2HTML_CONVERTER_FLAGS) + + FIND_PROGRAM(IMAGEMAGICK_CONVERT convert + DOC "The convert program that comes with ImageMagick (available at http://www.imagemagick.org)." + ) + IF (NOT IMAGEMAGICK_CONVERT) + MESSAGE(SEND_ERROR "Could not find convert program. Please download ImageMagick from http://www.imagemagick.org and install.") + ENDIF (NOT IMAGEMAGICK_CONVERT) + + OPTION(LATEX_SMALL_IMAGES + "If on, the raster images will be converted to 1/6 the original size. This is because papers usually require 600 dpi images whereas most monitors only require at most 96 dpi. Thus, smaller images make smaller files for web distributation and can make it faster to read dvi files." + OFF) + IF (LATEX_SMALL_IMAGES) + SET(LATEX_RASTER_SCALE 16) + SET(LATEX_OPPOSITE_RASTER_SCALE 100) + ELSE (LATEX_SMALL_IMAGES) + SET(LATEX_RASTER_SCALE 100) + SET(LATEX_OPPOSITE_RASTER_SCALE 16) + ENDIF (LATEX_SMALL_IMAGES) + + # Just holds extensions for known image types. They should all be lower case. + SET(LATEX_DVI_VECTOR_IMAGE_EXTENSIONS .eps) + SET(LATEX_DVI_RASTER_IMAGE_EXTENSIONS) + SET(LATEX_DVI_IMAGE_EXTENSIONS + ${LATEX_DVI_VECTOR_IMAGE_EXTENSIONS} ${LATEX_DVI_RASTER_IMAGE_EXTENSIONS}) + SET(LATEX_PDF_VECTOR_IMAGE_EXTENSIONS .pdf) + SET(LATEX_PDF_RASTER_IMAGE_EXTENSIONS .png .jpeg .jpg) + SET(LATEX_PDF_IMAGE_EXTENSIONS + ${LATEX_PDF_VECTOR_IMAGE_EXTENSIONS} ${LATEX_PDF_RASTER_IMAGE_EXTENSIONS}) + SET(LATEX_IMAGE_EXTENSIONS + ${LATEX_DVI_IMAGE_EXTENSIONS} ${LATEX_PDF_IMAGE_EXTENSIONS}) +ENDMACRO(LATEX_SETUP_VARIABLES) + +MACRO(LATEX_GET_OUTPUT_PATH var) + SET(${var}) + IF (LATEX_OUTPUT_PATH) + IF ("${LATEX_OUTPUT_PATH}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + MESSAGE(SEND_ERROR "You cannot set LATEX_OUTPUT_PATH to the same directory that contains LaTeX input files.") + ELSE ("${LATEX_OUTPUT_PATH}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + SET(${var} "${LATEX_OUTPUT_PATH}") + ENDIF ("${LATEX_OUTPUT_PATH}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + ELSE (LATEX_OUTPUT_PATH) + IF ("${CMAKE_CURRENT_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + MESSAGE(SEND_ERROR "LaTeX files must be built out of source or you must set LATEX_OUTPUT_PATH.") + ELSE ("${CMAKE_CURRENT_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + SET(${var} "${CMAKE_CURRENT_BINARY_DIR}") + ENDIF ("${CMAKE_CURRENT_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + ENDIF (LATEX_OUTPUT_PATH) +ENDMACRO(LATEX_GET_OUTPUT_PATH) + +# Makes custom commands to convert a file to a particular type. +MACRO(LATEX_CONVERT_IMAGE output_files input_file output_extension convert_flags + output_extensions other_files) + SET(input_dir ${CMAKE_CURRENT_SOURCE_DIR}) + LATEX_GET_OUTPUT_PATH(output_dir) + + GET_FILENAME_COMPONENT(extension "${input_file}" EXT) + + STRING(REGEX REPLACE "\\.[^.]*\$" ${output_extension} output_file + "${input_file}") + + LATEX_LIST_CONTAINS(is_type ${extension} ${output_extensions}) + IF (is_type) + IF (convert_flags) + ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${output_file} + COMMAND ${IMAGEMAGICK_CONVERT} + ARGS ${input_dir}/${input_file} ${convert_flags} + ${output_dir}/${output_file} + DEPENDS ${input_dir}/${input_file} + ) + SET(${output_files} ${${output_files}} ${output_dir}/${output_file}) + ELSE (convert_flags) + # As a shortcut, we can just copy the file. + ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${input_file} + COMMAND ${CMAKE_COMMAND} + ARGS -E copy ${input_dir}/${input_file} ${output_dir}/${input_file} + DEPENDS ${input_dir}/${input_file} + ) + SET(${output_files} ${${output_files}} ${output_dir}/${input_file}) + ENDIF (convert_flags) + ELSE (is_type) + SET(do_convert TRUE) + # Check to see if there is another input file of the appropriate type. + FOREACH(valid_extension ${output_extensions}) + STRING(REGEX REPLACE "\\.[^.]*\$" ${output_extension} try_file + "${input_file}") + LATEX_LIST_CONTAINS(has_native_file "${try_file}" ${other_files}) + IF (has_native_file) + SET(do_convert FALSE) + ENDIF (has_native_file) + ENDFOREACH(valid_extension) + + # If we still need to convert, do it. + IF (do_convert) + ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${output_file} + COMMAND ${IMAGEMAGICK_CONVERT} + ARGS ${input_dir}/${input_file} ${convert_flags} + ${output_dir}/${output_file} + DEPENDS ${input_dir}/${input_file} + ) + SET(${output_files} ${${output_files}} ${output_dir}/${output_file}) + ENDIF (do_convert) + ENDIF (is_type) +ENDMACRO(LATEX_CONVERT_IMAGE) + +# Adds custom commands to process the given files for dvi and pdf builds. +# Adds the output files to the given variables (does not replace). +MACRO(LATEX_PROCESS_IMAGES dvi_outputs pdf_outputs) + LATEX_GET_OUTPUT_PATH(output_dir) + FOREACH(file ${ARGN}) + IF (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${file}") + GET_FILENAME_COMPONENT(extension "${file}" EXT) + SET(convert_flags) + + # Check to see if we need to downsample the image. + LATEX_LIST_CONTAINS(is_raster extension + ${LATEX_DVI_RASTER_IMAGE_EXTENSIONS} + ${LATEX_PDF_RASTER_IMAGE_EXTENSIONS}) + IF (LATEX_SMALL_IMAGES) + IF (is_raster) + SET(convert_flags -resize ${LATEX_RASTER_SCALE}%) + ENDIF (is_raster) + ENDIF (LATEX_SMALL_IMAGES) + + # Make sure the output directory exists. + GET_FILENAME_COMPONENT(path "${output_dir}/${file}" PATH) + MAKE_DIRECTORY("${path}") + + # Do conversions for dvi. + LATEX_CONVERT_IMAGE(${dvi_outputs} "${file}" .eps "${convert_flags}" + "${LATEX_DVI_IMAGE_EXTENSIONS}" "${ARGN}") + + # Do conversions for pdf. + IF (is_raster) + LATEX_CONVERT_IMAGE(${pdf_outputs} "${file}" .png "${convert_flags}" + "${LATEX_PDF_IMAGE_EXTENSIONS}" "${ARGN}") + ELSE (is_raster) + LATEX_CONVERT_IMAGE(${pdf_outputs} "${file}" .pdf "${convert_flags}" + "${LATEX_PDF_IMAGE_EXTENSIONS}" "${ARGN}") + ENDIF (is_raster) + ELSE (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${file}") + MESSAGE("Could not find file \"${CMAKE_CURRENT_SOURCE_DIR}/${file}\"") + ENDIF (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${file}") + ENDFOREACH(file) +ENDMACRO(LATEX_PROCESS_IMAGES) + +MACRO(ADD_LATEX_IMAGES) + MESSAGE("The ADD_LATEX_IMAGES macro is deprecated. Image directories are specified with LATEX_ADD_DOCUMENT.") +ENDMACRO(ADD_LATEX_IMAGES) + +MACRO(LATEX_COPY_GLOBBED_FILES pattern dest) + FILE(GLOB file_list ${pattern}) + FOREACH(in_file ${file_list}) + GET_FILENAME_COMPONENT(out_file ${in_file} NAME) + CONFIGURE_FILE(${in_file} ${dest}/${out_file} COPYONLY) + ENDFOREACH(in_file) +ENDMACRO(LATEX_COPY_GLOBBED_FILES) + +MACRO(LATEX_COPY_INPUT_FILE file) + LATEX_GET_OUTPUT_PATH(output_dir) + + IF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}) + GET_FILENAME_COMPONENT(path ${file} PATH) + FILE(MAKE_DIRECTORY ${output_dir}/${path}) + + LATEX_LIST_CONTAINS(use_config ${file} ${LATEX_CONFIGURE}) + IF (use_config) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file} + ${output_dir}/${file} + @ONLY + ) + ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${file} + COMMAND ${CMAKE_COMMAND} + ARGS ${CMAKE_BINARY_DIR} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file} + ) + ELSE (use_config) + ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${file} + COMMAND ${CMAKE_COMMAND} + ARGS -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${file} ${output_dir}/${file} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file} + ) + ENDIF (use_config) + ELSE (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}) + IF (EXISTS ${output_dir}/${file}) + # Special case: output exists but input does not. Assume that it was + # created elsewhere and skip the input file copy. + ELSE (EXISTS ${output_dir}/${file}) + MESSAGE("Could not find input file ${CMAKE_CURRENT_SOURCE_DIR}/${file}") + ENDIF (EXISTS ${output_dir}/${file}) + ENDIF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}) +ENDMACRO(LATEX_COPY_INPUT_FILE) + +############################################################################# +# Commands provided by the UseLATEX.cmake "package" +############################################################################# + +MACRO(LATEX_USAGE command message) + MESSAGE(SEND_ERROR + "${message}\nUsage: ${command}(<tex_file>\n [BIBFILES <bib_file> <bib_file> ...]\n [INPUTS <tex_file> <tex_file> ...]\n [IMAGE_DIRS <directory1> <directory2> ...]\n [IMAGES <image_file1> <image_file2>\n [CONFIGURE <tex_file> <tex_file> ...]\n [DEPENDS <tex_file> <tex_file> ...]\n [USE_INDEX] [USE_GLOSSARY] [DEFAULT_PDF] [MANGLE_TARGET_NAMES])" + ) +ENDMACRO(LATEX_USAGE command message) + +# Parses arguments to ADD_LATEX_DOCUMENT and ADD_LATEX_TARGETS and sets the +# variables LATEX_TARGET, LATEX_IMAGE_DIR, LATEX_BIBFILES, LATEX_DEPENDS, and +# LATEX_INPUTS. +MACRO(PARSE_ADD_LATEX_ARGUMENTS command) + LATEX_PARSE_ARGUMENTS( + LATEX + "BIBFILES;INPUTS;IMAGE_DIRS;IMAGES;CONFIGURE;DEPENDS" + "USE_INDEX;USE_GLOSSARY;USE_GLOSSARIES;DEFAULT_PDF;MANGLE_TARGET_NAMES" + ${ARGN} + ) + + # The first argument is the target latex file. + IF (LATEX_DEFAULT_ARGS) + LATEX_CAR(LATEX_MAIN_INPUT ${LATEX_DEFAULT_ARGS}) + LATEX_CDR(LATEX_DEFAULT_ARGS ${LATEX_DEFAULT_ARGS}) + GET_FILENAME_COMPONENT(LATEX_TARGET ${LATEX_MAIN_INPUT} NAME_WE) + ELSE (LATEX_DEFAULT_ARGS) + LATEX_USAGE(${command} "No tex file target given to ${command}.") + ENDIF (LATEX_DEFAULT_ARGS) + + IF (LATEX_DEFAULT_ARGS) + LATEX_USAGE(${command} "Invalid or depricated arguments: ${LATEX_DEFAULT_ARGS}") + ENDIF (LATEX_DEFAULT_ARGS) + + # Backward compatibility between 1.6.0 and 1.6.1. + IF (LATEX_USE_GLOSSARIES) + SET(LATEX_USE_GLOSSARY TRUE) + ENDIF (LATEX_USE_GLOSSARIES) +ENDMACRO(PARSE_ADD_LATEX_ARGUMENTS) + +MACRO(ADD_LATEX_TARGETS) + LATEX_GET_OUTPUT_PATH(output_dir) + PARSE_ADD_LATEX_ARGUMENTS(ADD_LATEX_TARGETS ${ARGV}) + + # Set up target names. + IF (LATEX_MANGLE_TARGET_NAMES) + SET(dvi_target ${LATEX_TARGET}_dvi) + SET(pdf_target ${LATEX_TARGET}_pdf) + SET(ps_target ${LATEX_TARGET}_ps) + SET(safepdf_target ${LATEX_TARGET}_safepdf) + SET(html_target ${LATEX_TARGET}_html) + SET(auxclean_target ${LATEX_TARGET}_auxclean) + ELSE (LATEX_MANGLE_TARGET_NAMES) + SET(dvi_target dvi) + SET(pdf_target pdf) + SET(ps_target ps) + SET(safepdf_target safepdf) + SET(html_target html) + SET(auxclean_target auxclean) + ENDIF (LATEX_MANGLE_TARGET_NAMES) + + # For each directory in LATEX_IMAGE_DIRS, glob all the image files and + # place them in LATEX_IMAGES. + FOREACH(dir ${LATEX_IMAGE_DIRS}) + FOREACH(extension ${LATEX_IMAGE_EXTENSIONS}) + FILE(GLOB files ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/*${extension}) + FOREACH(file ${files}) + GET_FILENAME_COMPONENT(filename ${file} NAME) + SET(LATEX_IMAGES ${LATEX_IMAGES} ${dir}/${filename}) + ENDFOREACH(file) + ENDFOREACH(extension) + ENDFOREACH(dir) + + SET(dvi_images) + SET(pdf_images) + LATEX_PROCESS_IMAGES(dvi_images pdf_images ${LATEX_IMAGES}) + + SET(make_dvi_command + ${CMAKE_COMMAND} -E chdir ${output_dir} + ${LATEX_COMPILER} ${LATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT}) + SET(make_pdf_command + ${CMAKE_COMMAND} -E chdir ${output_dir} + ${PDFLATEX_COMPILER} ${PDFLATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT}) + + SET(make_dvi_depends ${LATEX_DEPENDS} ${dvi_images}) + SET(make_pdf_depends ${LATEX_DEPENDS} ${pdf_images}) + FOREACH(input ${LATEX_MAIN_INPUT} ${LATEX_INPUTS}) + SET(make_dvi_depends ${make_dvi_depends} ${output_dir}/${input}) + SET(make_pdf_depends ${make_pdf_depends} ${output_dir}/${input}) + ENDFOREACH(input) + + IF (LATEX_BIBFILES) + SET(make_dvi_command ${make_dvi_command} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${BIBTEX_COMPILER} ${BIBTEX_COMPILER_FLAGS} ${LATEX_TARGET}) + SET(make_pdf_command ${make_pdf_command} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${BIBTEX_COMPILER} ${BIBTEX_COMPILER_FLAGS} ${LATEX_TARGET}) + FOREACH (bibfile ${LATEX_BIBFILES}) + SET(make_dvi_depends ${make_dvi_depends} ${output_dir}/${bibfile}) + SET(make_pdf_depends ${make_pdf_depends} ${output_dir}/${bibfile}) + ENDFOREACH (bibfile ${LATEX_BIBFILES}) + ENDIF (LATEX_BIBFILES) + + IF (LATEX_USE_INDEX) + SET(make_dvi_command ${make_dvi_command} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${LATEX_COMPILER} ${LATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${MAKEINDEX_COMPILER} ${MAKEINDEX_COMPILER_FLAGS} ${LATEX_TARGET}.idx) + SET(make_pdf_command ${make_pdf_command} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${PDFLATEX_COMPILER} ${PDFLATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${MAKEINDEX_COMPILER} ${MAKEINDEX_COMPILER_FLAGS} ${LATEX_TARGET}.idx) + ENDIF (LATEX_USE_INDEX) + + IF (LATEX_USE_GLOSSARY) + SET(make_dvi_command ${make_dvi_command} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${LATEX_COMPILER} ${LATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${CMAKE_COMMAND} + -D LATEX_BUILD_COMMAND=makeglossaries + -D LATEX_TARGET=${LATEX_TARGET} + -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER} + -D MAKEGLOSSARIES_COMPILER_FLAGS=${MAKEGLOSSARIES_COMPILER_FLAGS} + -P ${LATEX_USE_LATEX_LOCATION} + ) + SET(make_pdf_command ${make_pdf_command} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${PDFLATEX_COMPILER} ${PDFLATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${CMAKE_COMMAND} + -D LATEX_BUILD_COMMAND=makeglossaries + -D LATEX_TARGET=${LATEX_TARGET} + -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER} + -D MAKEGLOSSARIES_COMPILER_FLAGS=${MAKEGLOSSARIES_COMPILER_FLAGS} + -P ${LATEX_USE_LATEX_LOCATION} + ) + ENDIF (LATEX_USE_GLOSSARY) + + SET(make_dvi_command ${make_dvi_command} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${LATEX_COMPILER} ${LATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${LATEX_COMPILER} ${LATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT}) + SET(make_pdf_command ${make_pdf_command} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${PDFLATEX_COMPILER} ${PDFLATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${PDFLATEX_COMPILER} ${PDFLATEX_COMPILER_FLAGS} ${LATEX_MAIN_INPUT}) + + IF (LATEX_DEFAULT_PDF) + ADD_CUSTOM_TARGET(${dvi_target} ${make_dvi_command} + DEPENDS ${make_dvi_depends}) + ELSE (LATEX_DEFAULT_PDF) + ADD_CUSTOM_TARGET(${dvi_target} ALL ${make_dvi_command} + DEPENDS ${make_dvi_depends}) + ENDIF (LATEX_DEFAULT_PDF) + + IF (PDFLATEX_COMPILER) + IF (LATEX_DEFAULT_PDF) + ADD_CUSTOM_TARGET(${pdf_target} ALL ${make_pdf_command} + DEPENDS ${make_pdf_depends}) + ELSE (LATEX_DEFAULT_PDF) + ADD_CUSTOM_TARGET(${pdf_target} ${make_pdf_command} + DEPENDS ${make_pdf_depends}) + ENDIF (LATEX_DEFAULT_PDF) + ENDIF (PDFLATEX_COMPILER) + + IF (DVIPS_CONVERTER) + ADD_CUSTOM_TARGET(${ps_target} + ${CMAKE_COMMAND} -E chdir ${output_dir} + ${DVIPS_CONVERTER} ${DVIPS_CONVERTER_FLAGS} -o ${LATEX_TARGET}.ps ${LATEX_TARGET}.dvi + ) + ADD_DEPENDENCIES(${ps_target} ${dvi_target}) + IF (PS2PDF_CONVERTER) + ADD_CUSTOM_TARGET(${safepdf_target} + ${CMAKE_COMMAND} -E chdir ${output_dir} + ${PS2PDF_CONVERTER} ${PS2PDF_CONVERTER_FLAGS} ${LATEX_TARGET}.ps ${LATEX_TARGET}.pdf + ) + ADD_DEPENDENCIES(${safepdf_target} ${ps_target}) + ENDIF (PS2PDF_CONVERTER) + ENDIF (DVIPS_CONVERTER) + + IF (LATEX2HTML_CONVERTER) + ADD_CUSTOM_TARGET(${html_target} + ${CMAKE_COMMAND} -E chdir ${output_dir} + ${LATEX2HTML_CONVERTER} ${LATEX2HTML_CONVERTER_FLAGS} ${LATEX_MAIN_INPUT} + ) + ADD_DEPENDENCIES(${html_target} ${LATEX_MAIN_INPUT} ${LATEX_INPUTS}) + ENDIF (LATEX2HTML_CONVERTER) + + ADD_CUSTOM_TARGET(${auxclean_target} + ${CMAKE_COMMAND} -E remove ${output_dir}/${LATEX_TARGET}.aux ${output_dir}/${LATEX_TARGET}.idx ${output_dir}/${LATEX_TARGET}.ind + ) +ENDMACRO(ADD_LATEX_TARGETS) + +MACRO(ADD_LATEX_DOCUMENT) + LATEX_GET_OUTPUT_PATH(output_dir) + IF (output_dir) + PARSE_ADD_LATEX_ARGUMENTS(ADD_LATEX_DOCUMENT ${ARGV}) + + LATEX_COPY_INPUT_FILE(${LATEX_MAIN_INPUT}) + + FOREACH (bib_file ${LATEX_BIBFILES}) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${bib_file} + ${output_dir}/${bib_file} + COPYONLY) + ADD_CUSTOM_COMMAND(OUTPUT ${output_dir}/${bib_file} + COMMAND ${CMAKE_COMMAND} + ARGS -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${bib_file} ${output_dir}/${bib_file} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${bib_file} + ) + ENDFOREACH (bib_file) + + FOREACH (input ${LATEX_INPUTS}) + LATEX_COPY_INPUT_FILE(${input}) + ENDFOREACH(input) + + LATEX_COPY_GLOBBED_FILES(${CMAKE_CURRENT_SOURCE_DIR}/*.cls ${output_dir}) + LATEX_COPY_GLOBBED_FILES(${CMAKE_CURRENT_SOURCE_DIR}/*.bst ${output_dir}) + LATEX_COPY_GLOBBED_FILES(${CMAKE_CURRENT_SOURCE_DIR}/*.clo ${output_dir}) + LATEX_COPY_GLOBBED_FILES(${CMAKE_CURRENT_SOURCE_DIR}/*.sty ${output_dir}) + + ADD_LATEX_TARGETS(${ARGV}) + ENDIF (output_dir) +ENDMACRO(ADD_LATEX_DOCUMENT) + +############################################################################# +# Actually do stuff +############################################################################# + +IF (LATEX_BUILD_COMMAND) + SET(command_handled) + + IF ("${LATEX_BUILD_COMMAND}" STREQUAL makeglossaries) + LATEX_MAKEGLOSSARIES() + SET(command_handled TRUE) + ENDIF ("${LATEX_BUILD_COMMAND}" STREQUAL makeglossaries) + + IF (NOT command_handled) + MESSAGE(SEND_ERROR "Unknown command: ${LATEX_BUILD_COMMAND}") + ENDIF (NOT command_handled) + +ELSE (LATEX_BUILD_COMMAND) + # Must be part of the actual configure (included from CMakeLists.txt). + LATEX_SETUP_VARIABLES() +ENDIF (LATEX_BUILD_COMMAND) Modified: trunk/rcssserver3d/doc/users/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/doc/users/CMakeLists.txt 2009-01-22 11:21:46 UTC (rev 30) +++ trunk/rcssserver3d/doc/users/CMakeLists.txt 2009-01-22 16:55:58 UTC (rev 31) @@ -2,11 +2,11 @@ if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/user-manual.tex) if (PDFLATEX_COMPILER) -# include(../../cmake/UseLATEX.cmake) -# add_latex_document(user-manual.tex INPUTS agentspark.tex gettingstarted.tex -# robots.tex introduction.tex monitorspark.tex simspark.tex license.tex -# overview.tex simulations.tex definitions.tex resources.tex user-manual.tex -# BIBFILES references.bib IMAGE_DIRS fig DEFAULT_PDF) + include(../../cmake/UseLATEX.cmake) + add_latex_document(user-manual.tex INPUTS agentspark.tex gettingstarted.tex + robots.tex introduction.tex monitorspark.tex simspark.tex license.tex + overview.tex simulations.tex definitions.tex resources.tex user-manual.tex + BIBFILES references.bib IMAGE_DIRS fig DEFAULT_PDF) endif (PDFLATEX_COMPILER) else (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/user-manual.tex) add_custom_target(comment2 ALL echo '***' Modified: trunk/rcssserver3d/rcssmonitor3d/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/rcssmonitor3d/CMakeLists.txt 2009-01-22 11:21:46 UTC (rev 30) +++ trunk/rcssserver3d/rcssmonitor3d/CMakeLists.txt 2009-01-22 16:55:58 UTC (rev 31) @@ -21,18 +21,3 @@ install(FILES soccersim-monitor.rb rcssmonitor3d.rb soccerbindings.rb DESTINATION ${DATADIR}/${CMAKE_PROJECT_NAME}) - - - -#original Makefile.am contents follow: - -#LDADD = -lpthread -#if NO_RPATH -#AM_LDFLAGS = @SALT_LDFLAGS@ \ -# @SPARK_LDFLAGS@ @ZEITGEIST_LDFLAGS@ \ -# @OXYGEN_LDFLAGS@ @KEROSIN_LDFLAGS@ -#else -#AM_LDFLAGS = -Wl,--rpath,$(DESTDIR)$(pkglibdir) \ -# @SALT_LDFLAGS@ @SPARK_LDFLAGS@ @ZEITGEIST_LDFLAGS@ \ -# @OXYGEN_LDFLAGS@ @KEROSIN_LDFLAGS@ -#endif Modified: trunk/rcssserver3d/simspark/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/simspark/CMakeLists.txt 2009-01-22 11:21:46 UTC (rev 30) +++ trunk/rcssserver3d/simspark/CMakeLists.txt 2009-01-22 16:55:58 UTC (rev 31) @@ -21,17 +21,3 @@ install(FILES simspark.rb soccersim.rb naosoccersim.rb internalsoccermonitor.rb internalsoccerbindings.rb DESTINATION ${DATADIR}/${CMAKE_PROJECT_NAME}) - -#original Makefile.am contents follow: - -#LDADD = -lpthread -# -#if NO_RPATH -#AM_LDFLAGS = @SALT_LDFLAGS@ \ -# @SPARK_LDFLAGS@ @ZEITGEIST_LDFLAGS@ \ -# @OXYGEN_LDFLAGS@ @KEROSIN_LDFLAGS@ -#else -#AM_LDFLAGS = -Wl,--rpath,$(DESTDIR)$(pkglibdir) \ -# @SALT_LDFLAGS@ @SPARK_LDFLAGS@ @ZEITGEIST_LDFLAGS@ \ -# @OXYGEN_LDFLAGS@ @KEROSIN_LDFLAGS@ -#endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2009-02-09 17:19:05
|
Revision: 43 http://simspark.svn.sourceforge.net/simspark/?rev=43&view=rev Author: hedayat Date: 2009-02-09 17:19:01 +0000 (Mon, 09 Feb 2009) Log Message: ----------- Updated documentation: - Say effector limit is 20 characters - Updated RestrictedVisionPerceptor parameters - minotorspark -> rcssmonitor3d - Added information about renames of agentspark and monitorspark to NEWS and RELEASE Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/NEWS trunk/rcssserver3d/RELEASE trunk/rcssserver3d/doc/TEXT_INSTEAD_OF_A_MANUAL.txt trunk/rcssserver3d/doc/users/CMakeLists.txt trunk/rcssserver3d/doc/users/definitions.tex trunk/rcssserver3d/doc/users/gettingstarted.tex trunk/rcssserver3d/doc/users/introduction.tex trunk/rcssserver3d/doc/users/simspark.tex trunk/rcssserver3d/doc/users/user-manual.tex Added Paths: ----------- trunk/rcssserver3d/doc/users/rcssmonitor3d.tex Removed Paths: ------------- trunk/rcssserver3d/doc/users/monitorspark.tex Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2009-02-08 00:25:53 UTC (rev 42) +++ trunk/rcssserver3d/ChangeLog 2009-02-09 17:19:01 UTC (rev 43) @@ -1,3 +1,17 @@ +2009-02-09 Hedayat Vatankhah <he...@gr...> + + * doc/users/user-manual.tex: + * doc/users/simspark.tex: + * doc/users/rcssmonitor3d.tex: + * doc/users/introduction.tex: + * doc/users/gettingstarted.tex: + * doc/users/definitions.tex: + * doc/users/CMakeLists.txt: + * doc/TEXT_INSTEAD_OF_A_MANUAL.txt: + - monitorspark -> rcssmonitor3d + - Say effector message lenght limit is 20 characters now + - Updated some info about RestrictedVisionPerceptor + 2009-01-29 Hedayat Vatankhah <he...@gr...> * INSTALL: Modified: trunk/rcssserver3d/NEWS =================================================================== --- trunk/rcssserver3d/NEWS 2009-02-08 00:25:53 UTC (rev 42) +++ trunk/rcssserver3d/NEWS 2009-02-09 17:19:01 UTC (rev 43) @@ -16,6 +16,10 @@ - You'll need CMake 2.6 to configure and build the package - this package depends on simspark package, so you should install it first +* New program names: + - agentspark is now called rcssagent3d + - monitorspark is now called rcssmonitor3d + * Some small enhancements and bug fixes [0.6] Modified: trunk/rcssserver3d/RELEASE =================================================================== --- trunk/rcssserver3d/RELEASE 2009-02-08 00:25:53 UTC (rev 42) +++ trunk/rcssserver3d/RELEASE 2009-02-09 17:19:01 UTC (rev 43) @@ -17,6 +17,10 @@ - You'll need CMake 2.6 to configure and build the package - this package depends on simspark package, so you should install it first +* New program names: + - agentspark is now called rcssagent3d + - monitorspark is now called rcssmonitor3d + * Some small enhancements and bug fixes For details have a look into the ChangeLog coming with the package. (But some Modified: trunk/rcssserver3d/doc/TEXT_INSTEAD_OF_A_MANUAL.txt =================================================================== --- trunk/rcssserver3d/doc/TEXT_INSTEAD_OF_A_MANUAL.txt 2009-02-08 00:25:53 UTC (rev 42) +++ trunk/rcssserver3d/doc/TEXT_INSTEAD_OF_A_MANUAL.txt 2009-02-09 17:19:01 UTC (rev 43) @@ -310,7 +310,7 @@ ------------------- To broadcast messages to other players, you have to use the -SayEffector. Messages can be sayMsgSize(for now 512) characters long, +SayEffector. Messages can be sayMsgSize(for now 20) characters long, where valid characters for say messages are the printing characters* except space and (). Messages players say can be heard within a distance of audioCutDist(for now 50 meters) by members of both @@ -344,8 +344,7 @@ software attached :). If using the regular visionperceptor, Robots have a 360 degrees view. With the RestrictedVisionPerceptor (which became the default in version 0.5), the view field of the robot is -restricted to 90 degrees (this is of course configurable in -rcssserver3D.rb). The direction of the view (pan and tilt) can be +restricted to 120 degrees (for Nao). The direction of the view (pan and tilt) can be changed with the pantilt effector. The camera can pan to any angle (the initial 0 degrees pan direction is the direction towards the opponent side), and tilt around the horizontal plane. @@ -376,7 +375,7 @@ complete match. - Dynamic noise normally distributed around 0.0 - + distance error: sigma = 0.0965 + + distance error: sigma = 0.0965 (also, distance error is multiplied by distance/100) + angle error (x-y plane): sigma = 0.1225 + angle error (latitudal): sigma = 0.1480 Modified: trunk/rcssserver3d/doc/users/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/doc/users/CMakeLists.txt 2009-02-08 00:25:53 UTC (rev 42) +++ trunk/rcssserver3d/doc/users/CMakeLists.txt 2009-02-09 17:19:01 UTC (rev 43) @@ -4,7 +4,7 @@ if (PDFLATEX_COMPILER) include(../../cmake/UseLATEX.cmake) add_latex_document(user-manual.tex INPUTS rcssagent3d.tex gettingstarted.tex - robots.tex introduction.tex monitorspark.tex simspark.tex license.tex + robots.tex introduction.tex rcssmonitor3d.tex simspark.tex license.tex overview.tex simulations.tex definitions.tex resources.tex user-manual.tex BIBFILES references.bib IMAGE_DIRS fig DEFAULT_PDF) endif (PDFLATEX_COMPILER) Modified: trunk/rcssserver3d/doc/users/definitions.tex =================================================================== --- trunk/rcssserver3d/doc/users/definitions.tex 2009-02-08 00:25:53 UTC (rev 42) +++ trunk/rcssserver3d/doc/users/definitions.tex 2009-02-09 17:19:01 UTC (rev 43) @@ -107,8 +107,9 @@ Klaus Dorer\\% Markus Rollmann\\% Yuan Xu\\% - Feng Xue\\% - Marian Buchta\\% + Feng Xue\\% + Marian Buchta\\% + Hedayat Vatankhah\\% } } \end{minipage} @@ -117,7 +118,7 @@ \textsf{\Large\flushright{Version 1.2}} \end{minipage} - \vspace{-3cm} + \vspace{-4cm} \begin{minipage}[t]{\linewidth} \hspace*{2.25cm} Modified: trunk/rcssserver3d/doc/users/gettingstarted.tex =================================================================== --- trunk/rcssserver3d/doc/users/gettingstarted.tex 2009-02-08 00:25:53 UTC (rev 42) +++ trunk/rcssserver3d/doc/users/gettingstarted.tex 2009-02-09 17:19:01 UTC (rev 43) @@ -88,7 +88,7 @@ simspark core package like: \begin{itemize} \item Gendot: generates a graphviz dot file showing the zeitgeist class hierarchy, including all classes that are visible at runtime -\item Monitorspark: external monitor implementation. Please refer to chapter \ref{cha:monitorspark} +\item Monitorspark: external monitor implementation. \item Sampleagent: sample of simple behaviour implementation \item Samplesim: sample of simple simulation \end{itemize} @@ -235,7 +235,7 @@ The monitor is a separate application that connects to the server and displays the simulated scene. To start the default monitor type -\texttt{monitorspark}. By default the monitor is configured to connect to a simulation +\texttt{rcssmonitor3d}. By default the monitor is configured to connect to a simulation on the local machine. You can however run the server and monitor on different machines. @@ -255,7 +255,7 @@ After the monitor started you are able to use the mouse and keyboard to navigate the scene. Please refer to chapter -\ref{cha:monitorspark} for a complete list of the available key bindings. +\ref{cha:rcssmonitor3d} for a complete list of the available key bindings. You can use the numbers of the keypad to navigate to different positions on the playing field. The view after pressing \texttt{3} is @@ -325,7 +325,7 @@ \end{itemize} -%I think for the initial outline of the manual it's easier to just focus on either app/simpark app/monitorspark or rsgedit. +%I think for the initial outline of the manual it's easier to just focus on either app/simpark app/rcssmonitor3d or rsgedit. %%% Local Variables: %%% mode: latex Modified: trunk/rcssserver3d/doc/users/introduction.tex =================================================================== --- trunk/rcssserver3d/doc/users/introduction.tex 2009-02-08 00:25:53 UTC (rev 42) +++ trunk/rcssserver3d/doc/users/introduction.tex 2009-02-09 17:19:01 UTC (rev 43) @@ -101,7 +101,7 @@ to the agent and vice versa. These messages contain information about agent percepts and agent command strings. -In chapter \ref{cha:monitorspark} we give an overview about the +In chapter \ref{cha:rcssmonitor3d} we give an overview about the available monitor and log player setups. Their configuration and usage is described in detail there. Deleted: trunk/rcssserver3d/doc/users/monitorspark.tex =================================================================== --- trunk/rcssserver3d/doc/users/monitorspark.tex 2009-02-08 00:25:53 UTC (rev 42) +++ trunk/rcssserver3d/doc/users/monitorspark.tex 2009-02-09 17:19:01 UTC (rev 43) @@ -1,89 +0,0 @@ -\chapter{Monitorspark} -\label{cha:monitorspark} - -This chapter gives an overview about the available monitor and log -player setups available in SimSpark, their configuration and usage. - -\section{Internal Monitor} - -The internal monitor implementation is part of the SimSpark server. It -is enabled in the \texttt{simspark.rb} setup script by enabling the -rendering and input plugins of the server. To do so please uncomment -the lines \texttt{sparkSetupRendering()} and -\texttt{sparkSetupInput()}, i.e. remove the leading \texttt{'\#'} comment markers. - -\section{External Monitor} - -The external monitor implementation is called -\texttt{monitorspark}. It either connects to a running SimSpark -instance or replays a simulation run from a log file. - -\section{Playing Log files} - -The monitor is able to replay a simulation that is recorded in a log -file. It accepts a \texttt{--logfile} parameter on its command line -that enables the log player mode. - -\section{Key Assignments} - -The monitor accepts a number of commands by key or mouse. These -commands either control the movement of the camera or send commands -back to the server to control the simulation. The soccer simulation -uses these commands to implement the controls for the human referee. - -\begin{table} -\label {table:monitorspark} -\caption{Key assignments for monitorspark} -\begin{center} -\begin{tabular}{|l|l|} -{\bf key} & {\bf function} \\ -\hline -q & quit monitor \\ -\hline -left mouse button & mouse look \\ -right mouse button & move camera up \\ -keypad plus & move camera up \\ -pageup & move camera up \\ -pagedown & move camera down \\ -keypad minus & move camera down \\ -a & move camera left \\ -left arrow & move camera left \\ -d & move camera right \\ -right arrow & move camera right \\ -w & move camera forward \\ -up arrow & move camera forward \\ -s & move camera backward \\ -down arrow & move camera backward \\ -\hline -1 & camera to left goal \\ -2 & camera to left corner \\ -3 & camera to middle left \\ -4 & camera to middle right \\ -5 & camera to middle \\ -6 & camera to right corner \\ -7 & camera to right goal \\ -\hline -l & free kick left \\ -r & free kick right \\ -k & kick off \\ -b & drop ball \\ -m & move agent \\ -n & shoot ball \\ -x & move ball \\ -\hline -p & pause the playback of a log file \\ -f & move forward in the log file \\ -b & move backwards in the log file \\ -l & playback the log file \\ -\hline -\end{tabular} -\end{center} -\end{table} - -The list of accepted default command short cuts is given in table -\ref{table:monitorspark}. These short cuts are configured in the two setup -scripts \texttt{bindings.rb} and \texttt{soccerbindings.rb} that the -SimSpark monitor reads on start up. - - %%% Local Variables: %%% mode: latex %%% TeX-master: -"user-manual" %%% End: Copied: trunk/rcssserver3d/doc/users/rcssmonitor3d.tex (from rev 42, trunk/rcssserver3d/doc/users/monitorspark.tex) =================================================================== --- trunk/rcssserver3d/doc/users/rcssmonitor3d.tex (rev 0) +++ trunk/rcssserver3d/doc/users/rcssmonitor3d.tex 2009-02-09 17:19:01 UTC (rev 43) @@ -0,0 +1,89 @@ +\chapter{Rcssmonitor3d} +\label{cha:rcssmonitor3d} + +This chapter gives an overview about the available monitor and log +player setups available in SimSpark, their configuration and usage. + +\section{Internal Monitor} + +The internal monitor implementation is part of the SimSpark server. It +is enabled in the \texttt{simspark.rb} setup script by enabling the +rendering and input plugins of the server. To do so please uncomment +the lines \texttt{sparkSetupRendering()} and +\texttt{sparkSetupInput()}, i.e. remove the leading \texttt{'\#'} comment markers. + +\section{External Monitor} + +The external monitor implementation is called +\texttt{rcssmonitor3d}. It either connects to a running SimSpark +instance or replays a simulation run from a log file. + +\section{Playing Log files} + +The monitor is able to replay a simulation that is recorded in a log +file. It accepts a \texttt{--logfile} parameter on its command line +that enables the log player mode. + +\section{Key Assignments} + +The monitor accepts a number of commands by key or mouse. These +commands either control the movement of the camera or send commands +back to the server to control the simulation. The soccer simulation +uses these commands to implement the controls for the human referee. + +\begin{table} +\label {table:rcssmonitor3d} +\caption{Key assignments for rcssmonitor3d} +\begin{center} +\begin{tabular}{|l|l|} +{\bf key} & {\bf function} \\ +\hline +q & quit monitor \\ +\hline +left mouse button & mouse look \\ +right mouse button & move camera up \\ +keypad plus & move camera up \\ +pageup & move camera up \\ +pagedown & move camera down \\ +keypad minus & move camera down \\ +a & move camera left \\ +left arrow & move camera left \\ +d & move camera right \\ +right arrow & move camera right \\ +w & move camera forward \\ +up arrow & move camera forward \\ +s & move camera backward \\ +down arrow & move camera backward \\ +\hline +1 & camera to left goal \\ +2 & camera to left corner \\ +3 & camera to middle left \\ +4 & camera to middle right \\ +5 & camera to middle \\ +6 & camera to right corner \\ +7 & camera to right goal \\ +\hline +l & free kick left \\ +r & free kick right \\ +k & kick off \\ +b & drop ball \\ +m & move agent \\ +n & shoot ball \\ +x & move ball \\ +\hline +p & pause the playback of a log file \\ +f & move forward in the log file \\ +b & move backwards in the log file \\ +l & playback the log file \\ +\hline +\end{tabular} +\end{center} +\end{table} + +The list of accepted default command short cuts is given in table +\ref{table:rcssmonitor3d}. These short cuts are configured in the two setup +scripts \texttt{bindings.rb} and \texttt{soccerbindings.rb} that the +SimSpark monitor reads on start up. + + %%% Local Variables: %%% mode: latex %%% TeX-master: +"user-manual" %%% End: Modified: trunk/rcssserver3d/doc/users/simspark.tex =================================================================== --- trunk/rcssserver3d/doc/users/simspark.tex 2009-02-08 00:25:53 UTC (rev 42) +++ trunk/rcssserver3d/doc/users/simspark.tex 2009-02-09 17:19:01 UTC (rev 43) @@ -154,8 +154,7 @@ software attached :). If using the regular visionperceptor, Robots have a 360 degrees view. With the RestrictedVisionPerceptor (which became the default in version 0.5), the view field of the robot is -restricted to 90 degrees (this is of course configurable in -rcssserver3D.rb). The direction of the view (pan and tilt) can be +restricted to 120 degrees (for Nao robot). The direction of the view (pan and tilt) can be changed with the pantilt effector. The camera can pan to any angle (the initial 0 degrees pan direction is the direction towards the opponent side), and tilt around the horizontal plane. @@ -196,9 +195,9 @@ axis, the error is uniformly distributed between -0.005 m and 0.005 m. The error is calculated once and remains constant during the complete match. \item Dynamic noise normally distributed around 0.0 - + distance error: sigma = 0.0965 - + angle error (x-y plane): sigma = 0.1225 - + angle error (latitudal): sigma = 0.1480 + \subitem + distance error: sigma = 0.0965 (also, distance error is multiplied by distance/100) + \subitem + angle error (x-y plane): sigma = 0.1225 + \subitem + angle error (latitudal): sigma = 0.1480 \end{itemize} A vision message is started with See followed by the visible objects. @@ -225,6 +224,7 @@ % The current soccer bot seems not to use it, still experimental/unsupported? % Joschka: I'm not sure either. Oliver worked on that, and Yuan had several patches for it last year. Maybe Yuan has the best overview right now? The current Soccerbot doesn't use it. +% Hedayat: Currently Nao robot uses this perceptor. \subsubsection{GameState Perceptor} \label{sec:gamestateperceptor} @@ -405,7 +405,7 @@ \label{sec:sayeffector} %klaus: is this old version only? -%Joschka: no, the Soccerbot has a say effector in the current version. It is restricted to 8 bytes msgs. +%Joschka: no, the Soccerbot has a say effector in the current version. It is restricted to 20 bytes msgs. %description in TEXT_INSTEAD_... and Philipp Vorst's thesis The \emph{say effector} permits communication among agents by broadcasting messages. In order to say something, the following command has to be employed: @@ -413,7 +413,7 @@ \item[Message format:] \texttt{(say <message>)} \item[Example message:] \texttt{(say ``helloworld'')} \end{itemize} -$Message$ may consist of 8 characters, which may be taken from the ASCII +$Message$ may consist of 20 characters, which may be taken from the ASCII printing character subset $[{\tt 0x20}, {\tt 0x7E]}$ except the {\it white space} character ($\sqcup$) and the normal brackets {\tt(} and {\tt )}. For details and restrictions please see Section~\ref{sec:hearperceptor}, about Modified: trunk/rcssserver3d/doc/users/user-manual.tex =================================================================== --- trunk/rcssserver3d/doc/users/user-manual.tex 2009-02-08 00:25:53 UTC (rev 42) +++ trunk/rcssserver3d/doc/users/user-manual.tex 2009-02-09 17:19:01 UTC (rev 43) @@ -1,7 +1,7 @@ \include{definitions} \author{Joschka Boedecker \\ Klaus Dorer \\ Markus Rollmann \\ Yuan Xu -\\ Feng Xue \\ Marian Buchta} +\\ Feng Xue \\ Marian Buchta \\ Hedayat Vatankhah} \title{Simspark User Manual} \date{February 2009} @@ -25,7 +25,7 @@ \input{overview} \input{gettingstarted} \input{simspark} -\input{monitorspark} +\input{rcssmonitor3d} \input{rcssagent3d} \input{simulations} \input{robots} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2009-04-08 11:39:46
|
Revision: 59 http://simspark.svn.sourceforge.net/simspark/?rev=59&view=rev Author: hedayat Date: 2009-04-08 11:39:36 +0000 (Wed, 08 Apr 2009) Log Message: ----------- Fixed some warnings Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/plugin/soccer/beameffector/beamaction.h trunk/rcssserver3d/plugin/soccer/kickeffector/kickaction.h trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.h trunk/rcssserver3d/plugin/soccer/soccerbase/soccerbase.cpp trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp trunk/rcssserver3d/plugin/soccer/visionperceptor/visionperceptor.h Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2009-04-07 08:21:33 UTC (rev 58) +++ trunk/rcssserver3d/ChangeLog 2009-04-08 11:39:36 UTC (rev 59) @@ -1,3 +1,19 @@ +2009-04-08 Hedayat Vatankhah <he...@gr...> + + * plugin/soccer/beameffector/beamaction.h (BeamAction): + - fixed const function declaration + + * plugin/soccer/soccerbase/soccerbase.cpp (SoccerBase::MoveAgent): + - removed useless statements + + * plugin/soccer/kickeffector/kickaction.h: + * plugin/soccer/soccerruleaspect/soccerruleaspect.cpp: + - fixed variables order in ctor + + * plugin/soccer/visionperceptor/visionperceptor.h: + * plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.h: + - added missing return statement + 2009-03-05 Hedayat Vatankhah <he...@gr...> * linux/rcssserver3d.desktop: Modified: trunk/rcssserver3d/plugin/soccer/beameffector/beamaction.h =================================================================== --- trunk/rcssserver3d/plugin/soccer/beameffector/beamaction.h 2009-04-07 08:21:33 UTC (rev 58) +++ trunk/rcssserver3d/plugin/soccer/beameffector/beamaction.h 2009-04-08 11:39:36 UTC (rev 59) @@ -33,13 +33,13 @@ virtual ~BeamAction() {} /** returns x coord of the position the agent wants to beam to */ - const float GetPosX() { return mPosX; } + float GetPosX() const { return mPosX; } /** returns x coord of the position the agent wants to beam to */ - const float GetPosY() { return mPosY; } + float GetPosY() const { return mPosY; } /** returns the stored angle in the x-y-plane */ - const float GetXYAngle() { return mXYAngle; } + float GetXYAngle() const { return mXYAngle; } protected: /** the x coord of the position to beam the agent to */ Modified: trunk/rcssserver3d/plugin/soccer/kickeffector/kickaction.h =================================================================== --- trunk/rcssserver3d/plugin/soccer/kickeffector/kickaction.h 2009-04-07 08:21:33 UTC (rev 58) +++ trunk/rcssserver3d/plugin/soccer/kickeffector/kickaction.h 2009-04-08 11:39:36 UTC (rev 59) @@ -29,7 +29,7 @@ { public: KickAction(const std::string& predicate, float phi, float power) - : ActionObject(predicate), mKickAngle(phi),mPower(power) {} + : ActionObject(predicate), mPower(power), mKickAngle(phi) {} virtual ~KickAction() {} Modified: trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.h =================================================================== --- trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.h 2009-04-07 08:21:33 UTC (rev 58) +++ trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.h 2009-04-08 11:39:36 UTC (rev 59) @@ -53,6 +53,8 @@ mTheta = rhs.mTheta; mPhi = rhs.mPhi; mDist = rhs.mDist; + + return *this; } int operator==(const ObjectData& rhs) const Modified: trunk/rcssserver3d/plugin/soccer/soccerbase/soccerbase.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/soccerbase/soccerbase.cpp 2009-04-07 08:21:33 UTC (rev 58) +++ trunk/rcssserver3d/plugin/soccer/soccerbase/soccerbase.cpp 2009-04-08 11:39:36 UTC (rev 59) @@ -661,7 +661,7 @@ Leaf::TLeafList::iterator iter = leafList.begin(); // move all child bodies - for (iter; iter != leafList.end(); ++iter) + for (; iter != leafList.end(); ++iter) { shared_ptr<Body> childBody = shared_dynamic_cast<Body>(*iter); @@ -715,7 +715,7 @@ Leaf::TLeafList::iterator iter = leafList.begin(); // move all child bodies - for (iter; + for (; iter != leafList.end(); ++iter ) Modified: trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp 2009-04-07 08:21:33 UTC (rev 58) +++ trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp 2009-04-08 11:39:36 UTC (rev 59) @@ -50,10 +50,10 @@ mSingleHalfTime(false), mSayMsgSize(20), mAudioCutDist(50.0), - mUseOffside(true), mFirstCollidingAgent(true), mNotOffside(false), - mLastModeWasPlayOn(false) + mLastModeWasPlayOn(false), + mUseOffside(true) { mFreeKickPos = Vector3f(0.0,0.0,mBallRadius); Modified: trunk/rcssserver3d/plugin/soccer/visionperceptor/visionperceptor.h =================================================================== --- trunk/rcssserver3d/plugin/soccer/visionperceptor/visionperceptor.h 2009-04-07 08:21:33 UTC (rev 58) +++ trunk/rcssserver3d/plugin/soccer/visionperceptor/visionperceptor.h 2009-04-08 11:39:36 UTC (rev 59) @@ -51,6 +51,8 @@ mTheta = rhs.mTheta; mPhi = rhs.mPhi; mDist = rhs.mDist; + + return *this; } int operator==(const ObjectData& rhs) const This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2010-01-03 17:35:07
|
Revision: 133 http://simspark.svn.sourceforge.net/simspark/?rev=133&view=rev Author: hedayat Date: 2010-01-03 17:34:56 +0000 (Sun, 03 Jan 2010) Log Message: ----------- Now visual goal object follows server goal parameters Fixed rcssmonitor3d so that it prints correct name when run Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/data/models/leftgoal.obj trunk/rcssserver3d/data/models/rightgoal.obj trunk/rcssserver3d/data/rsg/agent/nao/goal.rsg trunk/rcssserver3d/rcssmonitor3d/main.cpp Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2010-01-01 22:01:05 UTC (rev 132) +++ trunk/rcssserver3d/ChangeLog 2010-01-03 17:34:56 UTC (rev 133) @@ -1,3 +1,16 @@ +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: Modified: trunk/rcssserver3d/data/models/leftgoal.obj =================================================================== --- trunk/rcssserver3d/data/models/leftgoal.obj 2010-01-01 22:01:05 UTC (rev 132) +++ trunk/rcssserver3d/data/models/leftgoal.obj 2010-01-03 17:34:56 UTC (rev 133) @@ -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.100703 +vn 0.963964 -0.000000 -0.266033 usemtl grey_naogoalnet.png -s 1 -f 68/1/1 126/2/2 125/3/3 -f 206/4/4 205/5/4 204/6/4 -f 207/7/5 209/8/6 208/9/5 -f 216/10/4 215/11/4 214/12/4 -f 226/13/6 228/14/6 227/15/6 -f 213/16/7 212/17/7 210/18/7 -f 213/19/7 210/20/7 211/21/7 -f 202/22/8 207/23/5 208/24/5 -f 202/25/8 208/26/5 203/27/8 +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 usemtl yellow -f 65/28/1 1/29/9 2/30/10 -f 66/31/11 34/32/12 33/33/13 -f 65/34/1 2/35/10 3/36/14 -f 66/37/11 35/38/15 34/39/12 -f 65/40/1 3/41/14 4/42/16 -f 66/43/11 36/44/17 35/45/15 -f 65/46/1 4/47/16 5/48/18 -f 66/49/11 37/50/19 36/51/17 -f 65/52/1 5/53/18 6/54/20 -f 66/55/11 38/56/21 37/57/19 -f 65/58/1 6/59/20 7/60/2 -f 66/61/11 39/62/22 38/63/21 -f 65/64/1 7/65/2 8/66/3 -f 66/67/11 40/68/23 39/69/22 -f 65/70/1 8/71/3 9/72/24 -f 66/73/11 41/74/25 40/75/23 -f 65/76/1 9/77/24 10/78/26 -f 66/79/11 42/80/27 41/81/25 -f 65/82/1 10/83/26 11/84/28 -f 66/85/11 43/86/29 42/87/27 -f 65/88/1 11/89/28 12/90/30 -f 66/91/11 44/92/31 43/93/29 -f 65/94/1 12/95/30 13/96/32 -f 66/97/11 45/98/33 44/99/31 -f 65/100/1 13/101/32 14/102/34 -f 66/103/11 46/104/35 45/105/33 -f 65/106/1 14/107/34 15/108/36 -f 66/109/11 47/110/37 46/111/35 -f 65/112/1 15/113/36 16/114/38 -f 66/115/11 48/116/39 47/117/37 -f 65/118/1 16/119/38 17/120/40 -f 66/121/11 49/122/41 48/123/39 -f 65/124/1 17/125/40 18/126/42 -f 66/127/11 50/128/43 49/129/41 -f 65/130/1 18/131/42 19/132/44 -f 66/133/11 51/134/45 50/135/43 -f 65/136/1 19/137/44 20/138/46 -f 66/139/11 52/140/47 51/141/45 -f 65/142/1 20/143/46 21/144/48 -f 66/145/11 53/146/49 52/147/47 -f 65/148/1 21/149/48 22/150/50 -f 66/151/11 54/152/51 53/153/49 -f 65/154/1 22/155/50 23/156/52 -f 66/157/11 55/158/53 54/159/51 -f 65/160/1 23/161/52 24/162/54 -f 66/163/11 56/164/55 55/165/53 -f 65/166/1 24/167/54 25/168/56 -f 66/169/11 57/170/57 56/171/55 -f 65/172/1 25/173/56 26/174/58 -f 66/175/11 58/176/59 57/177/57 -f 65/178/1 26/179/58 27/180/60 -f 66/181/11 59/182/61 58/183/59 -f 65/184/1 27/185/60 28/186/62 -f 66/187/11 60/188/63 59/189/61 -f 65/190/1 28/191/62 29/192/64 -f 66/193/11 61/194/65 60/195/63 -f 65/196/1 29/197/64 30/198/66 -f 66/199/11 62/200/67 61/201/65 -f 65/202/1 30/203/66 31/204/68 -f 66/205/11 63/206/69 62/207/67 -f 65/208/1 31/209/68 32/210/70 -f 66/211/11 64/212/71 63/213/69 -f 32/214/70 1/215/9 65/216/1 -f 66/217/11 33/218/13 64/219/71 -f 67/220/11 100/221/72 69/222/71 -f 68/223/1 101/224/70 132/225/73 -f 67/226/11 69/227/71 70/228/74 -f 68/229/1 102/230/68 101/231/70 -f 67/232/11 70/233/74 71/234/67 -f 68/235/1 103/236/66 102/237/68 -f 67/238/11 71/239/67 72/240/65 -f 68/241/1 104/242/64 103/243/66 -f 67/244/11 72/245/65 73/246/63 -f 68/... [truncated message content] |
From: <he...@us...> - 2010-01-10 23:45:17
|
Revision: 140 http://simspark.svn.sourceforge.net/simspark/?rev=140&view=rev Author: hedayat Date: 2010-01-10 23:45:10 +0000 (Sun, 10 Jan 2010) Log Message: ----------- Add a new script: rcsoccersim3d to run both a server and a monitor, and shut down the server when monitor quits renamed simspark to rcssserver3d Updates release notes Modified Paths: -------------- trunk/rcssserver3d/CMakeLists.txt trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/RELEASE trunk/rcssserver3d/rcssserver3d/CMakeLists.txt trunk/rcssserver3d/rcssserver3d/main.cpp Added Paths: ----------- trunk/rcssserver3d/rcssserver3d/ trunk/rcssserver3d/rcssserver3d/naosoccersim.rb trunk/rcssserver3d/rcssserver3d/rcsoccersim3d.in Removed Paths: ------------- trunk/rcssserver3d/rcssserver3d/naosoccersim.rb trunk/rcssserver3d/simspark/ Modified: trunk/rcssserver3d/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/CMakeLists.txt 2010-01-10 09:14:25 UTC (rev 139) +++ trunk/rcssserver3d/CMakeLists.txt 2010-01-10 23:45:10 UTC (rev 140) @@ -76,7 +76,7 @@ add_subdirectory(plugin) add_subdirectory(rcssagent3d) add_subdirectory(rcssmonitor3d) -add_subdirectory(simspark) +add_subdirectory(rcssserver3d) ########### install files ############### Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2010-01-10 09:14:25 UTC (rev 139) +++ trunk/rcssserver3d/ChangeLog 2010-01-10 23:45:10 UTC (rev 140) @@ -1,3 +1,19 @@ +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: Modified: trunk/rcssserver3d/RELEASE =================================================================== --- trunk/rcssserver3d/RELEASE 2010-01-10 09:14:25 UTC (rev 139) +++ trunk/rcssserver3d/RELEASE 2010-01-10 23:45:10 UTC (rev 140) @@ -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: trunk/rcssserver3d/rcssserver3d/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/simspark/CMakeLists.txt 2009-12-18 13:01:31 UTC (rev 126) +++ trunk/rcssserver3d/rcssserver3d/CMakeLists.txt 2010-01-10 23:45:10 UTC (rev 140) @@ -1,10 +1,10 @@ ########### next target ############### -set(simspark_SRCS +set(rcssserver3d_SRCS main.cpp ) -add_executable(simspark ${simspark_SRCS}) +add_executable(rcssserver3d ${rcssserver3d_SRCS}) if (APPLE) set(SDL_LINK_LIBS ${SDLMAIN_LIBRARY} ${SDL_LIBRARY_TEMP}) @@ -12,16 +12,27 @@ include_directories(${SDL_INCLUDE_DIR}) -target_link_libraries(simspark ${SPARK_LIBRARIES} ${SALT_LIBRARIES} +target_link_libraries(rcssserver3d ${SPARK_LIBRARIES} ${SALT_LIBRARIES} ${ZEITGEIST_LIBRARIES} ${OXYGEN_LIBRARIES} ${KEROSIN_LIBRARIES} ${SDL_LINK_LIBS} ${RCSSNET3D_LIBRARY}) -set_target_properties(simspark PROPERTIES INSTALL_RPATH "${RPATH_DIRECTORIES}") -install(TARGETS simspark DESTINATION ${BINDIR}) +set_target_properties(rcssserver3d PROPERTIES INSTALL_RPATH "${RPATH_DIRECTORIES}") +install(TARGETS rcssserver3d DESTINATION ${BINDIR}) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/rcsoccersim3d.in + ${CMAKE_CURRENT_BINARY_DIR}/rcsoccersim3d) +execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink + ${CMAKE_INSTALL_PREFIX}/${BINDIR}/rcssserver3d + ${CMAKE_CURRENT_BINARY_DIR}/simspark) + ########### install files ############### install(FILES simspark.rb soccersim.rb naosoccersim.rb internalsoccermonitor.rb internalsoccerbindings.rb DESTINATION ${DATADIR}/${CMAKE_PROJECT_NAME}) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/rcsoccersim3d + ${CMAKE_CURRENT_BINARY_DIR}/simspark DESTINATION ${BINDIR} + PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ + GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE) Modified: trunk/rcssserver3d/rcssserver3d/main.cpp =================================================================== --- trunk/rcssserver3d/simspark/main.cpp 2009-12-18 13:01:31 UTC (rev 126) +++ trunk/rcssserver3d/rcssserver3d/main.cpp 2010-01-10 23:45:10 UTC (rev 140) @@ -69,7 +69,7 @@ void SimSpark::PrintGreeting() { GetLog()->Normal() - << "simspark, a monolithic simulator 0.6.1\n" + << "rcssserver3d (formerly simspark), a monolithic simulator 0.6.1\n" << "Copyright (C) 2004 Markus Rollmann, \n" << "Universität Koblenz.\n" << "Copyright (C) 2004-2009, " @@ -80,7 +80,7 @@ void SimSpark::PrintHelp() { GetLog()->Normal() - << "\nusage: simspark [options] [script]\n" + << "\nusage: rcssserver3d [options] [script]\n" << "\noptions:\n" << " --help\t\t\t print this message.\n" << " --script-path PATH\t set the script path (simspark.rb path).\n" Deleted: trunk/rcssserver3d/rcssserver3d/naosoccersim.rb =================================================================== --- trunk/rcssserver3d/simspark/naosoccersim.rb 2009-12-18 13:01:31 UTC (rev 126) +++ trunk/rcssserver3d/rcssserver3d/naosoccersim.rb 2010-01-10 23:45:10 UTC (rev 140) @@ -1,103 +0,0 @@ -# -# prepare soccer simulation -# - -# setup soccer specific materials -# run "scripts/rcs-materials.rb" -if ($enableInternalMonitor) - run "scripts/rcs-materials-textures.rb" - - material = sparkCreate('kerosin/Material2DTexture', $serverPath+'material/matGrass'); - material.setDiffuse(1.0,1.0,1.0,1.0) - material.setAmbient(0.5,0.5,0.5,1.0) - material.setDiffuseTexture('textures/rcs-naofield.png') -end - -importBundle "soccer" - -# soccer namespace -$soccerNameSpace = "Soccer" - -# register a variable in the soccer namespace -def addSoccerVar(name, value) - createVariable($soccerNameSpace, name, value) -end - -# helper to get the value of a variable in the soccer namespace -def getSoccerVar(name) - eval <<-EOS - #{$soccerNameSpace}.#{name} - EOS -end - -# set a random seed (a seed of 0 means: use a random random seed) -randomServer = get($serverPath+'random') -if (randomServer != nil) - randomServer.seed(0) -end - -# the soccer field dimensions in meters -addSoccerVar('FieldLength', 12.0) -addSoccerVar('FieldWidth', 8.0) -addSoccerVar('FieldHeight', 40.0) -addSoccerVar('GoalWidth', 1.4) -addSoccerVar('GoalDepth', 0.4) -addSoccerVar('GoalHeight', 0.8) -addSoccerVar('PenaltyLength',1.2) -addSoccerVar('PenaltyWidth',2.6) -addSoccerVar('FreeKickDistance', 1.3) -addSoccerVar('FreeKickMoveDist', 1.5) -addSoccerVar('GoalKickDist', 1.0) -addSoccerVar('AutomaticKickOff', false) -addSoccerVar('WaitBeforeKickOff', 2.0) - -# agent parameters -addSoccerVar('AgentRadius', 0.4) - -# ball parameters -addSoccerVar('BallRadius', 0.042) -addSoccerVar('BallMass',0.026) - -# soccer rule parameters -addSoccerVar('RuleGoalPauseTime',3.0) -addSoccerVar('RuleKickInPauseTime',1.0) -addSoccerVar('RuleHalfTime',5.0 * 60) -addSoccerVar('RuleDropBallTime',30) -addSoccerVar('SingleHalfTime', false) -addSoccerVar('UseOffside',false) - -# recorders -addSoccerVar('BallRecorder',"Ball/geometry/recorder") -addSoccerVar('LeftGoalRecorder',"leftgoal/GoalBox/BoxCollider/recorder") -addSoccerVar('RightGoalRecorder',"rightgoal/GoalBox/BoxCollider/recorder") - -# textures -createVariable('Nao', 'UseTexture', 'true') - -scene = get($scenePath) -if (scene != nil) - scene.importScene('rsg/agent/nao/soccer.rsg') -end - -# setup the GameControlServer -gameControlServer = get($serverPath+'gamecontrol') -if (gameControlServer != nil) - gameControlServer.initControlAspect('GameStateAspect') - gameControlServer.initControlAspect('BallStateAspect') - gameControlServer.initControlAspect('SoccerRuleAspect') - obj = get('/sys/server/gamecontrol/GameStateAspect') - if (obj != nil) - obj.setTime(0) - obj.setScores(0,0) - end -end - -# init monitorItems to transmit game state information -monitorServer = get($serverPath+'monitor') -if (monitorServer != nil) - monitorServer.registerMonitorItem('GameStateItem') -end - -# install the TrainerCommandParser to parse commands received from a -# monitor client -sparkRegisterMonitorCmdParser 'TrainerCommandParser' Copied: trunk/rcssserver3d/rcssserver3d/naosoccersim.rb (from rev 130, trunk/rcssserver3d/simspark/naosoccersim.rb) =================================================================== --- trunk/rcssserver3d/rcssserver3d/naosoccersim.rb (rev 0) +++ trunk/rcssserver3d/rcssserver3d/naosoccersim.rb 2010-01-10 23:45:10 UTC (rev 140) @@ -0,0 +1,103 @@ +# +# prepare soccer simulation +# + +# setup soccer specific materials +# run "scripts/rcs-materials.rb" +if ($enableInternalMonitor) + run "scripts/rcs-materials-textures.rb" + + material = sparkCreate('kerosin/Material2DTexture', $serverPath+'material/matGrass'); + material.setDiffuse(1.0,1.0,1.0,1.0) + material.setAmbient(0.5,0.5,0.5,1.0) + material.setDiffuseTexture('textures/rcs-naofield.png') +end + +importBundle "soccer" + +# soccer namespace +$soccerNameSpace = "Soccer" + +# register a variable in the soccer namespace +def addSoccerVar(name, value) + createVariable($soccerNameSpace, name, value) +end + +# helper to get the value of a variable in the soccer namespace +def getSoccerVar(name) + eval <<-EOS + #{$soccerNameSpace}.#{name} + EOS +end + +# set a random seed (a seed of 0 means: use a random random seed) +randomServer = get($serverPath+'random') +if (randomServer != nil) + randomServer.seed(0) +end + +# the soccer field dimensions in meters +addSoccerVar('FieldLength', 18.0) +addSoccerVar('FieldWidth', 12.0) +addSoccerVar('FieldHeight', 40.0) +addSoccerVar('GoalWidth', 2.1) +addSoccerVar('GoalDepth', 0.6) +addSoccerVar('GoalHeight', 0.8) +addSoccerVar('PenaltyLength',1.8) +addSoccerVar('PenaltyWidth',3.9) +addSoccerVar('FreeKickDistance', 1.3) +addSoccerVar('FreeKickMoveDist', 1.5) +addSoccerVar('GoalKickDist', 1.0) +addSoccerVar('AutomaticKickOff', false) +addSoccerVar('WaitBeforeKickOff', 2.0) + +# agent parameters +addSoccerVar('AgentRadius', 0.4) + +# ball parameters +addSoccerVar('BallRadius', 0.042) +addSoccerVar('BallMass',0.026) + +# soccer rule parameters +addSoccerVar('RuleGoalPauseTime',3.0) +addSoccerVar('RuleKickInPauseTime',1.0) +addSoccerVar('RuleHalfTime',5.0 * 60) +addSoccerVar('RuleDropBallTime',30) +addSoccerVar('SingleHalfTime', false) +addSoccerVar('UseOffside',false) + +# recorders +addSoccerVar('BallRecorder',"Ball/geometry/recorder") +addSoccerVar('LeftGoalRecorder',"leftgoal/GoalBox/BoxCollider/recorder") +addSoccerVar('RightGoalRecorder',"rightgoal/GoalBox/BoxCollider/recorder") + +# textures +createVariable('Nao', 'UseTexture', 'true') + +scene = get($scenePath) +if (scene != nil) + scene.importScene('rsg/agent/nao/soccer.rsg') +end + +# setup the GameControlServer +gameControlServer = get($serverPath+'gamecontrol') +if (gameControlServer != nil) + gameControlServer.initControlAspect('GameStateAspect') + gameControlServer.initControlAspect('BallStateAspect') + gameControlServer.initControlAspect('SoccerRuleAspect') + obj = get('/sys/server/gamecontrol/GameStateAspect') + if (obj != nil) + obj.setTime(0) + obj.setScores(0,0) + end +end + +# init monitorItems to transmit game state information +monitorServer = get($serverPath+'monitor') +if (monitorServer != nil) + monitorServer.registerMonitorItem('GameStateItem') +end + +# install the TrainerCommandParser to parse commands received from a +# monitor client +sparkRegisterMonitorCmdParser 'TrainerCommandParser' Added: trunk/rcssserver3d/rcssserver3d/rcsoccersim3d.in =================================================================== --- trunk/rcssserver3d/rcssserver3d/rcsoccersim3d.in (rev 0) +++ trunk/rcssserver3d/rcssserver3d/rcsoccersim3d.in 2010-01-10 23:45:10 UTC (rev 140) @@ -0,0 +1,65 @@ +#! /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 + +#-------------------------------------------------- +# 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 + +kill_server Property changes on: trunk/rcssserver3d/rcssserver3d/rcsoccersim3d.in ___________________________________________________________________ Added: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2012-05-19 18:17:18
|
Revision: 312 http://simspark.svn.sourceforge.net/simspark/?rev=312&view=rev Author: hedayat Date: 2012-05-19 18:17:11 +0000 (Sat, 19 May 2012) Log Message: ----------- Fix the position of right corner kick to use mBallRadius rather than a hard coded value Use new value for corner kick position for RoboCup 2012, to be between the goal and field's corner position Updated RELEASE and NEWS files with information about the new dimensions in this release Updated version to 0.6.6 (CMakeLists.txt) Increased free kick distance to 2.0. Fixed spelling error in GetMonitorInformation() Modified Paths: -------------- trunk/rcssserver3d/CMakeLists.txt trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/NEWS trunk/rcssserver3d/RELEASE trunk/rcssserver3d/plugin/soccer/rcs3dmonitor/rcs3dmonitor.cpp trunk/rcssserver3d/plugin/soccer/rcs3dmonitor/rcs3dmonitor.h trunk/rcssserver3d/plugin/soccer/sexpmonitor/sexpmonitor.cpp trunk/rcssserver3d/plugin/soccer/sexpmonitor/sexpmonitor.h trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp trunk/rcssserver3d/rcssserver3d/naosoccersim.rb Modified: trunk/rcssserver3d/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/CMakeLists.txt 2012-05-19 17:21:27 UTC (rev 311) +++ trunk/rcssserver3d/CMakeLists.txt 2012-05-19 18:17:11 UTC (rev 312) @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.6) project(rcssserver3d CXX C) -set(PACKAGE_VERSION "0.6.5") +set(PACKAGE_VERSION "0.6.6") ########## check for headerfiles/libraries ########## include(CheckIncludeFile) Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2012-05-19 17:21:27 UTC (rev 311) +++ trunk/rcssserver3d/ChangeLog 2012-05-19 18:17:11 UTC (rev 312) @@ -1,3 +1,30 @@ +2012-05-19 Hedayat Vatankhah <hed...@gm...> + + * plugin/soccer/soccerruleaspect/soccerruleaspect.cpp + (SoccerRuleAspect::CheckBallLeftField): + - fix the position of right corner kick to use mBallRadius rather than + a hard coded value + - use new value for corner kick position for RoboCup 2012, to be between + the goal and field's corner position + + * NEWS: + * RELEASE: + - added information about the new dimensions in this release + + * CMakeLists.txt: + - updated version to 0.6.6 + + * rcssserver3d/naosoccersim.rb: + - increased free kick distance to 2.0. actually it should be 2.75, but + since we are going to have an artificial corner point it should be + probably smaller too. + + * plugin/soccer/rcs3dmonitor/rcs3dmonitor.h: + * plugin/soccer/rcs3dmonitor/rcs3dmonitor.cpp: + * plugin/soccer/sexpmonitor/sexpmonitor.h: + * plugin/soccer/sexpmonitor/sexpmonitor.cpp: + - fixed spelling error in GetMonitorInformation() + 2012-05-17 Hedayat Vatankhah <hed...@gm...> * rcssserver3d/naosoccersim.rb: Modified: trunk/rcssserver3d/NEWS =================================================================== --- trunk/rcssserver3d/NEWS 2012-05-19 17:21:27 UTC (rev 311) +++ trunk/rcssserver3d/NEWS 2012-05-19 18:17:11 UTC (rev 312) @@ -1,3 +1,54 @@ +[0.6.6] +It's time for a new release! This release comes with a number of bug fixes and +several minor enhancements here and there. Now, you can run the server for +two complete halves. Teams now change their sides in the second half. Also, +automatic kick off and automatic quit modes are added. Field dimensions are +also increased to 20x30 meters, and free kick distance is 2.0 meters now. +More detailed information about this release follows: + +* Field Changes: + - New dimensions: 20x30 + - Free kick distance: 2.0 + - Corner kick position: in the middle point between goal and corner of the + field, to facilitate faster corner kicks. + +* Several Bug fixes. Some notable ones are: + - Penalty lines and middle circle are now visible at their actual position + (Thanks to Marcus for his bug report, and Sander). + - Fixed a small bug in parsing move paramter (Thanks to Andreas Seekircher) + - Fixed a mistake which prevented from touch group rules to be applied at all + - Fixed a small bug in goal counting which cause this function to always + count a goal when ball moved out of the field + +* Enhance Automatic Kickoff Support: + - Changed default value of 'WaitBeforeKickOff' to 30, since 5 seconds + is too small for any team to start. + - WaitBeforeKickOff is now calculated from when the first agent connects + rather than from the beginning of the before kickoff playmode (when the + simulator is started) + - A game can be started with kick off for the left team, or using 'coin toss' + to determine which team should start the game. CoinTossForKickOff variable + in naosoccersim.rb can be used to change the behavior. It is disabled + by default. + +* Enhance Support for 'Second Half': + - Automatic Kick Off mode assigns Kick off to the correct team in the second + half + - Change teams' sides in the second half if enabled (enabled by default). It + can be disabled using ChangeSidesInSecondHalf variable in naosoccersim.rb. + +* Automatic Quit: + - In Automatic Quit mode rcsssever3d shuts down automatically when the game + is over. It is disabled by default but can be enabled using 'AutomaticQuit' + variable in naosoccersim.rb + +* Other Enhancements: + - The location of init scripts (e.g. zeitgeist.rb) can now be specified using + --init-script-prefix (you still can put most of the scripts and data files + like rsg/ directory inside your ~/.simspark/ instead). + - Better Windows support + - Support creating Windows binaries under Linux using MinGW + [0.6.5] This release comes with a number of enhancements and some bug fixes. Most notably, the automated referee is improved to prevent many agents to collide Modified: trunk/rcssserver3d/RELEASE =================================================================== --- trunk/rcssserver3d/RELEASE 2012-05-19 17:21:27 UTC (rev 311) +++ trunk/rcssserver3d/RELEASE 2012-05-19 18:17:11 UTC (rev 312) @@ -3,9 +3,16 @@ It's time for a new release! This release comes with a number of bug fixes and several minor enhancements here and there. Now, you can run the server for two complete halves. Teams now change their sides in the second half. Also, -automatic kick off and automatic quit modes are added. More detailed information -about this release follows: +automatic kick off and automatic quit modes are added. Field dimensions are +also increased to 20x30 meters, and free kick distance is 2.0 meters now. +More detailed information about this release follows: +* Field Changes: + - New dimensions: 20x30 + - Free kick distance: 2.0 + - Corner kick position: in the middle point between goal and corner of the + field, to facilitate faster corner kicks. + * Several Bug fixes. Some notable ones are: - Penalty lines and middle circle are now visible at their actual position (Thanks to Marcus for his bug report, and Sander). @@ -37,11 +44,11 @@ variable in naosoccersim.rb * Other Enhancements: -- The location of init scripts (e.g. zeitgeist.rb) can now be specified using + - The location of init scripts (e.g. zeitgeist.rb) can now be specified using --init-script-prefix (you still can put most of the scripts and data files like rsg/ directory inside your ~/.simspark/ instead). -- Better Windows support -- Support creating Windows binaries under Linux using MinGW + - Better Windows support + - Support creating Windows binaries under Linux using MinGW You can get the package on the Simspark page on SourceForge at http://sourceforge.net/projects/simspark/ Modified: trunk/rcssserver3d/plugin/soccer/rcs3dmonitor/rcs3dmonitor.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/rcs3dmonitor/rcs3dmonitor.cpp 2012-05-19 17:21:27 UTC (rev 311) +++ trunk/rcssserver3d/plugin/soccer/rcs3dmonitor/rcs3dmonitor.cpp 2012-05-19 18:17:11 UTC (rev 312) @@ -91,7 +91,7 @@ } } -string RCS3DMonitor::GetMonitorInfomation(const PredicateList& pList) +string RCS3DMonitor::GetMonitorInformation(const PredicateList& pList) { stringstream ss; mFullState = false; Modified: trunk/rcssserver3d/plugin/soccer/rcs3dmonitor/rcs3dmonitor.h =================================================================== --- trunk/rcssserver3d/plugin/soccer/rcs3dmonitor/rcs3dmonitor.h 2012-05-19 17:21:27 UTC (rev 311) +++ trunk/rcssserver3d/plugin/soccer/rcs3dmonitor/rcs3dmonitor.h 2012-05-19 18:17:11 UTC (rev 312) @@ -82,7 +82,7 @@ * the MonitorServer. The monitor should transfer them to the * client if possible. */ - virtual std::string GetMonitorInfomation(const oxygen::PredicateList& pList); + virtual std::string GetMonitorInformation(const oxygen::PredicateList& pList); /** This function is called once for every MonitorSystem each time * a new client connects. It should return any header/setup Modified: trunk/rcssserver3d/plugin/soccer/sexpmonitor/sexpmonitor.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/sexpmonitor/sexpmonitor.cpp 2012-05-19 17:21:27 UTC (rev 311) +++ trunk/rcssserver3d/plugin/soccer/sexpmonitor/sexpmonitor.cpp 2012-05-19 18:17:11 UTC (rev 312) @@ -213,7 +213,7 @@ } string -SexpMonitor::GetMonitorInfomation(const oxygen::PredicateList& pList) +SexpMonitor::GetMonitorInformation(const oxygen::PredicateList& pList) { if (mGameState->IsFinished()) { Modified: trunk/rcssserver3d/plugin/soccer/sexpmonitor/sexpmonitor.h =================================================================== --- trunk/rcssserver3d/plugin/soccer/sexpmonitor/sexpmonitor.h 2012-05-19 17:21:27 UTC (rev 311) +++ trunk/rcssserver3d/plugin/soccer/sexpmonitor/sexpmonitor.h 2012-05-19 18:17:11 UTC (rev 312) @@ -61,7 +61,7 @@ * the MonitorServer. The monitor should transfer them to the * client if possible. */ - virtual std::string GetMonitorInfomation(const oxygen::PredicateList& pList); + virtual std::string GetMonitorInformation(const oxygen::PredicateList& pList); /** This function is called once for every MonitorSystem each time * a new client connects. It should return any header/setup Modified: trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp 2012-05-19 17:21:27 UTC (rev 311) +++ trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp 2012-05-19 18:17:11 UTC (rev 312) @@ -1034,18 +1034,26 @@ // check corner kick right team else if (last_touch_left && ball_left) { + // temp value for RoboCup 2012 + // correct value: mFieldWidth / 2 - mBallRadius + const float cornerKickY = (mFieldWidth + mGoalWidth) / 4.0 + - mBallRadius; mFreeKickPos[0] = -mFieldLength / 2 + mBallRadius; mFreeKickPos[1] = ball_pos[1] > 0 ? - mFieldWidth / 2 - 0.05 : -mFieldWidth / 2 + 0.05; + cornerKickY : -cornerKickY; mFreeKickPos[2] = mBallRadius; mGameState->SetPlayMode(PM_CORNER_KICK_RIGHT); } // check corner kick left team else { + // temp value for RoboCup 2012 + // correct value: mFieldWidth / 2 - mBallRadius + const float cornerKickY = (mFieldWidth + mGoalWidth) / 4.0 + - mBallRadius; mFreeKickPos[0] = mFieldLength / 2 - mBallRadius; mFreeKickPos[1] = ball_pos[1] > 0 ? - mFieldWidth / 2 - mBallRadius : -mFieldWidth / 2 + mBallRadius; + cornerKickY : -cornerKickY; mFreeKickPos[2] = mBallRadius; mGameState->SetPlayMode(PM_CORNER_KICK_LEFT); } Modified: trunk/rcssserver3d/rcssserver3d/naosoccersim.rb =================================================================== --- trunk/rcssserver3d/rcssserver3d/naosoccersim.rb 2012-05-19 17:21:27 UTC (rev 311) +++ trunk/rcssserver3d/rcssserver3d/naosoccersim.rb 2012-05-19 18:17:11 UTC (rev 312) @@ -45,8 +45,8 @@ addSoccerVar('GoalHeight', 0.8) addSoccerVar('PenaltyLength',1.8) addSoccerVar('PenaltyWidth',3.9) -addSoccerVar('FreeKickDistance', 1.3) -addSoccerVar('FreeKickMoveDist', 1.5) +addSoccerVar('FreeKickDistance', 2.0) +addSoccerVar('FreeKickMoveDist', 2.2) addSoccerVar('GoalKickDist', 1.0) addSoccerVar('BorderSize', 0.0) # prevent complaining about missing variable This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2017-07-11 20:56:17
|
Revision: 416 http://sourceforge.net/p/simspark/svn/416 Author: hedayat Date: 2017-07-11 20:56:15 +0000 (Tue, 11 Jul 2017) Log Message: ----------- Prepare rcssserver3d 0.7.0 release Modified Paths: -------------- trunk/rcssserver3d/CMakeLists.txt trunk/rcssserver3d/NEWS trunk/rcssserver3d/RELEASE Modified: trunk/rcssserver3d/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/CMakeLists.txt 2017-07-08 15:42:38 UTC (rev 415) +++ trunk/rcssserver3d/CMakeLists.txt 2017-07-11 20:56:15 UTC (rev 416) @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.6) project(rcssserver3d CXX C) -set(PACKAGE_VERSION "0.7.0") +set(PACKAGE_VERSION "0.7.1") option(RVDRAW "Enable roboviz drawings" OFF) if (RVDRAW) Modified: trunk/rcssserver3d/NEWS =================================================================== --- trunk/rcssserver3d/NEWS 2017-07-08 15:42:38 UTC (rev 415) +++ trunk/rcssserver3d/NEWS 2017-07-11 20:56:15 UTC (rev 416) @@ -1,3 +1,47 @@ +[0.7.1] +New changes for the RoboCup 2017 competition: + +* Bug Fixes: + - Fixed bug where double touches on kicks (kickoffs, free kicks, + kick-ins, corner kicks) were not always being detected correctly + - Fixed bug where if a player is touching the ball right when the wait + time at the beginning of a kick play mode ends the play mode could end up + recording the touch and inadvertently end the kick. + - Fixed bug where if two players enter their own penalty area at the + same time, and in doing so cause the maximum allowed number of players in + the penalty area to be exceeded, both players will be called for illegal + defense even if the team is only one player over the allowed number of + players in the penalty area. + - Fixed issue where free kicks and kicks-in printed an error message + and didn't behave correctly if the ball has yet to be touched by an agent. + +* Rule Changes: + - The automated referee will no longer move/reposition agents on top + of each other or into their own penalty area if it will trigger an illegal + defense penalty. This is accomplished by doing a breadth first search + around the position that an agent is to be repositioned to until a safe + position is found. The number of positions that will be considered by + the breadth first search is bounded by the MaxNumSafeRepositionAttempts + value (default 100) in naosocersim.rb. Setting this value to 0 turns this + feature off. If ever the server isn't able to safely reposition a player + it will print an error message. + - The order in which players are evaluated for fouls and are penalized + is now randomized so as to not have any bias associated with players' + teams and uniform numbers. + - Averaging the velocity of an agent over the last 3 time steps + instead of 5 when determining charging fouls. This allows agents to + reduce their effective velocities faster so as to have a better chance of + avoiding charging fouls when colliding with an opponent. + - Removing code that takes into account the opponent's velocity moving + away from a colliding agent when determining fouls. This code was + decreasing the likelihood of an agent being called for a foul when running + down an opponent from behind. + - Turning off crowding rules in naosoccersim.rb + - Adding StartAnyFieldPosition flag (default false) to + naosoccersim.rb. Turning this flag on allows agents to be at, beam, or be + moved to any position on the field at the start of kickoffs including the + opponent's side of the field. + [0.7.0] A new GUI application is developed to run and control simspark simulations. Additinoally, there are a number changes to the soccer rules enforced in Modified: trunk/rcssserver3d/RELEASE =================================================================== --- trunk/rcssserver3d/RELEASE 2017-07-08 15:42:38 UTC (rev 415) +++ trunk/rcssserver3d/RELEASE 2017-07-11 20:56:15 UTC (rev 416) @@ -1,125 +1,48 @@ -RELEASE News of rcssserver3d-0.7.0 +RELEASE News of rcssserver3d-0.7.1 -A new GUI application is developed to run and control simspark simulations. -Additinoally, there are a number changes to the soccer rules enforced in -the simulator. More details about changes in this release follows: +New changes for the RoboCup 2017 competition: -* Updates to charging foul model and other fouls: -An initial implementation of the charging foul model is documented at -http://www.acso.uneb.br/bahiart/uploads/Main/FoulModel2016.pdf. The -following are some updates to the charging foul model which will hopefully -be added to the documentation of the charging foul model soon: +* Bug Fixes: + - Fixed bug where double touches on kicks (kickoffs, free kicks, + kick-ins, corner kicks) were not always being detected correctly + - Fixed bug where if a player is touching the ball right when the wait + time at the beginning of a kick play mode ends the play mode could end up + recording the touch and inadvertently end the kick. + - Fixed bug where if two players enter their own penalty area at the + same time, and in doing so cause the maximum allowed number of players in + the penalty area to be exceeded, both players will be called for illegal + defense even if the team is only one player over the allowed number of + players in the penalty area. + - Fixed issue where free kicks and kicks-in printed an error message + and didn't behave correctly if the ball has yet to be touched by an agent. - - Rules for charging involving agents' relative positions to the ball - are only active for agents within 1 meter (ChargingMaxBallRulesDist) of - the ball - - Players are immune to committing a charging foul after touching the - ball for 1 second (ChargingImmunityTime) - - There is no maximum distance from the ball that a charging foul will - be called -- charging fouls can be called at any position on or off the - field - - After a player is moved/beamed by the server no charging fouls in any - collision involving that agent will be called for 1 second after the - player is moved. - - There is no longer a concept of ChargingMinCollisionPoint. Instead a - threshold of velocity exerted in a collision (ChargingMinCollisionSpeed - with a default value of 0.2) must be exceeded for a charging foul to be - called. This value is calculated as a cross product between an agent's - velocity vector and the normalized vector from the agent to the average of - the opponent agent and collision point. +* Rule Changes: + - The automated referee will no longer move/reposition agents on top + of each other or into their own penalty area if it will trigger an illegal + defense penalty. This is accomplished by doing a breadth first search + around the position that an agent is to be repositioned to until a safe + position is found. The number of positions that will be considered by + the breadth first search is bounded by the MaxNumSafeRepositionAttempts + value (default 100) in naosocersim.rb. Setting this value to 0 turns this + feature off. If ever the server isn't able to safely reposition a player + it will print an error message. + - The order in which players are evaluated for fouls and are penalized + is now randomized so as to not have any bias associated with players' + teams and uniform numbers. + - Averaging the velocity of an agent over the last 3 time steps + instead of 5 when determining charging fouls. This allows agents to + reduce their effective velocities faster so as to have a better chance of + avoiding charging fouls when colliding with an opponent. + - Removing code that takes into account the opponent's velocity moving + away from a colliding agent when determining fouls. This code was + decreasing the likelihood of an agent being called for a foul when running + down an opponent from behind. + - Turning off crowding rules in naosoccersim.rb + - Adding StartAnyFieldPosition flag (default false) to + naosoccersim.rb. Turning this flag on allows agents to be at, beam, or be + moved to any position on the field at the start of kickoffs including the + opponent's side of the field. -General foul changes: - - For visualization purposes after any foul (charging, crowding, illegal - defense, touching, incapable) agents are lifted up in the air for - FoulHoldTime (default 0.5 seconds) before being beamed to the sideline. - - Touching fouls in groups of three or more are no longer called on - goalies (a goalie's teammate will be called for a touching foul instead). - - -* New kick rules: - -The following is a summary of the rule changes for kicking: - - A player taking a kick can't touch the ball more than once before - another player touches the ball -- touching the ball more than once - results in an indirect free kick for the opponent (same as in human - soccer). Note that a goal kick doesn't count as having been taken until - the ball leaves the penalty area - - You can never score an own goal directly off your own kick -- the - result of such an own goal is a corner kick for the opponent (same as in - human soccer). - - Kick-ins are indirect (same as throw-ins in human soccer). - - Goal kicks and corner kicks are direct (same as in human soccer). - - Scoring a goal directly from an indirect kick results in a goal kick - for the opponent (same as in human soccer). - - Kickoffs are still indirect and the ball must be touched outside the - center circle, or an opponent must first touch the ball, before the team - taking a kickoff can score (in human soccer kickoffs are direct, but this - artificial rule is needed to prevent "kickoff taking contests"). - - Players within KickRepelDist (defined in naosoccersim.rb) of the ball - when it is placed for a kick are moved back to a position exactly - KickRepelDist from the ball to prevent players from accidentally touching - the ball and losing a kick if the ball is placed right underneath their - current position on the field. - - Two new direct kick playmodes have been added - (direct_free_kick_[left|right]). While there is no plan to use these - playmodes at this year's competition, shift+L and shift+R key bindings for - them have been added to rcssmonitor3d and roboviz. - - -* Keepaway mode: - -The keepaway playmode sets the playmode to GameOver if a player on the -right team touches the ball or if the ball leaves a predefined keepaway -area. During keepaway no charging fouls will be called on agents on the -right team (the team trying to take the ball). - -The keepaway mode adds the following parameters to naosoccersim.rb: - -// if in keepaway mode -Keepaway -// center X value of keepaway box -KeepawayCenterX -// center Y value of keepaway box -KeepawayCenterY -// length of keepaway box -KeepawayLength -// width of keepaway box -KeepawayWidth -// reduction rate of length of keepaway box per minute -KeepawayLengthReductionRate -// reduction rate of width of keepaway box per minute -KeepawayWidthReductionRate - - -* Blocking of say messages with illegal characters: - -While most agents have been sending legal say messages, there have been a -few instances of agents sending say messages with illegal characters. The -server now throws out say messages containing illegal characters (space, -parenthesis, and those outside the range [0x20-0x7E]). The server also -prints an error message containing the illegal say message and the agent -who said it. When running in sync mode the proxy still needs to be used -to protect against bad say messages that break parsing (or really any -unparseable messages sent to the server) -- this change only throws out -say messages with illegal that were able to be parsed. - - -* Plugin for drawing objects in roboviz: - -You can activate a new plugin (rvdraw) within rcssserver3d allowing it to -draw objects in roboviz by using the "-DRVDRAW=ON" command line argument -when running cmake before building rcssserver3d. The plugin likely only -works in linux which is why it isn't enabled by default. Currently this -plugin is set to draw debugging information for the charging foul model, -but one might find it useful to add their own code to the server to draw -things in roboviz. - -After rcssserver3d is compiled with the rvdraw plugin enabled use the -following command line argument when running the server to have it send -draw commands to roboviz: -rcssserver3d --rvdraw-host <roboviz_host_machine> - - You can get the package on the Simspark page on SourceForge at http://sourceforge.net/projects/simspark/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgv...@us...> - 2009-04-30 16:03:50
|
Revision: 62 http://simspark.svn.sourceforge.net/simspark/?rev=62&view=rev Author: sgvandijk Date: 2009-04-30 16:03:43 +0000 (Thu, 30 Apr 2009) Log Message: ----------- - add camera controls to external monitor Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.cpp trunk/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.h trunk/rcssserver3d/rcssmonitor3d/soccerbindings.rb Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2009-04-30 13:26:16 UTC (rev 61) +++ trunk/rcssserver3d/ChangeLog 2009-04-30 16:03:43 UTC (rev 62) @@ -1,3 +1,13 @@ +2009-04-30 Sander van Dijk <sgv...@gm...> + + * rcssmonitor3d/rcssmonitor3d.rb + - set camera parameters to those used in internal monitor + + * plugin/soccermonitor/soccerinputlogplayer.h + * plugin/soccermonitor/soccerinputlogplayer.cpp + * rcssmonitor3d/soccerbindings.rb + - add camera controls to external monitor + 2009-04-08 Hedayat Vatankhah <he...@gr...> * plugin/soccer/beameffector/beamaction.h (BeamAction): @@ -99,4 +109,4 @@ * plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.cpp: * plugin/soccer/agentstateperceptor/agentstateperceptor.cpp: - Replaced make_shared() with .lock() function call.(fixed compilation - error with recent boost versions.) \ No newline at end of file + error with recent boost versions.) Modified: trunk/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.cpp 2009-04-30 13:26:16 UTC (rev 61) +++ trunk/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.cpp 2009-04-30 16:03:43 UTC (rev 62) @@ -20,6 +20,7 @@ #include "soccerinputlogplayer.h" #include <zeitgeist/scriptserver/scriptserver.h> #include <zeitgeist/logserver/logserver.h> +#include <oxygen/physicsserver/body.h> using namespace boost; using namespace zeitgeist; @@ -42,6 +43,14 @@ mScriptServer->CreateVariable("Command.StepBackward", CmdStepBackward); mScriptServer->CreateVariable("Command.BPlayback", CmdBPlayback); + mScriptServer->CreateVariable("Command.CameraLeftGoal", CmdCameraLeftGoal); + mScriptServer->CreateVariable("Command.CameraLeftCorner", CmdCameraLeftCorner); + mScriptServer->CreateVariable("Command.CameraMiddleLeft", CmdCameraMiddleLeft); + mScriptServer->CreateVariable("Command.CameraMiddleRight", CmdCameraMiddleRight); + mScriptServer->CreateVariable("Command.CameraMiddle", CmdCameraMiddle); + mScriptServer->CreateVariable("Command.CameraRightCorner", CmdCameraRightCorner); + mScriptServer->CreateVariable("Command.CameraRightGoal", CmdCameraRightGoal); + mMonitorClient = shared_dynamic_cast<SimControlNode> (GetCore()->Get("/sys/server/simulation/SparkMonitorLogFileServer")); @@ -51,6 +60,26 @@ << "ERROR: (SoccerInput) Unable to get SparkMonitorClient\n"; } + // get fps controller + mFPS = shared_dynamic_cast<FPSController> + (GetCore()->Get("/usr/scene/camera/physics/controller")); + + if (mFPS.get() == 0) + { + GetLog()->Error() + << "ERROR: (InternalSoccerInput) Unable to get FPS controller\n"; + } + + // get camera body + mCameraBody = shared_dynamic_cast<Body> + (GetCore()->Get("/usr/scene/camera/physics")); + + if (mCameraBody.get() == 0) + { + GetLog()->Error() + << "ERROR: (SoccerInput) Unable to get camera body\n"; + } + } void SoccerInputLogPlayer::OnUnlink() @@ -108,5 +137,68 @@ mScriptServer->Eval("monitorLogServer.playBackward()"); } break; + case CmdCameraLeftGoal: + if (input.GetKeyPress()) + { + salt::Vector3f pos(-12*0.8, 0.0, 12*0.4); + mCameraBody->SetPosition(pos); + mFPS->SetHAngleDeg(90); + mFPS->SetVAngleDeg(35); + } + break; + case CmdCameraLeftCorner: + if (input.GetKeyPress()) + { + salt::Vector3f pos(-12*0.8, -8, 12*0.4); + mCameraBody->SetPosition(pos); + mFPS->SetHAngleDeg(50); + mFPS->SetVAngleDeg(30); + } + break; + case CmdCameraMiddleLeft: + if (input.GetKeyPress()) + { + salt::Vector3f pos(0, -8, 12*0.4); + mCameraBody->SetPosition(pos); + mFPS->SetHAngleDeg(salt::gRadToDeg(-0.625)); + mFPS->SetVAngleDeg(40); + } + break; + case CmdCameraMiddleRight: + if (input.GetKeyPress()) + { + salt::Vector3f pos(0, -8, 12*0.4); + mCameraBody->SetPosition(pos); + mFPS->SetHAngleDeg(salt::gRadToDeg(0.625)); + mFPS->SetVAngleDeg(40); + } + break; + case CmdCameraMiddle: + if (input.GetKeyPress()) + { + salt::Vector3f pos(0, -8*1.1, 12*0.6); + mCameraBody->SetPosition(pos); + mFPS->SetHAngleDeg(0); + mFPS->SetVAngleDeg(45); + } + break; + case CmdCameraRightCorner: + if (input.GetKeyPress()) + { + salt::Vector3f pos(12*0.8, -8, 12*0.4); + mCameraBody->SetPosition(pos); + mFPS->SetHAngleDeg(-50); + mFPS->SetVAngleDeg(30); + } + break; + case CmdCameraRightGoal: + if (input.GetKeyPress()) + { + salt::Vector3f pos(12*0.8, 0.0, 12*0.4); + mCameraBody->SetPosition(pos); + mFPS->SetHAngleDeg(-90); + mFPS->SetVAngleDeg(35); + } + break; }; } Modified: trunk/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.h =================================================================== --- trunk/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.h 2009-04-30 13:26:16 UTC (rev 61) +++ trunk/rcssserver3d/plugin/soccermonitor/soccerinputlogplayer.h 2009-04-30 16:03:43 UTC (rev 62) @@ -24,6 +24,7 @@ #include <kerosin/inputserver/inputcontrol.h> #include <oxygen/simulationserver/simcontrolnode.h> + class SoccerInputLogPlayer : public kerosin::InputItem { public: @@ -33,7 +34,14 @@ CmdPause = CmdUser + 1, CmdStepForward = CmdUser + 2, CmdStepBackward = CmdUser + 3, - CmdBPlayback = CmdUser + 4 + CmdBPlayback = CmdUser + 4, + CmdCameraLeftGoal = CmdBPlayback + 1, + CmdCameraLeftCorner = CmdCameraLeftGoal + 1, + CmdCameraMiddleLeft = CmdCameraLeftCorner + 1, + CmdCameraMiddle = CmdCameraMiddleLeft + 1, + CmdCameraMiddleRight = CmdCameraMiddle + 1, + CmdCameraRightCorner = CmdCameraMiddleRight + 1, + CmdCameraRightGoal = CmdCameraRightCorner + 1 }; public: @@ -62,6 +70,12 @@ /** cached reference to the script server */ boost::shared_ptr<zeitgeist::ScriptServer> mScriptServer; + + /** cached reference to the camera body */ + boost::shared_ptr<oxygen::Body> mCameraBody; + + /** cached reference to the camera body */ + boost::shared_ptr<oxygen::FPSController> mFPS; }; DECLARE_CLASS(SoccerInputLogPlayer); Modified: trunk/rcssserver3d/rcssmonitor3d/soccerbindings.rb =================================================================== --- trunk/rcssserver3d/rcssmonitor3d/soccerbindings.rb 2009-04-30 13:26:16 UTC (rev 61) +++ trunk/rcssserver3d/rcssmonitor3d/soccerbindings.rb 2009-04-30 16:03:43 UTC (rev 62) @@ -15,6 +15,13 @@ inputServer.bindCommand('f', Command.StepForward); inputServer.bindCommand('b', Command.StepBackward); inputServer.bindCommand('l', Command.BPlayback); + inputServer.bindCommand('1', Command.CameraLeftGoal); + inputServer.bindCommand('2', Command.CameraLeftCorner); + inputServer.bindCommand('3', Command.CameraMiddleLeft); + inputServer.bindCommand('4', Command.CameraMiddle); + inputServer.bindCommand('5', Command.CameraMiddleRight); + inputServer.bindCommand('6', Command.CameraRightCorner); + inputServer.bindCommand('7', Command.CameraRightGoal); else print "setting bindings for online monitor\n\n"; inputServer.bindCommand('k', Command.KickOff); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tk...@us...> - 2009-05-27 15:31:19
|
Revision: 66 http://simspark.svn.sourceforge.net/simspark/?rev=66&view=rev Author: tknrkb Date: 2009-05-27 15:31:10 +0000 (Wed, 27 May 2009) Log Message: ----------- fix for compile on OSX Tiger. Modified Paths: -------------- trunk/rcssserver3d/plugin/soccer/CMakeLists.txt trunk/rcssserver3d/plugin/soccermonitor/CMakeLists.txt trunk/rcssserver3d/rcssmonitor3d/CMakeLists.txt trunk/rcssserver3d/simspark/CMakeLists.txt Modified: trunk/rcssserver3d/plugin/soccer/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/plugin/soccer/CMakeLists.txt 2009-05-24 04:26:48 UTC (rev 65) +++ trunk/rcssserver3d/plugin/soccer/CMakeLists.txt 2009-05-27 15:31:10 UTC (rev 66) @@ -117,7 +117,7 @@ target_link_libraries(soccer ${SALT_LIBRARIES} ${OXYGEN_LIBRARIES} ${ZEITGEIST_LIBRARIES} ${KEROSIN_LIBRARIES} - ${OPENGL_gl_LIBRARY}) + ${OPENGL_gl_LIBRARY} ${RCSSNET3D_LIBRARY}) if (NOT APPLE) set_target_properties(soccer PROPERTIES VERSION 1.0.0 SOVERSION 1) Modified: trunk/rcssserver3d/plugin/soccermonitor/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/plugin/soccermonitor/CMakeLists.txt 2009-05-24 04:26:48 UTC (rev 65) +++ trunk/rcssserver3d/plugin/soccermonitor/CMakeLists.txt 2009-05-27 15:31:10 UTC (rev 66) @@ -26,7 +26,8 @@ ${soccermonitor_LIB_HDRS}) target_link_libraries(soccermonitor ${SALT_LIBRARIES} ${OXYGEN_LIBRARIES} - ${ZEITGEIST_LIBRARIES} ${KEROSIN_LIBRARIES}) + ${ZEITGEIST_LIBRARIES} ${KEROSIN_LIBRARIES} + ${RCSSNET3D_LIBRARY}) if (NOT APPLE) set_target_properties(soccermonitor PROPERTIES VERSION 1.0.0 SOVERSION 1) Modified: trunk/rcssserver3d/rcssmonitor3d/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/rcssmonitor3d/CMakeLists.txt 2009-05-24 04:26:48 UTC (rev 65) +++ trunk/rcssserver3d/rcssmonitor3d/CMakeLists.txt 2009-05-27 15:31:10 UTC (rev 66) @@ -16,7 +16,7 @@ target_link_libraries(rcssmonitor3d ${SPARK_LIBRARIES} ${SALT_LIBRARIES} ${ZEITGEIST_LIBRARIES} ${OXYGEN_LIBRARIES} ${KEROSIN_LIBRARIES} - ${SDL_LINK_LIBS}) + ${SDL_LINK_LIBS} ${RCSSNET3D_LIBRARY}) set_target_properties(rcssmonitor3d PROPERTIES INSTALL_RPATH "${RPATH_DIRECTORIES}") Modified: trunk/rcssserver3d/simspark/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/simspark/CMakeLists.txt 2009-05-24 04:26:48 UTC (rev 65) +++ trunk/rcssserver3d/simspark/CMakeLists.txt 2009-05-27 15:31:10 UTC (rev 66) @@ -16,7 +16,7 @@ target_link_libraries(simspark ${SPARK_LIBRARIES} ${SALT_LIBRARIES} ${ZEITGEIST_LIBRARIES} ${OXYGEN_LIBRARIES} ${KEROSIN_LIBRARIES} - ${SDL_LINK_LIBS}) + ${SDL_LINK_LIBS} ${RCSSNET3D_LIBRARY}) set_target_properties(simspark PROPERTIES INSTALL_RPATH "${RPATH_DIRECTORIES}") install(TARGETS simspark DESTINATION ${BINDIR}) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgv...@us...> - 2009-06-15 15:08:27
|
Revision: 68 http://simspark.svn.sourceforge.net/simspark/?rev=68&view=rev Author: sgvandijk Date: 2009-06-15 15:08:14 +0000 (Mon, 15 Jun 2009) Log Message: ----------- - change goal and out-of-field checks to only accept when ball is completely over the line Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/data/rsg/agent/nao/goal.rsg trunk/rcssserver3d/plugin/soccer/ballstateaspect/ballstateaspect.cpp trunk/rcssserver3d/plugin/soccer/ballstateaspect/ballstateaspect.h Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2009-06-15 13:33:46 UTC (rev 67) +++ trunk/rcssserver3d/ChangeLog 2009-06-15 15:08:14 UTC (rev 68) @@ -1,3 +1,11 @@ +2009-06-15 Sander van Dijk <sgv...@gm...> + + * plugin/soccer/ballstateaspect/ballstateaspect.h + * plugin/soccer/ballstateaspect/ballstateaspect.cpp + * data/rsg/agent/nao/goal.rsg + - change goal and out-of-field checks to only accept when ball is + completely over the line + 2009-04-30 Sander van Dijk <sgv...@gm...> * rcssmonitor3d/rcssmonitor3d.rb Modified: trunk/rcssserver3d/data/rsg/agent/nao/goal.rsg =================================================================== --- trunk/rcssserver3d/data/rsg/agent/nao/goal.rsg 2009-06-15 13:33:46 UTC (rev 67) +++ trunk/rcssserver3d/data/rsg/agent/nao/goal.rsg 2009-06-15 15:08:14 UTC (rev 68) @@ -9,11 +9,18 @@ (def $GoalWidth (eval Soccer.GoalWidth)) (def $GoalDepth (eval Soccer.GoalDepth)) (def $GoalHeight (eval Soccer.GoalHeight)) - + (def $BallRadius (eval Soccer.BallRadius)) + (def $GoalHalfWidth (eval $GoalWidth / 2.0)) (def $GoalHalfHeight (eval $GoalHeight / 2.0)) (def $GoalHalfDepth (eval $GoalDepth / 2.0)) + (def $BallDiameter (eval $BallRadius * 2.0)) + + (def $GoalColliderWidth (eval $GoalWidth - $BallDiameter)) + (def $GoalColliderDepth (eval $GoalDepth - $BallDiameter)) + (def $GoalColliderHeight (eval $GoalHeight)) + (def $BarDiameter 0.04) (def $BarRadius (eval $BarDiameter / 2.0)) @@ -29,7 +36,7 @@ (setLocalRotation 0 0 $theta) (nd BoxCollider (setName BoxCollider) - (setBoxLengths $GoalDepth $GoalWidth $GoalHeight) + (setBoxLengths $GoalColliderDepth $GoalColliderWidth $GoalColliderHeight) (nd RecorderHandler (setName recorder) ) Modified: trunk/rcssserver3d/plugin/soccer/ballstateaspect/ballstateaspect.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/ballstateaspect/ballstateaspect.cpp 2009-06-15 13:33:46 UTC (rev 67) +++ trunk/rcssserver3d/plugin/soccer/ballstateaspect/ballstateaspect.cpp 2009-06-15 15:08:14 UTC (rev 68) @@ -101,8 +101,8 @@ void BallStateAspect::UpdateBallOnField() { const Vector3f& posBall = mBall->GetWorldTransform().Pos(); - mBallOnField = ( gAbs(posBall.x()) < mHalfFieldLength ) - && ( gAbs(posBall.y()) < mHalfFieldWidth ); + mBallOnField = ( gAbs(posBall.x()) < mHalfFieldLength + mBallRadius + 0.001 ) + && ( gAbs(posBall.y()) < mHalfFieldWidth + mBallRadius + 0.001 ); } void BallStateAspect::UpdateLastValidBallPos() @@ -182,6 +182,8 @@ float fieldLength = 100.0f; SoccerBase::GetSoccerVar(*this,"FieldLength",fieldLength); mHalfFieldLength = fieldLength * 0.5f; + + SoccerBase::GetSoccerVar(*this,"BallRadius",mBallRadius); } void BallStateAspect::OnUnlink() Modified: trunk/rcssserver3d/plugin/soccer/ballstateaspect/ballstateaspect.h =================================================================== --- trunk/rcssserver3d/plugin/soccer/ballstateaspect/ballstateaspect.h 2009-06-15 13:33:46 UTC (rev 67) +++ trunk/rcssserver3d/plugin/soccer/ballstateaspect/ballstateaspect.h 2009-06-15 15:08:14 UTC (rev 68) @@ -141,6 +141,9 @@ /** indicates in which goal the ball is, TI_NONE otherwise */ TTeamIndex mGoalState; + /** the cached ball radius */ + float mBallRadius; + /** the cached field length */ float mHalfFieldLength; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgv...@us...> - 2009-06-16 09:54:57
|
Revision: 69 http://simspark.svn.sourceforge.net/simspark/?rev=69&view=rev Author: sgvandijk Date: 2009-06-16 09:53:55 +0000 (Tue, 16 Jun 2009) Log Message: ----------- - simspark can take command line argument specifying the rb script to run (Simon Raffeiner) - new soccer input command to give kick-off to the team on the right (bound to 'j') (Simon Raffeiner) Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/plugin/soccermonitor/soccerinput.cpp trunk/rcssserver3d/plugin/soccermonitor/soccerinput.h trunk/rcssserver3d/rcssmonitor3d/soccerbindings.rb trunk/rcssserver3d/simspark/main.cpp Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2009-06-15 15:08:14 UTC (rev 68) +++ trunk/rcssserver3d/ChangeLog 2009-06-16 09:53:55 UTC (rev 69) @@ -1,3 +1,15 @@ +2009-06-16 Sander van Dijk <sgv...@gm...> + + * simspark/main.cpp + - simspark can take command line argument specifying the rb script to run + (Simon Raffeiner) + + * plugin/soccermonitor/soccerinput.cpp + * plugin/soccermonitor/soccerinput.h + * rcssmonitor3d/soccerbindings.rb + - new soccer input command to give kick-off to the team on the right (bound + to 'j') (Simon Raffeiner) + 2009-06-15 Sander van Dijk <sgv...@gm...> * plugin/soccer/ballstateaspect/ballstateaspect.h Modified: trunk/rcssserver3d/plugin/soccermonitor/soccerinput.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccermonitor/soccerinput.cpp 2009-06-15 15:08:14 UTC (rev 68) +++ trunk/rcssserver3d/plugin/soccermonitor/soccerinput.cpp 2009-06-16 09:53:55 UTC (rev 69) @@ -42,6 +42,7 @@ { shared_ptr<ScriptServer> scriptServer = GetCore()->GetScriptServer(); scriptServer->CreateVariable("Command.KickOff", CmdKickOff); + scriptServer->CreateVariable("Command.KickOffRight", CmdKickOffRight); scriptServer->CreateVariable("Command.MoveAgent", CmdMoveAgent); scriptServer->CreateVariable("Command.DropBall", CmdDropBall); scriptServer->CreateVariable("Command.ShootBall", CmdShootBall); @@ -131,6 +132,13 @@ SendCommand("(kickOff Left)"); } break; + case CmdKickOffRight: + if (input.GetKeyPress()) + { + SendCommand("(kickOff Right)"); + } + break; + case CmdMoveAgent: if (input.GetKeyPress()) { Modified: trunk/rcssserver3d/plugin/soccermonitor/soccerinput.h =================================================================== --- trunk/rcssserver3d/plugin/soccermonitor/soccerinput.h 2009-06-15 15:08:14 UTC (rev 68) +++ trunk/rcssserver3d/plugin/soccermonitor/soccerinput.h 2009-06-16 09:53:55 UTC (rev 69) @@ -37,7 +37,8 @@ { CmdUser = kerosin::InputControl::CmdUser, CmdKickOff = CmdUser + 1, - CmdMoveAgent = CmdKickOff + 1, + CmdKickOffRight = CmdKickOff + 1, + CmdMoveAgent = CmdKickOffRight + 1, CmdDropBall = CmdMoveAgent + 1, CmdShootBall = CmdDropBall + 1, CmdMoveBall = CmdShootBall + 1, Modified: trunk/rcssserver3d/rcssmonitor3d/soccerbindings.rb =================================================================== --- trunk/rcssserver3d/rcssmonitor3d/soccerbindings.rb 2009-06-15 15:08:14 UTC (rev 68) +++ trunk/rcssserver3d/rcssmonitor3d/soccerbindings.rb 2009-06-16 09:53:55 UTC (rev 69) @@ -25,6 +25,7 @@ else print "setting bindings for online monitor\n\n"; inputServer.bindCommand('k', Command.KickOff); + inputServer.bindCommand('j', Command.KickOffRight); inputServer.bindCommand('b', Command.DropBall); inputServer.bindCommand('m', Command.MoveAgent); inputServer.bindCommand('n', Command.ShootBall); Modified: trunk/rcssserver3d/simspark/main.cpp =================================================================== --- trunk/rcssserver3d/simspark/main.cpp 2009-06-15 15:08:14 UTC (rev 68) +++ trunk/rcssserver3d/simspark/main.cpp 2009-06-16 09:53:55 UTC (rev 69) @@ -46,7 +46,8 @@ { public: SimSpark(const std::string& relPathPrefix) : - Spark(relPathPrefix) + Spark(relPathPrefix), + mScriptPath("simspark.rb") {}; /** called once after Spark finished it's init */ @@ -60,15 +61,18 @@ /** process command line options */ bool ProcessCmdLine(int argc, char* argv[]); + +private: + std::string mScriptPath; }; void SimSpark::PrintGreeting() { GetLog()->Normal() - << "simspark, a monolithic simulator 0.1\n" + << "simspark, a monolithic simulator 0.6.1\n" << "Copyright (C) 2004 Markus Rollmann, \n" - << "Universit�t Koblenz.\n" - << "Copyright (C) 2004, " + << "Universität Koblenz.\n" + << "Copyright (C) 2004-2009, " << "The RoboCup Soccer Server Maintenance Group.\n" << "\nType '--help' for further information\n\n"; } @@ -76,24 +80,26 @@ void SimSpark::PrintHelp() { GetLog()->Normal() - << "\nusage: simspark [options]\n" - << "\noptions:\n" - << " --help\t print this message.\n" - << "\n"; + << "\nusage: simspark [options] [script]\n" + << "\noptions:\n" + << " --help\t print this message.\n" + << "\n"; } bool SimSpark::ProcessCmdLine(int argc, char* argv[]) { - for( int i = 0; i < argc; i++) + if(argc == 1) + return true; + + if(argc > 2 || strcmp( argv[0], "--help" ) == 0) { - if( strcmp( argv[i], "--help" ) == 0 ) - { - PrintHelp(); - return false; - } + PrintHelp(); + return false; } - return true; + mScriptPath = argv[1]; + + return true; } bool SimSpark::InitApp(int argc, char** argv) @@ -104,19 +110,19 @@ // process command line if (! ProcessCmdLine(argc, argv)) - { - return false; - } + { + return false; + } // run initialization scripts - GetScriptServer()->Run("simspark.rb"); + GetScriptServer()->Run(mScriptPath); // tell the inputControl node the loaction of our camera shared_ptr<InputControl> inputCtr = GetInputControl(); if (inputCtr.get() != 0) - { - inputCtr->SetFPSController("/usr/scene/camera/physics/controller"); - } + { + inputCtr->SetFPSController("/usr/scene/camera/physics/controller"); + } return true; } @@ -127,21 +133,21 @@ SimSpark spark("../../"); if (! spark.Init(argc, argv)) - { - return 1; - } + { + return 1; + } spark.GetSimulationServer()->Run(argc,argv); shared_ptr<RenderControl> renderCtr = spark.GetRenderControl(); if (renderCtr.get() != 0) - { - spark.GetLog()->Normal() - << "Average FPS: " - << renderCtr->GetFramesRendered() / - spark.GetSimulationServer()->GetTime() - << "\n"; - } + { + spark.GetLog()->Normal() + << "Average FPS: " + << renderCtr->GetFramesRendered() / + spark.GetSimulationServer()->GetTime() + << "\n"; + } return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2009-07-30 17:21:39
|
Revision: 79 http://simspark.svn.sourceforge.net/simspark/?rev=79&view=rev Author: hedayat Date: 2009-07-30 17:21:13 +0000 (Thu, 30 Jul 2009) Log Message: ----------- do not link plugins with spark libraries. prevents segfault for rcssmonitor3d on exit. do not setup materials when internal monitor doesn't run disable internal monitor by default Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/plugin/CMakeLists.txt trunk/rcssserver3d/plugin/soccer/CMakeLists.txt trunk/rcssserver3d/plugin/soccermonitor/CMakeLists.txt trunk/rcssserver3d/simspark/naosoccersim.rb trunk/rcssserver3d/simspark/simspark.rb Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2009-07-29 12:18:34 UTC (rev 78) +++ trunk/rcssserver3d/ChangeLog 2009-07-30 17:21:13 UTC (rev 79) @@ -1,3 +1,17 @@ +2009-07-30 Hedayat Vatankhah <he...@gr...> + + * plugin/CMakeLists.txt: + * plugin/soccer/CMakeLists.txt: + * plugin/soccermonitor/CMakeLists.txt: + - do not link plugins with spark libraries. prevents segfault for + rcssmonitor3d on exit. + + * simspark/naosoccersim.rb: + - do not setup materials when internal monitor doesn't run + + * simspark/simspark.rb: + - disable internal monitor by default + 2009-07-27 Hedayat Vatankhah <he...@gr...> * CMakeLists.txt: Modified: trunk/rcssserver3d/plugin/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/plugin/CMakeLists.txt 2009-07-29 12:18:34 UTC (rev 78) +++ trunk/rcssserver3d/plugin/CMakeLists.txt 2009-07-30 17:21:13 UTC (rev 79) @@ -1,2 +1,7 @@ +if (WIN32 OR APPLE) + set(spark_libs ${SALT_LIBRARIES} ${OXYGEN_LIBRARIES} ${ZEITGEIST_LIBRARIES} + ${KEROSIN_LIBRARIES} ${RCSSNET3D_LIBRARY}) +endif (WIN32 OR APPLE) + add_subdirectory(soccer) add_subdirectory(soccermonitor) Modified: trunk/rcssserver3d/plugin/soccer/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/plugin/soccer/CMakeLists.txt 2009-07-29 12:18:34 UTC (rev 78) +++ trunk/rcssserver3d/plugin/soccer/CMakeLists.txt 2009-07-30 17:21:13 UTC (rev 79) @@ -115,9 +115,7 @@ add_library(soccer MODULE ${soccer_LIB_SRCS} ${soccer_LIB_HDRS}) -target_link_libraries(soccer ${SALT_LIBRARIES} ${OXYGEN_LIBRARIES} - ${ZEITGEIST_LIBRARIES} ${KEROSIN_LIBRARIES} - ${OPENGL_gl_LIBRARY} ${RCSSNET3D_LIBRARY}) +target_link_libraries(soccer ${spark_libs} ${OPENGL_gl_LIBRARY}) if (NOT APPLE) set_target_properties(soccer PROPERTIES VERSION 1.0.0 SOVERSION 1) Modified: trunk/rcssserver3d/plugin/soccermonitor/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/plugin/soccermonitor/CMakeLists.txt 2009-07-29 12:18:34 UTC (rev 78) +++ trunk/rcssserver3d/plugin/soccermonitor/CMakeLists.txt 2009-07-30 17:21:13 UTC (rev 79) @@ -25,9 +25,7 @@ add_library(soccermonitor MODULE ${soccermonitor_LIB_SRCS} ${soccermonitor_LIB_HDRS}) -target_link_libraries(soccermonitor ${SALT_LIBRARIES} ${OXYGEN_LIBRARIES} - ${ZEITGEIST_LIBRARIES} ${KEROSIN_LIBRARIES} - ${RCSSNET3D_LIBRARY}) +target_link_libraries(soccermonitor ${spark_libs}) if (NOT APPLE) set_target_properties(soccermonitor PROPERTIES VERSION 1.0.0 SOVERSION 1) Modified: trunk/rcssserver3d/simspark/naosoccersim.rb =================================================================== --- trunk/rcssserver3d/simspark/naosoccersim.rb 2009-07-29 12:18:34 UTC (rev 78) +++ trunk/rcssserver3d/simspark/naosoccersim.rb 2009-07-30 17:21:13 UTC (rev 79) @@ -4,13 +4,15 @@ # setup soccer specific materials # run "scripts/rcs-materials.rb" -run "scripts/rcs-materials-textures.rb" +if ($enableInternalMonitor) + run "scripts/rcs-materials-textures.rb" + + material = sparkCreate('kerosin/Material2DTexture', $serverPath+'material/matGrass'); + material.setDiffuse(1.0,1.0,1.0,1.0) + material.setAmbient(0.5,0.5,0.5,1.0) + material.setDiffuseTexture('textures/rcs-naofield.png') +end -material = sparkCreate('kerosin/Material2DTexture', $serverPath+'material/matGrass'); -material.setDiffuse(1.0,1.0,1.0,1.0) -material.setAmbient(0.5,0.5,0.5,1.0) -material.setDiffuseTexture('textures/rcs-naofield.png') - importBundle "soccer" # soccer namespace Modified: trunk/rcssserver3d/simspark/simspark.rb =================================================================== --- trunk/rcssserver3d/simspark/simspark.rb 2009-07-29 12:18:34 UTC (rev 78) +++ trunk/rcssserver3d/simspark/simspark.rb 2009-07-30 17:21:13 UTC (rev 79) @@ -6,7 +6,7 @@ $recordLogfile = false # toggle the internal monitor -$enableInternalMonitor = true +$enableInternalMonitor = false sparkSetupServer() if ($enableInternalMonitor) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2009-07-31 20:40:34
|
Revision: 82 http://simspark.svn.sourceforge.net/simspark/?rev=82&view=rev Author: hedayat Date: 2009-07-31 20:40:14 +0000 (Fri, 31 Jul 2009) Log Message: ----------- Added the HMDP plugin (By: N. Michael Mayer and Joschka) Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/data/rsg/agent/nao/nao.rsg trunk/rcssserver3d/plugin/soccer/CMakeLists.txt trunk/rcssserver3d/plugin/soccer/export.cpp Added Paths: ----------- trunk/rcssserver3d/plugin/soccer/hmdp_effector/ trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/ trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/base.c trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/base.h trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/compatible.h trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/hmdp_c.c trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/hmdp_c.h trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/sine_fixed.c trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/sine_fixed.h trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdpaction.h trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector.cpp trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector.h trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector_c.cpp trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdpperceptor.cpp trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdpperceptor.h trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdpperceptor_c.cpp trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdpwrapper.cpp trunk/rcssserver3d/plugin/soccer/hmdp_effector/naospecific.cpp trunk/rcssserver3d/plugin/soccer/hmdp_effector/naospecific.h Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2009-07-31 20:27:41 UTC (rev 81) +++ trunk/rcssserver3d/ChangeLog 2009-07-31 20:40:14 UTC (rev 82) @@ -1,3 +1,29 @@ +2009-07-31 Hedayat Vatankhah <he...@gr...> + + * plugin/soccer/hmdp_effector/hmdp_c/sine_fixed.h: + * plugin/soccer/hmdp_effector/hmdp_c/sine_fixed.c: + * plugin/soccer/hmdp_effector/hmdp_c/hmdp_c.h: + * plugin/soccer/hmdp_effector/hmdp_c/hmdp_c.c: + * plugin/soccer/hmdp_effector/hmdp_c/compatible.h: + * plugin/soccer/hmdp_effector/hmdp_c/base.h: + * plugin/soccer/hmdp_effector/hmdp_c/base.c: + * plugin/soccer/hmdp_effector/naospecific.h: + * plugin/soccer/hmdp_effector/naospecific.cpp: + * plugin/soccer/hmdp_effector/hmdpwrapper.cpp: + * plugin/soccer/hmdp_effector/hmdpperceptor.h: + * plugin/soccer/hmdp_effector/hmdpperceptor.cpp: + * plugin/soccer/hmdp_effector/hmdpperceptor_c.cpp: + * plugin/soccer/hmdp_effector/hmdpeffector.h: + * plugin/soccer/hmdp_effector/hmdpeffector.cpp: + * plugin/soccer/hmdp_effector/hmdpeffector_c.cpp: + * plugin/soccer/hmdp_effector/hmdpaction.h: + * plugin/soccer/CMakeLists.txt: + * plugin/soccer/export.cpp: + * data/rsg/agent/nao/nao.rsg: + - added HMDP effector/perceptor. Thanks to N. Michael Mayer and Joschka. + - some code cleanup and formatting + - replacing the use of the obsolete function boost::make_shared() + 2009-07-30 Hedayat Vatankhah <he...@gr...> * plugin/CMakeLists.txt: Modified: trunk/rcssserver3d/data/rsg/agent/nao/nao.rsg =================================================================== --- trunk/rcssserver3d/data/rsg/agent/nao/nao.rsg 2009-07-31 20:27:41 UTC (rev 81) +++ trunk/rcssserver3d/data/rsg/agent/nao/nao.rsg 2009-07-31 20:40:14 UTC (rev 82) @@ -37,14 +37,14 @@ (switch $loadObj (true - (nd Transform - (setLocalRotation -90 0 180) - (nd StaticMesh - (load 'models/naobody.obj') - (setScale $TorsoLength $TorsoLength $TorsoLength) - ) - ) + (nd Transform + (setLocalRotation -90 0 180) + (nd StaticMesh + (load 'models/naobody.obj') + (setScale $TorsoLength $TorsoLength $TorsoLength) + ) ) + ) (false (importScene rsg/agent/nao/box_appearance.rsg $TorsoLength $TorsoWidth $TorsoHeight matGrey) @@ -59,10 +59,10 @@ (importScene rsg/agent/nao/contactjointhandler.rsg) ) - ;Install effectors and perceptors + ;Install effectors and perceptors (nd StaticMeshInitEffector) - (nd TimePerceptor) + (nd TimePerceptor) (nd AgentState (setName AgentState) @@ -72,11 +72,14 @@ (nd GyroRatePerceptor (setName torso)) - (nd BeamEffector) + ;(nd HMDPPerceptor) + ;(nd HMDPEffector) + (nd BeamEffector) + (nd SayEffector) - ;(nd VisionPerceptor + ;(nd VisionPerceptor ; (setSenseMyPos false) ; (setStaticSenseAxis false) ; (addNoise false)) Modified: trunk/rcssserver3d/plugin/soccer/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/plugin/soccer/CMakeLists.txt 2009-07-31 20:27:41 UTC (rev 81) +++ trunk/rcssserver3d/plugin/soccer/CMakeLists.txt 2009-07-31 20:40:14 UTC (rev 82) @@ -41,6 +41,10 @@ gametimeperceptor/gametimeperceptor.h visionperceptor/visionperceptor.h agentintegration/soccerbotbehavior.h + hmdp_effector/hmdpaction.h + hmdp_effector/hmdpeffector.h + hmdp_effector/hmdpperceptor.h + hmdp_effector/naospecific.h ) set(soccer_LIB_SRCS @@ -107,6 +111,12 @@ gametimeperceptor/gametimeperceptor_c.cpp agentintegration/soccerbotbehavior.cpp agentintegration/soccerbotbehavior_c.cpp + hmdp_effector/hmdpeffector_c.cpp + hmdp_effector/hmdpeffector.cpp + hmdp_effector/hmdpperceptor_c.cpp + hmdp_effector/hmdpperceptor.cpp + hmdp_effector/hmdpwrapper.cpp + hmdp_effector/naospecific.cpp ) include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${SPARK_INCLUDE_DIR} Modified: trunk/rcssserver3d/plugin/soccer/export.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/export.cpp 2009-07-31 20:27:41 UTC (rev 81) +++ trunk/rcssserver3d/plugin/soccer/export.cpp 2009-07-31 20:40:14 UTC (rev 82) @@ -51,6 +51,8 @@ #include "hearperceptor/hearperceptor.h" #include "gametimeperceptor/gametimeperceptor.h" #include "agentintegration/soccerbotbehavior.h" +#include "hmdp_effector/hmdpeffector.h" +#include "hmdp_effector/hmdpperceptor.h" ZEITGEIST_EXPORT_BEGIN() ZEITGEIST_EXPORT(SoccerControlAspect); @@ -84,5 +86,7 @@ ZEITGEIST_EXPORT(VisionPerceptor); ZEITGEIST_EXPORT(GameTimePerceptor); ZEITGEIST_EXPORT(SoccerbotBehavior); + ZEITGEIST_EXPORT(HMDPPerceptor); + ZEITGEIST_EXPORT(HMDPEffector); ZEITGEIST_EXPORT_END() Added: trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/base.c =================================================================== --- trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/base.c (rev 0) +++ trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/base.c 2009-07-31 20:40:14 UTC (rev 82) @@ -0,0 +1,636 @@ +/*************************************************************************** + * Base routines of the command parser (without the HMDP commands) * + * Part of the Microcontroller Basimplementation of HMDP * + * N. Michael Mayer, 2007 email: nm...@gm... * + * This part of the program is intended to be used in the micro-controller * + ***************************************************************************/ + +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + this file is part of rcssserver3D + + Copyright (C) 2002,2003 Koblenz University + Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group + Copyright (C) 2008 N. Michael Mayer, email: nm...@gm... + + + 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 "base.h" +#include "hmdp_c.h" +#include "compatible.h" + +Base_data *base_data; // pointer to current instantiation of the data + + +void sendMesg(const char *str) //! uses sendByte to make messages... +{ + while (*str) + { + sendByte(*str); + str++; + } +} + +void write_int(int in) //! write out integer to master +{ + char xx[] = + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + data2hex(8, in, xx); + sendMesg(xx); +} + +void set_current_servo_pos_as_zero() +{ + int i; + init_servo_list(); + for (i = 1; i <= base_data->servo_list_base[0]; ++i) + + base_data->zero_pos_inits_feed[base_data->servo_list_base[i]] + = read_back_pos_set(base_data->servo_list_base[i]); + base_data->zero_pos_inits = &(base_data->zero_pos_inits_feed[0]); + sendMesg("Current zero pos is now zero\r\n"); +} + +void init_base() +{ + base_data->op_state = 0; + base_data->echo_on = 0; + base_data->bbase = 0; + init_servo_list(); /*! search for all servos */ + //init_hmdl(); /*! in arm.c */ + sendMesg("# HMDP 0.3 \n"); +} + +int servo_list_in_hex(char *li) +{ + + init_servo_list(); + int i; + for (i = 0; i <= base_data->servo_list_base[0]; ++i) + { + data2hex(2, base_data->servo_list_base[i], &li[2* i ]); + } + li[base_data->servo_list_base[0] * 2 + 2] = 0; + return 0; +} + +void send_servo_list() +{ + char list[200]; + servo_list_in_hex(list); + + sendByte('!'); //!Data indikator + + sendMesg(list); + sendByte(13); + sendByte(10); +} + +int init_servo_list() //!gives back +//!(size, id, id...) +{ + + char i; + int pos = 1; + for (i = 0; i < 62; ++i) + { + if (read_back_id(i)) + { + base_data->servo_list_base[pos] = i; + pos++; + } + } + base_data->servo_list_base[0] = pos - 1; + return 0; +} +; + +void eval_set_echo_on_off(const char in[]) +/*! >E command one can turn on/off the echo */ +{ + if (in[1] == 'N') + base_data->echo_on = 0; + if (in[1] == 'F') + base_data->echo_on = -1; + +} +; + +void eval_send_gen_message(const char in[]) +/*! >$ command allows direct access to the servos */ +{ + int si = hex2data(2, in); + int i; + for (i = 0; i < si; i++) + { + char me = hex2data(2, in + 2 + 2* i ); + sendBytetoMo(me); + + }; +} +; + +void eval_set_position_message(const char in[]) +/*! >P command sets servo to position */ +{ + int servoid, value; + servoid = hex2data(2, in); + value = hex2data(4, in + 2); + value += base_data->zero_pos_inits[servoid] + - base_data->zero_pos_inits_feed[servoid]; + send_servo_to_pos(servoid, value); +} +; + +void eval_set_min_max_message(const char in[]) +//! >M message -- for setting up min and max values +{ + int servoid, minvalue, maxvalue; + servoid = hex2data(2, in); + base_data->servo_min_val[servoid] = hex2data(4, in + 2); + base_data->servo_max_val[servoid] = hex2data(4, in + 6); + char eins[5]; + eins[4] = 0; + sendMesg("\n"); + data2hex(4, base_data->servo_min_val[servoid], eins); + sendMesg(eins); + data2hex(4, base_data->servo_max_val[servoid], eins); + sendMesg(eins); + sendMesg("\n"); +} +; + +void eval_set_state_message(const char in[]) +//! >S message +{ + base_data->op_state = hex2data(2, in); + + sendMesg("\r\n"); + write_int(base_data->op_state); + sendMesg("\r\n"); +} +; + +void eval_set_gain_message(const char in[]) +//! set gain for servo +{ + int servoid, value; + servoid = hex2data(2, in); + value = hex2data(2, &in[2]); + send_servo_to_gain(servoid, value); + +} +; + +void eval_set_time(const char in[]) +//! set time +{ + long time = hex2data(8, in); + set_hmdl_time(time); +} +; + +void send_time() +//! read time from HMDP and send it to the client +{ + char mes[12] = + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + data2hex(8, get_hmdl_time(), mes); + sendMesg("!"); + sendMesg(mes); + sendMesg("\r\n"); + + data2hex(8, get_hmdl_time_inc(), mes); + sendMesg("inc: "); + sendMesg(mes); + sendMesg("\r\n"); + +} +; + +void eval_set_servo_on_off(const char in[]) +//! check for >ON or >OFF message both start with the the letter O +{ + + int servoid; + sendMesg("in on off\n"); + switch (in[0]) + { + case 'N': //! >ON## + + servoid = hex2data(2, &in[1]); + send_servo_on(servoid); + break; + + default: //! >OFF## + servoid = hex2data(2, &in[2]); + send_servo_off(servoid); + break; + } + +} +; + +void eval_get_jname(const char in[]) +/*! reads the name of the servo form the preprogrammed list defined in + compatible.h */ +{ + + int servoid, position, i; + + sendByte('!'); //Data indikator + + if (jointnames != NULL) + { + + if (in[0] == 'v') //! all joints + { + //init_servo_list(); + for (i = 0; i < base_data->servo_list_base[0]; ++i) + { + + sendMesg(jointnames[i]); + sendByte(':'); + + }; + + } + else + { + servoid = hex2data(2, &in[0]); + + sendMesg(jointnames[servoid]); + + }; + } + sendByte(13); + sendByte(10); + +} + +void eval_get_pos_message(const char in[]) +/* <P command read serv-pos from potis */ +{ + + int servoid, position, i; + + sendByte('!'); //Data indikator + + if (in[0] == 'v') + { + //init_servo_list(); + for (i = 0; i < base_data->servo_list_base[0]; ++i) + { + servoid = base_data->servo_list_base[i + 1]; + position = read_back_pos(servoid); + position -= base_data->zero_pos_inits[servoid] + - base_data->zero_pos_inits_feed[servoid]; //ACHTUNG + + char xx[] = + { 0, 0, 0, 0, 0 }; + data2hex(4, position, xx); + sendMesg(xx); + + }; + sendByte(13); + sendByte(10); + + } + else + { + servoid = hex2data(2, &in[0]); + position = read_back_pos(servoid); + position -= base_data->zero_pos_inits[servoid] + - base_data->zero_pos_inits_feed[servoid]; //ACHTUNG + + char xx[] = + { 0, 0, 0, 0, 13, 0 }; + data2hex(4, position, xx); + sendMesg(xx); + //uart0SendByte('*'); + sendByte(13); + sendByte(10); + }; +} +; + +void eval_get_pos_set_message(const char in[]) +/*! <R get target value */ +{ + + int servoid, position, i; + + sendByte('!'); //Data indikator + + if (in[0] == 'v') + { + init_servo_list(); + for (i = 0; i < base_data->servo_list_base[0]; ++i) + { + servoid = base_data->servo_list_base[i + 1]; + position = read_back_pos_set(servoid); + char xx[] = + { 0, 0, 0, 0, 0 }; + data2hex(4, position, xx); + sendMesg(xx); + + }; + //uart0SendByte('*'); + sendByte(13); + sendByte(10); + + } + else + { + + servoid = hex2data(2, &in[0]); + position = read_back_pos_set(servoid); + char xx[] = + { 0, 0, 0, 0, 13, 0 }; + data2hex(4, position, xx); + sendMesg(xx); + sendByte(13); + sendByte(10); + } +} +; + +void send_zero_pos() +{ + + int i; + sendByte('!'); + for (i = 0; i < base_data->servo_list_base[0]; ++i) + { + unsigned char servoid = base_data->servo_list_base[i + 1]; + int zeropos = base_data->zero_pos_inits_feed[servoid]; //ACHTUNG DEBUG + + char xx[] = + { 0, 0, 0, 0, 0 }; + data2hex(4, zeropos, xx); + sendMesg(xx); + + }; + sendByte(13); + sendByte(10); + +} +; // send zero pos feed + + +void plastic_state() +/*! timer call for plastic state */ +{ + init_servo_list(); + int i; + int j, val; + for (i = 1; i <= base_data->servo_list_base[0]; ++i) + { + + j = base_data->servo_list_base[i]; + val = read_back_pos(j); + send_servo_to_pos(j, val); + }; +} +; + +/* first level parser for base.c commands (<..., >...., @....)*/ +int eval_seq_base(const char in[]) +{ + + int found_command = 0; + found_command = -1; + switch (in[0]) + { + case '>': + disableIRQ(); + + switch (in[1]) + { + case '$': + eval_send_gen_message(&in[2]); /* >$ (gen messg command */ + case 'S': + eval_set_state_message(&in[2]); /* >S command */ + break; + case 'P': + eval_set_position_message(&in[2]); /* >P command */ + break; + case 'G': + eval_set_gain_message(&in[2]); /* >G command */ + break; + case 'O': + eval_set_servo_on_off(&in[2]); /* >O command */ + break; + case 'M': + eval_set_min_max_message(&in[2]); /* >M command */ + break; + case 'T': + eval_set_time(&in[2]); /* >T command */ + break; + case 'E': + eval_set_echo_on_off(&in[2]); /* >E command */ + break; + case 'Z': + set_current_servo_pos_as_zero(); + break; + } + enableIRQ(); + break; + case '<': + + switch (in[1]) + { + case 'N': + disableIRQ(); + eval_get_jname(&in[2]); /* <N command: get the names of the servos */ + break; + case 'P': + disableIRQ(); + eval_get_pos_message(&in[2]); /* <P command */ + break; + case 'R': + disableIRQ(); + eval_get_pos_set_message(&in[2]); /* <R command */ + break; + case 'L': + disableIRQ(); + send_servo_list(); /* <L command servo list*/ + break; + case 'T': + disableIRQ(); + send_time(); + break; + case 'Z': + send_zero_pos(); // send zero pos feed + break; + + } + enableIRQ(); + default: + found_command = -1; + break; + } + return found_command; +} +; + +/* sending motion to servo ...*/ + +void send_hmdp_motion_to_servo() +{ + int i; + for (i = 0; i < base_data->servo_list_base[0]; ++i) + { + + int ID = base_data->servo_list_base[i + 1]; + int pos = base_data->zero_pos_inits[(int) base_data->servo_list_base[i + + 1]] + get_hmdl_servo_out(i); + + send_servo_to_pos((int) base_data->servo_list_base[i + 1], pos); + }; + +} +; + +/*! interrupt routine for plastic state */ +void inter_routine_state_2() +{ + plastic_state(); +} +; + +/*! interrupt routine for HMDP runnung */ +void inter_routine_state_1() +{ + // if ((get_hmdl_time_inc()!=0)) + // { + calc_next_timer_value(); + send_hmdp_motion_to_servo(); + motion_machine(calc_next_timer_value()); + +} +; + +/*! main interrupt routine */ +void inter_routine_base() +{ + if (base_data->op_state == 1) + inter_routine_state_1(); + if (base_data->op_state == 2) + inter_routine_state_2(); + +} +; + +int main_eval(char *buff) +{ + + if (eval_seq_base(buff) == -1) + { + //sendMesg ("\n"); + eval_seq(buff); // HMDP parser in hmdp_c.c + + } + return 0; +} + +//! main parser +int parse_one_line() +{ + char in[3]; + in[0] = 0; + in[1] = 0; + int buff_c = 0; + int a = 0; + + while (a != 13) + { + // led1_off(); + a = readByte(); + ; + if (a != -1) + { + // led1_on(); + base_data->buff[base_data->bbase + buff_c] = a; + buff_c++; + in[0] = a; + if (base_data->echo_on == 0) + sendByte(a); + + }; + }; + + if (buff_c > 5) //! Checksum feature + { + if ((base_data->buff[base_data->bbase + buff_c - 4] == 'C') + && (base_data->buff[base_data->bbase + buff_c - 3] == 'S')) + { + int sum = 0; + int i; + for (i = 0; i < buff_c - 4; ++i) + sum += base_data->buff[base_data->bbase + i]; + sum %= 15; + int sum2 = hex2data(1, &(base_data->buff[base_data->bbase + buff_c + - 2])); + if (sum == sum2) + { + sendMesg("\r\n*\r\n"); + } + else + { + sendMesg("\r\nE\r\n"); + }; + buff_c -= 3; + + }; + }; + if (buff_c > 1) //! Long message feature + { + if (base_data->buff[base_data->bbase + buff_c - 2] == '&') + { + base_data->bbase += buff_c - 2; + sendMesg("add line \n"); + } + else + { + base_data->buff[base_data->bbase + buff_c] = 13; + base_data->buff[base_data->bbase + buff_c + 1] = 0; + + base_data->bbase = 0; + + } + + } + else + { + + base_data->buff[base_data->bbase + buff_c] = 13; + base_data->buff[base_data->bbase + buff_c + 1] = 0; + base_data->bbase = 0; + } + if (base_data->bbase == 0) + { + sendMesg("\r\n"); + + main_eval(base_data->buff); // see base.c + clearBuffer(); + }; + +} +; + Property changes on: trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/base.c ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/base.h =================================================================== --- trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/base.h (rev 0) +++ trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/base.h 2009-07-31 20:40:14 UTC (rev 82) @@ -0,0 +1,73 @@ +/*************************************************************************** + * base.h for the Harmonic Motion Description Protocol (HMDP) * + * N. Michael Mayer, 2007 email: nm...@gm... * + * This part of the program is intended to be used in the micro-controller * + ***************************************************************************/ + +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + this file is part of rcssserver3D + + Copyright (C) 2002,2003 Koblenz University + Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group + Copyright (C) 2008 N. Michael Mayer, email: nm...@gm... + + + 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 __HMDP_BASE__ +#define __HMDP_BASE__ + +#define MAX_ALLOWED_SERVOS 64 +#define MAX_PARSER_BUFFER_SIZE 200 + +typedef struct +{ + /*! instantiation of the state variable + + */ + int op_state; // main state variable HMDP off=0, HMDP on =1, plastic =2 + int servo_min_val[MAX_ALLOWED_SERVOS + 1]; // sets a min and a max value for each joint + int servo_max_val[MAX_ALLOWED_SERVOS + 1]; + char servo_list_base[MAX_ALLOWED_SERVOS + 1]; // reserved memory for the joint ids + int *zero_pos_inits; // pointer to current zero positions + int zero_pos_inits_feed[MAX_ALLOWED_SERVOS + 1]; // ram list of the zero positions + int bbase; // pointer to the current position in the parser buffer + char buff[MAX_PARSER_BUFFER_SIZE]; // parser buffer + int echo_on; // echo flag -- for terminal communication + +} Base_data; // all "global" data put for base.c + + +// functions in base.c + + +void init_base(); +int parse_one_line(); +void inter_routine_base(); + +int init_servo_list(); +int servo_list_in_hex(char *li); +int eval_seq_base(const char in[]); +void send_hmdp_motion_to_servo(); +void write_int(int in); + +extern char jointnames[MAX_ALLOWED_SERVOS][8]; + +#ifndef NULL +#define NULL 0 +#endif + +#endif Property changes on: trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/base.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/compatible.h =================================================================== --- trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/compatible.h (rev 0) +++ trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/compatible.h 2009-07-31 20:40:14 UTC (rev 82) @@ -0,0 +1,92 @@ +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + The functions names in this header have to be implmented for each microcontroller individually + + Copyright (C) 2008 N. Michael Mayer, nm...@gm... + + 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. + */ + +//! HMDP Compatibility Layer: + +#ifndef ___COMPATIBLE_RR___ +#define ___COMPATIBLE_RR___ + +//! This is the set of functions and constants used by the hmdp_c.c and base.c functions. They have to be implemented for each robot individually + +//! Interrupt related functions + +// #1 +void disableIRQ(); +// #2 +void enableIRQ(); + +// !Communication over with the the client +// #3 +int sendByte(int data); +// #4 +int readByte(); +// #5 +void clearBuffer(); + +//! possibly useful to allow direct communication between client and servos using the >$ command +// #6 +int sendBytetoMo(int); + +//! These commands have to be implemented to control the servos +//! For all servos it is assummed that 0 corresponds to the minimal value and 4096 corresponds to the maximal value + +// #7 +void send_servo_off(int ID); // ! turn servo off +// #8 +void send_servo_on(int ID); // ! turn servo on +// #9 +void send_servo_to_pos(int ID, int pos); // ! commands +// #10 +void send_servo_to_gain(int ID, int gain); + +// #11 +int read_back_pos(int ID); // ! read current servo pos from poti value +// #12 +int read_back_pos_set(int ID); // ! read targert position from servo +// #13 +int read_back_id(int ID); // ! check if a servo with the particular ID is present + + +/*! for all things mentioned below this point: + HMDP internally counts the servo from lower numbers to higher numbers thus a robot with servo + IDs 1,3,8,15 internally has the IDs 0,1,2,3 + the arrays: jointnames[][8]; and zer_pos_inits_feed */ + +// #14 +extern char jointnames[][8]; // ! names of the joints +// ! can be read out by: <Nxx and used by tools e.g. for transferring motion patterns from one robot to another +/*! Naming Conventions: NNXYPD[D] NN: Limb name that is: HE: Head, RA: right arm RL: Right leg, etc. + X number of the major joint position counted from the body center: hip, shoulder, neck = 1; + knee, elbow = 2; + foot, wrist = 3; + Y number of the hingjoint within the joint -- differs in dependence of the design + P parity -- if the robot executes the same motion according to reflection symmetry, i.e. all R become L if the motion stays + the same with parity + + is inverted in the case of parity - + D direction in Pitch (P), Roll (R), Yaw (Y), diagonal joints may use double letters e.g. PY + numbering convention: IF THE ROBOT HAS GAPS BETWEEN SERVO NUMBERS: + */ + +// #15 +extern int zero_pos_inits_feed[]; +/*! Zero positions i.e. the values that should be send to the servos of the robot to set it into an initial posture, + a posture from which the motions deviate. In some robots it is necessary */ + +#endif // ___COMPATIBLE_RR___ Property changes on: trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/compatible.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/hmdp_c.c =================================================================== --- trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/hmdp_c.c (rev 0) +++ trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/hmdp_c.c 2009-07-31 20:40:14 UTC (rev 82) @@ -0,0 +1,977 @@ +#include "hmdp_c.h" +#include "sine_fixed.h" + +Hmdl *hmdl; // hook for a pointer to all data + + +/*! Util routines to convert integers to hex strings and vice versa */ + +int hex2data(short size_v, const char res[]) +{ + + int k; + int data; + data = 0; + + for (k = 0; k < size_v; k++) + { + + data *= 16; + switch (res[k]) + + { + case '0': + break; + case '1': + data += 1; + break; + case '2': + data += 2; + break; + case '3': + data += 3; + break; + case '4': + data += 4; + break; + case '5': + data += 5; + break; + case '6': + data += 6; + break; + case '7': + data += 7; + break; + case '8': + data += 8; + break; + case '9': + data += 9; + break; + case 'a': + data += 10; + break; + case 'b': + data += 11; + break; + case 'c': + data += 12; + break; + case 'd': + data += 13; + break; + case 'e': + data += 14; + break; + case 'f': + data += 15; + break; + + } + + }; + return data; +} +; + +void data2hex(short size_v, const int dat, char res[]) +{ + + int k; + int data = dat; + for (k = size_v - 1; k >= 0; k--) + { + + switch (data % 16) + + { + case 0: + res[k] = '0'; + break; + case 1: + res[k] = '1'; + break; + case 2: + res[k] = '2'; + break; + case 3: + res[k] = '3'; + break; + case 4: + res[k] = '4'; + break; + case 5: + res[k] = '5'; + break; + case 6: + res[k] = '6'; + break; + case 7: + res[k] = '7'; + break; + case 8: + res[k] = '8'; + break; + case 9: + res[k] = '9'; + break; + case 10: + res[k] = 'a'; + break; + case 11: + res[k] = 'b'; + break; + case 12: + res[k] = 'c'; + break; + case 13: + res[k] = 'd'; + break; + case 14: + res[k] = 'e'; + break; + case 15: + res[k] = 'f'; + break; + + } + data /= 16; + }; + +} +; + +void set_hmdl_time(long time) +{ + hmdl->time = time; +} +; + +long get_hmdl_time() +{ + return hmdl->time; +} +; + +long get_hmdl_time_inc() +{ + return hmdl->time_inc; +} +; + +short get_hmdl_servo_out(int i) +{ + return cfloat2int(hmdl->positions_to_set[i]); +} +; + +void write_cfloat(struct c_float *in) +{ + + struct c_f_hex in_hex = c_float2hex(*in); + sendMesg(in_hex.stri); + +} + +#define INTERVAL 50 /* num of ms for the timer to go off */ + +/* function prototype */ +void motion_control(int); + +/* + * global variables + */ + +/* struct Hmdl hmdl;*/ + +struct c_f_hex c_float2hex(struct c_float in) +{ + short sign, esign, i; + struct c_f_hex ret; + for (i = 0; i < 15; ++i) + ret.stri[i] = 0; + + if (in.mantisse < 0) + { + ret.stri[0] = '-'; + sign = -1; + } + else + { + sign = 1; + ret.stri[0] = '+'; + }; + + if (in.exponent < 0) + { + ret.stri[9] = '-'; + esign = -1; + } + else + { + esign = 1; + ret.stri[9] = '+'; + }; + + data2hex(8, sign * in.mantisse, &ret.stri[1]); + /*ret.stri[9]='^';*/ + + data2hex(2, esign * in.exponent, &ret.stri[10]); + + return ret; +} +; + +struct c_float mult_cc(struct c_float a, struct c_float b) +{ + struct c_float c; + int sign_c = 1; + + if (a.mantisse < 0) + { + sign_c = -1; + a.mantisse = -a.mantisse; + } + + if (b.mantisse < 0) + { + sign_c = -sign_c; + b.mantisse = -b.mantisse; + } + + a.mantisse = a.mantisse >> (INT_MAXE / 2); + b.mantisse = b.mantisse >> (INT_MAXE / 2); + + c.exponent = a.exponent + b.exponent; + c.mantisse = a.mantisse * b.mantisse * sign_c; + + if (c_abs(c.mantisse) < INT_MAXX) + { + c.exponent--; + c.mantisse = c.mantisse << 1; + }; + + return c; +} +; + +int cfloat2int(struct c_float a) +{ + int r; + if (a.mantisse > 0) + r = a.mantisse >> (INT_MAXE - a.exponent); + else + { + r = -1* ( (-a.mantisse)>>(INT_MAXE-a.exponent)); + }; + return r; +}; + +struct c_float hex2c_float(const char in[]) +{ + struct c_float ret; + short sign, esign; + if (in[0] == '-') + sign = -1; + else if (in[0] == '+') + sign = +1; + + if (in[9] == '-') + esign = -1; + else if (in[9] == '+') + esign = +1; + + ret.mantisse = sign * hex2data(8, &in[1]); + ret.exponent = esign * hex2data(2, &in[10]); + return ret; +} + +int lo2(int in) +//! returns rough integer logarithm of in +{ + if (in >= 2048) + return 11; + if (in >= 1024) + return 10; + if (in >= 512) + return 9; + if (in >= 256) + return 8; + if (in >= 128) + return 7; + if (in >= 64) + return 6; + if (in >= 32) + return 5; + if (in >= 16) + return 4; + if (in >= 8) + return 3; + if (in >= 4) + return 2; + if (in >= 2) + return 1; + if (in < 2) + return 0; +} +; + +struct c_float c_f_sum(struct c_float a[], int size) +//! sum of size c_floats +{ + int i, max, lsize; + lsize = lo2(size); + struct c_float result; + max = 0; + result.mantisse = 0; + + for (i = 0; i < size; ++i) + if (a[i].exponent > max) + max = a[i].exponent; + + for (i = 0; i < size; ++i) + { + result.mantisse += (a[i].mantisse >> (max - a[i].exponent + lsize)); + }; + + result.exponent = max + lsize; + return result; +} +; + +int c_abs(int in) +//! absolut value of integer +{ + if (in > 0) + return in; + else + return -in; +} +; + +struct c_float c_f_add(struct c_float s1, struct c_float s2) +//! add 2 c_floats +{ + int i, max, lsize; + struct c_float result; + max = 0; + result.mantisse = 0; + + max = s1.exponent; + if (s2.exponent > max) + max = s2.exponent; + + if (s1.mantisse < 0) + result.mantisse -= ((-s1.mantisse) >> (max - s1.exponent + 1)); + else + result.mantisse += ((s1.mantisse) >> (max - s1.exponent + 1)); + + if (s2.mantisse < 0) + result.mantisse -= (-s2.mantisse >> (max - s2.exponent + 1)); + else + result.mantisse += (s2.mantisse >> (max - s2.exponent + 1)); + + result.exponent = max + 1; + if (c_abs(result.mantisse) < INT_MAXX) + { + result.exponent--; + if (result.mantisse > 0) + result.mantisse = result.mantisse << 1; + else + result.mantisse = -1* ( (-result.mantisse) <<1); + }; + + return result; + }; + +struct c_float mult_c_sinus(struct c_float a, int d) +//! multiply routine for sinus input c_float * sinus +{ + struct c_float c; + + int sign_c = 1; + + if (a.mantisse < 0) + { + sign_c = -1; + a.mantisse = -a.mantisse; + } + + if (d < 0) + { + sign_c = -sign_c; + d = -d; + } + + a.mantisse = a.mantisse >> (INT_MAXE / 2); + d = d >> (INT_MAXE / 2); + + c.exponent = a.exponent; + c.mantisse = a.mantisse * d * sign_c; + + return c; +} +; + +struct c_float mult_cc_sinus(struct c_float a, struct c_float b, int d) +//! multiply 2 c_floats with one sinus +{ + struct c_float c; + int sign_c = 1; + + if (a.mantisse < 0) + { + sign_c = -1; + a.mantisse = -a.mantisse; + } + + if (d < 0) + { + sign_c = -sign_c; + d = -d; + } + + if (b.mantisse < 0) + { + sign_c = -sign_c; + b.mantisse = -b.mantisse; + } + + a.mantisse = a.mantisse >> (2*INT_MAXE / 3); + b.mantisse = b.mantisse >> (2*INT_MAXE / 3); + d = d >> (2*INT_MAXE / 3); + + c.exponent = a.exponent + b.exponent; + c.mantisse = a.mantisse * b.mantisse * d * sign_c; + + if (c_abs(c.mantisse) < INT_MAXX) + { + c.exponent--; + if (c.mantisse > 0) + c.mantisse = c.mantisse << 1; + else + c.mantisse = -1* ( (-c.mantisse) <<1); + }; + + return c; + }; + +struct c_float set_c_float_zero() +// returns a c_float = 0 +{ + struct c_float a; + a.mantisse = 0; + a.exponent = 0; + return a; +} + +struct c_float fade_in(struct c_float a, struct c_float b, long t_a, long t_b, + long t) +//! provides fading in for motion patterns (in a linear -- ramp like manner) +{ + + int max_man; + struct c_float c; + max_man = a.exponent; + int sign_a, sign_b; + if (a.mantisse >= 0) + { + sign_a = 1; + } + else + { + sign_a = -1; + a.mantisse = -a.mantisse; + }; + + if (b.mantisse >= 0) + { + sign_b = 1; + } + else + { + sign_b = -1; + b.mantisse = -b.mantisse; + }; + + if (max_man < b.exponent) + max_man = b.exponent; + + long long diff = sign_b * (b.mantisse >> (max_man - b.exponent)) - sign_a + * (a.mantisse >> (max_man - a.exponent)); + diff *= (t - t_a); + diff /= (t_b - t_a); + + c.exponent = max_man; + c.mantisse = sign_a * a.mantisse + diff; + + return c; +} +; + +void motion_machine(unsigned int time) +/*! interpolation using direct access to the hmdl structure */ +{ + + int i, k, l; + struct c_float y, sine_amp, cos_amp; + struct c_float amp; + struct c_float *coeffs; + + /*! iterate over the servos and sum all values for the active motion patterns + -> superposition */ + for (i = 0; i < MAX_SERVOS; ++i) + { + hmdl->positions_to_set[i] = set_c_float_zero(); // init servo_list + + /*! loop over all motion patterns, see which ones should be active */ + for (k = 0; k < MAX_MPS; ++k) + { + /*! skip pattern if amplitude is 0 or not active */ + if (!(hmdl->mp[k].active)) + + { + continue; + } + + coeffs = hmdl->mp[k].pp->sv[i].s_position; + + if (time < hmdl->mp[k].start_0) + amp = hmdl->mp[k].A_old; + else if (time >= hmdl->mp[k].start_1) + amp = hmdl->mp[k].A_new; + else + amp = fade_in(hmdl->mp[k].A_old, hmdl->mp[k].A_new, + hmdl->mp[k].start_0, hmdl->mp[k].start_1, time); + + /*if (hmdl->mp[k].end_0!=0) + { + if (time > hmdl->mp[k].start_1) + { + hmdl->mp[k].start_0=hmdl->mp[k].end_0; + hmdl->mp[k].start_1=hmdl->mp[k].end_1; + + hmdl->mp[k].end_0=0; + hmdl->mp[k].end_1=0; + hmdl->mp[k].A_old=hmdl->mp[k].A_new; + hmdl->mp[k].A_new=set_c_float_zero(); + }; + };*/ + + if (hmdl->mp[k].end_0 != 0) + { + if (time > hmdl->mp[k].end_0) + { + if (time > hmdl->mp[k].end_1) + { + // + amp = set_c_float_zero(); + // hmdl->mp[k].active=0; + } + + else + { + amp = fade_in(hmdl->mp[k].A_new, set_c_float_zero(), + hmdl->mp[k].end_0, hmdl->mp[k].end_1, time); + + }; + + }; + }; + + //amp = hmdl->mp[k].A_curr; + //if (i==20) + // {write_int(cfloat2int(amp)); DMESG(" : ");} + + y = mult_cc(amp, coeffs[0]); + //y = coeffs[0]; + //if (i==20) { + // write_int(cfloat2int(y)); DMESG(" : ");} + + + for (l = 0; l < (MAX_COEFFS - 1) / 2; ++l) + { + y = c_f_add(y, mult_cc_sinus(amp, coeffs[2* l + 1], sin_fixed( + ((time - hmdl->mp[k].offset) * hmdl->mp[k].pp->wlqs_top[l]) + / hmdl->mp[k].pp->wlqs_bot[l]))); + + y = c_f_add(y, mult_cc_sinus(amp, coeffs[2* l + 2], cos_fixed( + ((time - hmdl->mp[k].offset) * hmdl->mp[k].pp->wlqs_top[l]) + / hmdl->mp[k].pp->wlqs_bot[l]))); + }; + + hmdl->positions_to_set[i] = c_f_add(y, hmdl->positions_to_set[i]); + + }; + }; +} +; + +int calc_next_timer_value() +//! wrapper for time +{ + hmdl->time += hmdl->time_inc; + return hmdl->time; +} + +void eval_set_time_message(const char in[]) +// TS HMDP command similar to >T command but also increment can be set +{ + hmdl->time = hex2data(MAX_TIME_DIGITS, in); + hmdl->time_max = hex2data(MAX_TIME_DIGITS, &in[MAX_TIME_DIGITS]); + hmdl->time_inc = hex2data(MAX_TIME_DIGITS, &in[2*MAX_TIME_DIGITS]); + //timer_running=0; + write_int(hmdl->time); + sendMesg("\r\n"); + +} +; + +void eval_set_alarm_point(const char in[]) +// not implelemented so far +{ + +} +; + +void eval_use_pattern_message(const char in[]) +//! PU command +{ + int patternid, curr; + patternid = hex2data(MAX_ID_DIGITS, in); + + hmdl->mp[patternid].start_0 = hex2data(MAX_TIME_DIGITS, &in[MAX_ID_DIGITS]); + hmdl->mp[patternid].start_1 = hex2data(MAX_TIME_DIGITS, &in[MAX_ID_DIGITS + + MAX_TIME_DIGITS]); + hmdl->mp[patternid].offset = hex2data(MAX_TIME_DIGITS, + &in[MAX_ID_DIGITS + 2*MAX_TIME_DIGITS]); + + hmdl->mp[patternid].end_0 = 0; + hmdl->mp[patternid].end_1 = 0; + + curr = MAX_ID_DIGITS + 3*MAX_TIME_DIGITS; + + hmdl->mp[patternid].A_old = hmdl->mp[patternid].A_new; + hmdl->mp[patternid].A_new = hex2c_float(&in[curr]); + + hmdl->mp[patternid].active = 1; + +} +; + +void eval_use_short_pattern_message(const char in[]) +//! PP command - shorter PU message +// +{ + int patternid, curr; + patternid = hex2data(MAX_ID_DIGITS, in); + + hmdl->mp[patternid].start_0 = 0; + hmdl->mp[patternid].start_1 = 0; + hmdl->mp[patternid].end_0 = 0; + hmdl->mp[patternid].end_1 = 0; + hmdl->mp[patternid].offset = 0; + + hmdl->mp[patternid].A_old = hmdl->mp[patternid].A_new; + hmdl->mp[patternid].A_new.mantisse = 0x40000000; + hmdl->mp[patternid].A_new.exponent = 0; + hmdl->mp[patternid].active = 1; + +} +; + +void eval_use_pattern_message_with_end(const char in[]) +//! PY sending a pattern with the ramp end +{ + int patternid, curr; + patternid = hex2data(MAX_ID_DIGITS, in); + + hmdl->mp[patternid].A_old = set_c_float_zero(); + hmdl->mp[patternid].A_new = set_c_float_zero(); + + hmdl->mp[patternid].start_0 = hex2data(MAX_TIME_DIGITS, &in[MAX_ID_DIGITS]); + hmdl->mp[patternid].start_1 = hex2data(MAX_TIME_DIGITS, &in[MAX_ID_DIGITS + + MAX_TIME_DIGITS]); + hmdl->mp[patternid].end_0 = hex2data(MAX_TIME_DIGITS, + &in[MAX_ID_DIGITS + 2*MAX_TIME_DIGITS]); + hmdl->mp[patternid].end_1 = hex2data(MAX_TIME_DIGITS, + &in[MAX_ID_DIGITS + 3*MAX_TIME_DIGITS]); + hmdl->mp[patternid].offset = hex2data(MAX_TIME_DIGITS, + &in[MAX_ID_DIGITS + 4*MAX_TIME_DIGITS]); + /*printf (" on sh 2 :%d %d\n", hmdl->mp[patternid].start_0, + hmdl->mp[patternid].start_1);*/ + + curr = MAX_ID_DIGITS + 5*MAX_TIME_DIGITS; + + hmdl->mp[patternid].A_old = hmdl->mp[patternid].A_new; + hmdl->mp[patternid].A_new = hex2c_float(&in[curr]); + + hmdl->mp[patternid].active = 1; + +} +; + +void eval_set_servo_coeff_message(const char in[]) +{ + int patternid, servoid, curr; + patternid = hex2data(MAX_ID_DIGITS, in); + servoid = hex2data(MAX_ID_DIGITS, &in[MAX_ID_DIGITS]); + curr = 2*MAX_ID_DIGITS; + int i = 0; + while ((in[curr] != 'X') && (in[curr] != 0) && (i < MAX_COEFFS)) + { + hmdl->mp[patternid].pp->sv[servoid].s_position[i] = hex2c_float( + &in[curr]); + write_cfloat(&hmdl->mp[patternid].pp->sv[servoid].s_position[i]); + sendMesg("\r\n"); + write_int(i); + sendMesg("\r\n"); + + i++; + curr += C_FLOAT_LENGTH; + }; + +} +; + +void eval_set_servo_small_coeff_message(const char in[]) +{ + int patternid, servoid, coeffid, curr; + patternid = hex2data(MAX_ID_DIGITS, in); + servoid = hex2data(MAX_ID_DIGITS, &in[MAX_ID_DIGITS]); + coeffid = hex2data(MAX_ID_DIGITS, &in[2*MAX_ID_DIGITS]); + hmdl->mp[patternid].pp->sv[servoid].s_position[coeffid] + = hex2c_float(&in[3*MAX_ID_DIGITS]); +} +; + +//long long i; + +void eval_new_pattern_message(const char in[]) +{ + int id, wp_number, counter, i, j; + + /* get number */ + id = hex2data(MAX_ID_DIGITS, in); + wp_number = hex2data(MAX_COE_DIGITS, &in[MAX_ID_DIGITS]); + + counter = MAX_ID_DIGITS + MAX_COE_DIGITS; + for (i = 0; i < MAX_COEFFS; ++i) + for (j = 0; j < MAX_SERVOS; ++j) + { + hmdl->mp[id].pp->sv[j].s_position[i].mantisse = 0; + hmdl->mp[id].pp->sv[j].s_position[i].exponent = 0; + }; + + for (i = 0; i < (MAX_COEFFS - 1) / 2; ++i) + { + hmdl->mp[id].pp->wlqs_top[i] = 0; + hmdl->mp[id].pp->wlqs_bot[i] = 1; + + }; + + for (i = 0; i < (wp_number - 1) / 2; ++i) + { + hmdl->mp[id].pp->wlqs_top[i] = hex2data(MAX_WLQ_DIGITS, &in[counter]); + counter += MAX_WLQ_DIGITS; + hmdl->mp[id].pp->wlqs_bot[i] = hex2data(MAX_WLQ_DIGITS, &in[counter]); + counter += MAX_WLQ_DIGITS; + + /* DEBUG */ + // printf ("MC: coeffs top %d bot %d \n", hmdl->mp[id].pp->wlqs_top[i], + // hmdl->mp[id].pp->wlqs_bot[i]); + + }; + + /* DEBUG */ + //intf("MC: Setting new pattern for number %d\n", id); +} +; + +void init_hmdl() +{ + int i, j, k, l, p; + + /* + * inititialize HDML structure + */ + + /* motion patterns */ + + for (i = 0; i < MAX_MPS_IN_RAM; ++i) + { + hmdl->mp[i].pp = &(hmdl->mpp_in_ram[i]); + hmdl->mp[i].pp->ID_prop = 8888 + i; + + for (j = 0; j < (MAX_COEFFS - 1) / 2; ++j) + { + hmdl->mp[i].pp->wlqs_top[j] = 0; + hmdl->mp[i].pp->wlqs_bot[j] = 1; + }; + + for (j = 0; j < MAX_SERVOS; j++) + { + for (k = 0; k < MAX_COEFFS; k++) + { + hmdl->mp[i].pp->sv[j].s_position[k].mantisse = 0; + hmdl->mp[i].pp->sv[j].s_position[k].exponent = 0; + }; + + }; + + }; + + /*for (i=MAX_MPS_IN_RAM;i<MAX_MPS;i++) // meant for motion patterns in flash + hmdl->mp[i].pp = 0x00058000 + 0x00000800*(i-MAX_MPS_IN_RAM); + + for (i=0;i<MAX_MPS;++i) + { + + hmdl->mp[i].A_old.mantisse=0; + hmdl->mp[i].A_old.exponent=0; + hmdl->mp[i].A_new.mantisse=0; + hmdl->mp[i].A_new.exponent=0; + + hmdl->mp[i].start_0 = 0; + hmdl->mp[i].start_1 = 0; + hmdl->mp[i].updated = 0; + hmdl->mp[i].active = 0; + };*/// until here + + + hmdl->time = 0; + hmdl->time_max = 0; + hmdl->time_inc = 1; + + /* positions to set */ + for (p = 0; p < MAX_SERVOS; ++p) + { + hmdl->positions_to_set[p].exponent = 0; + hmdl->positions_to_set[p].mantisse = 0; + } + +} + +void eval_get_current_sine_val(const char in[]) +{ + int patternid, freqid; + unsigned int retval; + patternid = hex2data(MAX_ID_DIGITS, in); + freqid = hex2data(MAX_ID_DIGITS, in); + + retval = sin_fixed((hmdl->time) * hmdl->mp[patternid].pp->wlqs_top[freqid] + / hmdl->mp[patternid].pp->wlqs_bot[freqid]); + retval /= 100000; + + sendMesg("current value:\r\n"); + write_int(retval); + sendMesg("\r\n"); + sendMesg("wlqs_top:\r\n"); + write_int(hmdl->mp[patternid].pp->wlqs_top[freqid]); + sendMesg("\r\n"); + +} +; + +void eval_seq(const char in[]) +{ + + switch (in[0]) + { + case 'P': + switch (in[1]) + { + case 'N': + eval_new_pattern_message(&in[2]); // PN command + break; + case 'S': + eval_set_servo_coeff_message(&in[2]); // PS command + break; + case 'I': + eval_set_servo_small_coeff_message(&in[2]); + // PS command + break; + case 'U': + eval_use_pattern_message(&in[2]); // PU command + break; + case 'P': + eval_use_short_pattern_message(&in[2]); // PU command + break; + case 'Y': + eval_use_pattern_message_with_end(&in[2]); // PY command + + break; + } + break; + case 'T': + switch (in[1]) + { + case 'S': + eval_set_time_message(&in[2]); // TS command + break; + } + + break; + case '?': + switch (in[1]) + { + case 'S': + eval_get_current_sine_val(&in[2]); + break; + + } + break; + + } +} +; + +struct c_float interpolate_rational_c_float( /*Real amplitude interpolation*/ +int size_c, struct c_float amp, int time, struct c_float coeffs[], + unsigned int frequencies_up[], + unsigned int frequencies_bottom[]) +{ + int l; + struct c_float y; + y = mult_cc(amp, coeffs[0]); + + for (l = 0; l < (size_c - 1) / 2; ++l) + { + y = c_f_add(y, mult_cc_sinus(amp, coeffs[2* l + 1], sin_fixed((time + * frequencies_up[l]) / frequencies_bottom[l]))); + + y = c_f_add(y, mult_cc_sinus(amp, coeffs[2* l + 2], cos_fixed((time + * frequencies_up[l]) / frequencies_bottom[l]))); + }; + + return y; + +} +; + +struct c_float interpolate_c_float_phase( +/*Amplitude is rotational matrix (complex) */ +int size_c, struct c_float amp[], int time, struct c_float coeffs[], + unsigned int frequencies[]) +{ + int i; + struct c_float y, sine_amp, cos_amp; + y = mult_cc(amp[0], coeffs[0]); + for (i = 0; i < size_c / 2; i++) + { + sine_amp = c_f_add(mult_cc(amp[2], coeffs[2* i + 2]), mult_cc(amp[3], + coeffs[2* i + 1])); + cos_amp = c_f_add(mult_cc(amp[0], coeffs[2* i + 2]), mult_cc(amp[1], + coeffs[2* i + 1])); + + y + = c_f_add(y, mult_c_sinus(sine_amp, sin_fixed(time + * frequencies[i]))); + y = c_f_add(y, mult_c_sinus(cos_amp, cos_fixed(time * frequencies[i]))); + }; + + return y; +} +; + Property changes on: trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/hmdp_c.c ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/hmdp_c.h =================================================================== --- trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/hmdp_c.h (rev 0) +++ trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdp_c/hmdp_c.h 2009-07-31 20:40:14 UTC (rev 82) @@ -0,0 +1,196 @@ +/*************************************************************************** + * Header for the Harmonic Motion Description Protocol (HMDP) * + * N. Michael Mayer, 2007 email: nm...@gm... * + * This part of the program is intended to be used in the micro-controller * + ***************************************************************************/ + +/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- + + this file is part of rcssserver3D + + Copyright (C) 2002,2003 Koblenz University + Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group + Copyright (C) 2008 N. Michael Mayer, email: nm...@gm... + + + 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 ___HMDP_C___ +#define ___HMDP_C___ + +struct c_float /* Float Wrapper */ +{ + int mantisse; + short exponent; +}; + +struct c_f_hex +{ + char stri[15]; +}; + +#define C_FLOAT_LENGTH (1+8+1+2) // SMMMMMMMMSEEY Sign, Exponent, Mantisse, Y=Y +#define HMDL_MESSAGE_START ""; +/*! Header for all HMDL Messages when they are sent over the serial bus */ + +#define MAX_WLQ_DIGITS 6 +/*! Number of hex digits reserved for the Frequencies = wavelengthquarters: WLQs */ + +#define MAX_TIME_DIGITS 8 + +#define MAX_COE_DIGITS 2 +/*! Hex Digits reverved for the number of coeffieicnets */ + +#define MAX_ID_DIGITS 2 +/*! Maximal Number of Digits of the ID; Since the ID can be up to 127 this + means it is 2 */ + +#define MAX_MPS 67 +#define MAX_MPS_IN_RAM 67 +/*! Maximal numbers of Motion patterns that can be present + at one time in the SH2*/ +#define MAX_SERVOS 22 +/*! Maximal number of servos */ +#define MAX_COEFFS 11 +/*!maximal number of coefficients*/ +#define MAX_ALARM_POINTS 1 +/*! maximal number of points were the status can be readout */ + +#define TM_BUFFER_SIZE 1024 +/*! Size of the List of timer tasks, see @... commands */ + +struct motion_pattern_servo +/* Structure that contains data about the motion of one servo */ +{ + struct c_float s_position[MAX_COEFFS]; + /*struct c_float s_gain [MAX_COEFFS];*/ +}; + +struct motion_pattern_props +{ + int wlqs_top[((MAX_COEFFS - 1) / 2)]; + int wlqs_bot[((MAX_COEFFS - 1) / 2)]; + struct motion_pattern_servo sv[MAX_SERVOS]; + int ID_prop; +}; + +struct motion_pattern +/* Structure that contains all data necessary for a specific motion pattern */ +{ + struct motion_pattern_props *pp; //[1]; + struct c_float A_new; + struct c_float A_old; + // struct c_float A_curr; + unsigned long start_0, start_1, end_0, end_1,// interpolate amplitude from start_0 to start_1 + offset, // used to offset the pattern when started + offsetoverflow; // used to save the offset after the time wraps around + unsigned short updated, // pattern was changed + active; // pattern is active + +}; + +struct message_alarm_clock +{ + unsigned long alarm_time; + void (*callf)(); +}; + +typedef struct +/* all data necessary for the complete harmonic motion description + language */ +{ + unsigned long time, time_max, time_inc; + struct motion_pattern mp[MAX_MPS]; /* -> sv -> s_position */ + struct message_alarm_clock alarm[MAX_ALARM_POINTS]; + struct c_float positions_to_set[MAX_SERVOS]; + struct motion_pattern_props mpp_in_ram[MAX_MPS_IN_RAM]; + +} Hmdl; + +struct c_f_hex c_float2hex(struct c_float in); +struct c_float float2cfloat(float a); +struct c_float mult_cc(struct c_float a, struct c_float b); +// multiply 2 c_floats +struct c_float mult_ccc(struct c_float a, struct c_float b, struct c_float d); +// multiply 3 c-fs +struct c_float mult_cc_sinus(struct c_float a, struct c_float b, int d); +// multiply 2 c-fs and the output of the sine_fixed routine (d parameter) +struct c_float mult_c_sinus(struct c_float a, int d); +// multiply c-f and the output of the sine_fixed routine (d parameter) + + +struct c_float c_f_sum(struct c_float a[], int size); +// sum a list of c_floats +struct c_float hex2c_float(const char in[]); +// read a cfloat from ascii with special format +int cfloat2int(struct c_float a); +// make a cloat to int (cut behind the point = floor) +/*struct c_float cfloat2int (int a);*/ +// interpolation function +/* 1. parameter size, 2. Amplitude over all, 3. time, 4. Coeffs array of c_float, + 5. frequencies (frequency * time -> parameter to sine_fixed routines*/ + +struct c_float interpolate_rational_c_float( /*Real amplitude interpolation*/ +int size_c, struct c_float amp, int time, struct c_float coeffs[], + unsigned int frequencies_up[], + unsigned int frequencies_bottom[]); + +struct c_float interpolate_c_float(int, struct c_float, int, + struct c_float coeffs[], + unsigned int frequencies[]); + +struct c_float interpolate_c_float_phase(int, struct c_float amps[], int, + struct c_float coeffs[], + unsigned int frequencies[]); + +void eval_seq(const char in[]); +/*! input interpreter of HMDP*/ + +/* Inititalize variables, start timer, etc */ +void init_hmdl(); + +/* Clean up */ +void end_hmdl(); + +/*! Handle situtations when the time needs to wrap around since time_max has + been reached. Offset values have to be saved for the motion patterns, and + the update flag needs to be set */ +void handle_overflow(void); + +void motion_machine(unsigned int time); + +/*! motion control - time management+* + + This function is triggered by an interrupt and call the motion m... [truncated message content] |
From: <he...@us...> - 2009-10-31 09:41:47
|
Revision: 97 http://simspark.svn.sourceforge.net/simspark/?rev=97&view=rev Author: hedayat Date: 2009-10-31 09:41:13 +0000 (Sat, 31 Oct 2009) Log Message: ----------- Initial draft to document changes till now Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/RELEASE Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2009-10-31 09:39:27 UTC (rev 96) +++ trunk/rcssserver3d/ChangeLog 2009-10-31 09:41:13 UTC (rev 97) @@ -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: trunk/rcssserver3d/RELEASE =================================================================== --- trunk/rcssserver3d/RELEASE 2009-10-31 09:39:27 UTC (rev 96) +++ trunk/rcssserver3d/RELEASE 2009-10-31 09:41:13 UTC (rev 97) @@ -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/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2009-12-29 19:10:52
|
Revision: 130 http://simspark.svn.sourceforge.net/simspark/?rev=130&view=rev Author: hedayat Date: 2009-12-29 19:10:45 +0000 (Tue, 29 Dec 2009) Log Message: ----------- New field dimensions Added "--server" option to rcssmonitor3d to specify the server to connect to Added AgentSyncEffector to NAO Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/data/rsg/agent/nao/nao.rsg trunk/rcssserver3d/rcssmonitor3d/main.cpp trunk/rcssserver3d/simspark/naosoccersim.rb Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2009-12-29 19:07:35 UTC (rev 129) +++ trunk/rcssserver3d/ChangeLog 2009-12-29 19:10:45 UTC (rev 130) @@ -1,3 +1,18 @@ +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: trunk/rcssserver3d/data/rsg/agent/nao/nao.rsg =================================================================== --- trunk/rcssserver3d/data/rsg/agent/nao/nao.rsg 2009-12-29 19:07:35 UTC (rev 129) +++ trunk/rcssserver3d/data/rsg/agent/nao/nao.rsg 2009-12-29 19:10:45 UTC (rev 130) @@ -85,6 +85,8 @@ ; (setStaticSenseAxis false) ; (addNoise false)) + (nd AgentSyncEffector) + );end of AgentAspect Modified: trunk/rcssserver3d/rcssmonitor3d/main.cpp =================================================================== --- trunk/rcssserver3d/rcssmonitor3d/main.cpp 2009-12-29 19:07:35 UTC (rev 129) +++ trunk/rcssserver3d/rcssmonitor3d/main.cpp 2009-12-29 19:10:45 UTC (rev 130) @@ -79,26 +79,51 @@ << "\noptions:\n" << " --help\t print this message.\n" << " --logfile\t logfilename\t plays the log file.\n" + << " --server\t server_addr\t connects to the specified server.\n" << "\n"; } bool MonitorSpark::ProcessCmdLine(int argc, char* argv[]) { - for( int i = 0; i < argc; i++) + for (int i = 0; i < argc; i++) { - if( strcmp( argv[i], "--help" ) == 0 ) + if (strcmp(argv[i], "--help") == 0) { - PrintHelp(); - return false; + PrintHelp(); + return false; } - else if( strcmp( argv[i], "--logfile" ) == 0 && (i+1 == argc) ) + else if (strcmp(argv[i], "--logfile") == 0) { - PrintHelp(); - return false; + if (i + 1 == argc) + { + PrintHelp(); + return false; + } + else + { + string fileStr = string("$logPlayerFile = \"") + argv[i + 1] + + "\""; + GetScriptServer()->Eval("$logPlayerMode = true"); + GetScriptServer()->Eval(fileStr); + } } + else if (strcmp(argv[i], "--server") == 0) + { + if (i + 1 == argc) + { + PrintHelp(); + return false; + } + else + { + string serverIPStr = string("$monitorServer = \"") + + argv[i + 1] + "\""; + GetScriptServer()->Eval(serverIPStr); + } + } } - return true; + return true; } bool MonitorSpark::InitApp(int argc, char** argv) @@ -114,20 +139,8 @@ } // run initialization scripts + GetScriptServer()->Run("rcssmonitor3d.rb"); - if(argc == 3 && strcmp( argv[1], "--logfile" ) == 0) - { - GetScriptServer()->Eval("$logPlayerMode = true"); - - char fileStr[80]; - strcpy(fileStr, "$logPlayerFile = \""); - strcat(fileStr, argv[2]); - strcat(fileStr, "\""); - GetScriptServer()->Eval(fileStr); - } - - GetScriptServer()->Run("rcssmonitor3d.rb"); - // tell the inputControl node the loaction of our camera shared_ptr<InputControl> inputCtr = GetInputControl(); if (inputCtr.get() != 0) Modified: trunk/rcssserver3d/simspark/naosoccersim.rb =================================================================== --- trunk/rcssserver3d/simspark/naosoccersim.rb 2009-12-29 19:07:35 UTC (rev 129) +++ trunk/rcssserver3d/simspark/naosoccersim.rb 2009-12-29 19:10:45 UTC (rev 130) @@ -37,14 +37,14 @@ end # the soccer field dimensions in meters -addSoccerVar('FieldLength', 12.0) -addSoccerVar('FieldWidth', 8.0) +addSoccerVar('FieldLength', 18.0) +addSoccerVar('FieldWidth', 12.0) addSoccerVar('FieldHeight', 40.0) -addSoccerVar('GoalWidth', 1.4) -addSoccerVar('GoalDepth', 0.4) +addSoccerVar('GoalWidth', 2.1) +addSoccerVar('GoalDepth', 0.6) addSoccerVar('GoalHeight', 0.8) -addSoccerVar('PenaltyLength',1.2) -addSoccerVar('PenaltyWidth',2.6) +addSoccerVar('PenaltyLength',1.8) +addSoccerVar('PenaltyWidth',3.9) addSoccerVar('FreeKickDistance', 1.3) addSoccerVar('FreeKickMoveDist', 1.5) addSoccerVar('GoalKickDist', 1.0) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2010-01-16 23:45:28
|
Revision: 144 http://simspark.svn.sourceforge.net/simspark/?rev=144&view=rev Author: hedayat Date: 2010-01-16 23:45:06 +0000 (Sat, 16 Jan 2010) Log Message: ----------- Preparing for a new release Removed installation of third party libraries under Windows (now done by simspark) Simspark -> rcssserver3d for Windows installer Modified Paths: -------------- trunk/rcssserver3d/CMakeLists.txt trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/NEWS trunk/rcssserver3d/RELEASE trunk/rcssserver3d/rcssserver3d/CMakeLists.txt trunk/rcssserver3d/windows/install_extra.nsi Modified: trunk/rcssserver3d/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/CMakeLists.txt 2010-01-14 09:15:14 UTC (rev 143) +++ trunk/rcssserver3d/CMakeLists.txt 2010-01-16 23:45:06 UTC (rev 144) @@ -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: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2010-01-14 09:15:14 UTC (rev 143) +++ trunk/rcssserver3d/ChangeLog 2010-01-16 23:45:06 UTC (rev 144) @@ -1,3 +1,21 @@ +2010-01-17 Hedayat Vatankhah <he...@gr...> + + * 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: trunk/rcssserver3d/NEWS =================================================================== --- trunk/rcssserver3d/NEWS 2010-01-14 09:15:14 UTC (rev 143) +++ trunk/rcssserver3d/NEWS 2010-01-16 23:45:06 UTC (rev 144) @@ -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: trunk/rcssserver3d/RELEASE =================================================================== --- trunk/rcssserver3d/RELEASE 2010-01-14 09:15:14 UTC (rev 143) +++ trunk/rcssserver3d/RELEASE 2010-01-16 23:45:06 UTC (rev 144) @@ -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: trunk/rcssserver3d/rcssserver3d/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/rcssserver3d/CMakeLists.txt 2010-01-14 09:15:14 UTC (rev 143) +++ trunk/rcssserver3d/rcssserver3d/CMakeLists.txt 2010-01-16 23:45:06 UTC (rev 144) @@ -32,7 +32,9 @@ internalsoccermonitor.rb internalsoccerbindings.rb DESTINATION ${DATADIR}/${CMAKE_PROJECT_NAME}) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/rcsoccersim3d +if (NOT WIN32) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/rcsoccersim3d ${CMAKE_CURRENT_BINARY_DIR}/simspark DESTINATION ${BINDIR} PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE) +endif (NOT WIN32) \ No newline at end of file Modified: trunk/rcssserver3d/windows/install_extra.nsi =================================================================== --- trunk/rcssserver3d/windows/install_extra.nsi 2010-01-14 09:15:14 UTC (rev 143) +++ trunk/rcssserver3d/windows/install_extra.nsi 2010-01-16 23:45:06 UTC (rev 144) @@ -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 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2010-01-18 18:36:44
|
Revision: 148 http://simspark.svn.sourceforge.net/simspark/?rev=148&view=rev Author: hedayat Date: 2010-01-18 18:36:24 +0000 (Mon, 18 Jan 2010) Log Message: ----------- Fix windows uninstaller to remove rcssserver3d files (rather than simspark) Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/windows/uninstall_extra.nsi Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2010-01-17 10:43:35 UTC (rev 147) +++ trunk/rcssserver3d/ChangeLog 2010-01-18 18:36:24 UTC (rev 148) @@ -1,3 +1,8 @@ +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: Modified: trunk/rcssserver3d/windows/uninstall_extra.nsi =================================================================== --- trunk/rcssserver3d/windows/uninstall_extra.nsi 2010-01-17 10:43:35 UTC (rev 147) +++ trunk/rcssserver3d/windows/uninstall_extra.nsi 2010-01-18 18:36:24 UTC (rev 148) @@ -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" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tk...@us...> - 2010-02-08 12:32:23
|
Revision: 160 http://simspark.svn.sourceforge.net/simspark/?rev=160&view=rev Author: tknrkb Date: 2010-02-08 12:30:18 +0000 (Mon, 08 Feb 2010) Log Message: ----------- Comform SDL.h to SDL/SDL.h. Modified Paths: -------------- trunk/rcssserver3d/rcssmonitor3d/main.cpp trunk/rcssserver3d/rcssserver3d/main.cpp Modified: trunk/rcssserver3d/rcssmonitor3d/main.cpp =================================================================== --- trunk/rcssserver3d/rcssmonitor3d/main.cpp 2010-02-08 12:13:31 UTC (rev 159) +++ trunk/rcssserver3d/rcssmonitor3d/main.cpp 2010-02-08 12:30:18 UTC (rev 160) @@ -31,7 +31,7 @@ #endif #if __APPLE__ -#include <SDL.h> +#include <SDL/SDL.h> #endif using namespace spark; Modified: trunk/rcssserver3d/rcssserver3d/main.cpp =================================================================== --- trunk/rcssserver3d/rcssserver3d/main.cpp 2010-02-08 12:13:31 UTC (rev 159) +++ trunk/rcssserver3d/rcssserver3d/main.cpp 2010-02-08 12:30:18 UTC (rev 160) @@ -31,7 +31,7 @@ #endif #if __APPLE__ -#include <SDL.h> +#include <SDL/SDL.h> #endif using namespace spark; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2010-02-28 10:55:53
|
Revision: 181 http://simspark.svn.sourceforge.net/simspark/?rev=181&view=rev Author: marianbuchta Date: 2010-02-28 10:55:34 +0000 (Sun, 28 Feb 2010) Log Message: ----------- - change shared_ptr -> boost::shared_ptr because of Visual Studio 2010 compatibility. Issue between boost::shared_ptr and std::tr1::shared_ptr. - added new version of FindBoost.cmake: finding boost libraries created by Visual C++ 2010 compiler. Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/cmake/FindBoost.cmake trunk/rcssserver3d/plugin/soccer/agentintegration/soccerbotbehavior.cpp trunk/rcssserver3d/plugin/soccer/agentstateperceptor/agentstateperceptor.cpp trunk/rcssserver3d/plugin/soccer/ballstateaspect/ballstateaspect.cpp trunk/rcssserver3d/plugin/soccer/beameffector/beameffector.cpp trunk/rcssserver3d/plugin/soccer/catcheffector/catcheffector.cpp trunk/rcssserver3d/plugin/soccer/createeffector/createeffector.cpp trunk/rcssserver3d/plugin/soccer/driveeffector/driveeffector.cpp trunk/rcssserver3d/plugin/soccer/gamestateaspect/gamestateaspect.cpp trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdpeffector.cpp trunk/rcssserver3d/plugin/soccer/hmdp_effector/hmdpperceptor.cpp trunk/rcssserver3d/plugin/soccer/initeffector/initeffector.cpp trunk/rcssserver3d/plugin/soccer/initeffector/singlematiniteffector.cpp trunk/rcssserver3d/plugin/soccer/initeffector/staticmeshiniteffector.cpp trunk/rcssserver3d/plugin/soccer/internalsoccermonitor/internalsoccerinput.cpp trunk/rcssserver3d/plugin/soccer/internalsoccermonitor/internalsoccerrender.cpp trunk/rcssserver3d/plugin/soccer/kickeffector/kickeffector.cpp trunk/rcssserver3d/plugin/soccer/pantilteffector/pantilteffector.cpp trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.cpp trunk/rcssserver3d/plugin/soccer/sayeffector/sayeffector.cpp trunk/rcssserver3d/plugin/soccer/sexpmonitor/sexpmonitor.cpp trunk/rcssserver3d/plugin/soccer/soccerbase/soccerbase.cpp trunk/rcssserver3d/plugin/soccer/soccercontrolaspect/soccercontrolaspect.cpp trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp trunk/rcssserver3d/plugin/soccer/trainercommandparser/trainercommandparser.cpp trunk/rcssserver3d/plugin/soccer/visionperceptor/visionperceptor.cpp trunk/rcssserver3d/plugin/soccermonitor/soccerinput.cpp trunk/rcssserver3d/rcssagent3d/hoap2behavior.cpp trunk/rcssserver3d/rcssagent3d/naobehavior.cpp trunk/rcssserver3d/rcssagent3d/soccerbehavior.cpp trunk/rcssserver3d/rcssagent3d/soccerbotbehavior.cpp trunk/rcssserver3d/rcssmonitor3d/main.cpp trunk/rcssserver3d/rcssserver3d/main.cpp Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2010-02-28 07:05:31 UTC (rev 180) +++ trunk/rcssserver3d/ChangeLog 2010-02-28 10:55:34 UTC (rev 181) @@ -1,3 +1,44 @@ +2010-02-28 Marian Buchta <mar...@gm...> + + * cmake/FindBoost.cmake: + - added new version of FindBoost.cmake: finding boost libraries created by Visual C++ 2010 compiler. + + * plugin/soccer/agentintegration/soccerbotbehavior.cpp: + * plugin/soccer/agentstateperceptor/agentstateperceptor.cpp: + * plugin/soccer/ballstateaspect/ballstateaspect.cpp: + * plugin/soccer/beameffector/beameffector.cpp: + * plugin/soccer/catcheffector/catcheffector.cpp: + * plugin/soccer/createeffector/createeffector.cpp: + * plugin/soccer/driveeffector/driveeffector.cpp: + * plugin/soccer/gamestateaspect/gamestateaspect.cpp: + * plugin/soccer/hmdp_effector/hmdpeffector.cpp: + * plugin/soccer/hmdp_effector/hmdpperceptor.cpp: + * plugin/soccer/initeffector/initeffector.cpp: + * plugin/soccer/initeffector/singlematiniteffector.cpp: + * plugin/soccer/initeffector/staticmeshiniteffector.cpp: + * plugin/soccer/internalsoccermonitor/internalsoccerinput.cpp: + * plugin/soccer/internalsoccermonitor/internalsoccerrender.cpp: + * plugin/soccer/kickeffector/kickeffector.cpp: + * plugin/soccer/pantilteffector/pantilteffector.cpp: + * plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.cpp: + * plugin/soccer/sayeffector/sayeffector.cpp: + * plugin/soccer/sexpmonitor/sexpmonitor.cpp: + * plugin/soccer/soccerbase/soccerbase.cpp: + * plugin/soccer/soccercontrolaspect/soccercontrolaspect.cpp: + * plugin/soccer/soccerruleaspect/soccerruleaspect.cpp: + * plugin/soccer/trainercommandparser/trainercommandparser.cpp: + * plugin/soccer/visionperceptor/visionperceptor.cpp: + * plugin/soccermonitor/soccerinput.cpp: + * rcssagent3d/hoap2behavior.cpp: + * rcssagent3d/naobehavior.cpp: + * rcssagent3d/soccerbehavior.cpp: + * rcssagent3d/soccerbotbehavior.cpp: + * rcssmonitor3d/main.cpp: + * rcssserver3d/main.cpp: + + - change shared_ptr -> boost::shared_ptr because of Visual Studio 2010 compatibility. Issue between boost::shared_ptr and std::tr1::shared_ptr + + 2010-01-18 Hedayat Vatankhah <he...@gr...> * windows/uninstall_extra.nsi: Modified: trunk/rcssserver3d/cmake/FindBoost.cmake =================================================================== --- trunk/rcssserver3d/cmake/FindBoost.cmake 2010-02-28 07:05:31 UTC (rev 180) +++ trunk/rcssserver3d/cmake/FindBoost.cmake 2010-02-28 10:55:34 UTC (rev 181) @@ -1,860 +1,938 @@ -# - Try to find Boost include dirs and libraries -# Usage of this module as follows: -# -# == Using Header-Only libraries from within Boost: == -# -# find_package( Boost 1.36.0 ) -# if(Boost_FOUND) -# include_directories(${Boost_INCLUDE_DIRS}) -# add_executable(foo foo.cc) -# endif() -# -# -# == Using actual libraries from within Boost: == -# -# set(Boost_USE_STATIC_LIBS ON) -# set(Boost_USE_MULTITHREADED ON) -# find_package( Boost 1.36.0 COMPONENTS date_time filesystem system ... ) -# -# if(Boost_FOUND) -# include_directories(${Boost_INCLUDE_DIRS}) -# add_executable(foo foo.cc) -# target_link_libraries(foo ${Boost_LIBRARIES}) -# endif() -# -# -# The components list needs to contain actual names of boost libraries only, -# such as "date_time" for "libboost_date_time". If you're using parts of -# Boost that contain header files only (e.g. foreach) you do not need to -# specify COMPONENTS. -# -# You should provide a minimum version number that should be used. If you provide this -# version number and specify the REQUIRED attribute, this module will fail if it -# can't find the specified or a later version. If you specify a version number this is -# automatically put into the considered list of version numbers and thus doesn't need -# to be specified in the Boost_ADDITIONAL_VERSIONS variable (see below). -# -# NOTE for Visual Studio Users: -# Automatic linking is used on MSVC & Borland compilers by default when -# #including things in Boost. It's important to note that setting -# Boost_USE_STATIC_LIBS to OFF is NOT enough to get you dynamic linking, -# should you need this feature. Automatic linking typically uses static -# libraries with a few exceptions (Boost.Python is one). -# -# Please see the section below near Boost_LIB_DIAGNOSTIC_DEFINITIONS for -# more details. Adding a TARGET_LINK_LIBRARIES() as shown in the example -# above appears to cause VS to link dynamically if Boost_USE_STATIC_LIBS -# gets set to OFF. It is suggested you avoid automatic linking since it -# will make your application less portable. -# -# =========== The mess that is Boost_ADDITIONAL_VERSIONS (sorry?) ============ -# -# OK, so the Boost_ADDITIONAL_VERSIONS variable can be used to specify a list of -# boost version numbers that should be taken into account when searching -# for Boost. Unfortunately boost puts the version number into the -# actual filename for the libraries, so this variable will certainly be needed -# in the future when new Boost versions are released. -# -# Currently this module searches for the following version numbers: -# 1.33, 1.33.0, 1.33.1, 1.34, 1.34.0, 1.34.1, 1.35, 1.35.0, 1.35.1, -# 1.36, 1.36.0, 1.36.1, 1.37, 1.37.0, 1.38, 1.38.0 -# -# NOTE: If you add a new major 1.x version in Boost_ADDITIONAL_VERSIONS you should -# add both 1.x and 1.x.0 as shown above. Official Boost include directories -# omit the 3rd version number from include paths if it is 0 although not all -# binary Boost releases do so. -# -# SET(Boost_ADDITIONAL_VERSIONS "0.99" "0.99.0" "1.78" "1.78.0") -# -# ============================================================================ -# -# Variables used by this module, they can change the default behaviour and need to be set -# before calling find_package: -# -# Boost_USE_MULTITHREADED Can be set to OFF to use the non-multithreaded -# boost libraries. If not specified, defaults -# to ON. -# -# Boost_USE_STATIC_LIBS Can be set to ON to force the use of the static -# boost libraries. Defaults to OFF. -# -# Other Variables used by this module which you may want to set. -# -# Boost_ADDITIONAL_VERSIONS A list of version numbers to use for searching -# the boost include directory. Please see -# the documentation above regarding this -# annoying, but necessary variable :( -# -# Boost_DEBUG Set this to TRUE to enable debugging output -# of FindBoost.cmake if you are having problems. -# Please enable this before filing any bug -# reports. -# -# Boost_COMPILER Set this to the compiler suffix used by Boost -# (e.g. "-gcc43") if FindBoods has problems finding -# the proper Boost installation -# -# These last three variables are available also as environment variables: -# -# BOOST_ROOT or BOOSTROOT The preferred installation prefix for searching for -# Boost. Set this if the module has problems finding -# the proper Boost installation. -# -# BOOST_INCLUDEDIR Set this to the include directory of Boost, if the -# module has problems finding the proper Boost installation -# -# BOOST_LIBRARYDIR Set this to the lib directory of Boost, if the -# module has problems finding the proper Boost installation -# -# Variables defined by this module: -# -# Boost_FOUND System has Boost, this means the include dir was -# found, as well as all the libraries specified in -# the COMPONENTS list. -# -# Boost_INCLUDE_DIRS Boost include directories: not cached -# -# Boost_INCLUDE_DIR This is almost the same as above, but this one is -# cached and may be modified by advanced users -# -# Boost_LIBRARIES Link these to use the Boost libraries that you -# specified: not cached -# -# Boost_LIBRARY_DIRS The path to where the Boost library files are. -# -# Boost_VERSION The version number of the boost libraries that -# have been found, same as in version.hpp from Boost -# -# Boost_LIB_VERSION The version number in filename form as -# it's appended to the library filenames -# -# Boost_MAJOR_VERSION major version number of boost -# Boost_MINOR_VERSION minor version number of boost -# Boost_SUBMINOR_VERSION subminor version number of boost -# -# Boost_LIB_DIAGNOSTIC_DEFINITIONS [WIN32 Only] You can call -# add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINTIIONS}) -# to have diagnostic information about Boost's -# automatic linking outputted during compilation time. -# -# For each component you list the following variables are set. -# ATTENTION: The component names need to be in lower case, just as the boost -# library names however the CMake variables use upper case for the component -# part. So you'd get Boost_SERIALIZATION_FOUND for example. -# -# Boost_${COMPONENT}_FOUND True IF the Boost library "component" was found. -# Boost_${COMPONENT}_LIBRARY The absolute path of the Boost library "component". -# Boost_${COMPONENT}_LIBRARY_DEBUG The absolute path of the debug version of the -# Boost library "component". -# Boost_${COMPONENT}_LIBRARY_RELEASE The absolute path of the release version of the -# Boost library "component" -# -# Copyright (c) 2006-2008 Andreas Schneider <ma...@cy...> -# Copyright (c) 2007 Wengo -# Copyright (c) 2007 Mike Jackson -# Copyright (c) 2008 Andreas Pakulat <ap...@gm...> -# -# Redistribution AND use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - -IF(NOT DEFINED Boost_USE_MULTITHREADED) - SET(Boost_USE_MULTITHREADED TRUE) -ENDIF() - -if(Boost_FIND_VERSION_EXACT) - # The version may appear in a directory with or without the patch - # level, even when the patch level is non-zero. - set(_boost_TEST_VERSIONS - "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}.${Boost_FIND_VERSION_PATCH}" - "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}") -else(Boost_FIND_VERSION_EXACT) - # The user has not requested an exact version. Among known - # versions, find those that are acceptable to the user request. - set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS} - "1.38.0" "1.38" "1.37.0" "1.37" - "1.36.1" "1.36.0" "1.36" "1.35.1" "1.35.0" "1.35" "1.34.1" "1.34.0" - "1.34" "1.33.1" "1.33.0" "1.33") - set(_boost_TEST_VERSIONS) - if(Boost_FIND_VERSION) - set(_Boost_FIND_VERSION_SHORT "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}") - # Select acceptable versions. - foreach(version ${_Boost_KNOWN_VERSIONS}) - if(NOT "${version}" VERSION_LESS "${Boost_FIND_VERSION}") - # This version is high enough. - list(APPEND _boost_TEST_VERSIONS "${version}") - elseif("${version}.99" VERSION_EQUAL "${_Boost_FIND_VERSION_SHORT}.99") - # This version is a short-form for the requested version with - # the patch level dropped. - list(APPEND _boost_TEST_VERSIONS "${version}") - endif() - endforeach(version) - else(Boost_FIND_VERSION) - # Any version is acceptable. - set(_boost_TEST_VERSIONS "${_Boost_KNOWN_VERSIONS}") - endif(Boost_FIND_VERSION) -endif(Boost_FIND_VERSION_EXACT) - -# The reason that we failed to find Boost. This will be set to a -# user-friendly message when we fail to find some necessary piece of -# Boost. -set(Boost_ERROR_REASON) - -############################################ -# -# Check the existence of the libraries. -# -############################################ -# This macro was taken directly from the FindQt4.cmake file that is included -# with the CMake distribution. This is NOT my work. All work was done by the -# original authors of the FindQt4.cmake file. Only minor modifications were -# made to remove references to Qt and make this file more generally applicable -######################################################################### - -MACRO (_Boost_ADJUST_LIB_VARS basename) - IF (Boost_INCLUDE_DIR ) - IF (Boost_${basename}_LIBRARY_DEBUG AND Boost_${basename}_LIBRARY_RELEASE) - # if the generator supports configuration types then set - # optimized and debug libraries, or if the CMAKE_BUILD_TYPE has a value - IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) - SET(Boost_${basename}_LIBRARY optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG}) - ELSE(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) - # if there are no configuration types and CMAKE_BUILD_TYPE has no value - # then just use the release libraries - SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE} ) - ENDIF(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) - SET(Boost_${basename}_LIBRARIES optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG}) - ENDIF (Boost_${basename}_LIBRARY_DEBUG AND Boost_${basename}_LIBRARY_RELEASE) - - # if only the release version was found, set the debug variable also to the release version - IF (Boost_${basename}_LIBRARY_RELEASE AND NOT Boost_${basename}_LIBRARY_DEBUG) - SET(Boost_${basename}_LIBRARY_DEBUG ${Boost_${basename}_LIBRARY_RELEASE}) - SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE}) - SET(Boost_${basename}_LIBRARIES ${Boost_${basename}_LIBRARY_RELEASE}) - ENDIF (Boost_${basename}_LIBRARY_RELEASE AND NOT Boost_${basename}_LIBRARY_DEBUG) - - # if only the debug version was found, set the release variable also to the debug version - IF (Boost_${basename}_LIBRARY_DEBUG AND NOT Boost_${basename}_LIBRARY_RELEASE) - SET(Boost_${basename}_LIBRARY_RELEASE ${Boost_${basename}_LIBRARY_DEBUG}) - SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_DEBUG}) - SET(Boost_${basename}_LIBRARIES ${Boost_${basename}_LIBRARY_DEBUG}) - ENDIF (Boost_${basename}_LIBRARY_DEBUG AND NOT Boost_${basename}_LIBRARY_RELEASE) - - IF (Boost_${basename}_LIBRARY) - set(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY} CACHE FILEPATH "The Boost ${basename} library") - - # Remove superfluous "debug" / "optimized" keywords from - # Boost_LIBRARY_DIRS - FOREACH(_boost_my_lib ${Boost_${basename}_LIBRARY}) - GET_FILENAME_COMPONENT(_boost_my_lib_path "${_boost_my_lib}" PATH) - LIST(APPEND Boost_LIBRARY_DIRS ${_boost_my_lib_path}) - ENDFOREACH() - LIST(REMOVE_DUPLICATES Boost_LIBRARY_DIRS) - - set(Boost_LIBRARY_DIRS ${Boost_LIBRARY_DIRS} CACHE FILEPATH "Boost library directory") - SET(Boost_${basename}_FOUND ON CACHE INTERNAL "Whether the Boost ${basename} library found") - ENDIF (Boost_${basename}_LIBRARY) - - ENDIF (Boost_INCLUDE_DIR ) - # Make variables changeble to the advanced user - MARK_AS_ADVANCED( - Boost_${basename}_LIBRARY - Boost_${basename}_LIBRARY_RELEASE - Boost_${basename}_LIBRARY_DEBUG - ) -ENDMACRO (_Boost_ADJUST_LIB_VARS) - -# -# Runs compiler with "-dumpversion" and parses major/minor -# version with a regex. -# -FUNCTION(_Boost_COMPILER_DUMPVERSION _OUTPUT_VERSION) - - EXEC_PROGRAM(${CMAKE_CXX_COMPILER} - ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion - OUTPUT_VARIABLE _boost_COMPILER_VERSION - ) - STRING(REGEX REPLACE "([0-9])\\.([0-9])(\\.[0-9])?" "\\1\\2" - _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION}) - - SET(${_OUTPUT_VERSION} ${_boost_COMPILER_VERSION} PARENT_SCOPE) -ENDFUNCTION() - - -#------------------------------------------------------------------------------- - - -SET( _boost_IN_CACHE TRUE) -IF(Boost_INCLUDE_DIR) - FOREACH(COMPONENT ${Boost_FIND_COMPONENTS}) - STRING(TOUPPER ${COMPONENT} COMPONENT) - IF(NOT Boost_${COMPONENT}_FOUND) - SET( _boost_IN_CACHE FALSE) - ENDIF(NOT Boost_${COMPONENT}_FOUND) - ENDFOREACH(COMPONENT) -ELSE(Boost_INCLUDE_DIR) - SET( _boost_IN_CACHE FALSE) -ENDIF(Boost_INCLUDE_DIR) - -IF (_boost_IN_CACHE) - # in cache already - SET(Boost_FOUND TRUE) - FOREACH(COMPONENT ${Boost_FIND_COMPONENTS}) - STRING(TOUPPER ${COMPONENT} COMPONENT) - _Boost_ADJUST_LIB_VARS( ${COMPONENT} ) - SET(Boost_LIBRARIES ${Boost_LIBRARIES} ${Boost_${COMPONENT}_LIBRARY}) - ENDFOREACH(COMPONENT) - SET(Boost_INCLUDE_DIRS ${Boost_INCLUDE_DIR}) - IF(Boost_VERSION AND NOT "${Boost_VERSION}" STREQUAL "0") - MATH(EXPR Boost_MAJOR_VERSION "${Boost_VERSION} / 100000") - MATH(EXPR Boost_MINOR_VERSION "${Boost_VERSION} / 100 % 1000") - MATH(EXPR Boost_SUBMINOR_VERSION "${Boost_VERSION} % 100") - ENDIF(Boost_VERSION AND NOT "${Boost_VERSION}" STREQUAL "0") - if(Boost_DEBUG) - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "boost ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION} " - "is already in the cache. For debugging messages, please clear the cache.") - endif() -ELSE (_boost_IN_CACHE) - # Need to search for boost - if(Boost_DEBUG) - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "Boost not in cache") - # Output some of their choices - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "_boost_TEST_VERSIONS = ${_boost_TEST_VERSIONS}") - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "Boost_USE_MULTITHREADED = ${Boost_USE_MULTITHREADED}") - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "Boost_USE_STATIC_LIBS = ${Boost_USE_STATIC_LIBS}") - endif() - - IF(WIN32) - # In windows, automatic linking is performed, so you do not have - # to specify the libraries. If you are linking to a dynamic - # runtime, then you can choose to link to either a static or a - # dynamic Boost library, the default is to do a static link. You - # can alter this for a specific library "whatever" by defining - # BOOST_WHATEVER_DYN_LINK to force Boost library "whatever" to be - # linked dynamically. Alternatively you can force all Boost - # libraries to dynamic link by defining BOOST_ALL_DYN_LINK. - - # This feature can be disabled for Boost library "whatever" by - # defining BOOST_WHATEVER_NO_LIB, or for all of Boost by defining - # BOOST_ALL_NO_LIB. - - # If you want to observe which libraries are being linked against - # then defining BOOST_LIB_DIAGNOSTIC will cause the auto-linking - # code to emit a #pragma message each time a library is selected - # for linking. - SET(Boost_LIB_DIAGNOSTIC_DEFINITIONS - "-DBOOST_LIB_DIAGNOSTIC" CACHE STRING "Boost diagnostic define") - ENDIF(WIN32) - - SET(_boost_INCLUDE_SEARCH_DIRS - C:/boost/include - C:/boost - "$ENV{ProgramFiles}/boost" - C:/library/boost - "C:/Program Files/boost" - "C:/Program Files (x86)/boost" - /sw/local/include - ) - - # If BOOST_ROOT was defined in the environment, use it. - if (NOT BOOST_ROOT AND NOT $ENV{BOOST_ROOT} STREQUAL "") - set(BOOST_ROOT $ENV{BOOST_ROOT}) - endif(NOT BOOST_ROOT AND NOT $ENV{BOOST_ROOT} STREQUAL "") - - # If BOOSTROOT was defined in the environment, use it. - if (NOT BOOST_ROOT AND NOT $ENV{BOOSTROOT} STREQUAL "") - set(BOOST_ROOT $ENV{BOOSTROOT}) - endif(NOT BOOST_ROOT AND NOT $ENV{BOOSTROOT} STREQUAL "") - - # If BOOST_INCLUDEDIR was defined in the environment, use it. - IF( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" ) - set(BOOST_INCLUDEDIR $ENV{BOOST_INCLUDEDIR}) - ENDIF( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" ) - - # If BOOST_LIBRARYDIR was defined in the environment, use it. - IF( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" ) - set(BOOST_LIBRARYDIR $ENV{BOOST_LIBRARYDIR}) - ENDIF( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" ) - - IF( BOOST_ROOT ) - file(TO_CMAKE_PATH ${BOOST_ROOT} BOOST_ROOT) - ENDIF( BOOST_ROOT ) - - if(Boost_DEBUG) - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "Declared as CMake or Environmental Variables:") - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - " BOOST_ROOT = ${BOOST_ROOT}") - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - " BOOST_INCLUDEDIR = ${BOOST_INCLUDEDIR}") - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - " BOOST_LIBRARYDIR = ${BOOST_LIBRARYDIR}") - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "_boost_TEST_VERSIONS = ${_boost_TEST_VERSIONS}") - endif() - - IF( BOOST_ROOT ) - SET(_boost_INCLUDE_SEARCH_DIRS - ${BOOST_ROOT}/include - ${BOOST_ROOT} - ${_boost_INCLUDE_SEARCH_DIRS}) - ENDIF( BOOST_ROOT ) - - IF( BOOST_INCLUDEDIR ) - file(TO_CMAKE_PATH ${BOOST_INCLUDEDIR} BOOST_INCLUDEDIR) - SET(_boost_INCLUDE_SEARCH_DIRS - ${BOOST_INCLUDEDIR} ${_boost_INCLUDE_SEARCH_DIRS}) - ENDIF( BOOST_INCLUDEDIR ) - - # ------------------------------------------------------------------------ - # Search for Boost include DIR - # ------------------------------------------------------------------------ - # Try to find Boost by stepping backwards through the Boost versions - # we know about. - IF( NOT Boost_INCLUDE_DIR ) - # Build a list of path suffixes for each version. - SET(_boost_PATH_SUFFIXES) - FOREACH(_boost_VER ${_boost_TEST_VERSIONS}) - # Add in a path suffix, based on the required version, ideally - # we could read this from version.hpp, but for that to work we'd - # need to know the include dir already - set(_boost_BOOSTIFIED_VERSION) - - # Transform 1.35 => 1_35 and 1.36.0 => 1_36_0 - IF(_boost_VER MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+") - STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1_\\2_\\3" - _boost_BOOSTIFIED_VERSION ${_boost_VER}) - ELSEIF(_boost_VER MATCHES "[0-9]+\\.[0-9]+") - STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1_\\2" - _boost_BOOSTIFIED_VERSION ${_boost_VER}) - ENDIF() - - list(APPEND _boost_PATH_SUFFIXES "boost-${_boost_BOOSTIFIED_VERSION}") - if(WIN32) - # For BoostPro's underscores (and others?) - list(APPEND _boost_PATH_SUFFIXES "boost_${_boost_BOOSTIFIED_VERSION}") - endif() - - ENDFOREACH(_boost_VER) - - if(Boost_DEBUG) - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "Include debugging info:") - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - " _boost_INCLUDE_SEARCH_DIRS = ${_boost_INCLUDE_SEARCH_DIRS}") - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - " _boost_PATH_SUFFIXES = ${_boost_PATH_SUFFIXES}") - endif() - - # Look for a standard boost header file. - FIND_PATH(Boost_INCLUDE_DIR - NAMES boost/config.hpp - HINTS ${_boost_INCLUDE_SEARCH_DIRS} - PATH_SUFFIXES ${_boost_PATH_SUFFIXES} - ) - ENDIF( NOT Boost_INCLUDE_DIR ) - - # ------------------------------------------------------------------------ - # Extract version information from version.hpp - # ------------------------------------------------------------------------ - - IF(Boost_INCLUDE_DIR) - # Extract Boost_VERSION and Boost_LIB_VERSION from version.hpp - # Read the whole file: - # - SET(BOOST_VERSION 0) - SET(BOOST_LIB_VERSION "") - FILE(READ "${Boost_INCLUDE_DIR}/boost/version.hpp" _boost_VERSION_HPP_CONTENTS) - if(Boost_DEBUG) - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "location of version.hpp: ${Boost_INCLUDE_DIR}/boost/version.hpp") - endif() - - STRING(REGEX REPLACE ".*#define BOOST_VERSION ([0-9]+).*" "\\1" Boost_VERSION "${_boost_VERSION_HPP_CONTENTS}") - STRING(REGEX REPLACE ".*#define BOOST_LIB_VERSION \"([0-9_]+)\".*" "\\1" Boost_LIB_VERSION "${_boost_VERSION_HPP_CONTENTS}") - - SET(Boost_LIB_VERSION ${Boost_LIB_VERSION} CACHE INTERNAL "The library version string for boost libraries") - SET(Boost_VERSION ${Boost_VERSION} CACHE INTERNAL "The version number for boost libraries") - - IF(NOT "${Boost_VERSION}" STREQUAL "0") - MATH(EXPR Boost_MAJOR_VERSION "${Boost_VERSION} / 100000") - MATH(EXPR Boost_MINOR_VERSION "${Boost_VERSION} / 100 % 1000") - MATH(EXPR Boost_SUBMINOR_VERSION "${Boost_VERSION} % 100") - - set(Boost_ERROR_REASON - "${Boost_ERROR_REASON}Boost version: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}\nBoost include path: ${Boost_INCLUDE_DIR}") - ENDIF(NOT "${Boost_VERSION}" STREQUAL "0") - if(Boost_DEBUG) - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "version.hpp reveals boost " - "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}") - endif() - ELSE(Boost_INCLUDE_DIR) - set(Boost_ERROR_REASON - "${Boost_ERROR_REASON}Unable to find the Boost header files. Please set BOOST_ROOT to the root directory containing Boost or BOOST_INCLUDEDIR to the directory containing Boost's headers.") - ENDIF(Boost_INCLUDE_DIR) - - # ------------------------------------------------------------------------ - # Suffix initialization and compiler suffix detection. - # ------------------------------------------------------------------------ - - # Setting some more suffixes for the library - SET (Boost_LIB_PREFIX "") - if ( MSVC AND Boost_USE_STATIC_LIBS ) - SET (Boost_LIB_PREFIX "lib") - endif() - - if (Boost_COMPILER) - set(_boost_COMPILER ${Boost_COMPILER}) - if(Boost_DEBUG) - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "using user-specified Boost_COMPILER = ${_boost_COMPILER}") - endif() - else(Boost_COMPILER) - # Attempt to guess the compiler suffix - # NOTE: this is not perfect yet, if you experience any issues - # please report them and use the Boost_COMPILER variable - # to work around the problems. - if (MSVC90) - SET (_boost_COMPILER "-vc90") - elseif (MSVC80) - SET (_boost_COMPILER "-vc80") - elseif (MSVC71) - SET (_boost_COMPILER "-vc71") - elseif (MSVC70) # Good luck! - SET (_boost_COMPILER "-vc7") # yes, this is correct - elseif (MSVC60) # Good luck! - SET (_boost_COMPILER "-vc6") # yes, this is correct - elseif (BORLAND) - SET (_boost_COMPILER "-bcb") - elseif("${CMAKE_CXX_COMPILER}" MATCHES "icl" - OR "${CMAKE_CXX_COMPILER}" MATCHES "icpc") - if(WIN32) - set (_boost_COMPILER "-iw") - else() - set (_boost_COMPILER "-il") - endif() - elseif (MINGW) - if(${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION} VERSION_LESS 1.34) - SET(_boost_COMPILER "-mgw") # no GCC version encoding prior to 1.34 - else() - _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION) - SET (_boost_COMPILER "-mgw${_boost_COMPILER_VERSION}") - endif() - elseif (UNIX) - if (CMAKE_COMPILER_IS_GNUCXX) - if(${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION} VERSION_LESS 1.34) - SET(_boost_COMPILER "-gcc") # no GCC version encoding prior to 1.34 - else() - _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION) - # Determine which version of GCC we have. - IF(APPLE) - IF(Boost_MINOR_VERSION) - IF(${Boost_MINOR_VERSION} GREATER 35) - # In Boost 1.36.0 and newer, the mangled compiler name used - # on Mac OS X/Darwin is "xgcc". - SET(_boost_COMPILER "-xgcc${_boost_COMPILER_VERSION}") - ELSE(${Boost_MINOR_VERSION} GREATER 35) - # In Boost <= 1.35.0, there is no mangled compiler name for - # the Mac OS X/Darwin version of GCC. - SET(_boost_COMPILER "") - ENDIF(${Boost_MINOR_VERSION} GREATER 35) - ELSE(Boost_MINOR_VERSION) - # We don't know the Boost version, so assume it's - # pre-1.36.0. - SET(_boost_COMPILER "") - ENDIF(Boost_MINOR_VERSION) - ELSE() - SET (_boost_COMPILER "-gcc${_boost_COMPILER_VERSION}") - ENDIF() - endif() - endif (CMAKE_COMPILER_IS_GNUCXX) - endif() - if(Boost_DEBUG) - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "guessed _boost_COMPILER = ${_boost_COMPILER}") - endif() - endif(Boost_COMPILER) - - SET (_boost_MULTITHREADED "-mt") - if( NOT Boost_USE_MULTITHREADED ) - set (_boost_MULTITHREADED "") - endif() - if(Boost_DEBUG) - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "_boost_MULTITHREADED = ${_boost_MULTITHREADED}") - endif() - - SET( _boost_STATIC_TAG "") - set( _boost_ABI_TAG "") - IF (WIN32) - IF(MSVC) - SET (_boost_ABI_TAG "g") - ENDIF(MSVC) - IF( Boost_USE_STATIC_LIBS ) - SET( _boost_STATIC_TAG "-s") - ENDIF( Boost_USE_STATIC_LIBS ) - ENDIF(WIN32) - SET (_boost_ABI_TAG "${_boost_ABI_TAG}d") - if(Boost_DEBUG) - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "_boost_STATIC_TAG = ${_boost_STATIC_TAG}") - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "_boost_ABI_TAG = ${_boost_ABI_TAG}") - endif() - - # ------------------------------------------------------------------------ - # Begin finding boost libraries - # ------------------------------------------------------------------------ - - SET(_boost_LIBRARIES_SEARCH_DIRS - C:/boost/lib - C:/boost - "$ENV{ProgramFiles}/boost/boost_${Boost_MAJOR_VERSION}_${Boost_MINOR_VERSION}_${Boost_SUBMINOR_VERSION}/lib" - "$ENV{ProgramFiles}/boost" - C:/library/boost/stage/lib - "C:/Program Files/boost/stage/lib" - "C:/Program Files (x86)/boost/stage/lib" - C:/boost/lib - /sw/local/lib - ) - IF( BOOST_ROOT ) - SET(_boost_LIBRARIES_SEARCH_DIRS - ${BOOST_ROOT}/lib - ${BOOST_ROOT}/stage/lib - ${_boost_LIBRARIES_SEARCH_DIRS}) - ENDIF( BOOST_ROOT ) - - IF( BOOST_LIBRARYDIR ) - file(TO_CMAKE_PATH ${BOOST_LIBRARYDIR} BOOST_LIBRARYDIR) - SET(_boost_LIBRARIES_SEARCH_DIRS - ${BOOST_LIBRARYDIR} ${_boost_LIBRARIES_SEARCH_DIRS}) - ENDIF( BOOST_LIBRARYDIR ) - - if(Boost_DEBUG) - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] " - "_boost_LIBRARIES_SEARCH_DIRS = ${_boost_LIBRARIES_SEARCH_DIRS}") - endif() - - FOREACH(COMPONENT ${Boost_FIND_COMPONENTS}) - STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT) - SET( Boost_${UPPERCOMPONENT}_LIBRARY "Boost_${UPPERCOMPONENT}_LIBRARY-NOTFOUND" ) - SET( Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE "Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE-NOTFOUND" ) - SET( Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG "Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG-NOTFOUND") - - # Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES - IF( Boost_USE_STATIC_LIBS ) - SET( _boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) - IF(WIN32) - SET(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) - ELSE(WIN32) - SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) - ENDIF(WIN32) - ENDIF( Boost_USE_STATIC_LIBS ) - - FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE - NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG} - ${Boost_LIB_PREFIX}boost_${COMPONENT} - HINTS ${_boost_LIBRARIES_SEARCH_DIRS} - ) - - FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG - NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${_boost_ABI_TAG} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG} - ${Boost_LIB_PREFIX}boost_${COMPONENT}-${_boost_ABI_TAG} - HINTS ${_boost_LIBRARIES_SEARCH_DIRS} - ) - - _Boost_ADJUST_LIB_VARS(${UPPERCOMPONENT}) - IF( Boost_USE_STATIC_LIBS ) - SET(CMAKE_FIND_LIBRARY_SUFFIXES ${_boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES}) - ENDIF( Boost_USE_STATIC_LIBS ) - ENDFOREACH(COMPONENT) - # ------------------------------------------------------------------------ - # End finding boost libraries - # ------------------------------------------------------------------------ - - SET(Boost_INCLUDE_DIRS - ${Boost_INCLUDE_DIR} - ) - - SET(Boost_FOUND FALSE) - IF(Boost_INCLUDE_DIR) - SET( Boost_FOUND TRUE ) - - # Check the version of Boost against the requested version. - if (Boost_FIND_VERSION AND NOT Boost_FIND_VERSION_MINOR) - message(SEND_ERROR "When requesting a specific version of Boost, you must provide at least the major and minor version numbers, e.g., 1.34") - endif (Boost_FIND_VERSION AND NOT Boost_FIND_VERSION_MINOR) - if(Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" ) - set( Boost_FOUND FALSE ) - set(_Boost_VERSION_AGE "old") - elseif(Boost_MAJOR_VERSION EQUAL "${Boost_FIND_VERSION_MAJOR}" ) - if(Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" ) - set( Boost_FOUND FALSE ) - set(_Boost_VERSION_AGE "old") - elseif(Boost_MINOR_VERSION EQUAL "${Boost_FIND_VERSION_MINOR}" ) - if( Boost_FIND_VERSION_PATCH AND Boost_SUBMINOR_VERSION LESS "${Boost_FIND_VERSION_PATCH}" ) - set( Boost_FOUND FALSE ) - set(_Boost_VERSION_AGE "old") - endif( Boost_FIND_VERSION_PATCH AND Boost_SUBMINOR_VERSION LESS "${Boost_FIND_VERSION_PATCH}" ) - endif( Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" ) - endif( Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" ) - - if (Boost_FOUND AND Boost_FIND_VERSION_EXACT) - # If the user requested an exact version of Boost, check - # that. We already know that the Boost version we have is >= the - # requested version. - set(_Boost_VERSION_AGE "new") - - # If the user didn't specify a patchlevel, it's 0. - if (NOT Boost_FIND_VERSION_PATCH) - set(Boost_FIND_VERSION_PATCH 0) - endif (NOT Boost_FIND_VERSION_PATCH) - - # We'll set Boost_FOUND true again if we have an exact version match. - set(Boost_FOUND FALSE) - if(Boost_MAJOR_VERSION EQUAL "${Boost_FIND_VERSION_MAJOR}" ) - if(Boost_MINOR_VERSION EQUAL "${Boost_FIND_VERSION_MINOR}" ) - if(Boost_SUBMINOR_VERSION EQUAL "${Boost_FIND_VERSION_PATCH}" ) - set( Boost_FOUND TRUE ) - endif(Boost_SUBMINOR_VERSION EQUAL "${Boost_FIND_VERSION_PATCH}" ) - endif( Boost_MINOR_VERSION EQUAL "${Boost_FIND_VERSION_MINOR}" ) - endif( Boost_MAJOR_VERSION EQUAL "${Boost_FIND_VERSION_MAJOR}" ) - endif (Boost_FOUND AND Boost_FIND_VERSION_EXACT) - - if(NOT Boost_FOUND) - # State that we found a version of Boost that is too new or too old. - set(Boost_ERROR_REASON - "${Boost_ERROR_REASON}\nDetected version of Boost is too ${_Boost_VERSION_AGE}. Requested version was ${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}") - if (Boost_FIND_VERSION_PATCH) - set(Boost_ERROR_REASON - "${Boost_ERROR_REASON}.${Boost_FIND_VERSION_PATCH}") - endif (Boost_FIND_VERSION_PATCH) - if (NOT Boost_FIND_VERSION_EXACT) - set(Boost_ERROR_REASON "${Boost_ERROR_REASON} (or newer)") - endif (NOT Boost_FIND_VERSION_EXACT) - set(Boost_ERROR_REASON "${Boost_ERROR_REASON}.") - endif (NOT Boost_FOUND) - - if (Boost_FOUND) - set(_boost_CHECKED_COMPONENT FALSE) - set(_Boost_MISSING_COMPONENTS) - foreach(COMPONENT ${Boost_FIND_COMPONENTS}) - string(TOUPPER ${COMPONENT} COMPONENT) - set(_boost_CHECKED_COMPONENT TRUE) - if(NOT Boost_${COMPONENT}_FOUND) - string(TOLOWER ${COMPONENT} COMPONENT) - list(APPEND _Boost_MISSING_COMPONENTS ${COMPONENT}) - set( Boost_FOUND FALSE) - endif(NOT Boost_${COMPONENT}_FOUND) - endforeach(COMPONENT) - endif (Boost_FOUND) - - if(Boost_DEBUG) - message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] Boost_FOUND = ${Boost_FOUND}") - endif() - - if (_Boost_MISSING_COMPONENTS) - # We were unable to find some libraries, so generate a sensible - # error message that lists the libraries we were unable to find. - set(Boost_ERROR_REASON - "${Boost_ERROR_REASON}\nThe following Boost libraries could not be found:\n") - foreach(COMPONENT ${_Boost_MISSING_COMPONENTS}) - set(Boost_ERROR_REASON - "${Boost_ERROR_REASON} boost_${COMPONENT}\n") - endforeach(COMPONENT) - - list(LENGTH Boost_FIND_COMPONENTS Boost_NUM_COMPONENTS_WANTED) - list(LENGTH _Boost_MISSING_COMPONENTS Boost_NUM_MISSING_COMPONENTS) - if (${Boost_NUM_COMPONENTS_WANTED} EQUAL ${Boost_NUM_MISSING_COMPONENTS}) - set(Boost_ERROR_REASON - "${Boost_ERROR_REASON}No Boost libraries were found. You may need to set Boost_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost.") - else (${Boost_NUM_COMPONENTS_WANTED} EQUAL ${Boost_NUM_MISSING_COMPONENTS}) - set(Boost_ERROR_REASON - "${Boost_ERROR_REASON}Some (but not all) of the required Boost libraries were found. You may need to install these additional Boost libraries. Alternatively, set Boost_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost.") - endif (${Boost_NUM_COMPONENTS_WANTED} EQUAL ${Boost_NUM_MISSING_COMPONENTS}) - endif (_Boost_MISSING_COMPONENTS) - - IF( NOT Boost_LIBRARY_DIRS AND NOT _boost_CHECKED_COMPONENT ) - # Compatibility Code for backwards compatibility with CMake - # 2.4's FindBoost module. - - # Look for the boost library path. - # Note that the user may not have installed any libraries - # so it is quite possible the Boost_LIBRARY_PATH may not exist. - SET(_boost_LIB_DIR ${Boost_INCLUDE_DIR}) - - IF("${_boost_LIB_DIR}" MATCHES "boost-[0-9]+") - GET_FILENAME_COMPONENT(_boost_LIB_DIR ${_boost_LIB_DIR} PATH) - ENDIF ("${_boost_LIB_DIR}" MATCHES "boost-[0-9]+") - - IF("${_boost_LIB_DIR}" MATCHES "/include$") - # Strip off the trailing "/include" in the path. - GET_FILENAME_COMPONENT(_boost_LIB_DIR ${_boost_LIB_DIR} PATH) - ENDIF("${_boost_LIB_DIR}" MATCHES "/include$") - - IF(EXISTS "${_boost_LIB_DIR}/lib") - SET (_boost_LIB_DIR ${_boost_LIB_DIR}/lib) - ELSE(EXISTS "${_boost_LIB_DIR}/lib") - IF(EXISTS "${_boost_LIB_DIR}/stage/lib") - SET(_boost_LIB_DIR ${_boost_LIB_DIR}/stage/lib) - ELSE(EXISTS "${_boost_LIB_DIR}/stage/lib") - SET(_boost_LIB_DIR "") - ENDIF(EXISTS "${_boost_LIB_DIR}/stage/lib") - ENDIF(EXISTS "${_boost_LIB_DIR}/lib") - - IF(_boost_LIB_DIR AND EXISTS "${_boost_LIB_DIR}") - SET(Boost_LIBRARY_DIRS ${_boost_LIB_DIR} CACHE FILEPATH "Boost library directory") - ENDIF(_boost_LIB_DIR AND EXISTS "${_boost_LIB_DIR}") - - ENDIF( NOT Boost_LIBRARY_DIRS AND NOT _boost_CHECKED_COMPONENT ) - - ELSE(Boost_INCLUDE_DIR) - SET( Boost_FOUND FALSE) - ENDIF(Boost_INCLUDE_DIR) - - IF (Boost_FOUND) - IF (NOT Boost_FIND_QUIETLY) - MESSAGE(STATUS "Boost version: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}") - ENDIF(NOT Boost_FIND_QUIETLY) - IF (NOT Boost_FIND_QUIETLY) - MESSAGE(STATUS "Found the following Boost libraries:") - ENDIF(NOT Boost_FIND_QUIETLY) - FOREACH ( COMPONENT ${Boost_FIND_COMPONENTS} ) - STRING( TOUPPER ${COMPONENT} UPPERCOMPONENT ) - IF ( Boost_${UPPERCOMPONENT}_FOUND ) - IF (NOT Boost_FIND_QUIETLY) - MESSAGE (STATUS " ${COMPONENT}") - ENDIF(NOT Boost_FIND_QUIETLY) - SET(Boost_LIBRARIES ${Boost_LIBRARIES} ${Boost_${UPPERCOMPONENT}_LIBRARY}) - ENDIF ( Boost_${UPPERCOMPONENT}_FOUND ) - ENDFOREACH(COMPONENT) - ELSE (Boost_FOUND) - IF (Boost_FIND_REQUIRED) - message(SEND_ERROR "Unable to find the requested Boost libraries.\n${Boost_ERROR_REASON}") - ENDIF(Boost_FIND_REQUIRED) - ENDIF(Boost_FOUND) - - # show the Boost_INCLUDE_DIRS AND Boost_LIBRARIES variables only in the advanced view - MARK_AS_ADVANCED(Boost_INCLUDE_DIR - Boost_INCLUDE_DIRS - Boost_LIBRARY_DIRS - ) -ENDIF(_boost_IN_CACHE) - +# - Try to find Boost include dirs and libraries +# Usage of this module as follows: +# +# NOTE: Take note of the Boost_ADDITIONAL_VERSIONS variable below. +# Due to Boost naming conventions and limitations in CMake this find +# module is NOT future safe with respect to Boost version numbers, +# and may break. +# +# == Using Header-Only libraries from within Boost: == +# +# find_package( Boost 1.36.0 ) +# if(Boost_FOUND) +# include_directories(${Boost_INCLUDE_DIRS}) +# add_executable(foo foo.cc) +# endif() +# +# +# == Using actual libraries from within Boost: == +# +# set(Boost_USE_STATIC_LIBS ON) +# set(Boost_USE_MULTITHREADED ON) +# find_package( Boost 1.36.0 COMPONENTS date_time filesystem system ... ) +# +# if(Boost_FOUND) +# include_directories(${Boost_INCLUDE_DIRS}) +# add_executable(foo foo.cc) +# target_link_libraries(foo ${Boost_LIBRARIES}) +# endif() +# +# +# The components list needs to contain actual names of boost libraries only, +# such as "date_time" for "libboost_date_time". If you're using parts of +# Boost that contain header files only (e.g. foreach) you do not need to +# specify COMPONENTS. +# +# You should provide a minimum version number that should be used. If you provide this +# version number and specify the REQUIRED attribute, this module will fail if it +# can't find the specified or a later version. If you specify a version number this is +# automatically put into the considered list of version numbers and thus doesn't need +# to be specified in the Boost_ADDITIONAL_VERSIONS variable (see below). +# +# NOTE for Visual Studio Users: +# Automatic linking is used on MSVC & Borland compilers by default when +# #including things in Boost. It's important to note that setting +# Boost_USE_STATIC_LIBS to OFF is NOT enough to get you dynamic linking, +# should you need this feature. Automatic linking typically uses static +# libraries with a few exceptions (Boost.Python is one). +# +# Please see the section below near Boost_LIB_DIAGNOSTIC_DEFINITIONS for +# more details. Adding a TARGET_LINK_LIBRARIES() as shown in the example +# above appears to cause VS to link dynamically if Boost_USE_STATIC_LIBS +# gets set to OFF. It is suggested you avoid automatic linking since it +# will make your application less portable. +# +# =========== The mess that is Boost_ADDITIONAL_VERSIONS (sorry?) ============ +# +# OK, so the Boost_ADDITIONAL_VERSIONS variable can be used to specify a list of +# boost version numbers that should be taken into account when searching +# for Boost. Unfortunately boost puts the version number into the +# actual filename for the libraries, so this variable will certainly be needed +# in the future when new Boost versions are released. +# +# Currently this module searches for the following version numbers: +# 1.33, 1.33.0, 1.33.1, 1.34, 1.34.0, 1.34.1, 1.35, 1.35.0, 1.35.1, +# 1.36, 1.36.0, 1.36.1, 1.37, 1.37.0, 1.38, 1.38.0, 1.39, 1.39.0, +# 1.40, 1.40.0, 1.41, 1.41.0 +# +# NOTE: If you add a new major 1.x version in Boost_ADDITIONAL_VERSIONS you should +# add both 1.x and 1.x.0 as shown above. Official Boost include directories +# omit the 3rd version number from include paths if it is 0 although not all +# binary Boost releases do so. +# +# SET(Boost_ADDITIONAL_VERSIONS "1.78" "1.78.0" "1.79" "1.79.0") +# +# ===================================== ============= ======================== +# +# Variables used by this module, they can change the default behaviour and +# need to be set before calling find_package: +# +# Boost_USE_MULTITHREADED Can be set to OFF to use the non-multithreaded +# boost libraries. If not specified, defaults +# to ON. +# +# Boost_USE_STATIC_LIBS Can be set to ON to force the use of the static +# boost libraries. Defaults to OFF. +# +# Other Variables used by this module which you may want to set. +# +# Boost_ADDITIONAL_VERSIONS A list of version numbers to use for searching +# the boost include directory. Please see +# the documentation above regarding this +# annoying, but necessary variable :( +# +# Boost_DEBUG Set this to TRUE to enable debugging output +# of FindBoost.cmake if you are having problems. +# Please enable this before filing any bug +# reports. +# +# Boost_DETAILED_FAILURE_MSG FindBoost doesn't output detailed information +# about why it failed or how to fix the problem +# unless this is set to TRUE or the REQUIRED +# keyword is specified in find_package(). +# [Since CMake 2.8.0] +# +# Boost_COMPILER Set this to the compiler suffix used by Boost +# (e.g. "-gcc43") if FindBoost has problems finding +# the proper Boost installation +# +# These last three variables are available also as environment variables: +# +# BOOST_ROOT or BOOSTROOT The preferred installation prefix for searching for +# Boost. Set this if the module has problems finding +# the proper Boost installation. +# +# BOOST_INCLUDEDIR Set this to the include directory of Boost, if the +# module has problems finding the proper Boost installation +# +# BOOST_LIBRARYDIR Set this to the lib directory of Boost, if the +# module has problems finding the proper Boost installation +# +# Variables defined by this module: +# +# Boost_FOUND System has Boost, this means the include dir was +# found, as well as all the libraries specified in +# the COMPONENTS list. +# +# Boost_INCLUDE_DIRS Boost include directories: not cached +# +# Boost_INCLUDE_DIR This is almost the same as above, but this one is +# cached and may be modified by advanced users +# +# Boost_LIBRARIES Link to these to use the Boost libraries that you +# specified: not cached +# +# Boost_LIBRARY_DIRS The path to where the Boost library files are. +# +# Boost_VERSION The version number of the boost libraries that +# have been found, same as in version.hpp from Boost +# +# Boost_LIB_VERSION The version number in filename form as +# it's appended to the library filenames +# +# Boost_MAJOR_VERSION major version number of boost +# Boost_MINOR_VERSION minor version number of boost +# Boost_SUBMINOR_VERSION subminor version number of boost +# +# Boost_LIB_DIAGNOSTIC_DEFINITIONS [WIN32 Only] You can call +# add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS}) +# to have diagnostic information about Boost's +# automatic linking outputted during compilation time. +# +# For each component you specify in find_package(), the following (UPPER-CASE) +# variables are set. You can use these variables if you would like to pick and +# choose components for your targets instead of just using Boost_LIBRARIES. +# +# Boost_${COMPONENT}_FOUND True IF the Boost library "component" was found. +# +# Boost_${COMPONENT}_LIBRARY Contains the libraries for the specified Boost +# "component" (includes debug and optimized keywords +# when needed). + +#============================================================================= +# Copyright 2006-2009 Kitware, Inc. +# Copyright 2006-2008 Andreas Schneider <ma...@cy...> +# Copyright 2007 Wengo +# Copyright 2007 Mike Jackson +# Copyright 2008 Andreas Pakulat <ap...@gm...> +# Copyright 2008-2009 Philip Lowman <ph...@yh...> +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distributed this file outside of CMake, substitute the full +# License text for the above reference.) + +#------------------------------------------------------------------------------- +# FindBoost functions & macros +# +############################################ +# +# Check the existence of the libraries. +# +############################################ +# This macro was taken directly from the FindQt4.cmake file that is included +# with the CMake distribution. This is NOT my work. All work was done by the +# original authors of the FindQt4.cmake file. Only minor modifications were +# made to remove references to Qt and make this file more generally applicable +# And ELSE/ENDIF pairs were removed for readability. +######################################################################### + +MACRO (_Boost_ADJUST_LIB_VARS basename) + IF (Boost_INCLUDE_DIR ) + IF (Boost_${basename}_LIBRARY_DEBUG AND Boost_${basename}_LIBRARY_RELEASE) + # if the generator supports configuration types then set + # optimized and debug libraries, or if the CMAKE_BUILD_TYPE has a value + IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) + SET(Boost_${basename}_LIBRARY optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG}) + ELSE() + # if there are no configuration types and CMAKE_BUILD_TYPE has no value + # then just use the release libraries + SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE} ) + ENDIF() + # FIXME: This probably should be set for both cases + SET(Boost_${basename}_LIBRARIES optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG}) + ENDIF() + + # if only the release version was found, set the debug variable also to the release version + IF (Boost_${basename}_LIBRARY_RELEASE AND NOT Boost_${basename}_LIBRARY_DEBUG) + SET(Boost_${basename}_LIBRARY_DEBUG ${Boost_${basename}_LIBRARY_RELEASE}) + SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE}) + SET(Boost_${basename}_LIBRARIES ${Boost_${basename}_LIBRARY_RELEASE}) + ENDIF() + + # if only the debug version was found, set the release variable also to the debug version + IF (Boost_${basename}_LIBRARY_DEBUG AND NOT Boost_${basename}_LIBRARY_RELEASE) + SET(Boost_${basename}_LIBRARY_RELEASE ${Boost_${basename}_LIBRARY_DEBUG}) + SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_DEBUG}) + SET(Boost_${basename}_LIBRARIES ${Boost_${basename}_LIBRARY_DEBUG}) + ENDIF() + + IF (Boost_${basename}_LIBRARY) + set(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY} CACHE FILEPATH "The Boost ${basename} library") + + # Remove superfluous "debug" / "optimized" keywords from + # Boost_LIBRARY_DIRS + FOREACH(_boost_my_lib ${Boost_${basename}_LIBRARY}) + GET_FILENAME_COMPONENT(_boost_my_lib_path "${_boost_my_lib}" PATH) + LIST(APPEND Boost_LIBRARY_DIRS ${_boost_my_lib_path}) + ENDFOREACH() + LIST(REMOVE_DUPLICATES Boost_LIBRARY_DIRS) + + set(Boost_LIBRARY_DIRS ${Boost_LIBRARY_DIRS} CACHE FILEPATH "Boost library directory") + SET(Boost_${basename}_FOUND ON CACHE INTERNAL "Whether the Boost ${basename} library found") + ENDIF(Boost_${basename}_LIBRARY) + + ENDIF (Boost_INCLUDE_DIR ) + # Make variables changeble to the advanced user + MARK_AS_ADVANCED( + Boost_${basename}_LIBRARY + Boost_${basename}_LIBRARY_RELEASE + Boost_${basename}_LIBRARY_DEBUG + ) +ENDMACRO (_Boost_ADJUST_LIB_VARS) + +#------------------------------------------------------------------------------- + +# +# Runs compiler with "-dumpversion" and parses major/minor +# version with a regex. +# +FUNCTION(_Boost_COMPILER_DUMPVERSION _OUTPUT_VERSION) + + EXEC_PROGRAM(${CMAKE_CXX_COMPILER} + ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion + OUTPUT_VARIABLE _boost_COMPILER_VERSION + ) + STRING(REGEX REPLACE "([0-9])\\.([0-9])(\\.[0-9])?" "\\1\\2" + _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION}) + + SET(${_OUTPUT_VERSION} ${_boost_COMPILER_VERSION} PARENT_SCOPE) +ENDFUNCTION() + +# +# A convenience function for marking desired components +# as found or not +# +function(_Boost_MARK_COMPONENTS_FOUND _yes_or_no) + foreach(COMPONENT ${Boost_FIND_COMPONENTS}) + string(TOUPPER ${COMPONENT} UPPERCOMPONENT) + set(Boost_${UPPERCOMPONENT}_FOUND ${_yes_or_no} CACHE INTERNAL "Whether the Boost ${COMPONENT} library found" FORCE) + endforeach() +endfunction() + +# +# End functions/macros +# +#------------------------------------------------------------------------------- + + + + +IF(NOT DEFINED Boost_USE_MULTITHREADED) + SET(Boost_USE_MULTITHREADED TRUE) +ENDIF() + +if(Boost_FIND_VERSION_EXACT) + # The version may appear in a directory with or without the patch + # level, even when the patch level is non-zero. + set(_boost_TEST_VERSIONS + "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}.${Boost_FIND_VERSION_PATCH}" + "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}") +else(Boost_FIND_VERSION_EXACT) + # The user has not requested an exact version. Among known + # versions, find those that are acceptable to the user request. + set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS} + "1.41.0" "1.41" "1.40.0" "1.40" "1.39.0" "1.39" "1.38.0" "1.38" "1.37.0" "1.37" + "1.36.1" "1.36.0" "1.36" "1.35.1" "1.35.0" "1.35" "1.34.1" "1.34.0" + "1.34" "1.33.1" "1.33.0" "1.33") + set(_boost_TEST_VERSIONS) + if(Boost_FIND_VERSION) + set(_Boost_FIND_VERSION_SHORT "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}") + # Select acceptable versions. + foreach(version ${_Boost_KNOWN_VERSIONS}) + if(NOT "${version}" VERSION_LESS "${Boost_FIND_VERSION}") + # This version is high enough. + list(APPEND _boost_TEST_VERSIONS "${version}") + elseif("${version}.99" VERSION_EQUAL "${_Boost_FIND_VERSION_SHORT}.99") + # This version is a short-form for the... [truncated message content] |
From: <he...@us...> - 2010-05-23 07:34:31
|
Revision: 204 http://simspark.svn.sourceforge.net/simspark/?rev=204&view=rev Author: hedayat Date: 2010-05-23 07:34:24 +0000 (Sun, 23 May 2010) Log Message: ----------- Applied the simple referee patch Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h trunk/rcssserver3d/rcssserver3d/naosoccersim.rb Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2010-05-19 17:15:37 UTC (rev 203) +++ trunk/rcssserver3d/ChangeLog 2010-05-23 07:34:24 UTC (rev 204) @@ -1,3 +1,11 @@ +2010-05-23 Hedayat Vatankhah <he...@gr...> + + * rcssserver3d/naosoccersim.rb: + * plugin/soccer/soccerruleaspect/soccerruleaspect.h: + * plugin/soccer/soccerruleaspect/soccerruleaspect.cpp: + - Added the simple referee patch from FCPortugal team (thanks to + Luis Paulo Reis) + 2010-02-28 Marian Buchta <mar...@gm...> * cmake/FindBoost.cmake: Modified: trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp 2010-05-19 17:15:37 UTC (rev 203) +++ trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp 2010-05-23 07:34:24 UTC (rev 204) @@ -53,10 +53,19 @@ mFirstCollidingAgent(true), mNotOffside(false), mLastModeWasPlayOn(false), - mUseOffside(true) + mUseOffside(true), + mDropBallTime(15), + mNotStandingMaxTime(1000), // max time player may be sitted or laying down before being repositioned + mGoalieNotStandingMaxTime(1000), // max time goalie may be sitted or laying down before being repositioned + mGroundMaxTime(1000), // max time player may be on the ground before being repositioned + mGoalieGroundMaxTime(1000), // max time goalie (pl number 1) may be on the ground before being repositioned + mMaxPlayersInsideOwnArea(1000), // maximum number of players of the defending team that may be inside own penalty area + mMinOppDistance(0), // min dist for closest Opponent to ball in order to use repositions for 2nd, 3rd player + mMin2PlDistance(0), // min dist for second closest of team before being repositioned + mMin3PlDistance(0), // min dist for third closest of team before being repositioned + mMaxFaultTime(0.0) // maximum time allowed for a player to commit a positional fault before being repositioned { mFreeKickPos = Vector3f(0.0,0.0,mBallRadius); - } SoccerRuleAspect::~SoccerRuleAspect() @@ -72,7 +81,272 @@ mBallBody->Enable(); } +/* Uses only Ball and Players positions and detects overcrowind near ball and areas and +players innappropriate behavior (laying on the ground or not walking for too much time) */ +void +SoccerRuleAspect::AutomaticSimpleReferee(TPlayMode playMode) +{ + if (playMode != PM_PlayOn) { + ResetFaultCounter(TI_LEFT); ResetFaultCounter(TI_RIGHT); //only using automatic refereing in PlayOn + } + else { + CalculateDistanceArrays(TI_LEFT); // Calculates distance arrays for left team + CalculateDistanceArrays(TI_RIGHT); // Calculates distance arrays for right team + AnalyseFaults(TI_LEFT); // Analyses simple faults for the left team + AnalyseFaults(TI_RIGHT); // Analyses simple faults for the right team + ClearPlayersAutomatic(TI_LEFT); // enforce standing and not overcrowding rules for left team + ClearPlayersAutomatic(TI_RIGHT); // enforce standing and not overcrowding rules for right team + } +} + + +void +SoccerRuleAspect::ResetFaultCounterPlayer(int unum, TTeamIndex idx) +{ + playerGround[unum][idx] = 0; + playerNotStanding[unum][idx] = 0; + playerStanding[unum][idx] = 5/0.02; // Considers player has been standing for some time in playoff + prevPlayerInsideOwnArea[unum][idx] = 0; + playerInsideOwnArea[unum][idx] = 0; + playerFaultTime[unum][idx] = 0; +} + +void +SoccerRuleAspect::ResetFaultCounter(TTeamIndex idx) +{ + for(int t=1; t<=11; t++) { + ResetFaultCounterPlayer(t,idx); + } +} + +// Process agent state: standing, sitted, laying down, ... +void +SoccerRuleAspect::processAgentState(salt::Vector3f pos, int unum, TTeamIndex idx) +{ + float groundZVal = 0.15; //bellow this player is on the ground + float middleZVal = 0.25; //abovce this player is standing (or trying...) + + //increase player not standing if it is not in upward position and inside of field + if (pos.z() < middleZVal && fabs(pos.y())< mFieldWidth/2 + 0.1) { + playerNotStanding[unum][idx]++; + playerStanding[unum][idx]=0; //player not standing + } + + //increase player near ground if it is very low and inside of field + if (pos.z() < groundZVal && fabs(pos.y())< mFieldWidth/2 + 0.1) { + playerGround[unum][idx]++; + } + + //increase player standing or at least trying... Reset ground + if (pos.z() >= middleZVal) { + playerStanding[unum][idx]++; + playerGround[unum][idx]=0; + } + + //Player standing for some cycles (0.5 seconds) reset not standing count + if (playerStanding[unum][idx] > 0.5/0.02) { + playerNotStanding[unum][idx]=0; + } + +// if (playerGround[unum][idx] > 0/0.02) +// cout << "On the Ground Unum" << unum << " Team: " << idx << " Time: " << playerGround[unum][idx] << +// " z= " << pos.z() << endl; //debug +} + +// Calculates ordering on a distance vector +void SoccerRuleAspect::SimpleOrder(float dArr[][3], int oArr[][3], TTeamIndex idx) +{ + for(int t1=1; t1<=10; t1++) + for(int t2=t1+1; t2<=11; t2++) + if (dArr[t1][idx] >= dArr[t2][idx]) oArr[t1][idx]++; else oArr[t2][idx]++; + +// DEBUG +// if (dArr[1][idx]<1000.0) { +// cout << "Team: " << idx << " --> "; +// for(int t1=1; t1<=6; t1++) +// if (dArr[t1][idx]<5.0) cout << t1 << " o:" << oArr[t1][idx] << " d: " << dArr[t1][idx] << " | "; +// cout << endl; +// } +} + +// Calculate Distance arrays and ordering to the ball and own goal +void SoccerRuleAspect::CalculateDistanceArrays(TTeamIndex idx) +{ + if (idx == TI_NONE || mBallState.get() == 0) return; + std::list<boost::shared_ptr<AgentState> > agent_states; + if (! SoccerBase::GetAgentStates(*mBallState.get(), agent_states, idx)) return; + + salt::Vector3f ballPos = mBallBody->GetPosition(); + salt::Vector3f ownGoalPos = Vector3f(-mFieldLength/2.0, 0.0, 0.0); + if (idx==TI_RIGHT) ownGoalPos = Vector3f(mFieldLength/2.0, 0.0, 0.0); //own goal position + boost::shared_ptr<oxygen::Transform> agent_aspect; + std::list<boost::shared_ptr<AgentState> >::const_iterator i; + + numPlInsideOwnArea[idx] = 0; closestPlayer[idx]=1; closestPlayerDist[idx]=1000.0; + for(int t=1; t<=11; t++) { + distArr[t][idx]=1000.0; ordArr[t][idx]=1; distGArr[t][idx]=1000.0; ordGArr[t][idx]=1; + } + + for (i = agent_states.begin(); i != agent_states.end(); ++i) { + SoccerBase::GetTransformParent(**i, agent_aspect); + Vector3f agentPos = agent_aspect->GetWorldTransform().Pos(); + int unum = (*i)->GetUniformNumber(); + distArr[unum][idx] = sqrt((agentPos.x()-ballPos.x())*(agentPos.x()-ballPos.x()) + + (agentPos.y()-ballPos.y())*(agentPos.y()-ballPos.y())); + distGArr[unum][idx] = sqrt((agentPos.x()-ownGoalPos.x())*(agentPos.x()-ownGoalPos.x()) + + (agentPos.y()-ownGoalPos.y())*(agentPos.y()-ownGoalPos.y())); + + // determine closest player + if (distArr[unum][idx] < closestPlayerDist[idx]) { + closestPlayerDist[idx] = distArr[unum][idx]; closestPlayer[idx] = unum; + } + + // save player inside area state in previous cycle + prevPlayerInsideOwnArea[unum][idx] = playerInsideOwnArea[unum][idx]; + + // determine number of players inside area and set inside area state of player + if (idx == TI_LEFT && mLeftPenaltyArea.Contains(Vector2f(agentPos.x(), agentPos.y())) || + idx == TI_RIGHT && mRightPenaltyArea.Contains(Vector2f(agentPos.x(), agentPos.y()))) { + numPlInsideOwnArea[idx]++; + playerInsideOwnArea[unum][idx] = 1; + + //goalie is not repositioned when inside own area... + if (unum == 1) { + distGArr[unum][idx] = 0.0; + } + } + else playerInsideOwnArea[unum][idx] = 0; + + // Process agent state: standing, sitted, laying down, ... + processAgentState(agentPos, unum, idx); + } + + // compute rank of distance to ball + SimpleOrder(distArr, ordArr, idx); + // compute rank of distance to own goal + SimpleOrder(distGArr, ordGArr, idx); +} + +// Analyse Faults and Creates Fault Time Array +void SoccerRuleAspect::AnalyseFaults(TTeamIndex idx) +{ + TTeamIndex idx2; if (idx == TI_LEFT) idx2 = TI_RIGHT; else idx2 = TI_LEFT; //Other team + for(int unum=1; unum<=11; unum++) { + + //I am the third closest player but i am too near the ball (and not the goalie) + if ( unum!=1 && closestPlayerDist[idx2] < mMinOppDistance && + (distArr[unum][idx] <= mMin3PlDistance+0.01 && ordArr[unum][idx] == 3)) + { + playerFaultTime[unum][idx]++; //increase player fault time + //cout << "Min3Dist " << mMin3PlDistance << " activated - player " << unum << " to be repositioned \n"; + } + else + //I am the second closest player but i am too near the ball (and not the goalie) + if( unum!=1 && closestPlayerDist[idx2] < mMinOppDistance && + distArr[unum][idx] <= mMin2PlDistance+0.01 && ordArr[unum][idx] == 2 ) + { + playerFaultTime[unum][idx]++; //increase player fault time + //cout << "Min2Dist " << mMin2PlDistance << " activated - player " << unum << " to be repositioned \n"; + } + else + // too many players inside my own penalty area and Im am the last one to enter or + // the last one to enter was the goalie and I am the one further away from own goal + if( (numPlInsideOwnArea[idx] > mMaxPlayersInsideOwnArea && unum !=1 && playerInsideOwnArea[unum][idx] == 1 && + (prevPlayerInsideOwnArea[unum][idx] == 0 || + prevPlayerInsideOwnArea[1][idx] == 0 && + playerInsideOwnArea[1][idx] == 1 && + mMaxPlayersInsideOwnArea + 1 == ordGArr[unum][idx]))) + { + playerFaultTime[unum][idx]++; //increase player fault time + //cout << "MaxPlInPenalty " << mMaxPlayersInsideOwnArea << " activated - player " + // << unum << " to be repositioned " << " ord " << ordGArr[unum][idx] << "\n"; + } + else + //I am a field player and on the ground for too much time + if ( unum!=1 && playerGround[unum][idx] > mGroundMaxTime/0.02 ) + { + playerFaultTime[unum][idx]++; //increase player fault time + //cout << "GroundMaxTime " << mGroundMaxTime << " activated - player " + // << unum << " to be repositioned " << "\n"; + } + else + // I am a field player and I am not standing for too much time + if( unum!=1 && playerNotStanding[unum][idx] > mNotStandingMaxTime/0.02 ) + { + playerFaultTime[unum][idx]++; //increase player fault time + //cout << "StandMaxTime " << mNotStandingMaxTime << " activated - player " + // << unum << " to be repositioned " << "\n"; + } + + else + //I am the goalie and I am on the ground for too much time + if ( unum==1 && + playerGround[unum][idx] > mGoalieGroundMaxTime/0.02 ) + { + playerFaultTime[unum][idx]++; //increase player fault time + //cout << "GoalieGroundMaxTime " << mGoalieGroundMaxTime << " activated - player " + // << unum << " to be repositioned " << "\n"; + } + else + //I am the goalie and I and not standing for too much time + if ( unum == 1 && playerNotStanding[unum][idx] > mGoalieNotStandingMaxTime/0.02) + { + playerFaultTime[unum][idx]++; //increase player fault time + //cout << "GoalieStandMaxTime " << mGoalieNotStandingMaxTime << " activated - player " + // << unum << " to be repositioned " << "\n"; + } + else { + playerFaultTime[unum][idx]=0; //reset player fault time + } + + } +} + + +salt::Vector3f SoccerRuleAspect::RepositionOutsidePos(salt::Vector3f posIni, int unum, TTeamIndex idx) +{ + salt::Vector3f pos; + float fac=1.0; + if (unum > 6) unum = 7 -unum; //because of teams that use numbers 7-11 + if (posIni.y()<1.5) fac = 1.0; else fac = -1.0; //for visualization purposes + if (idx==TI_LEFT) pos = Vector3f(-(7-unum)*0.6, 6.5*fac, 1.0); + else pos = Vector3f((7-unum)*0.6, 6.5*fac, 1.0); + //cout << "*********Player Repos Num: " << unum << " Team: " << idx << " Pos: " << pos << endl; + return pos; +} + + +// Clear Players that are violating the rules void +SoccerRuleAspect::ClearPlayersAutomatic(TTeamIndex idx) +{ + if (idx == TI_NONE || mBallState.get() == 0) return; + + std::list<boost::shared_ptr<AgentState> > agent_states; + if (! SoccerBase::GetAgentStates(*mBallState.get(), agent_states, idx)) return; + + salt::Vector3f ballPos = mBallBody->GetPosition(); + + boost::shared_ptr<oxygen::Transform> agent_aspect; + std::list<boost::shared_ptr<AgentState> >::const_iterator i; + + for (i = agent_states.begin(); i != agent_states.end(); ++i) { + SoccerBase::GetTransformParent(**i, agent_aspect); + Vector3f agentPos = agent_aspect->GetWorldTransform().Pos(); + int unum = (*i)->GetUniformNumber(); + if (playerFaultTime[unum][idx] > mMaxFaultTime/0.02) { + // I am not a very good soccer player... I am violating the rules... + salt::Vector3f new_pos = RepositionOutsidePos(ballPos, unum, idx); + //Calculate my Reposition pos outside of the field + SoccerBase::MoveAgent(agent_aspect, new_pos); + //Oh my God!! I am flying!! I am going outside of the field + ResetFaultCounterPlayer(unum, idx); + //cout << "*********Player Repos Num: " << unum << " Team: " << team << " Pos: " << new_pos << endl; + } + } +} + +void SoccerRuleAspect::ClearPlayers(const salt::Vector3f& pos, float radius, float min_dist, TTeamIndex idx) { @@ -855,6 +1129,9 @@ << playMode << "\n"; break; } + + // Simple Referee + AutomaticSimpleReferee(playMode); } void @@ -912,7 +1189,20 @@ float penaltyLength, penaltyWidth; SoccerBase::GetSoccerVar(*this,"PenaltyLength",penaltyLength); SoccerBase::GetSoccerVar(*this,"PenaltyWidth",penaltyWidth); + + // auto ref parameters + SoccerBase::GetSoccerVar(*this,"NotStandingMaxTime",mNotStandingMaxTime); + SoccerBase::GetSoccerVar(*this,"GoalieNotStandingMaxTime",mGoalieNotStandingMaxTime); + SoccerBase::GetSoccerVar(*this,"GroundMaxTime",mGroundMaxTime); + SoccerBase::GetSoccerVar(*this,"GoalieGroundMaxTime",mGoalieGroundMaxTime); + SoccerBase::GetSoccerVar(*this,"MaxPlayersInsideOwnArea",mMaxPlayersInsideOwnArea); + SoccerBase::GetSoccerVar(*this,"MinOppDistance",mMinOppDistance); + SoccerBase::GetSoccerVar(*this,"Min2PlDistance",mMin2PlDistance); + SoccerBase::GetSoccerVar(*this,"Min3PlDistance",mMin3PlDistance); + //SoccerBase::GetSoccerVar(*this,"MaxFaultTime",mMaxFaultTime); + + // cout << "MaxInside " << mMaxPlayersInsideOwnArea << endl << endl; // set up bounding boxes for halfs and goal areas // the right and the left half are intentionally oversized towards the sides and Modified: trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h =================================================================== --- trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h 2010-05-19 17:15:37 UTC (rev 203) +++ trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h 2010-05-23 07:34:24 UTC (rev 204) @@ -64,7 +64,49 @@ \param pos position where the ball should be dropped- */ void DropBall(salt::Vector3f pos); + + /** Calculates the out of the field reposition pos for a given agent with unum and team idx + Agents are repositioned outside of the field near the mid field line on the opposite yy side + regarding the ball position + */ + salt::Vector3f RepositionOutsidePos(salt::Vector3f initPos, int unum, TTeamIndex idx); + + /** Calculates the inside field reposition pos for a given agent with unum and team idx + Agents are repositioned at distance from the ball, that is, at: plpos + (plpos-ballpos).normalize()*dist + */ + //salt::Vector3f RepositionInsidePos(salt::Vector3f initPos, int unum, TTeamIndex idx, float distance); + /** New rules for repositioning players that commit faults + */ + void ClearPlayersAutomatic(TTeamIndex idx); + + /** Calculates distance arrays needed for repositioning players + */ + void CalculateDistanceArrays(TTeamIndex idx); + + /** Calculates ordering on a distance vector */ + void SimpleOrder(float dArr[][3], int oArr[][3], TTeamIndex idx); + + /** Agent state concerining standing, laying down on the ground are processed + */ + void processAgentState(salt::Vector3f pos, int unum, TTeamIndex idx); + + /** Reset the fault time counter for all players and also other counters + */ + void ResetFaultCounter(TTeamIndex idx); + + /** Reset the fault time counter for a given player + */ + void ResetFaultCounterPlayer(int unum, TTeamIndex idx); + + /**Analyse Faults from players and increase fault counter of offending players + */ + void AnalyseFaults(TTeamIndex idx); + + /** Automatic Referee that clears players that violate the rules + */ + void AutomaticSimpleReferee(TPlayMode playMode); + /** broadcast a said message to all players \param message said message- \param pos positon of the player- @@ -95,6 +137,7 @@ * @return the length and width */ salt::Vector2f GetFieldSize() const; + protected: /** rereads the current soccer script values */ @@ -203,21 +246,15 @@ /** the radius of the Ball */ float mBallRadius; - /** the length of the pause after a goal */ float mGoalPauseTime; - /** the length of the pause after the ball left the field */ float mKickInPauseTime; - /** the length of one game half */ float mHalfTime; - /** the time we wait before dropping the ball in play modes where only - one team can touch the ball - */ + one team can touch the ball */ float mDropBallTime; - /** the point above the ground, where the ball left the field */ salt::Vector3f mLastValidBallPos; /** the field length (in meters) */ @@ -241,6 +278,43 @@ float mWaitBeforeKickOff; /** flag if we want to play only one half of the match */ bool mSingleHalfTime; + + //FCP 2010 - New Parameters (added by FCPortugal for Singapure 2010) + /** max time player may be sitted or laying down before being repositioned */ + int mNotStandingMaxTime; + /** max time player may be on the ground before being repositioned */ + int mGroundMaxTime; + /** max time goalie may be sitted or laying down before being repositioned */ + int mGoalieNotStandingMaxTime; + /** max time goalie (player number 1) may be on the ground before being repositioned */ + int mGoalieGroundMaxTime; + /** min dist for second closest of team before being repositioned */ + float mMin2PlDistance; + /** min dist for third closest of team before being repositioned */ + float mMin3PlDistance; + /** min dist for closest Opponent to ball in order to use repositions for the second and third player*/ + float mMinOppDistance; + /** maximum number of players of the defending team that may be inside own penalty area */ + int mMaxPlayersInsideOwnArea; + /** maximum time allowed for a player to commit a positional fault before being repositioned */ + int mMaxFaultTime; + /* Useful arrays for dealing with agent state an faults */ + salt::Vector3f playerPos[12][3]; //Players Positions - not used + int playerGround[12][3]; //Time Players are on the ground + int playerNotStanding[12][3]; //Time Players are not standing (head up for more than 0.5s) + int playerInsideOwnArea[12][3]; //Player is inside own area + int prevPlayerInsideOwnArea[12][3]; //Player was inside own area last cycle + int playerStanding[12][3]; //Time Players are standing + float distArr[12][3]; //Distance array to ball (left/right team) + int ordArr[12][3]; //Distance order of players (left/right team) + float distGArr[12][3]; //Distance array to own goal (left/right team) + int ordGArr[12][3]; //Distance order of players to own goal (left/right team) + int playerFaultTime[12][3]; //Time player is commiting a positional fault + int numPlInsideOwnArea[3]; //Number of players inside own area + int closestPlayer[3]; //Closest Player from each team + float closestPlayerDist[3]; //Closest Player distance to ball from each team + /* FCP 2010 - New Parameters */ + // areas where opponents are not allowed in certain play modes /** bounding box for the right half of the field */ salt::AABB2 mRightHalf; Modified: trunk/rcssserver3d/rcssserver3d/naosoccersim.rb =================================================================== --- trunk/rcssserver3d/rcssserver3d/naosoccersim.rb 2010-05-19 17:15:37 UTC (rev 203) +++ trunk/rcssserver3d/rcssserver3d/naosoccersim.rb 2010-05-23 07:34:24 UTC (rev 204) @@ -62,10 +62,30 @@ addSoccerVar('RuleGoalPauseTime',3.0) addSoccerVar('RuleKickInPauseTime',1.0) addSoccerVar('RuleHalfTime',5.0 * 60) -addSoccerVar('RuleDropBallTime',30) +addSoccerVar('RuleDropBallTime',15) addSoccerVar('SingleHalfTime', false) addSoccerVar('UseOffside',false) +# auto ref parameters FCP 2010 +addSoccerVar('NotStandingMaxTime',30) +addSoccerVar('GoalieNotStandingMaxTime',60) +addSoccerVar('GroundMaxTime',15) +addSoccerVar('GoalieGroundMaxTime', 30) +addSoccerVar('MaxPlayersInsideOwnArea',3) +addSoccerVar('MinOppDistance',0.8) +addSoccerVar('Min2PlDistance',0.4) +addSoccerVar('Min3PlDistance',1.0) + +# auto ref parameters for testing (not for use in competition...) +#addSoccerVar('NotStandingMaxTime',10) +#addSoccerVar('GoalieNotStandingMaxTime',30) +#addSoccerVar('GroundMaxTime', 5) +#addSoccerVar('GoalieGroundMaxTime', 5) +#addSoccerVar('MaxPlayersInsideOwnArea',2) +#addSoccerVar('MinOppDistance',1.0) +#addSoccerVar('Min2PlDistance',0.6) +#addSoccerVar('Min3PlDistance',1.5) + # recorders addSoccerVar('BallRecorder',"Ball/geometry/recorder") addSoccerVar('LeftGoalRecorder',"leftgoal/GoalBox/BoxCollider/recorder") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2010-06-06 22:39:35
|
Revision: 211 http://simspark.svn.sourceforge.net/simspark/?rev=211&view=rev Author: hedayat Date: 2010-06-06 22:39:29 +0000 (Sun, 06 Jun 2010) Log Message: ----------- Code style cleanup Some more release notes Add NEWS section for the new release Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/NEWS trunk/rcssserver3d/RELEASE trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.cpp trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.h trunk/rcssserver3d/rcssserver3d/rcsoccersim3d.in Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2010-06-06 08:55:20 UTC (rev 210) +++ trunk/rcssserver3d/ChangeLog 2010-06-06 22:39:29 UTC (rev 211) @@ -1,3 +1,22 @@ +2010-06-07 Hedayat Vatankhah <he...@gr...> + + * NEWS: + - prepared for 0.6.4 release + + * RELEASE: + - add some documentation about new monitor controls + + * plugin/soccer/gamestateaspect/gamestateitem.cpp: + - send game state with initial predicates, so that the logger will not + miss them in the next cycle + + * rcssserver3d/rcsoccersim3d.in: + - removed some extra lines checking for rcssagent3d + + * plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.cpp: + * plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.h: + - make the first letter of CheckVisuable() capital + 2010-06-05 Hedayat Vatankhah <he...@gr...> * RELEASE: Modified: trunk/rcssserver3d/NEWS =================================================================== --- trunk/rcssserver3d/NEWS 2010-06-06 08:55:20 UTC (rev 210) +++ trunk/rcssserver3d/NEWS 2010-06-06 22:39:29 UTC (rev 211) @@ -1,3 +1,26 @@ +[0.6.4] +This release is supposed to be the final version of rcssserver3d for +RoboCup 2010 in Singapore. The release includes a referee patch contributed +by FCPortugal team which enforces some rules to avoid crowding of many players +in a small area and to penalize ill-behaved players. Additionally, this +release comes with some more facilities for a human referee to control the game +and individual players in the field. + +* New keys in rcssmonitor3d: +- n: Cycle through agents. A red marker disc shows which agent is currently + selected +- e: Clear selection +- lctrl+s: Go into specific-agent-selection-mode. A specific agent can now be + selected by pressing l or r and then a number. So the sequence 'lctrl+s, l, 4' + selects the agent with uniform number 4 of the left team +- m: Move selected agent FreeKickDist meters back +- x: Kill selected agent + +* Other changes: +- Improved referee to enforce more fair games +- Visual Studio 2010 compilation fixes +- Agents can sense field lines if enabled (currently disabled) + [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 Modified: trunk/rcssserver3d/RELEASE =================================================================== --- trunk/rcssserver3d/RELEASE 2010-06-06 08:55:20 UTC (rev 210) +++ trunk/rcssserver3d/RELEASE 2010-06-06 22:39:29 UTC (rev 211) @@ -7,10 +7,20 @@ release comes with some more facilities for a human referee to control the game and individual players in the field. -* Summary: +* New keys in rcssmonitor3d: +- n: Cycle through agents. A red marker disc shows which agent is currently + selected +- e: Clear selection +- lctrl+s: Go into specific-agent-selection-mode. A specific agent can now be + selected by pressing l or r and then a number. So the sequence 'lctrl+s, l, 4' + selects the agent with uniform number 4 of the left team +- m: Move selected agent FreeKickDist meters back +- x: Kill selected agent + +* Other changes: - Improved referee to enforce more fair games -- Improved monitor which provides more power to the human referee - Visual Studio 2010 compilation fixes +- Agents can sense field lines if enabled (currently disabled) You can get the package on the Simspark page on SourceForge at http://sourceforge.net/projects/simspark/ Modified: trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.cpp 2010-06-06 08:55:20 UTC (rev 210) +++ trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.cpp 2010-06-06 22:39:29 UTC (rev 211) @@ -634,7 +634,7 @@ mSenseMyPos = sense; } -bool RestrictedVisionPerceptor::checkVisuable(RestrictedVisionPerceptor::ObjectData& od) const +bool RestrictedVisionPerceptor::CheckVisuable(RestrictedVisionPerceptor::ObjectData& od) const { // theta is the angle in horizontal plane, with fwAngle as 0 degree od.mTheta = gNormalizeDeg(gRadToDeg(gNormalizeRad( @@ -694,8 +694,8 @@ { LineData& ld = (*i); - bool seeBeginPoint = checkVisuable(ld.mBeginPoint); - bool seeEndPoint = checkVisuable(ld.mEndPoint); + bool seeBeginPoint = CheckVisuable(ld.mBeginPoint); + bool seeEndPoint = CheckVisuable(ld.mEndPoint); if (!(seeBeginPoint && seeEndPoint)) { @@ -747,11 +747,11 @@ if ( inum == 2 ) { ld.mBeginPoint.mRelPos = X[0]; - checkVisuable(ld.mBeginPoint); + CheckVisuable(ld.mBeginPoint); seeBeginPoint = true; ld.mEndPoint.mRelPos = X[1]; - checkVisuable(ld.mEndPoint); + CheckVisuable(ld.mEndPoint); seeEndPoint = true; } else if ( inum == 1 ) @@ -759,13 +759,13 @@ if ( !seeBeginPoint ) { ld.mBeginPoint.mRelPos = X[0]; - checkVisuable(ld.mBeginPoint); + CheckVisuable(ld.mBeginPoint); seeBeginPoint = true; } else { ld.mEndPoint.mRelPos = X[0]; - checkVisuable(ld.mEndPoint); + CheckVisuable(ld.mEndPoint); seeEndPoint = true; } } Modified: trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.h =================================================================== --- trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.h 2010-06-06 08:55:20 UTC (rev 210) +++ trunk/rcssserver3d/plugin/soccer/restrictedvisionperceptor/restrictedvisionperceptor.h 2010-06-06 22:39:29 UTC (rev 211) @@ -180,7 +180,7 @@ void SetupLines(TLineList& visibleLines); - bool checkVisuable(ObjectData& od) const; + bool CheckVisuable(ObjectData& od) const; /** Checks if the given object is occluded, seen from from my_pos */ bool CheckOcclusion(const salt::Vector3f& my_pos, const ObjectData& od) const; Modified: trunk/rcssserver3d/rcssserver3d/rcsoccersim3d.in =================================================================== --- trunk/rcssserver3d/rcssserver3d/rcsoccersim3d.in 2010-06-06 08:55:20 UTC (rev 210) +++ trunk/rcssserver3d/rcssserver3d/rcsoccersim3d.in 2010-06-06 22:39:29 UTC (rev 211) @@ -31,13 +31,6 @@ exit 1 fi -AGT="$bindir/rcssagent3d" -if [ ! -f $AGT ]; then - echo "Error: $AGT does not exist!" - echo "" - exit 1 -fi - #-------------------------------------------------- # set handler # This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2010-06-07 20:40:04
|
Revision: 214 http://simspark.svn.sourceforge.net/simspark/?rev=214&view=rev Author: hedayat Date: 2010-06-07 20:39:58 +0000 (Mon, 07 Jun 2010) Log Message: ----------- Create relative symlink for simspark to (hopefully) avoid installation errors. Fixed the executable name in linux .desktop file Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/linux/rcssserver3d.desktop trunk/rcssserver3d/rcssserver3d/CMakeLists.txt Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2010-06-07 13:13:28 UTC (rev 213) +++ trunk/rcssserver3d/ChangeLog 2010-06-07 20:39:58 UTC (rev 214) @@ -1,3 +1,12 @@ +2010-06-08 Hedayat Vatankhah <he...@gr...> + + * linux/rcssserver3d.desktop: + - changed the binary name to rcsoccersim3d + + * rcssserver3d/CMakeLists.txt: + - simspark is now a relative symlink, hopefully fixing some problems on + 'make install' + 2010-06-07 Hedayat Vatankhah <he...@gr...> * NEWS: Modified: trunk/rcssserver3d/linux/rcssserver3d.desktop =================================================================== --- trunk/rcssserver3d/linux/rcssserver3d.desktop 2010-06-07 13:13:28 UTC (rev 213) +++ trunk/rcssserver3d/linux/rcssserver3d.desktop 2010-06-07 20:39:58 UTC (rev 214) @@ -2,7 +2,7 @@ Encoding=UTF-8 Name=RoboCup Soccer Server 3D Comment=RoboCup Soccer Simulation Server 3D -Exec=simspark +Exec=rcsoccersim3d Icon=simspark Terminal=false Type=Application Modified: trunk/rcssserver3d/rcssserver3d/CMakeLists.txt =================================================================== --- trunk/rcssserver3d/rcssserver3d/CMakeLists.txt 2010-06-07 13:13:28 UTC (rev 213) +++ trunk/rcssserver3d/rcssserver3d/CMakeLists.txt 2010-06-07 20:39:58 UTC (rev 214) @@ -23,8 +23,7 @@ ${CMAKE_CURRENT_BINARY_DIR}/rcsoccersim3d) execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink - ${CMAKE_INSTALL_PREFIX}/${BINDIR}/rcssserver3d - ${CMAKE_CURRENT_BINARY_DIR}/simspark) + rcssserver3d ${CMAKE_CURRENT_BINARY_DIR}/simspark) ########### install files ############### This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |