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-2018 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 /****************************************************************************/
15 // Helper for Gifs loading and usage
16 /****************************************************************************/
17 
18 
19 // ===========================================================================
20 // included modules
21 // ===========================================================================
22 #include <config.h>
23 
24 #include <fx.h>
25 #include <cassert>
27 #include <utils/common/ToString.h>
29 
30 #include "GUITextureSubSys.h"
31 
32 #include "GNETexture_Lock.cpp"
34 #include "GNETexture_Empty.cpp"
36 #include "GNETexture_TLS.cpp"
37 #include "GNETexture_E3.cpp"
39 #include "GNETexture_Rerouter.cpp"
43 #include "GNETexture_Vaporizer.cpp"
47 #include "GNETexture_NotMoving.cpp"
49 #include "GNETexture_LaneBus.cpp"
51 #include "GNETexture_LaneBike.cpp"
52 
53 
54 
55 // ===========================================================================
56 // static member variable definitions
57 // ===========================================================================
58 
60 
61 // ===========================================================================
62 // member definitions
63 // ===========================================================================
64 
66  myApp(a) {
67  // Fill map of textures
88 }
89 
90 
92 }
93 
94 
95 void
97  assert(myInstance == 0);
99 }
100 
101 
102 GUIGlID
104  // If texture isn't loaded, load it
105  if (myInstance->myTextures.at(which) == 0) {
106  switch (which) {
107  case GNETEXTURE_E3 :
108  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_E3, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
109  break;
110  case GNETEXTURE_E3SELECTED :
111  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_E3Selected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
112  break;
113  case GNETEXTURE_EMPTY :
114  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_Empty, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
115  break;
117  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_EmptySelected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
118  break;
119  case GNETEXTURE_LOCK :
120  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_Lock, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
121  break;
123  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_LockSelected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
124  break;
125  case GNETEXTURE_NOTMOVING :
126  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_NotMoving, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
127  break;
129  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_NotMovingSelected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
130  break;
131  case GNETEXTURE_REROUTER :
132  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_Rerouter, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
133  break;
135  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_RerouterSelected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
136  break;
137  case GNETEXTURE_ROUTEPROBE :
138  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_RouteProbe, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
139  break;
141  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_RouteProbeSelected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
142  break;
143  case GNETEXTURE_TLS :
144  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_TLS, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
145  break;
146  case GNETEXTURE_VAPORIZER :
147  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_Vaporizer, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
148  break;
150  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_VaporizerSelected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
151  break;
153  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_VariableSpeedSign, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
154  break;
156  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_VariableSpeedSignSelected, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
157  break;
158  case GNETEXTURE_LANEBIKE :
159  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_LaneBike, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
160  break;
161  case GNETEXTURE_LANEBUS :
162  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_LaneBus, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
163  break;
165  myInstance->myTextures[which] = GUITexturesHelper::add(new FXGIFImage(myInstance->myApp, GNETexture_LanePedestrian, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP));
166  break;
167  default:
168  throw ProcessError("Undefined texture");
169  }
170  }
171  // Return GLID associated to the texture
172  return myInstance->myTextures.at(which);
173 }
174 
175 
176 void
178  // Reset all textures
180  for (auto& i : myInstance->myTextures) {
181  i.second = 0;
182  }
183 }
184 
185 
186 void
188  delete myInstance;
189  myInstance = 0;
190 }
191 
192 
193 /****************************************************************************/
194 
const unsigned char GNETexture_LanePedestrian[]
const unsigned char GNETexture_VariableSpeedSignSelected[]
const unsigned char GNETexture_RouteProbe[]
const unsigned char GNETexture_NotMoving[]
static GUIGlID add(FXImage *i)
Adds a texture to use.
const unsigned char GNETexture_RerouterSelected[]
static GUIGlID getTexture(GUITexture which)
returns a texture previously defined in the enum GUITexture
const unsigned char GNETexture_LaneBike[]
const unsigned char GNETexture_Empty[]
const unsigned char GNETexture_Rerouter[]
static void resetTextures()
Reset textures.
const unsigned char GNETexture_E3[]
const unsigned char GNETexture_Vaporizer[]
const unsigned char GNETexture_VaporizerSelected[]
const unsigned char GNETexture_TLS[]
GUITextureSubSys(FXApp *a)
constructor private because is called by the static function init(FXApp* a
const unsigned char GNETexture_Lock[]
~GUITextureSubSys()
destructor
static void clearTextures()
clears loaded textures
static void close()
close GUITextureSubSys
const unsigned char GNETexture_LockSelected[]
FXApp * myApp
to Fox App
const unsigned char GNETexture_VariableSpeedSign[]
const unsigned char GNETexture_LaneBus[]
unsigned int GUIGlID
Definition: GUIGlObject.h:43
const unsigned char GNETexture_EmptySelected[]
static GUITextureSubSys * myInstance
instance of GUITextureSubSys
std::map< GUITexture, GUIGlID > myTextures
vector with the Gifs
const unsigned char GNETexture_RouteProbeSelected[]
static void initTextures(FXApp *a)
Initiate GUITextureSubSys for textures.
GUITexture
An enumeration of gifs used by the gui applications.
Definition: GUITextures.h:34
const unsigned char GNETexture_E3Selected[]
const unsigned char GNETexture_NotMovingSelected[]