Ok, I've tidied up the headers which was useful but ultimatly didn't fix the problem. So now I've removed this hack:
Code:
typedef Volume<VoxelType> VolumeOfVoxelType; //Workaround for GCC/VS2010 differences.
//class Sampler : public VolumeOfVoxelType::template Sampler< RawVolume<VoxelType> >
Which allowed it to compile on both Visual Studio and GCC and replaced it with the preprocessor:
Code:
#if defined(_MSC_VER)
class Sampler : public Volume<VoxelType>::Sampler< RawVolume<VoxelType> > //This line works on VS2010
#else
class Sampler : public Volume<VoxelType>::Sampler Nested< RawVolume<VoxelType> > //This line works on GCC
#endif
As far as I can tell it seems to work ok now.
Feel free to give it a go - but be warned that I did also notice the VolumeResampler example is broken in Git master (it generates some crazy geometry).