Renamed 'Controller' to 'ControllerType' when used as a template parameter.
This commit is contained in:
		| @@ -147,11 +147,11 @@ namespace PolyVox | ||||
| 		return result; | ||||
| 	} | ||||
|  | ||||
| 	template< typename VolumeType, typename MeshType, typename Controller> | ||||
| 	template< typename VolumeType, typename MeshType, typename ControllerType> | ||||
| 	class MarchingCubesSurfaceExtractor | ||||
| 	{ | ||||
| 	public: | ||||
| 		MarchingCubesSurfaceExtractor(VolumeType* volData, Region region, MeshType* result, Controller controller, WrapMode eWrapMode = WrapModes::Border, typename VolumeType::VoxelType tBorderValue = typename VolumeType::VoxelType()); | ||||
| 		MarchingCubesSurfaceExtractor(VolumeType* volData, Region region, MeshType* result, ControllerType controller, WrapMode eWrapMode = WrapModes::Border, typename VolumeType::VoxelType tBorderValue = typename VolumeType::VoxelType()); | ||||
|  | ||||
| 		void execute(); | ||||
|  | ||||
| @@ -312,10 +312,10 @@ namespace PolyVox | ||||
| 		Region m_regSliceCurrent; | ||||
|  | ||||
| 		//Used to convert arbitrary voxel types in densities and materials. | ||||
| 		Controller m_controller; | ||||
| 		ControllerType m_controller; | ||||
|  | ||||
| 		//Our threshold value | ||||
| 		typename Controller::DensityType m_tThreshold; | ||||
| 		typename ControllerType::DensityType m_tThreshold; | ||||
| 	}; | ||||
|  | ||||
| 	// This version of the function performs the extraction into a user-provided mesh rather than allocating a mesh automatically. | ||||
| @@ -333,17 +333,17 @@ namespace PolyVox | ||||
| 	// but this is relatively complex and I haven't done it yet. Could always add it later as another overload. | ||||
| 	// | ||||
| 	// Note: the last parameter is a dummy, which is used to avoid ambiguities between which version of the function to call by using SFINAE. | ||||
| 	template< typename VolumeType, typename MeshType, typename Controller = DefaultMarchingCubesController<typename VolumeType::VoxelType> > | ||||
| 	void extractMarchingCubesMesh(VolumeType* volData, Region region, MeshType* result, Controller controller = Controller(), WrapMode eWrapMode = WrapModes::Border, typename VolumeType::VoxelType tBorderValue = typename VolumeType::VoxelType(), typename MeshType::VertexType doNotUseThisParameter = typename MeshType::VertexType()) | ||||
| 	template< typename VolumeType, typename MeshType, typename ControllerType = DefaultMarchingCubesController<typename VolumeType::VoxelType> > | ||||
| 	void extractMarchingCubesMesh(VolumeType* volData, Region region, MeshType* result, ControllerType controller = ControllerType(), WrapMode eWrapMode = WrapModes::Border, typename VolumeType::VoxelType tBorderValue = typename VolumeType::VoxelType(), typename MeshType::VertexType doNotUseThisParameter = typename MeshType::VertexType()) | ||||
| 	{ | ||||
| 		MarchingCubesSurfaceExtractor<VolumeType, MeshType, Controller> extractor(volData, region, result, controller, eWrapMode, tBorderValue); | ||||
| 		MarchingCubesSurfaceExtractor<VolumeType, MeshType, ControllerType> extractor(volData, region, result, controller, eWrapMode, tBorderValue); | ||||
| 		extractor.execute(); | ||||
| 	} | ||||
|  | ||||
| 	// This version of the function is easier to use - it automatically creates and returns a mesh of the appropriate type so the user doesn't have to worry about it. | ||||
| 	// Note: the last parameter is a dummy, which is used to avoid ambiguities between which version of the function to call by using SFINAE. | ||||
| 	template< typename VolumeType, typename Controller = DefaultMarchingCubesController<typename VolumeType::VoxelType> > | ||||
| 	Mesh<MarchingCubesVertex<typename VolumeType::VoxelType> > extractMarchingCubesMesh(VolumeType* volData, Region region, Controller controller = Controller(), WrapMode eWrapMode = WrapModes::Border, typename VolumeType::VoxelType tBorderValue = typename VolumeType::VoxelType(), typename Controller::DensityType doNotUseThisParameter = typename Controller::DensityType()) | ||||
| 	template< typename VolumeType, typename ControllerType = DefaultMarchingCubesController<typename VolumeType::VoxelType> > | ||||
| 	Mesh<MarchingCubesVertex<typename VolumeType::VoxelType> > extractMarchingCubesMesh(VolumeType* volData, Region region, ControllerType controller = ControllerType(), WrapMode eWrapMode = WrapModes::Border, typename VolumeType::VoxelType tBorderValue = typename VolumeType::VoxelType(), typename ControllerType::DensityType doNotUseThisParameter = typename ControllerType::DensityType()) | ||||
| 	{ | ||||
| 		Mesh<MarchingCubesVertex<typename VolumeType::VoxelType>, DefaultIndexType > result; | ||||
| 		extractMarchingCubesMesh<VolumeType, Mesh<MarchingCubesVertex<typename VolumeType::VoxelType>, DefaultIndexType > >(volData, region, &result, controller, eWrapMode, tBorderValue); | ||||
|   | ||||
| @@ -25,8 +25,8 @@ freely, subject to the following restrictions: | ||||
|  | ||||
| namespace PolyVox | ||||
| { | ||||
| 	template<typename VolumeType, typename MeshType, typename Controller> | ||||
| 	MarchingCubesSurfaceExtractor<VolumeType, MeshType, Controller>::MarchingCubesSurfaceExtractor(VolumeType* volData, Region region, MeshType* result, Controller controller, WrapMode eWrapMode, typename VolumeType::VoxelType tBorderValue) | ||||
| 	template<typename VolumeType, typename MeshType, typename ControllerType> | ||||
| 	MarchingCubesSurfaceExtractor<VolumeType, MeshType, ControllerType>::MarchingCubesSurfaceExtractor(VolumeType* volData, Region region, MeshType* result, ControllerType controller, WrapMode eWrapMode, typename VolumeType::VoxelType tBorderValue) | ||||
| 		:m_volData(volData) | ||||
| 		,m_sampVolume(volData) | ||||
| 		,m_meshCurrent(result) | ||||
| @@ -42,8 +42,8 @@ namespace PolyVox | ||||
| 		m_sampVolume.setWrapMode(eWrapMode, tBorderValue); | ||||
| 	} | ||||
|  | ||||
| 	template<typename VolumeType, typename MeshType, typename Controller> | ||||
| 	void MarchingCubesSurfaceExtractor<VolumeType, MeshType, Controller>::execute() | ||||
| 	template<typename VolumeType, typename MeshType, typename ControllerType> | ||||
| 	void MarchingCubesSurfaceExtractor<VolumeType, MeshType, ControllerType>::execute() | ||||
| 	{		 | ||||
| 		Timer timer; | ||||
| 		m_meshCurrent->clear(); | ||||
| @@ -130,9 +130,9 @@ namespace PolyVox | ||||
| 			<< "x" << m_regSizeInVoxels.getDepthInVoxels() << ")"); | ||||
| 	} | ||||
|  | ||||
| 	template<typename VolumeType, typename MeshType, typename Controller> | ||||
| 	template<typename VolumeType, typename MeshType, typename ControllerType> | ||||
| 	template<bool isPrevZAvail> | ||||
| 	uint32_t MarchingCubesSurfaceExtractor<VolumeType, MeshType, Controller>::computeBitmaskForSlice(const Array2DUint8& pPreviousBitmask, Array2DUint8& pCurrentBitmask) | ||||
| 	uint32_t MarchingCubesSurfaceExtractor<VolumeType, MeshType, ControllerType>::computeBitmaskForSlice(const Array2DUint8& pPreviousBitmask, Array2DUint8& pCurrentBitmask) | ||||
| 	{ | ||||
| 		m_uNoOfOccupiedCells = 0; | ||||
|  | ||||
| @@ -196,9 +196,9 @@ namespace PolyVox | ||||
| 		return m_uNoOfOccupiedCells; | ||||
| 	} | ||||
|  | ||||
| 	template<typename VolumeType, typename MeshType, typename Controller> | ||||
| 	template<typename VolumeType, typename MeshType, typename ControllerType> | ||||
| 	template<bool isPrevXAvail, bool isPrevYAvail, bool isPrevZAvail> | ||||
| 	void MarchingCubesSurfaceExtractor<VolumeType, MeshType, Controller>::computeBitmaskForCell(const Array2DUint8& pPreviousBitmask, Array2DUint8& pCurrentBitmask, uint32_t uXRegSpace, uint32_t uYRegSpace) | ||||
| 	void MarchingCubesSurfaceExtractor<VolumeType, MeshType, ControllerType>::computeBitmaskForCell(const Array2DUint8& pPreviousBitmask, Array2DUint8& pCurrentBitmask, uint32_t uXRegSpace, uint32_t uYRegSpace) | ||||
| 	{ | ||||
| 		uint8_t iCubeIndex = 0; | ||||
|  | ||||
| @@ -396,8 +396,8 @@ namespace PolyVox | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	template<typename VolumeType, typename MeshType, typename Controller> | ||||
| 	void MarchingCubesSurfaceExtractor<VolumeType, MeshType, Controller>::generateVerticesForSlice(const Array2DUint8& pCurrentBitmask, | ||||
| 	template<typename VolumeType, typename MeshType, typename ControllerType> | ||||
| 	void MarchingCubesSurfaceExtractor<VolumeType, MeshType, ControllerType>::generateVerticesForSlice(const Array2DUint8& pCurrentBitmask, | ||||
| 		Array2DInt32& m_pCurrentVertexIndicesX, | ||||
| 		Array2DInt32& m_pCurrentVertexIndicesY, | ||||
| 		Array2DInt32& m_pCurrentVertexIndicesZ) | ||||
| @@ -536,8 +536,8 @@ namespace PolyVox | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	template<typename VolumeType, typename MeshType, typename Controller> | ||||
| 	void MarchingCubesSurfaceExtractor<VolumeType, MeshType, Controller>::generateIndicesForSlice(const Array2DUint8& pPreviousBitmask, | ||||
| 	template<typename VolumeType, typename MeshType, typename ControllerType> | ||||
| 	void MarchingCubesSurfaceExtractor<VolumeType, MeshType, ControllerType>::generateIndicesForSlice(const Array2DUint8& pPreviousBitmask, | ||||
| 		const Array2DInt32& m_pPreviousVertexIndicesX, | ||||
| 		const Array2DInt32& m_pPreviousVertexIndicesY, | ||||
| 		const Array2DInt32& m_pPreviousVertexIndicesZ, | ||||
|   | ||||
| @@ -111,7 +111,7 @@ namespace PolyVox | ||||
| 	//////////////////////////////////////////////////////////////////////////////// | ||||
| 	// MarchingCubesSurfaceExtractor | ||||
| 	//////////////////////////////////////////////////////////////////////////////// | ||||
| 	template<typename VolumeType, typename MeshType, typename Controller> class MarchingCubesSurfaceExtractor; | ||||
| 	template<typename VolumeType, typename MeshType, typename ControllerType> class MarchingCubesSurfaceExtractor; | ||||
|  | ||||
| 	//////////////////////////////////////////////////////////////////////////////// | ||||
| 	// MarchingCubesVertex | ||||
|   | ||||
		Reference in New Issue
	
	Block a user