C++ demos: prepare infrastructure, add spheres_shadow.cc
rename Ray::a to Ray::o
KdNode::shapes changed to pointer and added to union together with *children (to save memory)
#ifndef IMAGE_H#define IMAGE_H#define IMG_GRAYSCALE 1#define IMG_RGB 3/* raw image */struct image { int pixel_size; /* should be 1 for grayscale and 3 for RGB*/ int width; int height; char *data;};int new_image(struct image **img, int width, int height, int pixelsize);int destroy_image(struct image **img);int save_png(const char *fname, struct image *img);#endif