1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// VolumeData.cpp

#include "VolumeData.h"
#include <malloc.h>
#include <fstream>

#include <iostream>

using namespace  std;



VolumeData::VolumeData()
{
	m_Dims[0]=128;
	m_Dims[1]=128;
	m_Dims[2]=128;
	m_Spacings[0]=m_Spacings[1]=m_Spacings[2]=1.0f;

	int _index=0 ;
	
	m_IsBackProjectMode=false;

}


 VolumeData::VolumeData(int d1,int d2, int d3, float sp1,float sp2,float sp3,float *data)
{
	int d[]={d1,d2,d3};
	this->SetDimensions(d);
	float sp[]={sp1,sp2,sp3};
	this->SetSpacings(sp);
	this->_allocate();
}



 void VolumeData::setParas(int *vols, double vs,int nframes)
 {
	 m_volX= vols[0];
	 m_volY= vols[1];
	 m_volZ= vols[2];
	 Vol_Spacing=vs;
	 m_nframes = nframes;

 }
 
VolumeData::~VolumeData()
{
	Clean();
}

void VolumeData::Clean()
{

	
}


void VolumeData::_allocate()
{
	
}



void VolumeData::GetDimensions(int *dims) const
{
	dims[0]=m_Dims[0]; dims[1]=m_Dims[1]; dims[2]=m_Dims[2];
}

void VolumeData::SetDimensions(const int *dims)
{
	m_Dims[0]=dims[0]; m_Dims[1]=dims[1]; m_Dims[2]=dims[2];
}

void VolumeData::GetSpacings(float *spacings) const
{
	spacings[0]=m_Spacings[0]; spacings[1]=m_Spacings[1]; spacings[2]=m_Spacings[2];
}

void VolumeData::SetSpacings(const float *spacings)
{
	m_Spacings[0]=spacings[0]; m_Spacings[1]=spacings[1]; m_Spacings[2]=spacings[2];
}


CImg<float> VolumeData::GetData(int iframe)
{
	return m_Volumelist[iframe];
	//return 0;
}

void  VolumeData::SetData(CImgList<float> _vol_list)
{
	//m_Data = _data;
	//return true;
	m_Volumelist= _vol_list;
}



void VolumeData::ReadStructuredFile()
{
	m_Dims[0]=m_volX;
	m_Dims[1]=m_volY;
	m_Dims[2]=m_volZ;
	m_Spacings[0]=m_Spacings[1]=m_Spacings[2]=Vol_Spacing;  

	m_Flowlist = CImgList<float>(m_nframes, m_Dims[0], m_Dims[1], m_Dims[2], 3, 0);

	char basename[1024];
	sprintf(basename, "Input");
	//rose.-000-frame-9iter
	for (int i = 0; i < m_nframes; i++)
	{
		char temp[200];
		
		sprintf(temp, "%s/rose.-%03d-frame-9iter.tiff", basename, i);

		m_Volumelist.insert(CImg<float>(temp));

	}
	// init the time steps as n+1 
	// in case potential boundary issue.
	m_Volumelist.insert(m_Volumelist[m_nframes - 1]);

	
}