1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
....................
cv::Vec3f position_to_vec3f(int position) {
cv::Vec3f item;
item[0] = (float)(position % 256) / 256.0f;
item[1] = (float)((position >> 8) % 256) / 256.0f;
item[2] = (float)((position >> 16) % 256) / 256.0f;
return item;
}
..................
std::vector<Vec3f> color_position(vertices_.size());
for_each(color_position.begin(), color_position.end(), [&](Vec3f &item) {
item = position_to_vec3f(position_index);
position_index++;
});
position_color_buffer_.create();
position_color_buffer_.setUsagePattern(QOpenGLBuffer::StaticDraw);
position_color_buffer_.bind();
position_color_buffer_.allocate(
color_position.data(), (int)color_position.size() * sizeof(Vec3f)); |
Partager