diff --git a/src/core/Core.cpp b/src/core/Core.cpp index 29e0406f631768ed085d93c2fc99c6dff0a8f9d1..c962507a129924165b65ab8ae90d7579314240aa 100644 --- a/src/core/Core.cpp +++ b/src/core/Core.cpp @@ -140,10 +140,10 @@ Core::Core(int argc, char ** argv){ - if (!useGUI){ + /* if (!useGUI){ cerr << QObject::tr("Error: Graphical window cannot be displayed.").toStdString() << endl; exit(EXIT_FAILURE); - } + }*/ _main_window = NULL; _render_opengl = NULL; @@ -618,7 +618,8 @@ void Core::extract_times(const char *name) { void Core::launch_action(int state, void* arg) { - DrawTrace/*<Render_opengl>*/ buf; + DrawTrace buf; + QGLFormat format(QGL::HasOverlay); switch(state) { @@ -627,39 +628,52 @@ void Core::launch_action(int state, void* arg) { break; case _STATE_LAUNCH_GRAPHICAL_INTERFACE : + case _STATE_OPEN_FILE: - _main_window = new Interface_graphic(this);/* launch the window interface */ - Message::set_interface(_main_window);/* define which interface will receive messages */ - /* MOD */ - // _render_opengl = new Render_opengl_dl(this, _main_window); - _render_opengl = new Render_opengl(this, _main_window); - + if ( _STATE_OPEN_FILE == state) + message << QObject::tr("Opening the file: ").toStdString ()+_file_opened << Message::endi; - _main_window->bind_render_area((QGLWidget*)_render_opengl); + _main_window = new Interface_graphic (this);/* launch the window interface */ + Message::set_interface (_main_window);/* define which interface will receive messages */ - _is_window_displayed = true; - break; + // format.setOverlay(true); + _render_opengl = new Render_opengl (this, _main_window, format); - case _STATE_OPEN_FILE: - information(string("Opening the file: ")+_file_opened); - _main_window = new Interface_graphic(this);/* launch the window interface and open a file */ - Message::set_interface(_main_window);/* define which interface will receive messages */ + if ( NULL == _render_opengl){ + message << QObject::tr("Cannot allocate memory for an OpengGL instance").toStdString () << Message::ende; + break; + } - /* MOD */ - // _render_opengl = new Render_opengl_dl(this, _main_window); - _render_opengl = new Render_opengl(this, _main_window); + if (NULL == _render_opengl->context()){ + message << QObject::tr("Cannot allocate an OpengGL context").toStdString () << Message::ende; + break; + } + + if (false == _render_opengl->isValid()){ + message << QObject::tr("Invalid context: OpenGL is not supported on your system").toStdString () << Message::ende; + } + // if (false == _render_opengl->format().hasOverlay ()){ + // /* If no overlay was created, check the original format */ + + // if (false == _render_opengl->context()->requestedFormat().hasOverlay()) + // message << QObject::tr("No overlay format originally created").toStdString () << Message::endw; + // else + // message << QObject::tr("An overlay format was originally asked, but was not created").toStdString () << Message::endw; + // } + _main_window->bind_render_area((QGLWidget*)_render_opengl); - _main_window->opening_file(_file_opened);/* Must be called after binding the render area to the main window */ - - if(false==draw_trace(_file_opened, _DRAW_OPENGL)) - message << "Draw trace failed" << Message::ende; + if ( _STATE_OPEN_FILE == state){ + _main_window->opening_file(_file_opened);/* Must be called after binding the render area to the main window */ + + if(false==draw_trace(_file_opened, _DRAW_OPENGL)) + message << QObject::tr("Draw trace failed").toStdString () << Message::ende; + } _is_window_displayed = true; - break; case _STATE_OPEN_FILE_IN_AN_INTERVAL: diff --git a/src/render/Hook_event.cpp b/src/render/Hook_event.cpp index ab3d036006d4344be096cbb2b53605de5141e3c7..1eb0b26edb8e1c8149fba60dca4dd270e7703917 100644 --- a/src/render/Hook_event.cpp +++ b/src/render/Hook_event.cpp @@ -84,9 +84,9 @@ void Hook_event::updateRender(){ * **********************************/ -Hook_event::Hook_event(Render_opengl* render_instance, Core* core, QWidget *parent) - : QGLWidget(/*QGLFormat(QGL::HasOverlay),*/ parent){ - +Hook_event::Hook_event(Render_opengl* render_instance, Core* core, QWidget *parent, const QGLFormat& format) + : QGLWidget(format, parent){ + // GLenum glew_code; diff --git a/src/render/Hook_event.hpp b/src/render/Hook_event.hpp index 98dc2bafc23563dd619aad4ff2ab549d11048f71..e1373d84f177412712c427126a08a2e78e044c49 100644 --- a/src/render/Hook_event.hpp +++ b/src/render/Hook_event.hpp @@ -327,7 +327,7 @@ public: * \brief The constructor. * \param render_instance The instance of a drawing class. */ - Hook_event(Render_opengl* render_instance, Core* core, QWidget *parent); + Hook_event(Render_opengl* render_instance, Core* core, QWidget *parent, const QGLFormat& format); /*! * \brief The destructor diff --git a/src/render/Render_opengl.cpp b/src/render/Render_opengl.cpp index d53bd0521738b841a75c1624794b7258fc6f1f63..7629099d2941ae32561b34ef589857d3ca9cac39 100644 --- a/src/render/Render_opengl.cpp +++ b/src/render/Render_opengl.cpp @@ -79,8 +79,8 @@ const int Render_opengl::DRAWING_TIMER_DEFAULT = 10; * **********************************/ -Render_opengl::Render_opengl(Core* core, QWidget *parent) - : Hook_event(this, core, parent){ +Render_opengl::Render_opengl(Core* core, QWidget *parent, const QGLFormat& format) + : Hook_event(this, core, parent, format){ @@ -274,12 +274,8 @@ void Render_opengl::paintGL(){ } glPopMatrix(); - // glMatrixMode(GL_MODELVIEW); - // glLoadIdentity(); - glPushMatrix(); { - // glTranslated(0.0, Info::Container::y_max- 3*_ruler_height, 100.0);/* not accurate */ glTranslated(0.0, 0.0, 100.0);/* not accurate */ if (_mouse_pressed){ @@ -337,41 +333,12 @@ void Render_opengl::paintGL(){ message << tr("Render area : the following OpengGL error occured: ").toStdString() << (char *)gluErrorString(glerror) << Message::endw; - /* -} - -void Render_opengl::initializeOverlayGL(){ - cerr << __FILE__ << " " << __LINE__ << " init overlay" << endl; -} -void Render_opengl::resizeOverlayGL(int width, int height){ - cerr << __FILE__ << " " << __LINE__ << " resize overlay" << endl; -} - - -void Render_opengl::paintOverlayGL (){ - */ - - - - - - // cerr << __FILE__ << " " << __LINE__ << " PLOP" << endl; - // QPainter painter(this); - //painter.setPen(Qt::NoPen); - //painter.setBrush(QColor(125, 125, 150)); - //painter.drawRect(Info::Screen::width-210, Info::Screen::height-40, 200, 30); QFont arial_font = QFont("Arial", 10); qglColor(Qt::white);//QColor(0, 0, 0)); - - /* - painter.setRenderHint(QPainter::Antialiasing); - painter.setPen(Qt::white); - painter.setFont(QFont("Arial", 10)); - */ + /* Draw container text */ - const unsigned int texts_size = _texts.size(); for (unsigned int i=0 ; i<texts_size ; i++){ const QFontMetrics metric(arial_font); @@ -380,10 +347,6 @@ void Render_opengl::paintOverlayGL (){ render_to_screen_y( trace_to_render_y(_texts[i].y) + 0.5), text_elided, arial_font); - - // painter.drawText( render_to_screen_x(_texts[i].x * _x_scale_container_state/0.20), - // render_to_screen_y( trace_to_render_y(_texts[i].y) + 0.5),/* '+ 0.5' is used to center text vertically. */ - // _texts[i].value.c_str());/* prvent this, need to construct Qstring every frames for every texts! */ } /* Draw ruler text */ @@ -414,7 +377,7 @@ void Render_opengl::paintOverlayGL (){ arial_font); buf_txt.str(""); - buf_txt << render_to_trace_x(screen_to_render_x(_new_mouse_x));//(double)Ruler::get_common_part(Info::Render::_x_min_visible, coeff_prefix) << "--"; + buf_txt << Ruler::get_common_part_string(Info::Render::_x_min_visible, coeff_prefix) << "--"; renderText (render_to_screen_x( trace_to_render_x( @@ -423,9 +386,7 @@ void Render_opengl::paintOverlayGL (){ render_to_screen_y(3), buf_txt.str().c_str(), arial_font); - - // painter.setFont(QFont("Arial", 10)); arial_font.setPointSize(10); for (Element_pos i = Info::Render::_x_min_visible ; @@ -433,25 +394,13 @@ void Render_opengl::paintOverlayGL (){ i+=graduation_diff){ buf_txt.str("");/* flush the buffer */ - buf_txt << i;//Ruler::get_variable_part(i, coeff_prefix, 2); + buf_txt << Ruler::get_variable_part(i, coeff_prefix, 2); renderText (render_to_screen_x(trace_to_render_x(i)+1), render_to_screen_y(8), buf_txt.str().c_str(), arial_font); } - - - /* QFont font("Arial", 15); - font.setStyle(QFont::StyleOblique); - painter.setFont(font); - painter.setOpacity(0.5); - painter.drawText(Info::Screen::width-320, Info::Screen::height-10, "Rendering mode - work in progress"); - - */ - - - // painter.end(); } @@ -660,172 +609,48 @@ GLuint Render_opengl::draw_wait() { void Render_opengl::call_ruler(){ - //return; - - /* Now, draw ruler */ - // float common_part; - // float variable_part; Element_pos graduation_diff; Element_pos coeff_prefix; - // std::ostringstream buf_txt; const Element_pos offset_x = _default_entity_x_translate; const Element_pos offset_y = _ruler_y + _ruler_height+3.5; - // QLabel* ui; - // int count; - /* - QPainter painter(this); - - painter.setPen(Qt::white); - painter.setFont(QFont("Arial", 10)); - */ - // Update Info::Render::_x_min_visible and Info::Render::_x_max_visible values + update_visible_interval_value(); graduation_diff = Ruler::get_graduation_diff(Info::Render::_x_min_visible, Info::Render::_x_max_visible); coeff_prefix = Ruler::get_coeff_for_common_prefix(Info::Render::_x_min_visible, Info::Render::_x_max_visible); - /* - for (count = 0, - ui = Info::Render::_ui_render_min_value, - buf_txt.str(""),// flush the buffer - common_part = Ruler::get_common_part(Info::Render::_x_min_visible, coeff_prefix), - variable_part = Ruler::get_variable_part(Info::Render::_x_min_visible, coeff_prefix, 2) - ; - count!=2 - ; - count++, - ui = Info::Render::_ui_render_max_value, - buf_txt.str(""),// flush the buffer - common_part = Ruler::get_common_part(Info::Render::_x_max_visible, coeff_prefix), - variable_part = Ruler::get_variable_part(Info::Render::_x_max_visible, coeff_prefix, 2) - ){ - - buf_txt << "<b>"; - - if (common_part==0.0){ - - if (variable_part!=0.0){ - if (((float)floor(variable_part))==variable_part) - buf_txt << "0."; - - buf_txt << "</b>" << variable_part; - }else{ - buf_txt << "0"; - } - - }else{ - buf_txt << common_part << "</b>"; - - if (variable_part!=0.0) - buf_txt << variable_part; - } - - // painter.drawText(10,10, buf_txt.str().c_str()); - ui->setText(buf_txt.str().c_str()); - } - - painter.end(); */ - - - // if (Info::Render::_ui_render_min_value != NULL){ -// buf_txt.str("");/* flush the buffer */ -// common_part = Ruler::get_common_part(Info::Render::_x_min_visible, coeff_prefix); -// variable_part = Ruler::get_variable_part(Info::Render::_x_min_visible, coeff_prefix, 2); -// buf_txt << "<b>"; - -// if (common_part==0.0){ - - -// if (variable_part!=0.0){ -// if (((float)floor(variable_part))==variable_part) -// buf_txt << "0."; - -// buf_txt << "</b>" << variable_part; -// }else{ -// buf_txt << "0"; -// } - -// }else{ -// buf_txt << common_part << "</b>"; - -// if (variable_part!=0.0) -// buf_txt << variable_part; -// } - -// Info::Render::_ui_render_min_value->setText(buf_txt.str().c_str()); -// } -// if (Info::Render::_ui_render_max_value != NULL){ -// buf_txt.str("");/* flush the buffer */ -// buf_txt << "<b>" << Ruler::get_common_part(Info::Render::_x_max_visible, coeff_prefix) -// << "</b>" << Ruler::get_variable_part(Info::Render::_x_max_visible, coeff_prefix, 2); -// Info::Render::_ui_render_max_value->setText(buf_txt.str().c_str()); -// } - for (Element_pos i = Info::Render::_x_min_visible ; i < Info::Render::_x_max_visible ; i+=graduation_diff){ const Element_pos grad_div_by_5 = graduation_diff/5; for (Element_pos j = (i+grad_div_by_5) ; j<(i+graduation_diff) ; j+= grad_div_by_5){ draw_line( trace_to_render_x(j) + offset_x, offset_y , trace_to_render_x(j) + offset_x, 2+offset_y, _z_ruler); } - // glColor3d(1, 1, 0); + draw_line( trace_to_render_x(i) + offset_x, offset_y-1 , trace_to_render_x(i) + offset_x, 4+offset_y, _z_ruler); - - // buf_txt.str("");/* flush the buffer */ - //buf_txt << Ruler::get_variable_part(i, coeff_prefix, 2); - - /* Draw text with GLUT */ - //{ - - // glPushMatrix(); - /* painter.drawText(render_to_screen_x(trace_to_render_x(i)+1), - render_to_screen_y(4), - buf_txt.str().c_str());*/ - /* - glColor3d(1, 1, 1); - glRasterPos2f(trace_to_render_x(i)+1, - 4); - - float length = 0; - const unsigned int buf_text_size = buf_txt.str().length(); - for(unsigned int j = 0 ; j < buf_text_size ; j ++){ - const char letter = buf_txt.str().c_str()[j]; - glutBitmapCharacter(GLUT_BITMAP_HELVETICA_10, letter); - } - - // glPopMatrix(); - */ - - } - - glBegin(GL_QUADS); - { - glColor4d(0.0, 0.0, 1.0, 0.8); - glVertex3d(trace_to_render_x(Info::Render::_x_min_visible) , 0, _z_ruler_under ); - glVertex3d(trace_to_render_x(Info::Render::_x_min_visible) , 8, _z_ruler_under ); - glVertex3d(trace_to_render_x(Info::Render::_x_max_visible) , 8, _z_ruler_under ); - glVertex3d(trace_to_render_x(Info::Render::_x_max_visible) , 0, _z_ruler_under ); - } - glEnd(); - - glBegin(GL_QUADS); - { - glColor4d(0.0, 0.0, 0.0, 1.0); - glVertex3d(trace_to_render_x(Info::Render::_x_min_visible) , 0, _z_ruler_over ); - glVertex3d(trace_to_render_x(Info::Render::_x_min_visible) , 3, _z_ruler_over ); - glVertex3d(trace_to_render_x(Info::Render::_x_max_visible) , 3, _z_ruler_over ); - glVertex3d(trace_to_render_x(Info::Render::_x_max_visible) , 0, _z_ruler_over ); - } - glEnd(); - - //painter.setPen(Qt::NoPen); - //painter.setBrush(QColor(125, 125, 150)); - //painter.drawRect(Info::Screen::width-210, Info::Screen::height-40, 200, 30); - - // painter.end(); - + + glBegin(GL_QUADS); + { + glColor4d(0.0, 0.0, 1.0, 0.8); + glVertex3d(trace_to_render_x(Info::Render::_x_min_visible) , 0, _z_ruler_under ); + glVertex3d(trace_to_render_x(Info::Render::_x_min_visible) , 8, _z_ruler_under ); + glVertex3d(trace_to_render_x(Info::Render::_x_max_visible) , 8, _z_ruler_under ); + glVertex3d(trace_to_render_x(Info::Render::_x_max_visible) , 0, _z_ruler_under ); + } + glEnd(); + + glBegin(GL_QUADS); + { + glColor4d(0.0, 0.0, 0.0, 1.0); + glVertex3d(trace_to_render_x(Info::Render::_x_min_visible) , 0, _z_ruler_over ); + glVertex3d(trace_to_render_x(Info::Render::_x_min_visible) , 3, _z_ruler_over ); + glVertex3d(trace_to_render_x(Info::Render::_x_max_visible) , 3, _z_ruler_over ); + glVertex3d(trace_to_render_x(Info::Render::_x_max_visible) , 0, _z_ruler_over ); + } + glEnd(); + return; } @@ -894,17 +719,6 @@ void Render_opengl::draw_line(Element_pos x1, Element_pos y1, Element_pos x2, El } void Render_opengl::draw_circle(Element_pos /*x*/, Element_pos /*y*/, Element_pos /*z*/, Element_pos /*r*/){ - - /* Circle_ buf; - const Element_pos offset_x = -_default_entity_x_translate; - const Element_pos offset_y = -_ruler_y - _ruler_height; - - buf.x = x + offset_x; - buf.y = y + offset_y; - buf.z = z; - buf.r = r; - - _circles.push_back(buf);*/ } @@ -1027,30 +841,6 @@ void Render_opengl::end_draw(){ void Render_opengl::draw_stored_texts(){ - // glColor3d(1, 1, 1); -// for (unsigned int i=0 ; i<_texts.size() ; i++){ - -// glPushMatrix(); -// { - -// glRasterPos2f(_texts[i].x * _x_scale_container_state/0.20, /* 0.20 is the default value of _x_scale_container_state */ -// trace_to_render_y(_texts[i].y));//*_y_state_scale - _y_state_translate); -// // std::cout << __FILE__ << " " << __LINE__ << " " << _texts[i].x << std::endl; - -// float length = 0; -// const unsigned int buf_text_size =_texts[i].value.length(); -// // const int size_of_container = (const int)(20*_x_scale_container_state*Info::Render::width/Info::Container::x_max); -// for(unsigned int j = 0 ; j < buf_text_size ; j ++){ -// const char letter = _texts[i].value.c_str()[j]; -// /* length += glutBitmapWidth(GLUT_BITMAP_HELVETICA_10, letter); -// if(length > size_of_container){ -// break; -// }*/ -// glutBitmapCharacter(GLUT_BITMAP_HELVETICA_10, letter); -// } -// } -// glPopMatrix(); -// } } void Render_opengl::draw_stored_arrows(){ @@ -1131,21 +921,8 @@ void Render_opengl::draw_stored_circles(){ const unsigned int size = _circles.size(); - // std::cerr << __FILE__ << __LINE__<< " " << size << std::endl; - - // return;/* Stack overflow... Why? */ - for (unsigned int i=0 ; i<size ; i++){ - - - /* - time = _circles[i].time; - height = _circles[i].height; - container_height = _circles[i].container_height; - - */ - // std::cerr << __FILE__ << __LINE__<< " " << _circles[i].time << " " << _circles[i].height << std::endl; - + glPushMatrix(); { diff --git a/src/render/Render_opengl.hpp b/src/render/Render_opengl.hpp index 9f45c6f11f6211f8d933f8b3936229ae4b38d7d5..308eb79d75ca1fbc60c0d9cadca7c21a1468eb4b 100644 --- a/src/render/Render_opengl.hpp +++ b/src/render/Render_opengl.hpp @@ -182,7 +182,7 @@ public: /*! * \brief The default constructor */ - Render_opengl(Core* core, QWidget *parent); + Render_opengl(Core* core, QWidget *parent, const QGLFormat& format); /*! * \brief The destructor diff --git a/src/render/Ruler.cpp b/src/render/Ruler.cpp index 8c854735e49f6533c3ece5cc9251d4e08c409ba2..9547e9274a1171fe2e1c29a44585ed733b238c3e 100755 --- a/src/render/Ruler.cpp +++ b/src/render/Ruler.cpp @@ -175,14 +175,10 @@ Element_pos Ruler::get_coeff_for_common_prefix(Element_pos min, Element_pos max) /* TODO: use cmath::modf() */ float Ruler::get_common_part(const Element_pos n, const Element_pos coeff_for_common_prefix){ - const int common_part = floor(n*coeff_for_common_prefix); - const float common_part_without_coeff = common_part/coeff_for_common_prefix; + int common_part = floor(n*coeff_for_common_prefix); + float common_part_without_coeff = common_part/coeff_for_common_prefix; - /* std::cout << __FILE__ << " " << __LINE__ << " >> n:" << n << " coeff: " << coeff_for_common_prefix - << " common_part: " << common_part << " cpwc: " << common_part_without_coeff << std::endl;*/ - - if ( (floor(common_part_without_coeff) != common_part_without_coeff)/* there is a comma */ - )//&& floor(common_part_without_coeff) != 0 )/* and there is numbers before comma */ + if ( (floor(common_part_without_coeff) != common_part_without_coeff) )/* there is a comma */ return common_part_without_coeff; else return (float)common_part; @@ -192,75 +188,67 @@ float Ruler::get_variable_part(const Element_pos n, const Element_pos coeff_for_ const int common_part = floor( (n*coeff_for_common_prefix - floor(n*coeff_for_common_prefix))*pow(10, nb_digit_after_comma)); const float common_part_without_coeff = common_part/(coeff_for_common_prefix*pow(10, nb_digit_after_comma)); - if ( /*(floor(common_part_without_coeff) != common_part_without_coeff) */ /* there is a comma */ - /* &&*/ floor(common_part_without_coeff) != 0 )/* and there is numbers before comma */ + if ( floor(common_part_without_coeff) != 0 )/* and there is numbers before comma */ return common_part_without_coeff; else return (float)common_part; } -string Ruler::get_common_part_string(const Element_pos n, const Element_pos coeff_for_common_prefix){ - ostringstream buf_txt; - float n_with_coeff; +string Ruler::get_common_part_string(const Element_pos n, Element_pos coeff_for_common_prefix){ + int i, common_part; + Element_pos buf; + ostringstream buf_txt, result_txt; + string::reverse_iterator rit; + + /** + * + * For n = 10.2034 and coeff_for_common_prefix = 100, + * then common_part = 1020 + * + */ + common_part = floor(n*coeff_for_common_prefix); - n_with_coeff = n/coeff_for_common_prefix; buf_txt.str(""); + result_txt.str(""); + + /** + * First case: if n = 0.0234 and common_part is 0.023, + * Put "0.0" and after "23". (Otherwise, common_part will + * be equal to 23, ignoring "0.0"!) + */ + buf = n; + + if ( (buf != 0.0) && (floor(buf) == 0) ){ + result_txt << "0."; + buf *= 10; + } - if (coeff_for_common_prefix > 1){/* point is in variable part */ + while ( (buf != 0.0) && (floor(buf) == 0) ){ + result_txt << "0"; + buf *= 10; + } - float coeff; + for (i=0 ; common_part > 0 ; common_part = floor(common_part/10)){ + buf_txt << common_part%10; - coeff = coeff_for_common_prefix; - - /** - * For example 102.34 with common 1**.** - */ - buf_txt << floor(n_with_coeff); - /** - * buf_txt = "1" - */ - for (; - coeff > 1; - coeff /= 10){ - /** - * First loop: buf_txt = "1-" - * Second loop: buf_txt = "1--" - */ - buf_txt << "-"; - } - buf_txt << ".-"; - /** - * buf_txt = "1--.-" - */ - - }else if (coeff_for_common_prefix < 1){/* point is in common part */ - /** - * For example 10.234 with common 10.2** - */ - buf_txt << floor(n) << "."; - /** - * buf = "10"+"." - */ - buf_txt << floor(n)*coeff_for_common_prefix - n_with_coeff; - /** - * buf = "10."+10*10-102 = "10."+"2" = "10.2" - */ - buf_txt << "--"; - /** - * buf = "10.2--" - */ - - }else{/* point is between common and variable part */ - /** - * For example 102.34 with common 102.** - */ - buf_txt << floor(n) << ".--"; - /** - * buf_txt = "102.--" - */ + if (coeff_for_common_prefix < 1) + coeff_for_common_prefix *= 10.0; + else + coeff_for_common_prefix /= 10.0; + + if ( (coeff_for_common_prefix == 1.0) && (floor(common_part/10)>0) ) + buf_txt << ".";/* Add comma */ } + - return buf_txt.str(); + for ( rit=buf_txt.str().rbegin() ; rit < buf_txt.str().rend(); rit++ ) + result_txt << *rit; + + + return result_txt.str(); +} + +string Ruler::get_variable_part_string(const Element_pos n, const Element_pos coeff_for_common_prefix){ } diff --git a/src/render/Ruler.hpp b/src/render/Ruler.hpp index 2ecb71b44fa03e077b335c69ce73d63dfe7bb864..bede0dd80a7742849d63e6a0b09420909c228a06 100755 --- a/src/render/Ruler.hpp +++ b/src/render/Ruler.hpp @@ -97,7 +97,7 @@ public: * \return A float. The common part of n according to the common prefix coefficient got from the * Ruler::get_coeff_for_common_prefix() method. */ - static float get_common_part(const Element_pos n, const Element_pos coeff_for_common_prefix); + static float get_common_part(const Element_pos n, Element_pos coeff_for_common_prefix); /*! @@ -117,6 +117,7 @@ public: */ static float get_variable_part(const Element_pos n, const Element_pos coeff_for_common_prefix, const int nb_digit_after_comma); + static std::string get_variable_part_string(const Element_pos n, const Element_pos coeff_for_common_prefix); };