PolyVox and Thermite3D now support the use of a density component as well as a material component for each voxel.
This commit is contained in:
		| @@ -35,22 +35,23 @@ freely, subject to the following restrictions: | ||||
| namespace PolyVox | ||||
| {	 | ||||
| 	/// Voxel scene manager | ||||
| 	class POLYVOXUTIL_API VolumeChangeTracker | ||||
| 	template <typename VoxelType> | ||||
| 	class VolumeChangeTracker | ||||
| 	{ | ||||
| 	public: | ||||
| 		//Constructors, etc | ||||
| 		VolumeChangeTracker(Volume<uint8_t>* volumeDataToSet, uint16_t regionSideLength); | ||||
| 		VolumeChangeTracker(Volume<VoxelType>* volumeDataToSet, uint16_t regionSideLength); | ||||
| 		~VolumeChangeTracker(); | ||||
|  | ||||
| 		//Getters | ||||
| 		int32_t getCurrentTime(void) const;	 | ||||
| 		int32_t getLastModifiedTimeForRegion(uint16_t uX, uint16_t uY, uint16_t uZ); | ||||
| 		Volume<uint8_t>* getWrappedVolume(void) const; | ||||
| 		Volume<VoxelType>* getWrappedVolume(void) const; | ||||
|  | ||||
| 		//Setters | ||||
| 		void setAllRegionsModified(void); | ||||
| 		void setLockedVoxelAt(uint16_t x, uint16_t y, uint16_t z, uint8_t value); | ||||
| 		void setVoxelAt(uint16_t x, uint16_t y, uint16_t z, uint8_t value); | ||||
| 		void setLockedVoxelAt(uint16_t x, uint16_t y, uint16_t z, VoxelType value); | ||||
| 		void setVoxelAt(uint16_t x, uint16_t y, uint16_t z, VoxelType value); | ||||
|  | ||||
| 		//Others	 | ||||
| 		void lockRegion(const Region& regToLock); | ||||
| @@ -61,7 +62,7 @@ namespace PolyVox | ||||
| 		void incrementCurrentTime(void); | ||||
| 		bool m_bIsLocked; | ||||
| 		Region m_regLastLocked; | ||||
| 		Volume<uint8_t>* volumeData; | ||||
| 		Volume<VoxelType>* volumeData; | ||||
|  | ||||
| 		uint16_t m_uRegionSideLength; | ||||
| 		uint8_t m_uRegionSideLengthPower; | ||||
| @@ -78,4 +79,6 @@ namespace PolyVox | ||||
| 	}; | ||||
| } | ||||
|  | ||||
| #include "VolumeChangeTracker.inl" | ||||
|  | ||||
| #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user