Events.hh
00001 /*
00002  * Copyright 2011 Nate Koenig & Andrew Howard
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  *
00016 */
00017 #ifndef EVENTS_HH
00018 #define EVENTS_HH
00019 
00020 #include "common/Event.hh"
00021 
00022 namespace gazebo
00023 {
00024   namespace event
00025   {
00026     class Events
00027     {
00030  
00033       public: template<typename T>
00034               static ConnectionPtr ConnectPause( T subscriber )
00035               { return pause.Connect(subscriber); }
00036 
00037       public: static void DisconnectPause( ConnectionPtr subscriber)
00038               { pause.Disconnect(subscriber); }
00039 
00042       public: template<typename T>
00043               static ConnectionPtr ConnectStep( T subscriber )
00044               { return step.Connect(subscriber); }
00045 
00046       public: static void DisconnectStep( ConnectionPtr subscriber)
00047               { step.Disconnect(subscriber); }
00048 
00051       public: template<typename T>
00052               static ConnectionPtr ConnectQuit( T subscriber )
00053               { return quit.Connect(subscriber); }
00054 
00055       public: static void DisconnectQuit( ConnectionPtr subscriber)
00056               { quit.Disconnect(subscriber); }
00057 
00060       public: template<typename T>
00061               static ConnectionPtr ConnectWorldCreated( T subscriber )
00062               { return worldCreated.Connect(subscriber); }
00063 
00064       public: static void DisconnectWorldCreated( ConnectionPtr subscriber)
00065               { worldCreated.Disconnect(subscriber); }
00066 
00067 
00070       public: template<typename T>
00071               static ConnectionPtr ConnectCreateEntity( T subscriber )
00072               { return entityCreated.Connect(subscriber); }
00073 
00074       public: static void DisconnectCreateEntity( ConnectionPtr subscriber)
00075               { entityCreated.Disconnect(subscriber); }
00076 
00077 
00080       public: template<typename T>
00081               static ConnectionPtr ConnectSetSelectedEntity( T subscriber )
00082               { return setSelectedEntity.Connect(subscriber); }
00083 
00084       public: static void DisconnectSetSelectedEntity(ConnectionPtr subscriber)
00085               { setSelectedEntity.Disconnect(subscriber); }
00086 
00089       public: template<typename T>
00090               static ConnectionPtr ConnectDeleteEntity( T subscriber )
00091               { return deleteEntity.Connect(subscriber); }
00092 
00093       public: static void DisconnectDeleteEntity( ConnectionPtr subscriber)
00094               { deleteEntity.Disconnect(subscriber); }
00095 
00098       public: template<typename T>
00099               static ConnectionPtr ConnectAddEntity( T subscriber )
00100               { return addEntity.Connect(subscriber); }
00101       public: static void DisconnectAddEntity( ConnectionPtr subscriber)
00102               { addEntity.Disconnect(subscriber); }
00103 
00106       public: template<typename T>
00107               static ConnectionPtr ConnectShowLights( T subscriber )
00108               { return showLights.Connect(subscriber); }
00109 
00110       public: static void DisconnectShowLights( ConnectionPtr subscriber )
00111               { showLights.Disconnect(subscriber); }
00112 
00115       public: template<typename T>
00116               static ConnectionPtr ConnectShowCameras( T subscriber )
00117               { return showCameras.Connect(subscriber); }
00118       public: static void DisconnectShowCameras( ConnectionPtr subscriber )
00119               { showCameras.Disconnect(subscriber); }
00120 
00123       public: template<typename T>
00124               static ConnectionPtr ConnectShowContacts( T subscriber )
00125               { return showContacts.Connect(subscriber); }
00126       public: static void DisconnectShowContacts( ConnectionPtr subscriber )
00127               { showContacts.Disconnect(subscriber); }
00128 
00129 
00132       public: template<typename T>
00133               static ConnectionPtr ConnectShowWireframe( T subscriber )
00134               { return wireframe.Connect(subscriber); }
00135       public: static void DisconnectShowWireframe( ConnectionPtr subscriber )
00136               { wireframe.Disconnect(subscriber); }
00137 
00138 
00141       public: template<typename T>
00142               static ConnectionPtr ConnectShowPhysics( T subscriber )
00143               { return showPhysics.Connect(subscriber); }
00144       public: static void DisconnectShowPhysics( ConnectionPtr subscriber )
00145               { showPhysics.Disconnect(subscriber); }
00146 
00147 
00150       public: template<typename T>
00151               static ConnectionPtr ConnectShowJoints( T subscriber )
00152               { return showJoints.Connect(subscriber); }
00153       public: static void DisconnectShowJoints( ConnectionPtr subscriber )
00154               { showJoints.Disconnect(subscriber); }
00155 
00158       public: template<typename T>
00159               static ConnectionPtr ConnectShowBoundingBoxes( T subscriber )
00160               { return showBoundingBoxes.Connect(subscriber); }
00161       public: static void DisconnectShowBoundingBoxes(ConnectionPtr subscriber)
00162               { showBoundingBoxes.Disconnect(subscriber); }
00163 
00166       public: template<typename T>
00167               static ConnectionPtr ConnectWorldUpdateStart(T subscriber)
00168               { return worldUpdateStart.Connect(subscriber); }
00169       public: static void DisconnectWorldUpdateStart(ConnectionPtr subscriber )
00170               { worldUpdateStart.Disconnect(subscriber); }
00171 
00174       public: template<typename T>
00175               static ConnectionPtr ConnectWorldUpdateEnd(T subscriber)
00176               { return worldUpdateEnd.Connect(subscriber); }
00177       public: static void DisconnectWorldUpdateEnd( ConnectionPtr subscriber )
00178               { worldUpdateEnd.Disconnect(subscriber); }
00179 
00182       public: template<typename T>
00183               static ConnectionPtr ConnectEntitySelected(T subscriber)
00184               { return entitySelected.Connect(subscriber); }
00186       public: static void DisconnectEntitySelected( ConnectionPtr subscriber )
00187               { entitySelected.Disconnect(subscriber); }
00188 
00191       public: template<typename T>
00192               static ConnectionPtr ConnectPreRender(T subscriber)
00193               { return preRender.Connect(subscriber); }
00194 
00196       public: static void DisconnectPreRender( ConnectionPtr subscriber )
00197               { preRender.Disconnect(subscriber); }
00198 
00201       public: template<typename T>
00202               static ConnectionPtr ConnectRender( T subscriber )
00203               { return render.Connect(subscriber); }
00204 
00205       public: static void DisconnectRender( ConnectionPtr subscriber)
00206               { render.Disconnect(subscriber); }
00207 
00210       public: template<typename T>
00211               static ConnectionPtr ConnectPostRender( T subscriber )
00212               { return postRender.Connect(subscriber); }
00213 
00214       public: static void DisconnectPostRender( ConnectionPtr subscriber)
00215               { postRender.Disconnect(subscriber); }
00216 
00219       public: template<typename T>
00220               static ConnectionPtr ConnectDiagTimerStart( T subscriber )
00221               { return diagTimerStart.Connect(subscriber); }
00222 
00223       public: static void DisconnectDiagTimerStart( ConnectionPtr subscriber)
00224               { diagTimerStart.Disconnect(subscriber); }
00225 
00228       public: template<typename T>
00229               static ConnectionPtr ConnectDiagTimerStop( T subscriber )
00230               { return diagTimerStop.Connect(subscriber); }
00231 
00232       public: static void DisconnectDiagTimerStop( ConnectionPtr subscriber)
00233               { diagTimerStop.Disconnect(subscriber); }
00234 
00235 
00237       public: static EventT<void (bool)> pause;
00238 
00240       public: static EventT<void ()> step;
00241 
00243       public: static EventT<void ()> quit;
00244 
00246       public: static EventT<void (std::string)> worldCreated;
00247 
00249       public: static EventT<void (std::string)> entityCreated;
00250 
00252       public: static EventT<void (std::string)> setSelectedEntity;
00253 
00255       public: static EventT<void (std::string)> addEntity;
00256 
00258       public: static EventT<void (std::string)> deleteEntity;
00259 
00261       public: static EventT<void (bool)> showLights;
00263       public: static EventT<void (bool)> showJoints;
00265       public: static EventT<void (bool)> showCameras;
00267       public: static EventT<void (bool)> showContacts;
00269       public: static EventT<void (bool)> wireframe;
00271       public: static EventT<void (bool)> showPhysics;
00273       public: static EventT<void (bool)> showBoundingBoxes;
00274 
00276       public: static EventT<void (std::string)> entitySelected;
00277 
00279       public: static EventT<void ()> worldUpdateStart;
00281       public: static EventT<void ()> worldUpdateEnd;
00282 
00284       public: static EventT<void ()> preRender;
00286       public: static EventT<void ()> render;
00288       public: static EventT<void ()> postRender;
00289 
00291       public: static EventT<void (std::string)> diagTimerStart;
00293       public: static EventT<void (std::string)> diagTimerStop;
00294     };
00296   }
00297 }
00298 #endif