|
From: <he...@us...> - 2013-06-12 20:48:39
|
Revision: 365
http://sourceforge.net/p/simspark/svn/365
Author: hedayat
Date: 2013-06-12 20:48:36 +0000 (Wed, 12 Jun 2013)
Log Message:
-----------
Added Patrick changes to spark/ to ChangeLog and README files in proper format.
Brought a change from trunk/ which I mistakenly removed.
Modified Paths:
--------------
branches/gui-bullet/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp
branches/gui-bullet/spark/ChangeLog
branches/gui-bullet/spark/README
Modified: branches/gui-bullet/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp
===================================================================
--- branches/gui-bullet/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp 2013-06-12 19:49:24 UTC (rev 364)
+++ branches/gui-bullet/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp 2013-06-12 20:48:36 UTC (rev 365)
@@ -738,18 +738,11 @@
SoccerRuleAspect::UpdateBeforeKickOff()
{
// get game control server to check agent count
- static boost::shared_ptr<GameControlServer> game_control;
+ boost::shared_ptr<GameControlServer> game_control;
- if (game_control.get() == 0)
+ if (!SoccerBase::GetGameControlServer(*this, game_control))
{
- game_control = shared_dynamic_cast<GameControlServer>
- (GetCore()->Get("/sys/server/gamecontrol"));
-
- if (game_control.get() == 0)
- {
- GetLog()->Error() << "(SoccerRuleAspect) Error: can't get GameControlServer.\n";
- return;
- }
+ return;
}
// if no players are connected, just return
Modified: branches/gui-bullet/spark/ChangeLog
===================================================================
--- branches/gui-bullet/spark/ChangeLog 2013-06-12 19:49:24 UTC (rev 364)
+++ branches/gui-bullet/spark/ChangeLog 2013-06-12 20:48:36 UTC (rev 365)
@@ -1,3 +1,9 @@
+2013-06-13 Hedayat Vatankhah <hed...@gm...>
+
+ * README:
+ * ChangeLog:
+ - added Patrick changes and documentation about the new parts
+
2013-06-12 Hedayat Vatankhah <hed...@gm...>
* carbon/
@@ -18,6 +24,105 @@
* plugin/sceneeffector/sceneeffector.cpp:
- added the ability to receive and apply scene parameters
+2012-06-23 Patrick Geib <Pat...@on...>
+
+ * carbon/
+ - the Carbon library
+
+ * guiplugin/
+ - generic (not soccer related) plugins for the carbon gui
+
+ * guilayout/
+ - layout projects for the Gui
+
+ * data/guisetups/
+ - image resources for the carbon gui.
+
+ * plugin/inputsysqt/
+ - a new spark plugin which handles inputs to a spark simulation by
+ converting from qt to spark defines.
+
+ * plugin/openglsysqt/
+ - empty placeholder openglsystem to be used in simspark when an external
+ rendering by carbon is used.
+
+ * spark/spark.h:
+ * spark/spark.cpp:
+ - relative path prefix can now be given in constructor as optional
+ parameter. Needed by carbon.
+
+ * spark.rb:
+ - the spark script now contains logging functions and other functions
+ needed by the carbon gui
+
+ * plugin/odeimps/odecollider.cpp:
+ - fixed bug where body was deleted twice
+
+ * lib/zeitgeist/core.h:
+ * lib/zeitgeist/core.cpp:
+ - added function to reset the self pointer. Needed by carbon.
+
+ * lib/zeitgeist/leaf_c.cpp:
+ - added unlinkLeaf() function to ruby interface.
+
+ * lib/zeitgeist/logserver/logserverstreambuf.h:
+ * lib/zeitgeist/logserver/logserverstreambuf.cpp:
+ - replaced typedef TMaskStream with struct MaskStream. Now it not only
+ contains the integer mask and stream pointer, but also a synchronization
+ flag. If the flag is true, the stream will by sync()'ed every time the
+ input stream flushes a message. This is needed for carbons message stream
+ appenders, so it can receive the logservers messages immediately when the
+ simulation thread sends them.
+
+ * lib/zeitgeist/logserver/logserver.h:
+ * lib/zeitgeist/logserver/logserver.cpp:
+ * lib/zeitgeist/logserver/logserver_c.cpp:
+ - streams can now be added with an optional synchronization flag.
+ - updated the script interface for AddStream too.
+
+ * lib/zeitgeist/scriptserver/scriptserver.cpp:
+ - ruby error messages are now sent to ->Error() instead of ->Debug().
+
+ * lib/oxygen/simulationserver/simulationserver.h:
+ * lib/oxygen/simulationserver/simulationserver.cpp:
+ - the Simulation can now be paused. There is a flag in the simulation
+ server and a pause/unpause function. When a simulation is paused, the next
+ simulation cycle will not call StartCycle, SenseAgent, ActAgent and
+ EndCycle, but a new control event CE_WaitCycle.
+ When a simulation is paused, the simulation time does not advance and
+ agents are not notified about changed time. The wait cycle lasts as long
+ as a normal simulation cycle. Calling pause(false) will resume the normal
+ simulation cycle after the current wait cycle and agents are
+ notified again.
+ The pausing function is meant to pause and observe the state of the
+ simulation using the carbon library and the gui. It was tested with
+ several agent implementations and seemed to work perfectly.
+
+ * lib/oxygen/simulationserver/simcontrolnode.h:
+ - the new control event CE_WaitCycle calls a new interface function
+ WaitCycle() in simcontrolnodes. This way control nodes can be notified
+ about running and paused simulation steps. This is used by carbon.
+ WaitCycle() and EndCycle() are used for SimControlNodes which act as
+ interface between carbon and spark.
+
+ * lib/kerosin/inputsystem/inputsystem.h:
+ * lib/kerosin/inputsystem/inputsystem.cpp:
+ - AddInput() and GetInput() now use a boost::shared_mutex to make the
+ access thread safe. This is neccessary because there may be simulatneous
+ access from different threads in a carbon simulation.
+
+ * lib/kerosin/renderserver/renderserver.cpp:
+ - added OpenGlError-code checking between rendering stages. Removed double
+ picking-end-bracket glPopName() which caused picking to fail.
+
+ * lib/kerosin/renderserver/rendercontrol.cpp:
+ * lib/kerosin/renderserver/rendercontrol.h:
+ * lib/kerosin/renderserver/rendercontrol_c.cpp:
+ - RenderControlNodes can no be activated or deactivated. Carbon uses this
+ feature to deactivate them in the spark simulation if the rendering is
+ done in the gui thread or any other than the server thread.
+ - Added setActive() function to ruby interface.
+
2012-05-23 Hedayat Vatankhah <hed...@gm...>
* lib/kerosin/CMakeLists.txt:
Modified: branches/gui-bullet/spark/README
===================================================================
--- branches/gui-bullet/spark/README 2013-06-12 19:49:24 UTC (rev 364)
+++ branches/gui-bullet/spark/README 2013-06-12 20:48:36 UTC (rev 365)
@@ -83,7 +83,50 @@
for creating simulations using simspark
./test applications for testing different subsystems of the
simulator.
+./carbon The carbon library contains a gui-framework and a
+ simulation-framework which wraps simspark using qt.
+ Its main features are:
+ - Offering a graphical user interface which can be extended
+ by visual and functional plugins. The plugins can be used
+ to write easy-to-use interfaces to simspark simulations.
+ - Creating, managing and executing simspark-simulations
+ alongside with any additional threads and processes.
+ - The gui can be altered flexibly. Its main window with
+ "attachment points" is loaded from a shared library, and
+ its used plugins are loaded from shared libraries too.
+ Plugins with visual representation can be attached to the
+ Gui.
+./guilayout Layout projects for the Gui. They export main windows for
+ the carbon gui from a shared library. You can easily and
+ quickly create a new layout for the gui by creating a new
+ layout project. A gui-layout (main window) may define
+ attachment points for gui-plugins.
+ Initial layout projects:
+ - guigridlayout: Contains 4 attachment points (left, center,
+ right, bottom)
+ - guisimplelayout: Contains 2 attachment points (left, right)
+./guiplugin Generic (not soccer related) plugins for the carbon gui.
+ Plugins can be anything to extend the gui with. There are
+ three types: Simple Plugins (can be executed), Signal
+ Plugins (can communicate), and AttachableFrame Plugins (can
+ be embedded into the Gui). Examples which can be created
+ really easily and quickly, are: executable plugins running in
+ a new thread, function libraries, toolboxes or menu entries,
+ or visual plugins made for user interaction.
+
+ Initial plugins (all of them are plugins that can be attached
+ to attachment points):
+ - logframe: logs and displays messages
+ - setupframe: creates simulation setups for the gui
+ - simulationframe: displays and controls simulation tasks and
+ processes in the gui
+ - scenegraphframe: displays and controls the whole scene graph
+ of a spark simulation. The user can freely change the values
+ of several types of nodes.
+ This interaction can be extended with additional plugins.
+ - monitorframe: renders a spark simulation
+
Literature:
[1] Marco Kögler and Oliver Obst. Simulation League: The Next Generation.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|