15 #include <QtGui/QBitmap>
17 #include <qwt3d_color.h>
18 #include <qwt3d_plot.h>
27 Bar::Bar(
double rad,
double showColumn,
double showRow)
49 glEnable(GL_POLYGON_OFFSET_FILL);
50 glPolygonOffset(1, 1);
58 Qwt3D::GLStateBewarer sb(GL_LINE_SMOOTH,
true);
71 Qwt3D::RGBA mTo = (*plot->dataColor())(pos);
72 Qwt3D::RGBA mFrom = (*plot->dataColor())(pos.x, pos.y, minz);
76 if (((
int)(100 * pos.x) == (
int)(100 *
mShowColumn)) || ((
int)(100 * pos.y) == (
int)(100 *
mShowRow)))
77 glColor3d(0.71, 0.835, 1);
79 glColor4d(mTo.r, mTo.g, mTo.b, mTo.a);
82 glVertex3d(pos.x -
diag_, pos.y -
diag_, minz);
83 glVertex3d(pos.x +
diag_, pos.y -
diag_, minz);
84 glVertex3d(pos.x +
diag_, pos.y +
diag_, minz);
85 glVertex3d(pos.x -
diag_, pos.y +
diag_, minz);
87 if (((
int)(100 * pos.x) == (
int)(100 *
mShowColumn)) || ((
int)(100 * pos.y) == (
int)(100 *
mShowRow)))
88 glColor3d(0.71, 0.835, 1);
90 glColor4d(mTo.r, mTo.g, mTo.b, mTo.a);
92 glVertex3d(pos.x -
diag_, pos.y -
diag_, pos.z);
93 glVertex3d(pos.x +
diag_, pos.y -
diag_, pos.z);
94 glVertex3d(pos.x +
diag_, pos.y +
diag_, pos.z);
95 glVertex3d(pos.x -
diag_, pos.y +
diag_, pos.z);
97 glColor4d(mFrom.r, mFrom.g, mFrom.b, mFrom.a);
98 glVertex3d(pos.x -
diag_, pos.y -
diag_, minz);
99 glVertex3d(pos.x +
diag_, pos.y -
diag_, minz);
100 glColor4d(mTo.r, mTo.g, mTo.b, mTo.a);
101 glVertex3d(pos.x +
diag_, pos.y -
diag_, pos.z);
102 glVertex3d(pos.x -
diag_, pos.y -
diag_, pos.z);
104 glColor4d(mFrom.r, mFrom.g, mFrom.b, mFrom.a);
105 glVertex3d(pos.x -
diag_, pos.y +
diag_, minz);
106 glVertex3d(pos.x +
diag_, pos.y +
diag_, minz);
107 glColor4d(mTo.r, mTo.g, mTo.b, mTo.a);
108 glVertex3d(pos.x +
diag_, pos.y +
diag_, pos.z);
109 glVertex3d(pos.x -
diag_, pos.y +
diag_, pos.z);
111 glColor4d(mFrom.r, mFrom.g, mFrom.b, mFrom.a);
112 glVertex3d(pos.x -
diag_, pos.y -
diag_, minz);
113 glVertex3d(pos.x -
diag_, pos.y +
diag_, minz);
114 glColor4d(mTo.r, mTo.g, mTo.b, mTo.a);
115 glVertex3d(pos.x -
diag_, pos.y +
diag_, pos.z);
116 glVertex3d(pos.x -
diag_, pos.y -
diag_, pos.z);
118 glColor4d(mFrom.r, mFrom.g, mFrom.b, mFrom.a);
119 glVertex3d(pos.x +
diag_, pos.y -
diag_, minz);
120 glVertex3d(pos.x +
diag_, pos.y +
diag_, minz);
121 glColor4d(mTo.r, mTo.g, mTo.b, mTo.a);
122 glVertex3d(pos.x +
diag_, pos.y +
diag_, pos.z);
123 glVertex3d(pos.x +
diag_, pos.y -
diag_, pos.z);
129 glVertex3d(pos.x -
diag_, pos.y -
diag_, pos.z); glVertex3d(pos.x +
diag_, pos.y -
diag_, pos.z);
130 glVertex3d(pos.x -
diag_, pos.y +
diag_, pos.z); glVertex3d(pos.x +
diag_, pos.y +
diag_, pos.z);
135 glVertex3d(pos.x +
diag_, pos.y -
diag_, pos.z); glVertex3d(pos.x +
diag_, pos.y +
diag_, pos.z);
136 glVertex3d(pos.x -
diag_, pos.y -
diag_, pos.z); glVertex3d(pos.x -
diag_, pos.y +
diag_, pos.z);
138 glVertex3d(pos.x -
diag_, pos.y -
diag_, minz); glVertex3d(pos.x -
diag_, pos.y -
diag_, pos.z);
139 glVertex3d(pos.x +
diag_, pos.y -
diag_, minz); glVertex3d(pos.x +
diag_, pos.y -
diag_, pos.z);
140 glVertex3d(pos.x +
diag_, pos.y +
diag_, minz); glVertex3d(pos.x +
diag_, pos.y +
diag_, pos.z);
141 glVertex3d(pos.x -
diag_, pos.y +
diag_, minz); glVertex3d(pos.x -
diag_, pos.y +
diag_, pos.z);
148 glBegin(GL_LINE_LOOP);
149 glVertex3d(plot->hull().minVertex.x, plot->hull().minVertex.y, 0);
150 glVertex3d(plot->hull().maxVertex.x, plot->hull().minVertex.y, 0);
151 glVertex3d(plot->hull().maxVertex.x, plot->hull().maxVertex.y, 0);
152 glVertex3d(plot->hull().minVertex.x, plot->hull().maxVertex.y, 0);
168 glVertex3d(pos.x - w, pos.y, posZ + gap);
169 glVertex3d(pos.x + w, pos.y, posZ + gap);
170 glVertex3d(pos.x + w, pos.y, posZ + gap + h);
171 glVertex3d(pos.x - w, pos.y, posZ + gap + h);
173 glColor3d(0.4, 0, 0);
174 glBegin(GL_LINE_LOOP);
175 glVertex3d(pos.x - w, pos.y, posZ + gap);
176 glVertex3d(pos.x + w, pos.y, posZ + gap);
177 glVertex3d(pos.x + w, pos.y, posZ + gap + h);
178 glVertex3d(pos.x - w, pos.y, posZ + gap + h);
181 glVertex3d(pos.x, pos.y, posZ);
182 glVertex3d(pos.x, pos.y, posZ + gap);
void configure(double rad, double showColumn, double showRow)
void draw(Qwt3D::Triple const &, double w, double h)
void draw(Qwt3D::Triple const &)