From d847a6b7669cad586495dedee56d747e7788612d Mon Sep 17 00:00:00 2001 From: Thibault Soucarre <thibault.soucarre@inria.fr> Date: Tue, 24 Jun 2014 15:49:05 +0000 Subject: [PATCH] change position calculation in browse_entities --- src/render/GanttDiagram.hpp | 2 +- src/trace/DrawTrace.hpp | 21 +++++++++++---------- src/trace/DrawTree.hpp | 12 ++++++------ 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/render/GanttDiagram.hpp b/src/render/GanttDiagram.hpp index 81f2581b..4dee6841 100644 --- a/src/render/GanttDiagram.hpp +++ b/src/render/GanttDiagram.hpp @@ -228,7 +228,7 @@ public: trace_to_render_y(_containers[i].y),// * _y_state_scale*(_render_height-_ruler_height)/Info::Container::y_max) - _y_state_translate + _ruler_y + _ruler_height, _z_container, _containers[i].w * (Info::Render::width/Info::Container::x_max)*_x_scale_container_state, - _containers[i].h * _y_state_scale*(Info::Render::height-_ruler_height)/Info::Container::y_max); + _containers[i].h * _y_state_scale*(Info::Render::height-_ruler_height)/Info::Container::y_max); } // std::cout << __FILE__ << " ~ " << __LINE__ << " " << Info::Container::y_max << " " << Info::Container::y_min << std::endl; diff --git a/src/trace/DrawTrace.hpp b/src/trace/DrawTrace.hpp index eb881d74..96fc6892 100644 --- a/src/trace/DrawTrace.hpp +++ b/src/trace/DrawTrace.hpp @@ -332,15 +332,17 @@ public: _entity_containers.push_back(container); } - // Store the position to draw links - _container_positions[container] = y/(_container_height + _container_v_space) /*+ 7 * _container_v_space*/;//position; // First line after children - _container_sizes[container] = h/(_container_height + _container_v_space);//size; // First line after children // Use one line for each variable if (container->get_variable_number() > 0) { _variable_containers.push_back(container); h += (_container_height + _container_v_space) * container->get_variable_number(); } + + // Store the position to draw links + _container_positions[container] = y; + _container_sizes[container] = h; + h -= _container_v_space; if (h < _container_height) // Minimum size @@ -379,7 +381,6 @@ public: template<class T> inline void browse_entities(T* draw_object, double zoom, Interval* interval, std::vector<const Container *> *set_container) { ////////////////////////////////////////////////////////// - std::cout << "browse entities" << std::endl; const Container *container; StateChange::Tree *state_tree; Event::Tree *event_tree; @@ -388,7 +389,7 @@ public: const std::map<VariableType *, Variable *> *variable_map; Variable *var; const std::list<std::pair<Date, Double> > *variable_values; - int position; + Element_pos position; const Color *color; std::map<std::string, Value *>::const_iterator field; Element_pos lvl_zoom; @@ -408,7 +409,7 @@ public: if(is_in_set(*c,set_container)){ container = *c; - position = (int)_container_positions[container] + _container_sizes[container] - 1; + position = _container_positions[container] + _container_sizes[container] - (_container_height + _container_v_space); state_tree = container->get_states(); event_tree = container->get_events(); @@ -511,7 +512,7 @@ public: if(is_in_set(*c,set_container)){ container = *c; - position = (int)_container_positions[container] + _container_sizes[container]; + position = _container_positions[container] + _container_sizes[container]; // Browse variables variable_map = container->get_variables(); @@ -563,7 +564,7 @@ public: */ template<class T> inline void draw_variable_value(T *draw_object, double time, double value, int position) { - Element_pos y = (position+1)*(_container_height+_container_v_space) - _container_v_space/2 - + Element_pos y = position + (_container_height+_container_v_space) - _container_v_space/2 - value*_container_height; draw_object->draw_counter(time, y); } @@ -587,8 +588,8 @@ public: double srcsize = _container_sizes[link->get_source()]; double dstsize = _container_sizes[link->get_destination()]; - Element_pos y1 = (srcpos + 0.5 * srcsize)*(_container_height+_container_v_space); - Element_pos y2 = (dstpos + 0.5 * dstsize)*(_container_height+_container_v_space); + Element_pos y1 = (srcpos + 0.5 * srcsize);//*(_container_height+_container_v_space); + Element_pos y2 = (dstpos + 0.5 * dstsize);//*(_container_height+_container_v_space); if (color != NULL) draw_object->draw_arrow(starttime, endtime, y1, y2, color->get_red(), color->get_green(), color->get_blue()); diff --git a/src/trace/DrawTree.hpp b/src/trace/DrawTree.hpp index 1458e981..0dbb5012 100644 --- a/src/trace/DrawTree.hpp +++ b/src/trace/DrawTree.hpp @@ -67,9 +67,9 @@ template <typename E> class BinaryTree; template<class D, class E> class DrawTree { private: - D *_draw_object; - int _position; - double _min_size; + D * _draw_object; + Element_pos _position; + double _min_size; Element_pos _container_height; Element_pos _container_v_space; @@ -81,7 +81,7 @@ public: /*! *\brief Default constructor */ - DrawTree(D *draw_object, int position, double min_size, + DrawTree(D *draw_object, Element_pos position, double min_size, Element_pos container_height, Element_pos container_v_space, Element_pos state_height, Element_pos state_v_space): _draw_object(draw_object), _position(position), _min_size(min_size), @@ -120,7 +120,7 @@ public: * \param b Blue value of the state color */ inline void draw_state(double starttime, double endtime, double r, double g, double b) { - Element_pos y = _position*(_container_height+_container_v_space) + _container_v_space/2; + Element_pos y = _position + _container_v_space/2; _draw_object->draw_state(starttime, endtime, y, _state_height, r, g, b); } @@ -133,7 +133,7 @@ public: * \param b The blue component of the color */ inline void draw_event(double time, double r, double g, double b) { - Element_pos y = _position*(_container_height+_container_v_space) + _container_v_space/2; + Element_pos y = _position + _container_v_space/2; _draw_object->draw_event(time, y, _state_height, r, g, b); } -- GitLab