BinnerAxis.cxx
Go to the documentation of this file.
1 
12 //inconsistent dll
13 #ifdef _MSC_VER
14 #include "msdevstudio/MSconfig.h"
15 #endif
16 
17 #include "BinnerAxis.h"
18 
19 using std::vector;
20 using std::string;
21 
22 using namespace hippodraw;
23 
24 int BinnerAxis::s_num_bins = 50;
25 double BinnerAxis::s_bin_factor = 0.75;
26 
27 BinnerAxis::BinnerAxis ( const char * name )
28  : m_name ( name ),
29  m_dragging ( false ),
30  m_num_bins ( s_num_bins ),
31  m_range( 0.0, 50.0 ),
32  m_offset( 0.0 ),
33  m_width ( -1.0 )
34 {
35 }
36 
38  : m_name ( binner.m_name ),
39  m_dragging ( false ),
40  m_num_bins( binner.m_num_bins ),
41  m_range ( binner.m_range ),
42  m_offset ( binner.m_offset ),
43  m_width ( binner.m_width )
44 {
45 }
46 
48 {
49 }
50 
51 const string &
53 name () const
54 {
55  return m_name;
56 }
57 
58 bool
60 {
61  return false;
62 }
63 
64 double
66 {
67  return m_range.low();
68 }
69 
70 double
72 {
73  return m_range.high();
74 }
75 
76 const Range &
78 getRange() const
79 {
80  return m_range;
81 }
82 
83 int
85 {
86  return m_num_bins;
87 }
88 
89 void
90 BinnerAxis::setStartRange ( bool dragging ) const
91 {
92  if ( m_dragging == false ) {
94  }
95 
96  m_dragging = dragging;
97 }
98 
99 void
100 BinnerAxis::setStartWidth ( bool dragging ) const
101 {
102  if ( m_dragging == false ) {
104  }
105 
106  m_dragging = dragging;
107 }
108 
109 
110 const vector< double > & BinnerAxis::binEdges ()
111 {
112 
113  if( m_bin_edges.size() == 0 )
114  {
115  m_bin_edges.resize( m_num_bins + 1);
116 
117  m_bin_edges[0] = m_range.low();
118 
119  for( int i = 0; i < m_num_bins; i ++ )
120  m_bin_edges[i] = m_bin_edges[i-1] + axisBinWidth( i );
121 
122  m_bin_edges[ m_num_bins + 1 ] = m_range.high();
123  }
124 
125  return m_bin_edges;
126 }
127 
128 double
130 calcBinWidth ( int parm, bool dragging ) const
131 {
132  setStartWidth ( dragging );
133 
134  double multiplier = ( 50 - parm ) / 50.0;
135  int num_start = getNob ( m_width_start );
136  if ( num_start == 1 ) {
137  multiplier *= 4.0;
138  }
139  double num_new = num_start + num_start * multiplier;
140 
141  num_new = std::max ( 1.0, num_new );
142  m_num_bins = static_cast < int > ( num_new );
143  double new_width = calcWidthParm ( m_num_bins );
144 
145  return new_width;
146 }
147 

Generated for HippoDraw Class Library by doxygen