diff --git a/include/PolyVox/Density.h b/include/PolyVox/Density.h index c2a7d7bf..9a7a3fe6 100644 --- a/include/PolyVox/Density.h +++ b/include/PolyVox/Density.h @@ -41,6 +41,8 @@ namespace PolyVox /// Note that this should probably just be considered an example of how to define /// a voxel type for the Marching Cubes algorithm. Advanced users are likely to /// define custom voxel types and possibly custom controllers. + /// + /// \sa Material, MaterialDensityPair //////////////////////////////////////////////////////////////////////////////// template class Density diff --git a/include/PolyVox/LowPassFilter.h b/include/PolyVox/LowPassFilter.h index 63581209..4ac51a35 100644 --- a/include/PolyVox/LowPassFilter.h +++ b/include/PolyVox/LowPassFilter.h @@ -27,18 +27,20 @@ #include "Impl/IteratorController.h" -#include "RawVolume.h" //Is this desirable? #include "Region.h" namespace PolyVox { + /// This class is able to copy volume data from a source volume to a destination volume while performing low-pass filtering (blurring). template< typename SrcVolumeType, typename DstVolumeType, typename AccumulationType> class LowPassFilter { public: LowPassFilter(SrcVolumeType* pVolSrc, Region regSrc, DstVolumeType* pVolDst, Region regDst, uint32_t uKernelSize); + /// Execute a standard approach to filtering which performs a number of neighbourhood look-ups per voxel. void execute(); + /// Execute a version with 'Summed Area Tables'. This should be faster for large kernel sizes but this hasn't really been confirmed yet. void executeSAT(); private: diff --git a/include/PolyVox/Material.h b/include/PolyVox/Material.h index 59f109ae..c87d0a08 100644 --- a/include/PolyVox/Material.h +++ b/include/PolyVox/Material.h @@ -33,7 +33,9 @@ namespace PolyVox { ///This class represents a voxel storing only a material. //////////////////////////////////////////////////////////////////////////////// - /// Detailed description... + /// Note that this should probably just be considered an example of how to define + /// a voxel type for the Marching Cubes algorithm. Advanced users are likely to + /// define custom voxel types and possibly custom controllers. /// /// \sa Density, MaterialDensityPair //////////////////////////////////////////////////////////////////////////////// diff --git a/include/PolyVox/MaterialDensityPair.h b/include/PolyVox/MaterialDensityPair.h index 4f06d424..02721c1f 100644 --- a/include/PolyVox/MaterialDensityPair.h +++ b/include/PolyVox/MaterialDensityPair.h @@ -34,7 +34,9 @@ namespace PolyVox { /// This class represents a voxel storing only a density. //////////////////////////////////////////////////////////////////////////////// - /// Detailed description... + /// Note that this should probably just be considered an example of how to define + /// a voxel type for the Marching Cubes algorithm. Advanced users are likely to + /// define custom voxel types and possibly custom controllers. /// /// \sa Density, Material //////////////////////////////////////////////////////////////////////////////// diff --git a/include/PolyVox/Mesh.h b/include/PolyVox/Mesh.h index 7e24f453..f5f016e4 100644 --- a/include/PolyVox/Mesh.h +++ b/include/PolyVox/Mesh.h @@ -28,7 +28,7 @@ #include "Impl/PlatformDefinitions.h" #include "Region.h" -#include "Vertex.h" //Should probably do away with this on in the future... +#include "Vertex.h" //Should probably do away with this one in the future... #include #include @@ -39,6 +39,9 @@ namespace PolyVox { + /// A simple and general-purpose mesh class to represent the data returned by the surface extraction functions. + /// It supports different vertex types (which will vary depending on the surface extractor used and the contents + /// of the volume) and both 16-bit and 32 bit indices. typedef uint32_t DefaultIndexType; template class Mesh @@ -75,6 +78,9 @@ namespace PolyVox Vector3DInt32 m_offset; }; + /// Meshes returned by the surface extractors often have vertices with efficient compressed + /// formats which are hard to interpret directly (see CubicVertex and MarchingCubesVertex). + /// This function creates a new uncompressed mesh containing the much simpler Vertex objects. template Mesh< Vertex< typename MeshType::VertexType::DataType >, typename MeshType::IndexType > decodeMesh(const MeshType& encodedMesh) {