00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef VRN_VOLUMECONTAINER_H
00029 #define VRN_VOLUMECONTAINER_H
00030
00031 #include "voreen/core/datastructures/volume/volumecollection.h"
00032 #include "voreen/core/datastructures/volume/volumehandle.h"
00033
00034 #include <vector>
00035 #include <string>
00036
00037 namespace voreen {
00038
00049 class VolumeContainer : public VolumeCollection {
00050
00051 public:
00052
00053 VolumeContainer();
00054
00060 virtual ~VolumeContainer();
00061
00070 virtual void add(VolumeHandle* volumeHandle);
00071
00080 virtual void add(const VolumeCollection* volumeCollection);
00081
00089 virtual void remove(const VolumeHandle* handle);
00090
00098 virtual void remove(const VolumeCollection* volumeCollection);
00099
00105 virtual void clear();
00106
00122 virtual VolumeCollection* loadVolume(const std::string& filename)
00123 throw (tgt::FileException, std::bad_alloc);
00124
00145 virtual VolumeHandle* loadRawVolume(const std::string& filename,
00146 const std::string& objectModel, const std::string& format,
00147 const tgt::ivec3& dimensions, const tgt::vec3& spacing = tgt::vec3(1.f),
00148 int headerskip = 0, bool bigEndian = false)
00149 throw (tgt::FileException, std::bad_alloc);
00150
00151
00156 virtual void release(const VolumeHandle* handle);
00157
00162 virtual void releaseAll();
00163
00164 protected:
00165
00167 static const std::string loggerCat_;
00168 };
00169
00170 }
00171
00172 #endif