gsoc 2013 branch soc-2013-cycles_volume
Merge from trunk, up to r57615.
=== OpenVDB 1.1.1 added ===

Necessary CMakeLists.txt files edited and created, and core OpenVDB files added to extern/openvdb. 

Although probably platform-specific, I needed to add macro definitions to extern\openvdb\internal\openvdb\math\Coord.h and extern\openvdb\internal\openvdb\io\Compression.h for everything to compile on VS2008. Will revisit this at a more appropriate time.

A more detailed description of the process will be available here: http://wiki.blender.org/index.php/User:Jehuty/GSoC_2013/Discussions/Compiling_OpenVDB
Merge from trunk, r57616 through r57877.
- added tbb lib to macros.cmake;
- edited root CMakeLists.txt to add internal subdir for OPENVDB_INCLUDE_DIRS;
- removed #define ZLIB_WINAPI from extern/openvdb/internal/openvdb/io/Compression.h, which was causing conflicts with OpenEXR's IlmImf.h (which I assume already defines this).
- added preprocessor guard in openvdb/internal/openvdb/math/Coord.h, so #define NOMINMAX is specific to Windows;
- added extern_openvdb lib to intern/cycles/CMakeLists.txt;
- included openvdb.h in osl/osl_services.h, and called one of its methods to ensure it's working;
- added extern_openvdb to creator/CMakeLists.txt;
- Merging from trunk, r57878 through r58236;
- added early versions of OpenVDBVolume, OpenVDBUtil and OpenVDBVolumeAccessor to openvdb_volume.h;
- added a version of vdb_print as an executable target of /cycles/app to aid in testing;
- changed root CMakeLists.txt so OpenVDB would compile on Mac OS X;
- moved cycles_openvdb_test out of cycles/app since most internal dependencies are not shared between them, to simplify compilation;
- removed -fno-rtti compilation flag since typeid is used;
- re-ordered includes to cause the recently added tbb dependency to be added first, since OIIO has its own lite version of tbb, causing many symbols to remain undefined;
- Added textures folder under cycles/kernel, and moved the vdb volume class to this directory.
- Merged trunk, up to revision 58632.
- added methods to check if texture is a gdb file;
- cleaned up the files after moving the volume class to cycles/kernel/textures from cycles/kernel/osl;
- added the library "cycles_kernel_textures" to build target;
- isolated OSL Services from VDB Volumes by adding the class VDBTextureSystem to hold API;
- added a map to keep track of open volume files;
- changed memory allocation of both VDBTextureSystem and each VDBVolumeFile stored in the VDBTextureSystem's map to use smart pointers;
 - implemented naive interpolation for texture lookup (nearest neighbor);
- merge from trunk, up to r59211.
- removed unused functions;
- added snippet to allow for single thread viewport preview.
- added error handling for when vdb file can't be opened;
- minor corrections
 - added grid selection: if a grid is specified by name in OIIO's TextureOpt, we search for it, and return false in the lookup if it isn't found; if it isn't specified by name, we take the first grid in the file;
 - code reorganization: code was split in more files, separating the utility functions from the VDBVolumeFile struct;
 - initial version of a templated lookup method for compatibility with any vdb grid type.
- added templated lookup, hidden behind the new VDBAccessor class; had to move VDBVolumeFile definition to avoid circular reference;