00001
00002
00003
00004 #include "emdata.h"
00005 using namespace EMAN;
00006
00007 #ifndef SKELETON_MAKER_VOLUME_DATA_H
00008 #define SKELETON_MAKER_VOLUME_DATA_H
00009
00010 namespace wustl_mm {
00011 namespace SkeletonMaker {
00012 class VolumeData {
00013 public:
00014
00015 VolumeData(EMData* em);
00016 VolumeData(int sizeX, int sizeY, int sizeZ);
00017 VolumeData(int sizeX, int sizeY, int sizeZ, float val);
00018 VolumeData(int sizeX, int sizeY, int sizeZ, int offsetX, int offsetY, int offsetZ, VolumeData * data);
00019 VolumeData(VolumeData& obj);
00020 ~VolumeData();
00021
00022
00023 int GetSize(int dimension);
00024 int GetSizeX();
00025 int GetSizeY();
00026 int GetSizeZ();
00027 float GetSpacing(int dimension);
00028 float GetSpacingX();
00029 float GetSpacingY();
00030 float GetSpacingZ();
00031 float GetOrigin(int dimension);
00032 float GetOriginX();
00033 float GetOriginY();
00034 float GetOriginZ();
00035 float GetDataAt(int x, int y, int z);
00036 float GetDataAt(int index);
00037 int GetIndex(int x, int y, int z);
00038 int GetMaxIndex();
00039
00040 void SetSpacing(float spacingX, float spacingY, float spacingZ);
00041 void SetOrigin(float originX, float originY, float originZ);
00042 void SetDataAt(int x, int y, int z, float value);
00043 void SetDataAt(int index, float value);
00044 void Pad(int padBy, double padValue);
00045 EMData * get_emdata();
00046 private:
00047 void InitializeVolumeData(int sizeX, int sizeY, int sizeZ, float spacingX, float spacingY, float spacingZ, float originX, float originY, float originZ, bool initializeData, float val);
00048 void SetSize(int sizeX, int sizeY, int sizeZ);
00049
00050
00051 public:
00052 bool owns_emdata;
00053 private:
00054 EMData * emdata;
00055
00056 };
00057
00058
00059 }
00060 }
00061
00062
00063 #endif