Eclipse SUMO - Simulation of Urban MObility
GUITextureSubSys.cpp
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
14 // Helper for Gifs loading and usage
15 /****************************************************************************/
16 
17 
18 // ===========================================================================
19 // included modules
20 // ===========================================================================
21 #include <config.h>
22 
23 #include <fx.h>
24 #include <cassert>
26 #include <utils/common/ToString.h>
28 
29 #include "GUITextureSubSys.h"
30 
31 #include "GNETexture_Lock.cpp"
33 #include "GNETexture_Empty.cpp"
35 #include "GNETexture_TLS.cpp"
36 #include "GNETexture_E3.cpp"
38 #include "GNETexture_Rerouter.cpp"
42 #include "GNETexture_Vaporizer.cpp"
46 #include "GNETexture_NotMoving.cpp"
48 #include "GNETexture_LaneBus.cpp"
50 #include "GNETexture_LaneBike.cpp"
51 
52 
53 // ===========================================================================
54 // static member variable definitions
55 // ===========================================================================
56 
58 
59 // ===========================================================================
60 // member definitions
61 // ===========================================================================
62 
64  myApp(a) {
65  // Fill map of textures
86 }
87 
88 
90 }
91 
92 
93 void
95  assert(myInstance == 0);
97 }
98 
99 
100 GUIGlID
102  // If texture isn't loaded, load it
103  if (myInstance->myTextures.at(which) == 0) {
104  switch (which) {
105  case GNETEXTURE_E3 :
106  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_E3, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
107  break;
108  case GNETEXTURE_E3SELECTED :
109  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_E3Selected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
110  break;
111  case GNETEXTURE_EMPTY :
112  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_Empty, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
113  break;
115  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_EmptySelected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
116  break;
117  case GNETEXTURE_LOCK :
118  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_Lock, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
119  break;
121  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_LockSelected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
122  break;
123  case GNETEXTURE_NOTMOVING :
124  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_NotMoving, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
125  break;
127  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_NotMovingSelected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
128  break;
129  case GNETEXTURE_REROUTER :
130  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_Rerouter, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
131  break;
133  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_RerouterSelected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
134  break;
135  case GNETEXTURE_ROUTEPROBE :
136  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_RouteProbe, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
137  break;
139  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_RouteProbeSelected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
140  break;
141  case GNETEXTURE_TLS :
142  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_TLS, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
143  break;
144  case GNETEXTURE_VAPORIZER :
145  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_Vaporizer, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
146  break;
148  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_VaporizerSelected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
149  break;
151  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_VariableSpeedSign, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
152  break;
154  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_VariableSpeedSignSelected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
155  break;
156  case GNETEXTURE_LANEBIKE :
157  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_LaneBike, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
158  break;
159  case GNETEXTURE_LANEBUS :
160  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_LaneBus, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
161  break;
163  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_LanePedestrian, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
164  break;
165  default:
166  throw ProcessError("Undefined texture");
167  }
168  }
169  // Return GLID associated to the texture
170  return myInstance->myTextures.at(which);
171 }
172 
173 
174 void
176  // Reset all textures
178  for (auto& i : myInstance->myTextures) {
179  i.second = 0;
180  }
181 }
182 
183 
184 void
186  delete myInstance;
187  myInstance = nullptr;
188 }
189 
190 
191 /****************************************************************************/
192 
GNETexture_VariableSpeedSign.cpp
GNETexture_NotMoving
const unsigned char GNETexture_NotMoving[]
Definition: GNETexture_NotMoving.cpp:18
GUITextureSubSys::~GUITextureSubSys
~GUITextureSubSys()
destructor
Definition: GUITextureSubSys.cpp:89
ToString.h
GNETexture_LaneBike.cpp
GUITextureSubSys::myApp
FXApp * myApp
@pointer to Fox App
Definition: GUITextureSubSys.h:61
GUITextureSubSys::myInstance
static GUITextureSubSys * myInstance
instance of GUITextureSubSys
Definition: GUITextureSubSys.h:64
GNETexture_Lock.cpp
GNETexture_E3Selected.cpp
GNETexture_Rerouter
const unsigned char GNETexture_Rerouter[]
Definition: GNETexture_Rerouter.cpp:18
GNETEXTURE_E3SELECTED
@ GNETEXTURE_E3SELECTED
Definition: GUITextures.h:35
GNETexture_Rerouter.cpp
GUITextureSubSys::myTextures
std::map< GUITexture, GUIGlID > myTextures
vector with the Gifs
Definition: GUITextureSubSys.h:67
OptionsCont.h
MsgHandler.h
GNETEXTURE_VARIABLESPEEDSIGNSELECTED
@ GNETEXTURE_VARIABLESPEEDSIGNSELECTED
Definition: GUITextures.h:50
GNETEXTURE_ROUTEPROBESELECTED
@ GNETEXTURE_ROUTEPROBESELECTED
Definition: GUITextures.h:45
GNETEXTURE_NOTMOVINGSELECTED
@ GNETEXTURE_NOTMOVINGSELECTED
Definition: GUITextures.h:41
GNETexture_TLS
const unsigned char GNETexture_TLS[]
Definition: GNETexture_TLS.cpp:18
GNETEXTURE_LOCKSELECTED
@ GNETEXTURE_LOCKSELECTED
Definition: GUITextures.h:39
GNETexture_RouteProbeSelected.cpp
GNETEXTURE_LANEBIKE
@ GNETEXTURE_LANEBIKE
Definition: GUITextures.h:51
GUITextureSubSys::initTextures
static void initTextures(FXApp *a)
Initiate GUITextureSubSys for textures.
Definition: GUITextureSubSys.cpp:94
GNETEXTURE_VAPORIZERSELECTED
@ GNETEXTURE_VAPORIZERSELECTED
Definition: GUITextures.h:48
GNETexture_Empty
const unsigned char GNETexture_Empty[]
Definition: GNETexture_Empty.cpp:18
GNETEXTURE_TLS
@ GNETEXTURE_TLS
Definition: GUITextures.h:46
GNETexture_LaneBus.cpp
GNETexture_NotMoving.cpp
GNETexture_VaporizerSelected
const unsigned char GNETexture_VaporizerSelected[]
Definition: GNETexture_VaporizerSelected.cpp:18
GNETEXTURE_ROUTEPROBE
@ GNETEXTURE_ROUTEPROBE
Definition: GUITextures.h:44
GNETexture_E3Selected
const unsigned char GNETexture_E3Selected[]
Definition: GNETexture_E3Selected.cpp:18
GNETEXTURE_LANEBUS
@ GNETEXTURE_LANEBUS
Definition: GUITextures.h:52
GNETexture_Vaporizer.cpp
GNETexture_RouteProbeSelected
const unsigned char GNETexture_RouteProbeSelected[]
Definition: GNETexture_RouteProbeSelected.cpp:18
GUITexture
GUITexture
An enumeration of gifs used by the gui applications.
Definition: GUITextures.h:33
GUITextureSubSys::getTexture
static GUIGlID getTexture(GUITexture which)
returns a texture previously defined in the enum GUITexture
Definition: GUITextureSubSys.cpp:101
ProcessError
Definition: UtilExceptions.h:39
GNETexture_Vaporizer
const unsigned char GNETexture_Vaporizer[]
Definition: GNETexture_Vaporizer.cpp:18
GNETexture_E3.cpp
GUITexturesHelper::add
static GUIGlID add(FXImage *i)
Adds a texture to use.
Definition: GUITexturesHelper.cpp:55
GNETexture_TLS.cpp
GNETexture_RouteProbe
const unsigned char GNETexture_RouteProbe[]
Definition: GNETexture_RouteProbe.cpp:18
GNETexture_RerouterSelected
const unsigned char GNETexture_RerouterSelected[]
Definition: GNETexture_RerouterSelected.cpp:18
GNETEXTURE_E3
@ GNETEXTURE_E3
Definition: GUITextures.h:34
GNETexture_VariableSpeedSignSelected.cpp
GNETexture_VariableSpeedSignSelected
const unsigned char GNETexture_VariableSpeedSignSelected[]
Definition: GNETexture_VariableSpeedSignSelected.cpp:18
GNETEXTURE_EMPTY
@ GNETEXTURE_EMPTY
Definition: GUITextures.h:36
GNETexture_EmptySelected.cpp
GNETexture_E3
const unsigned char GNETexture_E3[]
Definition: GNETexture_E3.cpp:18
GNETexture_LaneBike
const unsigned char GNETexture_LaneBike[]
Definition: GNETexture_LaneBike.cpp:18
GNETEXTURE_REROUTER
@ GNETEXTURE_REROUTER
Definition: GUITextures.h:42
GUIGlID
unsigned int GUIGlID
Definition: GUIGlObject.h:42
GNETexture_VaporizerSelected.cpp
GNETEXTURE_VARIABLESPEEDSIGN
@ GNETEXTURE_VARIABLESPEEDSIGN
Definition: GUITextures.h:49
GNETexture_LanePedestrian
const unsigned char GNETexture_LanePedestrian[]
Definition: GNETexture_LanePedestrian.cpp:18
GNETexture_LanePedestrian.cpp
GNETEXTURE_REROUTERSELECTED
@ GNETEXTURE_REROUTERSELECTED
Definition: GUITextures.h:43
GNETexture_VariableSpeedSign
const unsigned char GNETexture_VariableSpeedSign[]
Definition: GNETexture_VariableSpeedSign.cpp:18
GUITextureSubSys::close
static void close()
close GUITextureSubSys
Definition: GUITextureSubSys.cpp:185
GNETexture_LockSelected.cpp
GNETexture_Lock
const unsigned char GNETexture_Lock[]
Definition: GNETexture_Lock.cpp:19
GUITextureSubSys::resetTextures
static void resetTextures()
Reset textures.
Definition: GUITextureSubSys.cpp:175
GNETexture_RerouterSelected.cpp
config.h
GUITexturesHelper::clearTextures
static void clearTextures()
clears loaded textures
Definition: GUITexturesHelper.cpp:136
GNETexture_NotMovingSelected.cpp
GNETexture_Empty.cpp
GNETexture_LockSelected
const unsigned char GNETexture_LockSelected[]
Definition: GNETexture_LockSelected.cpp:19
GNETEXTURE_LOCK
@ GNETEXTURE_LOCK
Definition: GUITextures.h:38
GNETexture_NotMovingSelected
const unsigned char GNETexture_NotMovingSelected[]
Definition: GNETexture_NotMovingSelected.cpp:18
GNETEXTURE_NOTMOVING
@ GNETEXTURE_NOTMOVING
Definition: GUITextures.h:40
GNETEXTURE_LANEPEDESTRIAN
@ GNETEXTURE_LANEPEDESTRIAN
Definition: GUITextures.h:53
GNETEXTURE_EMPTYSELECTED
@ GNETEXTURE_EMPTYSELECTED
Definition: GUITextures.h:37
GUITextureSubSys::GUITextureSubSys
GUITextureSubSys(FXApp *a)
constructor private because is called by the static function init(FXApp* a
Definition: GUITextureSubSys.cpp:63
GNETexture_LaneBus
const unsigned char GNETexture_LaneBus[]
Definition: GNETexture_LaneBus.cpp:18
GUITextureSubSys.h
GNETexture_RouteProbe.cpp
GNETexture_EmptySelected
const unsigned char GNETexture_EmptySelected[]
Definition: GNETexture_EmptySelected.cpp:18
GNETEXTURE_VAPORIZER
@ GNETEXTURE_VAPORIZER
Definition: GUITextures.h:47
GUITextureSubSys
Definition: GUITextureSubSys.h:33