Hermes2D
3.0
|
Visualizes a Scalar PDE solution. More...
#include <scalar_view.h>
Classes | |
struct | ElementInfo |
< element info structure More... | |
struct | GLVertex2 |
< OpenGL vertex. Used to cache vertices prior rendering More... | |
Public Member Functions | |
void | init () |
ScalarView (const char *title="ScalarView", WinGeom *wg=nullptr) | |
ScalarView (char *title, WinGeom *wg=nullptr) | |
void | show (MeshFunctionSharedPtr< double > sln, int item=H2D_FN_VAL_0, MeshFunctionSharedPtr< double > xdisp=nullptr, MeshFunctionSharedPtr< double > ydisp=nullptr, double dmult=1.0) |
void | show (MeshFunctionSharedPtr< std::complex< double > > sln, int item=H2D_FN_VAL_0, MeshFunctionSharedPtr< double > xdisp=nullptr, MeshFunctionSharedPtr< double > ydisp=nullptr, double dmult=1.0) |
void | show_linearizer_data (double eps, int item=H2D_FN_VAL_0) |
void | show_mesh (bool show=true) |
void | show_bounding_box (bool show=true) |
void | show_contours (double step, double orig=0.0) |
void | hide_contours () |
void | set_3d_mode (bool enable=true) |
void | set_vertical_scaling (double sc) |
Sets the scaling on the vertical axis programmatically. | |
void | set_min_max_range (double min, double max) |
Sets the limits on displayed values. More... | |
virtual void | reset_view (bool force_reset) |
Resets 2d and 3d view. More... | |
Linearizer * | get_linearizer () |
Returns the internal linearizer for the purpose of parameter settings. | |
void | set_linearizer_criterion (LinearizerCriterion criterion) |
![]() | |
void | init () |
View (const char *title, WinGeom *wg=nullptr) | |
View (char *title, WinGeom *wg=nullptr) | |
int | create () |
void | close () |
void | refresh () |
Refreshes views. | |
const char * | get_title () const |
Returns the title. | |
void | set_title (const char *msg,...) |
Changes the window name (in its title-bar) to 'title'. | |
void | set_min_max_range (double min, double max) |
void | auto_min_max_range () |
void | get_min_max_range (double &min, double &max) |
void | show_scale (bool show=true) |
void | set_scale_position (int horz, int vert) |
void | set_scale_size (int width, int height, int numticks) |
void | set_scale_format (const char *fmt) |
void | fix_scale_width (int width=80) |
void | save_screenshot (const char *bmpname, bool high_quality=false) |
void | save_numbered_screenshot (const char *format, int number, bool high_quality=false) |
void | set_palette (ViewPaletteType type) |
void | set_num_palette_steps (int num) |
void | set_palette_filter (bool linear) |
void | wait_for_close () |
void | wait_for_draw () |
void | draw_help () |
Protected Types | |
typedef void(* | DrawSingleEdgeCallback )(int inx_vert_a, int inx_vert_b, ScalarView *viewer, void *param) |
A callback function that draws edge using specified vertex indices. Param is user supplied parameter. | |
Protected Member Functions | |
void | init_element_info (MeshSharedPtr mesh) |
Creates element info from mesh. | |
void | create_element_info_widgets () |
Creates element ID widgets if not created already. | |
void | draw_element_infos_2d () |
Draws elements infos in 2D mode. | |
void | prepare_gl_geometry () |
prepares geometry in a form compatible with GL arrays; Data are updated if lin is updated. In a case of a failure (out of memory), gl_verts is nullptr and an old OpenGL rendering method has to be used. | |
void | draw_values_2d () |
draws values | |
void | draw_edges_2d () |
draws edges | |
void | calculate_mesh_aabb (double *x_min, double *x_max, double *y_min, double *y_max) |
Calculates AABB from edges. | |
void | draw_aabb () |
Draws the axes-aligned bounding box of the model. Assumes a model/view matrix to be the current matrix on the OpenGL stack. | |
double | calculate_ztrans_to_fit_view () |
virtual void | update_layout () |
Updates layout, i.e., centers 2d and 3d mesh. | |
void | draw_tri_contours (ScalarLinearizerDataDimensions< LINEARIZER_DATA_TYPE >::triangle_t &) |
void | init_lighting () |
void | update_mesh_info () |
Updates mesh info. Assumes that data lock is locked. | |
virtual void | on_display () |
void | on_display_2d () |
void | on_display_3d () |
virtual void | on_key_down (unsigned char key, int x, int y) |
virtual void | on_mouse_move (int x, int y) |
virtual void | on_right_mouse_down (int x, int y) |
Handles selecting/deselecting of nodes. | |
virtual void | on_middle_mouse_down (int x, int y) |
virtual void | on_middle_mouse_up (int x, int y) |
virtual const char * | get_help_text () const |
virtual void | on_close () |
![]() | |
void | draw_fps () |
draws current FPS | |
virtual void | on_create (int output_id) |
virtual void | on_reshape (int width, int height) |
virtual void | on_left_mouse_down (int x, int y) |
virtual void | on_left_mouse_up (int x, int y) |
virtual void | on_left_mouse_double_click (int x, int y) |
virtual void | on_right_mouse_up (int x, int y) |
virtual void | on_right_mouse_double_click (int x, int y) |
virtual void | on_middle_mouse_double_click (int x, int y) |
virtual void | on_special_key (int key, int x, int y) |
virtual void | on_entry (int state) |
void | create_gl_palette () |
Creates pallete texture in OpenGL. Assumes that view_sync is locked. | |
virtual void | get_palette_color (double x, float *gl_color) |
Fills gl_color with palette color. Assumes that gl_color points to a vector of three components (RGB). | |
double | untransform_x (double x) |
double | untransform_y (double y) |
virtual void | clear_background () |
Clears background. | |
void | pre_display () |
void | display_antialiased () |
void | set_ortho_projection (bool no_jitter=false) |
void | set_3d_projection (int fov, double znear, double zfar) |
void | draw_text (double x, double y, const char *text, int align=-1) |
int | get_text_width (const char *text) |
char * | get_screenshot_file_name () |
void | save_screenshot_internal (const char *filename) |
virtual void | scale_dispatch () |
virtual int | measure_scale_labels () |
void | draw_continuous_scale (char *title, bool righttext) |
void | draw_discrete_scale (int numboxes, const char *boxnames[], const float boxcolors[][3]) |
void | update_tex_adjust () |
Protected Attributes | |
Linearizer * | lin |
LinearizerMultidimensional class responsible for obtaining linearized data. | |
std::vector< ElementInfo > | element_infos |
Element info. | |
unsigned int | element_id_widget |
A GL display-list denoting a element ID widget. The geometry assumes the size of a pixel is 1x1. | |
bool | show_element_info |
true, to draw element info (currently ID) in 2D mode | |
bool | lin_updated |
true, if lin now contains new_ values | |
int | max_gl_verts |
A maximum allocated number of vertices. | |
int | max_gl_tris |
A maximum allocated number of triangles. | |
int | gl_tri_cnt |
A number of OpenGL triangles. | |
bool | show_values |
true to show values | |
bool | show_edges |
true to show edges of mesh | |
bool | show_aabb |
true to show the bounding box | |
float | edges_color [3] |
color of edges | |
bool | contours |
true to enable drawing of contours | |
double | cont_orig |
contour settings. | |
double | cont_step |
float | cont_color [3] |
color of contours (RGB) | |
bool | do_zoom_to_fit |
true to automatically translate the view so that the whole model si displayed | |
bool | is_constant |
true if the function to be displayed is constant | |
bool | pmode |
bool | mode3d |
bool | panning |
double | xrot |
double | yrot |
double | xtrans |
double | ytrans |
double | ztrans |
double | xzscale |
double | yscale |
double | xctr |
double | yctr |
double | zctr |
Information about the range of vertex values. | |
double | value_irange |
double | value_range_avg |
![]() | |
double | rendering_frames [FPS_FRAME_SIZE] |
time spend in rendering of frames[in ms] | |
int | rendering_frames_top |
the new_ location of the next FPS | |
bool | view_not_reset |
True if the view was not reset and therefore it has to be. | |
double | vertices_min_x |
AABB of shown mesh. | |
double | vertices_max_x |
double | vertices_min_y |
double | vertices_max_y |
double | scale |
double | log_scale |
double | trans_x |
double | trans_y |
double | center_x |
double | center_y |
int | margin |
int | lspace |
int | rspace |
int | mouse_x |
int | mouse_y |
int | scx |
int | scy |
double | objx |
double | objy |
bool | dragging |
bool | scaling |
std::string | title |
int | output_id |
int | output_x |
int | output_y |
int | output_width |
int | output_height |
float | jitter_x |
float | jitter_y |
bool | hq_frame |
bool | frame_ready |
ViewPaletteType | pal_type |
int | pal_steps |
int | pal_filter |
double | tex_scale |
double | tex_shift |
bool | range_auto |
double | range_min |
double | range_max |
bool | b_scale |
bool | b_help |
bool | scale_focused |
bool | scale_dragging |
int | pos_horz |
int | pos_vert |
int | scale_x |
int | scale_y |
int | scale_width |
int | scale_height |
int | labels_width |
int | scale_numticks |
int | scale_box_height |
int | scale_box_skip |
char | scale_fmt [20] |
int | scale_fixed_width |
bool | want_screenshot |
std::string | screenshot_filename |
unsigned int | gl_pallete_tex_id |
OpenGL texture object ID. | |
Static Protected Attributes | |
static const int | fovy = 50 |
Field of view in the vertical direction (in degrees). | |
static const double | znear = 0.05 |
Distance of the near clipping plane of the viewing frustum from the camera. | |
static const double | zfar = 10 |
Distance of the Far clipping plane of the viewing frustum from the camera. | |
![]() | |
static int | screenshot_no = 1 |
Additional Inherited Members | |
![]() | |
static void | wait_for_keypress (const char *text=nullptr) |
Waits for keypress. Deprecated. | |
static void | wait (const char *text) |
Closes all views at once. | |
static void | wait (ViewWaitEvent wait_event=HERMES_WAIT_CLOSE, const char *text=nullptr) |
Waits for an event. | |
![]() | |
static double | get_tick_count () |
returns a current time[in ms] | |
Visualizes a Scalar PDE solution.
ScalarView is a visualization window for all Scalar-valued PDE solutions.
Definition at line 37 of file scalar_view.h.
|
protected |
This function calculates the distance that the model (3D plot of the solution over the whole solution domain) must be translated along the z-axis of the eye coordinate system, so that it fills the actual viewport without being clipped. The only case when the model will be clipped is when the user defines his own vertical range limits - unfortunately, the values beyond these limits are now still included in the displayed model, so the user may e.g. zoom-out to see them
Definition at line 729 of file scalar_view.cpp.
|
virtual |
Resets 2d and 3d view.
Reimplemented from Hermes::Hermes2D::Views::View.
Definition at line 691 of file scalar_view.cpp.
void Hermes::Hermes2D::Views::ScalarView::set_linearizer_criterion | ( | LinearizerCriterion | criterion | ) |
Sets the criterion to use for the linearization process. This criterion is used in ThreadLinearizerMultidimensional class instances (see threadLinearizerMultidimensional array).
[in] | criterion | The instance of the criterion - see the class LinearizerCriterion for details (method split_decision() for the adaptive criterion, process_[triangle|quad] for the fixed one). |
Definition at line 249 of file scalar_view.cpp.
void Hermes::Hermes2D::Views::ScalarView::set_min_max_range | ( | double | min, |
double | max | ||
) |
Sets the limits on displayed values.
Definition at line 807 of file scalar_view.cpp.