Skip to content

Commit 85f1fe3

Browse files
committed
Add random_int(min,max) utility function
1 parent ba9cd25 commit 85f1fe3

File tree

6 files changed

+12
-7
lines changed

6 files changed

+12
-7
lines changed

books/RayTracingTheNextWeek.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -767,7 +767,7 @@
767767

768768
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++
769769
bvh_node::bvh_node(hittable **l, int n, double time0, double time1) {
770-
int axis = int(random_double(0,3));
770+
int axis = random_int(0,2);
771771

772772
if (axis == 0)
773773
qsort(l, n, sizeof(hittable *), box_x_compare);
@@ -1045,7 +1045,7 @@
10451045

10461046
void permute(int *p, int n) {
10471047
for (int i = n-1; i > 0; i--) {
1048-
int target = int(random_double(0, i+1));
1048+
int target = random_int(0, i);
10491049
int tmp = p[i];
10501050
p[i] = p[target];
10511051
p[target] = tmp;

books/RayTracingTheRestOfYourLife.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2105,7 +2105,7 @@
21052105
}
21062106

21072107
vec3 hittable_list::random(const vec3& o) const {
2108-
int index = int(random_double() * list_size);
2108+
int index = random_int(0, list_size-1);
21092109
return list[ index ]->random(o);
21102110
}
21112111
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/TheNextWeek/bvh.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ int box_z_compare (const void * a, const void * b)
8888
}
8989

9090
bvh_node::bvh_node(hittable **l, int n, double time0, double time1) {
91-
int axis = int(random_double(0,3));
91+
int axis = random_int(0,2);
9292

9393
if (axis == 0)
9494
qsort(l, n, sizeof(hittable *), box_x_compare);

src/TheRestOfYourLife/hittable_list.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ double hittable_list::pdf_value(const vec3& o, const vec3& v) const {
3737
}
3838

3939
vec3 hittable_list::random(const vec3& o) const {
40-
int index = int(random_double() * list_size);
41-
return list[ index ]->random(o);
40+
int index = random_int(0, list_size-1);
41+
return list[ index ]->random(o);
4242
}
4343

4444

src/common/perlin.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ static vec3* perlin_generate() {
7878

7979
void permute(int *p, int n) {
8080
for (int i = n-1; i > 0; i--) {
81-
int target = int(random_double()*(i+1));
81+
int target = random_int(0,i);
8282
int tmp = p[i];
8383
p[i] = p[target];
8484
p[target] = tmp;

src/common/rtweekend.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,11 @@ inline double random_double(double min, double max) {
4343
return min + (max-min)*random_double();
4444
}
4545

46+
inline int random_int(int min, int max) {
47+
// Returns a random integer in [min,max].
48+
return static_cast<int>(random_double(min, max+1));
49+
}
50+
4651
// Common Headers
4752

4853
#include "common/ray.h"

0 commit comments

Comments
 (0)