From 830623800c8b36fc10321ce1418b229df94974eb Mon Sep 17 00:00:00 2001 From: Matt Williams Date: Fri, 20 Jul 2012 22:09:58 +0100 Subject: [PATCH 1/7] Set BUILD_BINDINGS to OFF correctly When ENABLE_BINDINGS is true but SWIG or Python isn't found, correctly set BUILD_BINDINGS to OFF rather than leaving it blank. --- library/bindings/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/library/bindings/CMakeLists.txt b/library/bindings/CMakeLists.txt index 128a2347..20cefd92 100644 --- a/library/bindings/CMakeLists.txt +++ b/library/bindings/CMakeLists.txt @@ -20,6 +20,8 @@ if(ENABLE_BINDINGS) swig_add_module(PolyVoxCore python PolyVoxCore.i) swig_link_libraries(PolyVoxCore ${PYTHON_LIBRARIES} PolyVoxCore) #set_target_properties(${SWIG_MODULE_PolyVoxCore_REAL_NAME} PROPERTIES SUFFIX ".pyd") + else() + set(BUILD_BINDINGS OFF CACHE BOOL "Will the bindings be built" FORCE) endif() else() set(BUILD_BINDINGS OFF CACHE BOOL "Will the bindings be built" FORCE) From 4d08a998080003d1a1fd2f056416efb04a22427c Mon Sep 17 00:00:00 2001 From: Matt Williams Date: Fri, 20 Jul 2012 22:29:28 +0100 Subject: [PATCH 2/7] Add note to docs for when releasing --- documentation/conf.in.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/conf.in.py b/documentation/conf.in.py index c1c64eb7..b0b3d69b 100644 --- a/documentation/conf.in.py +++ b/documentation/conf.in.py @@ -220,7 +220,7 @@ man_pages = [ #intersphinx_mapping = {'http://docs.python.org/': None} doxylink = { - 'polyvox' : ('@CMAKE_CURRENT_BINARY_DIR@/../library/PolyVox.tag', '../library/doc/html/') + 'polyvox' : ('@CMAKE_CURRENT_BINARY_DIR@/../library/PolyVox.tag', '../library/doc/html/') #Make this '../api/' for uploading } #This must be lowercase for QtHelp From 0f4be52fbb048ed907b90b877fefe06306f9cadd Mon Sep 17 00:00:00 2001 From: Matt Williams Date: Fri, 20 Jul 2012 22:30:10 +0100 Subject: [PATCH 3/7] Add note to CHANGELOG about CMake variable changes --- CHANGELOG.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 2e2514af..0ef77d83 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -12,4 +12,8 @@ Because algorithms now know nothing about the structure of the underlying voxels We have continued to provide the Density, Material, and MaterialDensityPair classes to ease the transition into the new system, but really they should just be considered as examples of how you might create your own voxel types. -Some algothms assume that basic mathematical operations can be applied to voxel types. For example, the LowPassFilter needs to compute the average of a set of voxels, and to do this it need to be possible to add voxels together and divide by an integer. Obviously these operations are provided by primitive types, but it means that if you want to use the LowPassfilter on custom voxel types then these types need to provide operator+=, operator/=, etc. These have been added to the Density and MaterialDensityPair classes, but not to the Material class. This reflects the fact that applying a low pass filter to a material volume does not make conceptual sense. \ No newline at end of file +Some algothms assume that basic mathematical operations can be applied to voxel types. For example, the LowPassFilter needs to compute the average of a set of voxels, and to do this it need to be possible to add voxels together and divide by an integer. Obviously these operations are provided by primitive types, but it means that if you want to use the LowPassfilter on custom voxel types then these types need to provide operator+=, operator/=, etc. These have been added to the Density and MaterialDensityPair classes, but not to the Material class. This reflects the fact that applying a low pass filter to a material volume does not make conceptual sense. + +Changes to build system +----------------------- +In order to make the build system easier to use, a number of CMake variables were changed to be more consistent. See :doc:`install` for details on the new variable naming. From 170cefbf83397026ba1500e0c8d869ad096dbc9c Mon Sep 17 00:00:00 2001 From: Matt Williams Date: Fri, 20 Jul 2012 23:01:30 +0100 Subject: [PATCH 4/7] Add a README stub This pleases, for example point 1 on http://thechangelog.com/post/3032074343/top-ten-reasons-why-i-wont-use-your-open-source-project --- README.rst | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 README.rst diff --git a/README.rst b/README.rst new file mode 100644 index 00000000..03dde149 --- /dev/null +++ b/README.rst @@ -0,0 +1,4 @@ +PolyVox - The voxel management and manipulation library +======================================================= + +For installation instructions, please see INSTALL.txt From afb83d96de7cfcdef2f07bad0256f2ce760fa404 Mon Sep 17 00:00:00 2001 From: Matt Williams Date: Fri, 20 Jul 2012 23:02:45 +0100 Subject: [PATCH 5/7] Fix spelling --- CREDITS.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CREDITS.txt b/CREDITS.txt index e7534c09..a04632c4 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -1,3 +1,3 @@ David Williams - Lead programmer. -Matthew Williams - Linux port, build system, support and maintainence. +Matthew Williams - Linux port, build system, support and maintenance. Oliver Schneider - Very large Volumes \ No newline at end of file From 01fd3f9be55ab996491d154a67ccf72245f6fbfe Mon Sep 17 00:00:00 2001 From: Matt Williams Date: Sat, 21 Jul 2012 00:03:24 +0100 Subject: [PATCH 6/7] Add a few words into principles.rst This is just a skeleton of the sorts of things we should mention. I also added a big red box to remind us to write some stuff before release. --- documentation/principles.rst | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/documentation/principles.rst b/documentation/principles.rst index d9f5568d..ecfbcef1 100644 --- a/documentation/principles.rst +++ b/documentation/principles.rst @@ -1,3 +1,14 @@ ********************** Principles of PolyVox -********************** \ No newline at end of file +********************** + +.. warning :: + This section is being written and is just a skeleton for now + +PolyVox provides a library for managing 3D arrays (volumes) of data (voxels). It gives you the tools to iterate through, randomly access, read and write volumes. It supports any type you'd like to represent each voxel whether it's just an ``int`` or a class which encapsulates both density and colour. + +Once you have a volume, PolyVox provides a number of tools for turning it into something that you can pass to your rendering engine. These are called `surface extractors`. + +Each surface extractor needs to be told how to interperet your voxel type and that is done using... + +Link to a page describing how to write your own voxel type and link it to a surface extractor... From 8ac27912ae72fc9144bb0fdd300f96dce167de43 Mon Sep 17 00:00:00 2001 From: Matt Williams Date: Mon, 23 Jul 2012 11:11:31 +0100 Subject: [PATCH 7/7] Fix CMake files so it actually works on CMake 2.8.3 --- CMakeLists.txt | 13 +++++++++---- library/bindings/CMakeLists.txt | 9 +++++++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 426cd63a..126df3a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,6 @@ MARK_AS_ADVANCED(FORCE POLYVOX_VERSION) include(FeatureSummary) FIND_PACKAGE(Doxygen) -set_package_properties(Doxygen PROPERTIES URL http://www.doxygen.org DESCRIPTION "API documentation generator" TYPE OPTIONAL PURPOSE "Building the API documentation") OPTION(ENABLE_EXAMPLES "Should the examples be built" ON) SET(LIBRARY_TYPE "DYNAMIC" CACHE STRING "Should the library be STATIC or DYNAMIC") @@ -23,9 +22,15 @@ ENDIF() # Qt is required for building the tests, the example and optionally for bundling the documentation FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtOpenGL QtTest) INCLUDE(${QT_USE_FILE}) -set_package_properties(Qt4 PROPERTIES DESCRIPTION "C++ framework" URL http://qt-project.org) -set_package_properties(Qt4 PROPERTIES TYPE RECOMMENDED PURPOSE "Building the examples") -set_package_properties(Qt4 PROPERTIES TYPE OPTIONAL PURPOSE "Building the tests") +if(CMAKE_VERSION VERSION_LESS "2.8.6") + set_package_info(Doxygen "API documentation generator" http://www.doxygen.org "Building the API documentation") + set_package_info(Qt4 "C++ framework" http://qt-project.org "Building the examples and tests") +else() + set_package_properties(Doxygen PROPERTIES URL http://www.doxygen.org DESCRIPTION "API documentation generator" TYPE OPTIONAL PURPOSE "Building the API documentation") + set_package_properties(Qt4 PROPERTIES DESCRIPTION "C++ framework" URL http://qt-project.org) + set_package_properties(Qt4 PROPERTIES TYPE RECOMMENDED PURPOSE "Building the examples") + set_package_properties(Qt4 PROPERTIES TYPE OPTIONAL PURPOSE "Building the tests") +endif() if(MSVC AND (MSVC_VERSION LESS 1600)) # Require boost for older (pre-vc2010) Visual Studio compilers diff --git a/library/bindings/CMakeLists.txt b/library/bindings/CMakeLists.txt index 20cefd92..bcaae8ac 100644 --- a/library/bindings/CMakeLists.txt +++ b/library/bindings/CMakeLists.txt @@ -2,9 +2,14 @@ option(ENABLE_BINDINGS "Build Python bindings" ON) if(ENABLE_BINDINGS) find_package(SWIG) mark_as_advanced(SWIG_DIR SWIG_VERSION) - set_package_properties(SWIG PROPERTIES DESCRIPTION "Bindings generator" URL http://www.swig.org) find_package(PythonLibs) - set_package_properties(PythonLibs PROPERTIES DESCRIPTION "Programming language" URL http://www.python.org) + if(CMAKE_VERSION VERSION_LESS "2.8.6") + set_package_info(SWIG "Bindings generator" http://www.swig.org) + set_package_info(PythonLibs "Programming language" http://www.python.org) + else() + set_package_properties(SWIG PROPERTIES DESCRIPTION "Bindings generator" URL http://www.swig.org) + set_package_properties(PythonLibs PROPERTIES DESCRIPTION "Programming language" URL http://www.python.org) + endif() if(SWIG_FOUND AND PYTHONLIBS_FOUND) set(BUILD_BINDINGS ON CACHE BOOL "Will the bindings be built" FORCE ) include(${SWIG_USE_FILE})