180 void SetSettings(
bool hiDefGraphics,
bool GradualColors,
181 bool BarbedArrowHead =
true) {
182 m_hi_def_graphics = hiDefGraphics;
183 m_gradual_colors = GradualColors;
184 m_draw_barbed_arrow_head = BarbedArrowHead;
187 void SetMessageFont();
188 void SetMessage(wxString message) { m_message = std::move(message); }
189 void SetParentSize(
int w,
int h) {
190 m_ParentSize.SetWidth(w);
191 m_ParentSize.SetHeight(h);
199 void ClearCachedData();
200 void ClearCachedLabel() { m_label_cache.clear(); }
201 void ClearParticles() {
202 delete m_particle_map;
203 m_particle_map =
nullptr;
209 void GetGraphicColor(
int settings,
double val,
unsigned char &r,
210 unsigned char &g,
unsigned char &b);
211 wxColour GetGraphicColor(
int settings,
double val);
218 void InitColorsTable();
220 void SettingsIdToGribId(
int i,
int &idx,
int &idy,
bool &polar);
235 void RenderGribBarbedArrows(
int config,
GribRecord **pGR,
251 void RenderGribIsobar(
int config,
GribRecord **pGR,
265 void RenderGribDirectionArrows(
int config,
GribRecord **pGR,
312 void OnParticleTimer(wxTimerEvent &event);
314 void DrawMessageWindow(wxString msg,
int x,
int y, wxFont *mfont);
316 void DrawProjectedPosition(
int x,
int y);
318 void DrawDoubleArrow(
int x,
int y,
double ang, wxColour arrowColor,
319 int arrowWidth,
int arrowSizeIdx,
double scale);
320 void DrawSingleArrow(
int x,
int y,
double ang, wxColour arrowColor,
321 int arrowWidth,
int arrowSizeIdx,
double scale);
322 void DrawWindArrowWithBarbs(
int settings,
int x,
int y,
double vkn,
323 double ang,
bool south, wxColour arrowColor,
324 double rotate_angle);
325 void DrawLineBuffer(
LineBuffer &buffer,
int x,
int y,
double ang,
326 double scale,
bool south =
false,
bool head =
true);
328 void DrawNumbers(wxPoint p,
double value,
int settings, wxColour back_color);
331 wxString GetLabelString(
double value,
int settings);
332 wxImage &GetLabel(
double value,
int settings, wxColour back_colour);
336 void GetCalibratedGraphicColor(
int settings,
double val_in,
337 unsigned char *data);
340 double x,
double y,
double xs,
double ys);
343 int grib_pixel_size,
const wxPoint &porg);
345 double m_last_vp_scale;
347 GribOverlay *m_pOverlay[GribOverlaySettings::SETTINGS_COUNT];
350 wxString m_message_hiden;
353#if wxUSE_GRAPHICS_CONTEXT
354 wxGraphicsContext *m_gdc;
357 wxFont *m_Font_Message;
359 bool m_hi_def_graphics;
360 bool m_gradual_colors;
361 bool m_draw_barbed_arrow_head;
363 std::map<double, wxImage> m_label_cache;
372 wxTimer m_particle_time_timer;
373 bool m_update_particle_particles;
380 int m_wind_arrow_size;
Manager for particle animation system.
Individual particle for wind/current animation.
int m_Duration
Duration this particle should exist in animation cycles.