From 949528b07aac48f6843f1d9f13ee2cb5360a9b01 Mon Sep 17 00:00:00 2001 From: David Williams Date: Sun, 8 Jul 2012 11:28:31 +0200 Subject: [PATCH] Making Controller a template parameter of SurfaceExtractor. --- .../PolyVoxCore/PolyVoxForwardDeclarations.h | 2 +- .../include/PolyVoxCore/SurfaceExtractor.h | 5 ++-- .../include/PolyVoxCore/SurfaceExtractor.inl | 24 +++++++++---------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/library/PolyVoxCore/include/PolyVoxCore/PolyVoxForwardDeclarations.h b/library/PolyVoxCore/include/PolyVoxCore/PolyVoxForwardDeclarations.h index e3f08d22..bd2f1352 100644 --- a/library/PolyVoxCore/include/PolyVoxCore/PolyVoxForwardDeclarations.h +++ b/library/PolyVoxCore/include/PolyVoxCore/PolyVoxForwardDeclarations.h @@ -129,7 +129,7 @@ namespace PolyVox //////////////////////////////////////////////////////////////////////////////// // SurfaceExtractor //////////////////////////////////////////////////////////////////////////////// - template class SurfaceExtractor; + template class SurfaceExtractor; //////////////////////////////////////////////////////////////////////////////// // SurfaceMesh diff --git a/library/PolyVoxCore/include/PolyVoxCore/SurfaceExtractor.h b/library/PolyVoxCore/include/PolyVoxCore/SurfaceExtractor.h index 36bf8927..f7d94422 100644 --- a/library/PolyVoxCore/include/PolyVoxCore/SurfaceExtractor.h +++ b/library/PolyVoxCore/include/PolyVoxCore/SurfaceExtractor.h @@ -33,7 +33,7 @@ freely, subject to the following restrictions: namespace PolyVox { - template< typename VolumeType> + template< typename VolumeType, typename Controller = SurfaceExtractionController > class SurfaceExtractor { public: @@ -212,7 +212,8 @@ namespace PolyVox typename SurfaceExtractionController::DensityType m_tThreshold; //Used to convert arbitrary voxel types in densities and materials. - SurfaceExtractionController m_controller; + //SurfaceExtractionController m_controller; + Controller m_controller; }; } diff --git a/library/PolyVoxCore/include/PolyVoxCore/SurfaceExtractor.inl b/library/PolyVoxCore/include/PolyVoxCore/SurfaceExtractor.inl index 727be65e..0125e8c2 100644 --- a/library/PolyVoxCore/include/PolyVoxCore/SurfaceExtractor.inl +++ b/library/PolyVoxCore/include/PolyVoxCore/SurfaceExtractor.inl @@ -23,8 +23,8 @@ freely, subject to the following restrictions: namespace PolyVox { - template - SurfaceExtractor::SurfaceExtractor(VolumeType* volData, Region region, SurfaceMesh* result) + template + SurfaceExtractor::SurfaceExtractor(VolumeType* volData, Region region, SurfaceMesh* result) :m_volData(volData) ,m_sampVolume(volData) ,m_meshCurrent(result) @@ -38,8 +38,8 @@ namespace PolyVox m_tThreshold = m_controller.getThreshold(); } - template - void SurfaceExtractor::execute() + template + void SurfaceExtractor::execute() { m_meshCurrent->clear(); @@ -127,9 +127,9 @@ namespace PolyVox m_meshCurrent->m_vecLodRecords.push_back(lodRecord); } - template + template template - uint32_t SurfaceExtractor::computeBitmaskForSlice(const Array2DUint8& pPreviousBitmask, Array2DUint8& pCurrentBitmask) + uint32_t SurfaceExtractor::computeBitmaskForSlice(const Array2DUint8& pPreviousBitmask, Array2DUint8& pCurrentBitmask) { m_uNoOfOccupiedCells = 0; @@ -193,9 +193,9 @@ namespace PolyVox return m_uNoOfOccupiedCells; } - template + template template - void SurfaceExtractor::computeBitmaskForCell(const Array2DUint8& pPreviousBitmask, Array2DUint8& pCurrentBitmask) + void SurfaceExtractor::computeBitmaskForCell(const Array2DUint8& pPreviousBitmask, Array2DUint8& pCurrentBitmask) { uint8_t iCubeIndex = 0; @@ -393,8 +393,8 @@ namespace PolyVox } } - template - void SurfaceExtractor::generateVerticesForSlice(const Array2DUint8& pCurrentBitmask, + template + void SurfaceExtractor::generateVerticesForSlice(const Array2DUint8& pCurrentBitmask, Array2DInt32& m_pCurrentVertexIndicesX, Array2DInt32& m_pCurrentVertexIndicesY, Array2DInt32& m_pCurrentVertexIndicesZ) @@ -511,8 +511,8 @@ namespace PolyVox } } - template - void SurfaceExtractor::generateIndicesForSlice(const Array2DUint8& pPreviousBitmask, + template + void SurfaceExtractor::generateIndicesForSlice(const Array2DUint8& pPreviousBitmask, const Array2DInt32& m_pPreviousVertexIndicesX, const Array2DInt32& m_pPreviousVertexIndicesY, const Array2DInt32& m_pPreviousVertexIndicesZ,