void Fixel::load_image_buffer() { for (size_t dim = 0; dim < 3; ++dim) { ssize_t dim_size = fixel_vox.dim(dim); slice_fixel_indices[dim].resize (dim_size); slice_fixel_sizes[dim].resize (dim_size); slice_fixel_counts[dim].resize (dim_size, 0); } MR::Image::LoopInOrder loop (fixel_vox); Point<float> voxel_pos; for (auto l = loop (fixel_vox); l; ++l) { for (size_t f = 0; f != fixel_vox.value().size(); ++f) { if (fixel_vox.value()[f].value > value_max) value_max = fixel_vox.value()[f].value; if (fixel_vox.value()[f].value < value_min) value_min = fixel_vox.value()[f].value; } } for (loop.start (fixel_vox); loop.ok(); loop.next (fixel_vox)) { for (size_t f = 0; f != fixel_vox.value().size(); ++f) { header_transform.voxel2scanner (fixel_vox, voxel_pos); buffer_pos.push_back (voxel_pos); buffer_dir.push_back (fixel_vox.value()[f].dir); buffer_val.push_back (fixel_vox.value()[f].size); buffer_val.push_back (fixel_vox.value()[f].value); GLint point_index = buffer_pos.size() - 1; for (size_t dim = 0; dim < 3; ++dim) { slice_fixel_indices[dim][fixel_vox[dim]].push_back (point_index); slice_fixel_sizes[dim][fixel_vox[dim]].push_back(1); slice_fixel_counts[dim][fixel_vox[dim]]++; } voxel_to_indices_map[Point<int>(fixel_vox[0], fixel_vox[1], fixel_vox[2])].push_back(point_index); } } this->set_windowing (value_min, value_max); greaterthan = value_max; lessthan = value_min; }