Disabling the GR_RenderHook for Houdini 12.5 or later.
Newer versions of Houdini will use a GUI_PrimitiveHook (not included in the commit).
Fixing test for Houdini 12.5
Temporarily disabling bound test for live scenes.
Houdini 12.5 introduced a bug in the HoudiniScene::readBound calculation. They have implemented a recursive bound calculation for OBJ_SubNets, but are not correctly transforming the child bounds. We have informed them of the error and will re-enable the test if they fix the problem.
First version of ObjectPool class.
Adding python bindings and small fixes.
Binding ObjectPool::memoryUsage as a python function (instead of as a read-only property).
Updating ObjectPool tests for the memoryUsage function.
Adding ComputationCache template class ( based on LRUCache ).
Changing SceneCache to use ComputationCache.

It currently has hard coded limits for the sizes of the ComputationCaches.
It currently returns the objects stored in the cache without copying them as would be required by the interface of SceneInterface. but we are considering changing it to return ConstPtr in this branch.
Changing signature of store function to prevent non-const pointers be passed to it.
Fixed PTCParticleReader build.

When we switched to specifying includes with -isystem in the CXXFLAGS, the configure check for pointcloud.h started failing, and we stopped building PTCParticleReader. This is fixed by using CheckCXXHeader which uses CXXFLAGS rather than CheckHeader, which doesn't.

Adding PTCParticleReader back into the build revealed another problem - it didn't implement the fairly recent pure virtual positionPrimVarName() method and therefore couldn't be instantiated, so this commit also implements that method.
Reduced use of GL matrix stack.

We were experiencing crashes in the Maya SceneShape, because it creates IECoreGL::Scenes with a much higher depth of nesting than is contained in the actual cache itself. This meant we ran off the end of the GL matrix stack with unfortunate consequences. The real long term solution is to stop using the GL stack entirely (it's deprecated) as documented in the comments, but this commit just avoids calling glPushMatrix() when the matrix is identity. Because the SceneShape creates a large number of identity transforms (at least one per cache level as far as I can see), this is quite effective.
Merge pull request #55 from johnhaddon/ptcParticleReaderFix

Fixed PTCParticleReader build.
Merge pull request #54 from andrewkaufman/houdini12.5Compatibility

Houdini 12.5 Compatibility
Merge pull request #56 from johnhaddon/matrixStackConservation

Reduced use of GL matrix stack.
Chaning the python bindings for the ObjectPool.retrieve so that we duplicate the object from the cache to return a writable object to python.
Changing SceneInterface/SampledSceneInterface to return ConstPtr for attributes,transforms and objects.
Removed bogus include from Primitive.cpp.
Added typeName argument to registerRunTimeTyped().

This allows typenames prefixed with the module name to be passed, overriding the typename autogenerated from the class name. There could be an argument for just autogenerating names prefixed with the module name, but that has potential knock-on effects to existing code which is relying on the old names. It's also impossible within python to find the fully qualified path to a nested class, so in that case we'd still want the ability to specify a typename explicitly.

Also removed the deprecated baseClass argument, which was documented as being scheduled for removal in Cortex 6.
Merge pull request #57 from johnhaddon/registerRunTimeTyped

Added typeName argument to registerRunTimeTyped().