More work on surface extraction tests.
This commit is contained in:
		| @@ -90,8 +90,8 @@ namespace PolyVox | ||||
| 		// floats into two bytes and store them in a single uint16_t | ||||
|  | ||||
| 		// Move from range [-1.0f, 1.0f] to [0.0f, 255.0f] | ||||
| 		px = (px + 1.0) * 127.5f; | ||||
| 		py = (py + 1.0) * 127.5f; | ||||
| 		px = (px + 1.0f) * 127.5f; | ||||
| 		py = (py + 1.0f) * 127.5f; | ||||
|  | ||||
| 		// Convert to uints | ||||
| 		uint16_t resultX = static_cast<uint16_t>(px + 0.5f); | ||||
| @@ -300,7 +300,7 @@ namespace PolyVox | ||||
| 		uint32_t m_uNoOfOccupiedCells; | ||||
|  | ||||
| 		//The surface patch we are currently filling. | ||||
| 		Mesh<MarchingCubesVertex<typename VolumeType::VoxelType> >* m_meshCurrent; | ||||
| 		MeshType* m_meshCurrent; | ||||
|  | ||||
| 		//Information about the region we are currently processing | ||||
| 		Region m_regSizeInVoxels; | ||||
| @@ -327,10 +327,10 @@ namespace PolyVox | ||||
| 		extractor.execute(); | ||||
| 	} | ||||
|  | ||||
| 	template< typename VolumeType, typename Controller = DefaultMarchingCubesController<typename VolumeType::VoxelType>, typename IndexType = DefaultIndexType > | ||||
| 	template< typename VolumeType, typename Controller = DefaultMarchingCubesController<typename VolumeType::VoxelType> > | ||||
| 	Mesh<MarchingCubesVertex<typename VolumeType::VoxelType> > extractMarchingCubesMesh(VolumeType* volData, Region region, WrapMode eWrapMode = WrapModes::Border, typename VolumeType::VoxelType tBorderValue = typename VolumeType::VoxelType(), Controller controller = Controller()) | ||||
| 	{ | ||||
| 		Mesh<MarchingCubesVertex<typename VolumeType::VoxelType>, IndexType > result; | ||||
| 		Mesh<MarchingCubesVertex<typename VolumeType::VoxelType>, DefaultIndexType > result; | ||||
| 		extractMarchingCubesMesh(volData, region, eWrapMode, tBorderValue, controller, &result); | ||||
| 		return result; | ||||
| 	} | ||||
|   | ||||
| @@ -81,13 +81,13 @@ namespace PolyVox | ||||
| 	{ | ||||
| 		Mesh< Vertex< typename MeshType::VertexType::DataType >, typename MeshType::IndexType > decodedMesh; | ||||
|  | ||||
| 		for (auto ct = 0; ct < encodedMesh.getNoOfVertices(); ct++) | ||||
| 		for (MeshType::IndexType ct = 0; ct < encodedMesh.getNoOfVertices(); ct++) | ||||
| 		{ | ||||
| 			decodedMesh.addVertex(decodeVertex(encodedMesh.getVertex(ct))); | ||||
| 		} | ||||
|  | ||||
| 		POLYVOX_ASSERT(encodedMesh.getNoOfIndices() % 3 == 0, "The number of indices must always be a multiple of three."); | ||||
| 		for (auto ct = 0; ct < encodedMesh.getNoOfIndices(); ct += 3) | ||||
| 		for (uint32_t ct = 0; ct < encodedMesh.getNoOfIndices(); ct += 3) | ||||
| 		{ | ||||
| 			decodedMesh.addTriangle(encodedMesh.getIndex(ct), encodedMesh.getIndex(ct + 1), encodedMesh.getIndex(ct + 2)); | ||||
| 		} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user