comparison layer/TimeValueLayer.cpp @ 664:62330d542e1d

Do not pad edges of scale extent when auto-aligning to another layer
author Chris Cannam
date Tue, 16 Jul 2013 13:22:31 +0100
parents c6d705bf1672
children ab9fefdaa103
comparison
equal deleted inserted replaced
644:8ce18ec36fae 664:62330d542e1d
744 { 744 {
745 min = 0.0; 745 min = 0.0;
746 max = 0.0; 746 max = 0.0;
747 log = false; 747 log = false;
748 748
749 bool haveAutoAlignment = false;
750
749 if (shouldAutoAlign()) { 751 if (shouldAutoAlign()) {
750 752
751 if (!v->getValueExtents(m_model->getScaleUnits(), min, max, log)) { 753 if (!v->getValueExtents(m_model->getScaleUnits(), min, max, log)) {
752 min = m_model->getValueMinimum(); 754 min = m_model->getValueMinimum();
753 max = m_model->getValueMaximum(); 755 max = m_model->getValueMaximum();
754 } else if (log) { 756 } else {
755 LogRange::mapRange(min, max); 757 haveAutoAlignment = true;
758 if (log) {
759 LogRange::mapRange(min, max);
760 }
756 } 761 }
757 762
758 } else if (m_verticalScale == PlusMinusOneScale) { 763 } else if (m_verticalScale == PlusMinusOneScale) {
759 764
760 min = -1.0; 765 min = -1.0;
772 777
773 #ifdef DEBUG_TIME_VALUE_LAYER 778 #ifdef DEBUG_TIME_VALUE_LAYER
774 std::cerr << "TimeValueLayer::getScaleExtents: min = " << min << ", max = " << max << std::endl; 779 std::cerr << "TimeValueLayer::getScaleExtents: min = " << min << ", max = " << max << std::endl;
775 #endif 780 #endif
776 781
777 if (max == min) { 782 if (!haveAutoAlignment) {
778 max = max + 0.5; 783
779 min = min - 0.5; 784 if (max == min) {
780 } else { 785 max = max + 0.5;
781 float margin = (max - min) / 10.0; 786 min = min - 0.5;
782 max = max + margin; 787 } else {
783 min = min - margin; 788 float margin = (max - min) / 10.0;
784 } 789 max = max + margin;
785 790 min = min - margin;
786 #ifdef DEBUG_TIME_VALUE_LAYER 791 }
787 std::cerr << "TimeValueLayer::getScaleExtents: min = " << min << ", max = " << max << " (after adjustment)" << std::endl; 792
788 #endif 793 #ifdef DEBUG_TIME_VALUE_LAYER
794 std::cerr << "TimeValueLayer::getScaleExtents: min = " << min << ", max = " << max << " (after adjustment)" << std::endl;
795 #endif
796 }
789 } 797 }
790 798
791 int 799 int
792 TimeValueLayer::getYForValue(View *v, float val) const 800 TimeValueLayer::getYForValue(View *v, float val) const
793 { 801 {