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. 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/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 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 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 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... diff --git a/library/bindings/CMakeLists.txt b/library/bindings/CMakeLists.txt index 128a2347..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}) @@ -20,6 +25,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)