From cb0a746b6f703e7d7708022b6e22d0844f48d264 Mon Sep 17 00:00:00 2001 From: Matt Williams Date: Sun, 22 May 2011 21:32:02 +0200 Subject: [PATCH 1/3] Update include paths for bindings to new layout. --- library/bindings/CMakeLists.txt | 3 ++- library/bindings/CubicSurfaceExtractor.i | 4 ++-- library/bindings/CubicSurfaceExtractorWithNormals.i | 4 ++-- library/bindings/PolyVoxCore.i | 4 ++-- library/bindings/SimpleVolume.i | 13 +++++++++++++ library/bindings/SimpleVolumeSampler.i | 9 +++++++++ library/bindings/SurfaceExtractor.i | 4 ++-- library/bindings/Volume.i | 13 ------------- library/bindings/VolumeSampler.i | 9 --------- 9 files changed, 32 insertions(+), 31 deletions(-) create mode 100644 library/bindings/SimpleVolume.i create mode 100644 library/bindings/SimpleVolumeSampler.i delete mode 100644 library/bindings/Volume.i delete mode 100644 library/bindings/VolumeSampler.i diff --git a/library/bindings/CMakeLists.txt b/library/bindings/CMakeLists.txt index dc52cba1..758929eb 100644 --- a/library/bindings/CMakeLists.txt +++ b/library/bindings/CMakeLists.txt @@ -4,9 +4,10 @@ if(SWIG_FOUND) find_package(PythonLibs) include_directories(${PYTHON_INCLUDE_PATH}) - include_directories(${PolyVoxCore_SOURCE_DIR}/include) + include_directories(${PolyVoxCore_SOURCE_DIR}/include ${PolyVoxCore_SOURCE_DIR}/include/PolyVoxCore) set(CMAKE_SWIG_FLAGS "") + add_definitions(-DSWIG) set_source_files_properties(PolyVoxCore.i PROPERTIES CPLUSPLUS ON) swig_add_module(PolyVoxCore python PolyVoxCore.i) diff --git a/library/bindings/CubicSurfaceExtractor.i b/library/bindings/CubicSurfaceExtractor.i index 80569718..3a604d94 100644 --- a/library/bindings/CubicSurfaceExtractor.i +++ b/library/bindings/CubicSurfaceExtractor.i @@ -1,11 +1,11 @@ %module CubicSurfaceExtractor %{ -#include "VolumeSampler.h" +#include "SimpleVolume.h" #include "Array.h" #include "CubicSurfaceExtractor.h" %} -%include "VolumeSampler.h" +%include "SimpleVolume.h" %include "Array.h" %include "CubicSurfaceExtractor.h" diff --git a/library/bindings/CubicSurfaceExtractorWithNormals.i b/library/bindings/CubicSurfaceExtractorWithNormals.i index 7addb87c..93d778cb 100644 --- a/library/bindings/CubicSurfaceExtractorWithNormals.i +++ b/library/bindings/CubicSurfaceExtractorWithNormals.i @@ -1,11 +1,11 @@ %module CubicSurfaceExtractorWithNormals %{ -#include "VolumeSampler.h" +#include "SimpleVolume.h" //#include "CubicSurfaceExtractor.h" #include "CubicSurfaceExtractorWithNormals.h" %} -%include "VolumeSampler.h" +%include "SimpleVolume.h" //%include "CubicSurfaceExtractor.h" %include "CubicSurfaceExtractorWithNormals.h" diff --git a/library/bindings/PolyVoxCore.i b/library/bindings/PolyVoxCore.i index 9876b812..a25eec1d 100644 --- a/library/bindings/PolyVoxCore.i +++ b/library/bindings/PolyVoxCore.i @@ -21,13 +21,13 @@ %include "Density.i" %include "Vector.i" %include "Region.i" -%include "Volume.i" +%include "SimpleVolume.i" %include "TypeDef.i" //%include "SubArray.i" //%include "Array.i" %include "VertexTypes.i" %include "SurfaceMesh.i" -%include "VolumeSampler.i" +%include "SimpleVolumeSampler.i" %include "SurfaceExtractor.i" %include "CubicSurfaceExtractor.i" %include "CubicSurfaceExtractorWithNormals.i" diff --git a/library/bindings/SimpleVolume.i b/library/bindings/SimpleVolume.i new file mode 100644 index 00000000..2e2f7f2f --- /dev/null +++ b/library/bindings/SimpleVolume.i @@ -0,0 +1,13 @@ +%module SimpleVolume +%{ +#include "Material.h" +#include "Density.h" +#include "SimpleVolume.h" +%} + +%include "Material.h" +%include "Density.h" +%include "SimpleVolume.h" + +%template(SimpleVolumeMaterial8) PolyVox::SimpleVolume; +%template(SimpleVolumeDensity8) PolyVox::SimpleVolume; \ No newline at end of file diff --git a/library/bindings/SimpleVolumeSampler.i b/library/bindings/SimpleVolumeSampler.i new file mode 100644 index 00000000..a48d52bf --- /dev/null +++ b/library/bindings/SimpleVolumeSampler.i @@ -0,0 +1,9 @@ +%module SimpleVolumeSampler +%{ +#include "SimpleVolume.h" +%} + +%include "SimpleVolume.h" + +%template(SimpleVolumeSamplerMaterial8) PolyVox::SimpleVolumeSampler; +%template(SimpleVolumeSamplerDensity8) PolyVox::SimpleVolumeSampler; \ No newline at end of file diff --git a/library/bindings/SurfaceExtractor.i b/library/bindings/SurfaceExtractor.i index 441942eb..81ff4797 100644 --- a/library/bindings/SurfaceExtractor.i +++ b/library/bindings/SurfaceExtractor.i @@ -1,10 +1,10 @@ %module SurfaceExtractor %{ -#include "VolumeSampler.h" +#include "SimpleVolume.h" #include "SurfaceExtractor.h" %} -%include "VolumeSampler.h" +%include "SimpleVolume.h" %include "SurfaceExtractor.h" %template(SurfaceExtractorMaterial8) PolyVox::SurfaceExtractor; diff --git a/library/bindings/Volume.i b/library/bindings/Volume.i deleted file mode 100644 index b6ac04b1..00000000 --- a/library/bindings/Volume.i +++ /dev/null @@ -1,13 +0,0 @@ -%module Volume -%{ -#include "Material.h" -#include "Density.h" -#include "Volume.h" -%} - -%include "Material.h" -%include "Density.h" -%include "Volume.h" - -%template(VolumeMaterial8) PolyVox::Volume; -%template(VolumeDensity8) PolyVox::Volume; \ No newline at end of file diff --git a/library/bindings/VolumeSampler.i b/library/bindings/VolumeSampler.i deleted file mode 100644 index 3e743065..00000000 --- a/library/bindings/VolumeSampler.i +++ /dev/null @@ -1,9 +0,0 @@ -%module VolumeSampler -%{ -#include "VolumeSampler.h" -%} - -%include "VolumeSampler.h" - -%template(VolumeSamplerMaterial8) PolyVox::VolumeSampler; -%template(VolumeSamplerDensity8) PolyVox::VolumeSampler; \ No newline at end of file From fc3682caa6fa2a83b3308a7c069e69973147e0e3 Mon Sep 17 00:00:00 2001 From: Matt Williams Date: Sun, 22 May 2011 21:40:26 +0200 Subject: [PATCH 2/3] Add 'typename' to please GCC See http://stackoverflow.com/questions/610245/where-and-why-do-i-have-to-put-template-and-typename-on-dependent-names/613132#613132 --- .../include/PolyVoxCore/CubicSurfaceExtractor.inl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/library/PolyVoxCore/include/PolyVoxCore/CubicSurfaceExtractor.inl b/library/PolyVoxCore/include/PolyVoxCore/CubicSurfaceExtractor.inl index efc46652..d347e190 100644 --- a/library/PolyVoxCore/include/PolyVoxCore/CubicSurfaceExtractor.inl +++ b/library/PolyVoxCore/include/PolyVoxCore/CubicSurfaceExtractor.inl @@ -67,7 +67,7 @@ namespace PolyVox m_vecQuads[NegativeZ].resize(m_regSizeInVoxels.getUpperCorner().getZ() - m_regSizeInVoxels.getLowerCorner().getZ() + 2); m_vecQuads[PositiveZ].resize(m_regSizeInVoxels.getUpperCorner().getZ() - m_regSizeInVoxels.getLowerCorner().getZ() + 2); - VolumeType::Sampler volumeSampler(m_volData); + typename VolumeType::Sampler volumeSampler(m_volData); Quad quad; for(int32_t z = m_regSizeInVoxels.getLowerCorner().getZ(); z <= m_regSizeInVoxels.getUpperCorner().getZ() + 1; z++) @@ -220,8 +220,8 @@ namespace PolyVox while(performQuadMerging(listQuads)){} } - std::list::iterator iterEnd = listQuads.end(); - for(std::list::iterator quadIter = listQuads.begin(); quadIter != iterEnd; quadIter++) + typename std::list::iterator iterEnd = listQuads.end(); + for(typename std::list::iterator quadIter = listQuads.begin(); quadIter != iterEnd; quadIter++) { Quad& quad = *quadIter; m_meshCurrent->addTriangleCubic(quad.vertices[0], quad.vertices[1],quad.vertices[2]); @@ -276,9 +276,9 @@ namespace PolyVox bool CubicSurfaceExtractor::performQuadMerging(std::list& quads) { bool bDidMerge = false; - for(std::list::iterator outerIter = quads.begin(); outerIter != quads.end(); outerIter++) + for(typename std::list::iterator outerIter = quads.begin(); outerIter != quads.end(); outerIter++) { - std::list::iterator innerIter = outerIter; + typename std::list::iterator innerIter = outerIter; innerIter++; while(innerIter != quads.end()) { From 7a14b9245b977f188340fa65eeea7734e4248db7 Mon Sep 17 00:00:00 2001 From: Matt Williams Date: Mon, 23 May 2011 22:45:50 +0200 Subject: [PATCH 3/3] Fix compilation of bindings The bindings now compile but are not complete. SWIG doesn't support nested classes so the SimpleVolume can't be bound. --- library/PolyVoxCore/include/PolyVoxCore/Region.h | 2 +- library/bindings/CMakeLists.txt | 2 +- library/bindings/SimpleVolumeSampler.i | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/library/PolyVoxCore/include/PolyVoxCore/Region.h b/library/PolyVoxCore/include/PolyVoxCore/Region.h index 436d6e7c..60ce2ba6 100644 --- a/library/PolyVoxCore/include/PolyVoxCore/Region.h +++ b/library/PolyVoxCore/include/PolyVoxCore/Region.h @@ -37,7 +37,7 @@ namespace PolyVox { public: - const static Region MaxRegion; + static const Region MaxRegion; Region(); Region(const Vector3DInt32& v3dLowerCorner, const Vector3DInt32& v3dUpperCorner); diff --git a/library/bindings/CMakeLists.txt b/library/bindings/CMakeLists.txt index 758929eb..598637fd 100644 --- a/library/bindings/CMakeLists.txt +++ b/library/bindings/CMakeLists.txt @@ -5,9 +5,9 @@ if(SWIG_FOUND) find_package(PythonLibs) include_directories(${PYTHON_INCLUDE_PATH}) include_directories(${PolyVoxCore_SOURCE_DIR}/include ${PolyVoxCore_SOURCE_DIR}/include/PolyVoxCore) + link_directories(${PolyVoxCore_BINARY_DIR}) set(CMAKE_SWIG_FLAGS "") - add_definitions(-DSWIG) set_source_files_properties(PolyVoxCore.i PROPERTIES CPLUSPLUS ON) swig_add_module(PolyVoxCore python PolyVoxCore.i) diff --git a/library/bindings/SimpleVolumeSampler.i b/library/bindings/SimpleVolumeSampler.i index a48d52bf..16a59eb0 100644 --- a/library/bindings/SimpleVolumeSampler.i +++ b/library/bindings/SimpleVolumeSampler.i @@ -5,5 +5,5 @@ %include "SimpleVolume.h" -%template(SimpleVolumeSamplerMaterial8) PolyVox::SimpleVolumeSampler; -%template(SimpleVolumeSamplerDensity8) PolyVox::SimpleVolumeSampler; \ No newline at end of file +%template(SimpleVolumeSamplerMaterial8) PolyVox::SimpleVolume::Sampler; +%template(SimpleVolumeSamplerDensity8) PolyVox::SimpleVolume::Sampler; \ No newline at end of file