ColorSymbolPointRep.cxx
Go to the documentation of this file.
1 
12 // For truncation warning
13 #ifdef _MSC_VER
14 #include "msdevstudio/MSconfig.h"
15 #endif
16 
17 #include "ColorSymbolPointRep.h"
18 
19 #include "colorreps/BinToColor.h"
22 #include "datasrcs/DataSource.h"
23 #include "graphics/ViewBase.h"
25 
26 #include <cassert>
27 
28 using namespace hippodraw;
29 
30 using std::vector;
31 
34  : SymbolPointRep ( symbol, size )
35 {
37  m_color_gen = factory -> create ( "Rainbow" );
38  m_name = "ColorSymbol"; // need to override what base class did
39 }
40 
42  : SymbolPointRep ( )
43 {
45  m_color_gen = factory -> create ( "Rainbow" );
46  m_name = "ColorSymbol"; // need to override what base class did
47 }
48 
50  : SymbolPointRep ( rep ),
51  m_color_gen ( rep.m_color_gen->clone () )
52 {
53 }
54 
56 {
57 }
58 
60 {
61  return new ColorSymbolPointRep( *this );
62 }
63 
64 const BinToColor *
67 {
68  return m_color_gen;
69 }
70 
71 void
74 {
75  delete m_color_gen;
76  m_color_gen = btc;
77 }
78 
79 namespace dp = hippodraw::DataPoint3DTuple;
80 
81 void
84  TransformBase * transform,
85  ViewBase * view )
86 {
87  m_x.clear ();
88  m_y.clear ();
89  m_colors.clear ();
90 
91  unsigned int size = ntuple -> rows ();
92  const BinaryTransform * bt
93  = dynamic_cast < const BinaryTransform * > ( transform );
94 
95  SymbolPointRep::beginPlot ( size, bt, view );
96  const Range & range = view -> getRange ( Axes::Z );
97  double high = range.high();
98  double low = range.low();
99 
100  bt -> transformZ ( high );
101  bt -> transformZ ( low );
102 
103  Range newrange ( low, high, range.pos() );
104 
105  // This needs to be done before we quit.
106  m_color_gen->setRange ( newrange );
107 
108  if ( size == 0 ) return;
109 
110  m_x.reserve ( size );
111  m_y.reserve ( size );
112  m_colors.reserve ( size );
113 
114  for ( unsigned int i = 0; i < size; i++ ) {
115  const vector < double > & row = ntuple -> getRow ( i );
116 
117  double value = row [ dp::Z ];
118 
119  if ( range.includes ( value ) == false ) continue;
120 
121 
122  const Range & limit_z = bt -> limitZ ();
123  bool retval = limit_z.includes ( value );
124  if ( retval == false ) continue;
125  retval = drawProjectedValue ( i, ntuple, bt, view );
126  if ( retval == false ) continue;
127 
128  bt -> transformZ ( value );
129  Color color;
130  m_color_gen -> doubleToColor ( value, color );
131  m_colors.push_back ( color );
132  }
133  const BinaryTransform * bint
134  = dynamic_cast < const BinaryTransform * > ( transform );
135 
136  bint -> transform (m_x, m_y);
137  view -> drawPoints ( m_x, m_y, m_colors, m_plot_symbol, m_size );
138 
139 }
140 
141 bool
144 {
145  return false;
146 }

Generated for HippoDraw Class Library by doxygen