Blame view

legacy/rts_vtkFunctions.h 1.9 KB
f1402849   dmayerich   renewed commit
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
  #include "vtkImageData.h"

  #include "rtsVolume.h"

  #include "rtsImplicit3D.h"

  

  /*vtkImageData* rtsVolume2vtkImageData(rtsVolume* inputVolume, int data_type)

  {

  	vtkImageData* outputImageData = vtkImageData::New();

  	outputImageData->SetScalarType(data_type);

  	outputImageData->SetDimensions(inputVolume->get_dimx(), inputVolume->get_dimy(), inputVolume->get_dimz());

  	unsigned char* scalar_pointer = (unsigned char*)outputImageData->GetScalarPointer();

  	unsigned char* volume_pointer = inputVolume->get_bits();

  	unsigned int vol_size = inputVolume->get_dimx()*inputVolume->get_dimy()*inputVolume->get_dimz();

  	for(int i=0; i<vol_size; i++)

  	{

  		scalar_pointer[i] = volume_pointer[i];

  	}

  

  	return outputImageData;

  }*/

  

  template <class T>

  vtkImageData* rtsImplicit3D2vtkImageData(rtsImplicit3D<T>* in_function, int data_type)

  {

  	//create the vtkImageData class for storing a uniform grid

  	vtkImageData* outputImageData = vtkImageData::New();

  	//set the data type of the scalar field

  	outputImageData->SetScalarType(data_type);

  	//set the dimensions of the image data based on the function resolution

  	outputImageData->SetDimensions(in_function->DimX(), in_function->DimY(), in_function->DimZ());

  	//get a pointer to the scalar field data and the function data

  	unsigned char* scalar_pointer = (unsigned char*)outputImageData->GetScalarPointer();

  	unsigned char* volume_pointer = (unsigned char*)in_function->GetBits();

  	unsigned int vol_size;

  	switch(data_type)

  	{

  	case VTK_UNSIGNED_CHAR:

  		vol_size = sizeof(char)*in_function->DimX()*in_function->DimY()*in_function->DimZ();

  		break;

  	case VTK_DOUBLE:

  		vol_size = sizeof(double)*in_function->DimX()*in_function->DimY()*in_function->DimZ();

  		break;

  	default:

  		exit(1);

  	}

  

  	memcpy(scalar_pointer, volume_pointer, vol_size);

  	

  	//for(int i=0; i<vol_size; i++)

  	//{

  	//	scalar_pointer[i] = volume_pointer[i];

  	//}

  

  

  	return outputImageData;

  }