mirror of
https://github.com/overte-org/overte.git
synced 2025-08-07 17:30:37 +02:00
Fix warning and simplify encodeRandomOrder.
This commit is contained in:
parent
3b4ac91d60
commit
41b01dbaed
1 changed files with 2 additions and 2 deletions
|
@ -1094,14 +1094,14 @@ const int ORDER_ELEMENT_MASK = (1 << ORDER_ELEMENT_BITS) - 1;
|
||||||
|
|
||||||
int MetavoxelVisitor::encodeRandomOrder() {
|
int MetavoxelVisitor::encodeRandomOrder() {
|
||||||
// see http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_.22inside-out.22_algorithm
|
// see http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_.22inside-out.22_algorithm
|
||||||
int order;
|
int order = 0;
|
||||||
int randomValues = rand();
|
int randomValues = rand();
|
||||||
for (int i = 0, iShift = 0; i < MetavoxelNode::CHILD_COUNT; i++, iShift += ORDER_ELEMENT_BITS) {
|
for (int i = 0, iShift = 0; i < MetavoxelNode::CHILD_COUNT; i++, iShift += ORDER_ELEMENT_BITS) {
|
||||||
int j = (randomValues >> iShift) % (i + 1);
|
int j = (randomValues >> iShift) % (i + 1);
|
||||||
int jShift = j * ORDER_ELEMENT_BITS;
|
int jShift = j * ORDER_ELEMENT_BITS;
|
||||||
if (j != i) {
|
if (j != i) {
|
||||||
int jValue = (order >> jShift) & ORDER_ELEMENT_MASK;
|
int jValue = (order >> jShift) & ORDER_ELEMENT_MASK;
|
||||||
order = (order & ~(ORDER_ELEMENT_MASK << iShift)) | (jValue << iShift);
|
order |= (jValue << iShift);
|
||||||
}
|
}
|
||||||
order = (order & ~(ORDER_ELEMENT_MASK << jShift)) | (i << jShift);
|
order = (order & ~(ORDER_ELEMENT_MASK << jShift)) | (i << jShift);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue