- }
- else if(imageType == VTK_UNSIGNED_SHORT)
- {
- // pointers to get into the image
- unsigned short* dataImagePointer=NULL;
-
- // we start where the image starts
- dataImagePointer=(unsigned short*)imageData->GetScalarPointer(0,0,0);
-
- /*
- Image Size
- */
- int ext[6];
- imageData->GetExtent(ext);
- int sx,sy,sz;
- sx=ext[1]-ext[0]+1;
- sy=ext[3]-ext[2]+1;
- sz=ext[5]-ext[4]+1;
-
- //-----------------
- //A3
- //-----------------
- //walking in the image
- int i=0,j=0,k=0;
- double sum1=0,sum2=0,sum3=0,sum4=0;
- for(i=0;i<sx;i++)
- {
- for(j=0;j<sy;j++)
- {
- for(k=0;k<sz;k++)
- {
-
- // we get the pointer to the position (i,j,k)y that way we can get the position of the point in the surface
- dataImagePointer=(unsigned short*)imageData->GetScalarPointer(i,j,k);
-
- sum1=(int)(dataImagePointer[0]) + (int)(dataImagePointer[1]) + (int)(dataImagePointer[2]);
- sum1=sum1/(3*VTK_UNSIGNED_SHORT_MAX);
-
- surfacePoints->InsertPoint(counter, i, j, sum1*height);
-
- counter ++;
- }
- }
- }
-
- //This cycle creates the cells of the surface
- int n =0;
- for(i=0;i<sx-1;i++)
- {
- for(j=0;j<sy-1;j++)
- {
- for(k=0;k<sz;k++)
- {
- surfaceCells->InsertNextCell(3);
- surfaceCells->InsertCellPoint(n);
- surfaceCells->InsertCellPoint(n+1);
- surfaceCells->InsertCellPoint(n+sy+1);
-
- surfaceCells->InsertNextCell(3);
- surfaceCells->InsertCellPoint(n);
- surfaceCells->InsertCellPoint(n+sy+1);
- surfaceCells->InsertCellPoint(n+sy);
-
- if(j<sy-2)
- {
- n++;
- }
- else
- {
- n=n+2;
- }
-
- }
- }
- }
-
- }
- else if(imageType == VTK_INT)
- {
- // pointers to get into the image
- int* dataImagePointer=NULL;
-
- // we start where the image starts
- dataImagePointer=(int*)imageData->GetScalarPointer(0,0,0);
-
- /*
- Image Size
- */
- int ext[6];
- imageData->GetExtent(ext);
- int sx,sy,sz;
- sx=ext[1]-ext[0]+1;
- sy=ext[3]-ext[2]+1;
- sz=ext[5]-ext[4]+1;
-
- //-----------------
- //A3
- //-----------------
- //walking in the image
- int i=0,j=0,k=0;
- double sum1=0,sum2=0,sum3=0,sum4=0;
- for(i=0;i<sx;i++)
- {
- for(j=0;j<sy;j++)
- {
- for(k=0;k<sz;k++)
- {
-
- // we get the pointer to the position (i,j,k)y that way we can get the position of the point in the surface
- dataImagePointer=(int*)imageData->GetScalarPointer(i,j,k);
-
- sum1=(int)(dataImagePointer[0]) + (int)(dataImagePointer[1]) + (int)(dataImagePointer[2]);
- sum1=sum1/(3*VTK_INT_MAX);
-
- surfacePoints->InsertPoint(counter, i, j, sum1*height);
-
- counter ++;
- }
- }
- }
-
- //This cycle creates the cells of the surface
- int n =0;
- for(i=0;i<sx-1;i++)
- {
- for(j=0;j<sy-1;j++)
- {
- for(k=0;k<sz;k++)
- {
- surfaceCells->InsertNextCell(3);
- surfaceCells->InsertCellPoint(n);
- surfaceCells->InsertCellPoint(n+1);
- surfaceCells->InsertCellPoint(n+sy+1);
-
- surfaceCells->InsertNextCell(3);
- surfaceCells->InsertCellPoint(n);
- surfaceCells->InsertCellPoint(n+sy+1);
- surfaceCells->InsertCellPoint(n+sy);
-
- if(j<sy-2)
- {
- n++;
- }
- else
- {
- n=n+2;
- }
-
- }
- }
- }
-
- }
- else if(imageType == VTK_UNSIGNED_INT)
- {
- // pointers to get into the image
- unsigned int* dataImagePointer=NULL;
-
- // we start where the image starts
- dataImagePointer=(unsigned int*)imageData->GetScalarPointer(0,0,0);
-
- /*
- Image Size
- */
- int ext[6];
- imageData->GetExtent(ext);
- int sx,sy,sz;
- sx=ext[1]-ext[0]+1;
- sy=ext[3]-ext[2]+1;
- sz=ext[5]-ext[4]+1;
-
- //-----------------
- //A3
- //-----------------
- //walking in the image
- int i=0,j=0,k=0;
- double sum1=0,sum2=0,sum3=0,sum4=0;
- for(i=0;i<sx;i++)
- {
- for(j=0;j<sy;j++)
- {
- for(k=0;k<sz;k++)
- {
-
- // we get the pointer to the position (i,j,k)y that way we can get the position of the point in the surface
- dataImagePointer=(unsigned int*)imageData->GetScalarPointer(i,j,k);
-
- sum1=(int)(dataImagePointer[0]) + (int)(dataImagePointer[1]) + (int)(dataImagePointer[2]);
- sum1=sum1/(3*VTK_UNSIGNED_INT_MAX);
-
- surfacePoints->InsertPoint(counter, i, j, sum1*height);
-
- counter ++;
- }
- }
- }
-
- //This cycle creates the cells of the surface
- int n =0;
- for(i=0;i<sx-1;i++)
- {
- for(j=0;j<sy-1;j++)
- {
- for(k=0;k<sz;k++)
- {
- surfaceCells->InsertNextCell(3);
- surfaceCells->InsertCellPoint(n);
- surfaceCells->InsertCellPoint(n+1);
- surfaceCells->InsertCellPoint(n+sy+1);
-
- surfaceCells->InsertNextCell(3);
- surfaceCells->InsertCellPoint(n);
- surfaceCells->InsertCellPoint(n+sy+1);
- surfaceCells->InsertCellPoint(n+sy);
-
- if(j<sy-2)
- {
- n++;
- }
- else
- {
- n=n+2;
- }
-
- }
- }
- }
-
- }
- else if(imageType == VTK_LONG)
- {
- // pointers to get into the image
- long* dataImagePointer=NULL;
-
- // we start where the image starts
- dataImagePointer=(long*)imageData->GetScalarPointer(0,0,0);
-
- /*
- Image Size
- */
- int ext[6];
- imageData->GetExtent(ext);
- int sx,sy,sz;
- sx=ext[1]-ext[0]+1;
- sy=ext[3]-ext[2]+1;
- sz=ext[5]-ext[4]+1;
-
- //-----------------
- //A3
- //-----------------
- //walking in the image
- int i=0,j=0,k=0;
- double sum1=0,sum2=0,sum3=0,sum4=0;
- for(i=0;i<sx;i++)
- {
- for(j=0;j<sy;j++)
- {
- for(k=0;k<sz;k++)
- {
-
- // we get the pointer to the position (i,j,k)y that way we can get the position of the point in the surface
- dataImagePointer=(long*)imageData->GetScalarPointer(i,j,k);
-
- sum1=(int)(dataImagePointer[0]) + (int)(dataImagePointer[1]) + (int)(dataImagePointer[2]);
- sum1=sum1/(3*VTK_LONG_MAX);
-
- surfacePoints->InsertPoint(counter, i, j, sum1*height);
-
- counter ++;
- }
- }
- }
-
- //This cycle creates the cells of the surface
- int n =0;
- for(i=0;i<sx-1;i++)
- {
- for(j=0;j<sy-1;j++)
- {
- for(k=0;k<sz;k++)
- {
- surfaceCells->InsertNextCell(3);
- surfaceCells->InsertCellPoint(n);
- surfaceCells->InsertCellPoint(n+1);
- surfaceCells->InsertCellPoint(n+sy+1);
-
- surfaceCells->InsertNextCell(3);
- surfaceCells->InsertCellPoint(n);
- surfaceCells->InsertCellPoint(n+sy+1);
- surfaceCells->InsertCellPoint(n+sy);
-
- if(j<sy-2)
- {
- n++;
- }
- else
- {
- n=n+2;
- }
-
- }
- }
- }
-
- }
- else if(imageType == VTK_UNSIGNED_LONG)
- {
- // pointers to get into the image
- unsigned long* dataImagePointer=NULL;
-
- // we start where the image starts
- dataImagePointer=(unsigned long*)imageData->GetScalarPointer(0,0,0);
-
- /*
- Image Size
- */
- int ext[6];
- imageData->GetExtent(ext);
- int sx,sy,sz;
- sx=ext[1]-ext[0]+1;
- sy=ext[3]-ext[2]+1;
- sz=ext[5]-ext[4]+1;
-
- //-----------------
- //A3
- //-----------------
- //walking in the image
- int i=0,j=0,k=0;
- double sum1=0,sum2=0,sum3=0,sum4=0;
- for(i=0;i<sx;i++)
- {
- for(j=0;j<sy;j++)
- {
- for(k=0;k<sz;k++)
- {
-
- // we get the pointer to the position (i,j,k)y that way we can get the position of the point in the surface
- dataImagePointer=(unsigned long*)imageData->GetScalarPointer(i,j,k);
-
- sum1=(int)(dataImagePointer[0]) + (int)(dataImagePointer[1]) + (int)(dataImagePointer[2]);
- sum1=sum1/(3*VTK_UNSIGNED_LONG_MAX);
-
- surfacePoints->InsertPoint(counter, i, j, sum1*height);
-
- counter ++;
- }
- }
- }
-
- //This cycle creates the cells of the surface
- int n =0;
- for(i=0;i<sx-1;i++)
- {
- for(j=0;j<sy-1;j++)
- {
- for(k=0;k<sz;k++)
- {
- surfaceCells->InsertNextCell(3);
- surfaceCells->InsertCellPoint(n);
- surfaceCells->InsertCellPoint(n+1);
- surfaceCells->InsertCellPoint(n+sy+1);
-
- surfaceCells->InsertNextCell(3);
- surfaceCells->InsertCellPoint(n);
- surfaceCells->InsertCellPoint(n+sy+1);
- surfaceCells->InsertCellPoint(n+sy);
-
- if(j<sy-2)
- {
- n++;
- }
- else
- {
- n=n+2;
- }
-
- }
- }
- }
-
- }
- else if(imageType == VTK_FLOAT)
- {
- // pointers to get into the image
- float* dataImagePointer=NULL;
-
- // we start where the image starts
- dataImagePointer=(float*)imageData->GetScalarPointer(0,0,0);
-
- /*
- Image Size
- */
- int ext[6];
- imageData->GetExtent(ext);
- int sx,sy,sz;
- sx=ext[1]-ext[0]+1;
- sy=ext[3]-ext[2]+1;
- sz=ext[5]-ext[4]+1;
-
- //-----------------
- //A3
- //-----------------
- //walking in the image
- int i=0,j=0,k=0;
- double sum1=0,sum2=0,sum3=0,sum4=0;
- for(i=0;i<sx;i++)
- {
- for(j=0;j<sy;j++)
- {
- for(k=0;k<sz;k++)
- {
-
- // we get the pointer to the position (i,j,k)y that way we can get the position of the point in the surface
- dataImagePointer=(float*)imageData->GetScalarPointer(i,j,k);
-
- sum1=(int)(dataImagePointer[0]) + (int)(dataImagePointer[1]) + (int)(dataImagePointer[2]);
- sum1=sum1/(3*VTK_FLOAT_MAX);
-
- surfacePoints->InsertPoint(counter, i, j, sum1*height);
-
- counter ++;
- }
- }
- }
-
- //This cycle creates the cells of the surface
- int n =0;
- for(i=0;i<sx-1;i++)
- {
- for(j=0;j<sy-1;j++)
- {
- for(k=0;k<sz;k++)
- {
- surfaceCells->InsertNextCell(3);
- surfaceCells->InsertCellPoint(n);
- surfaceCells->InsertCellPoint(n+1);
- surfaceCells->InsertCellPoint(n+sy+1);
-
- surfaceCells->InsertNextCell(3);
- surfaceCells->InsertCellPoint(n);
- surfaceCells->InsertCellPoint(n+sy+1);
- surfaceCells->InsertCellPoint(n+sy);
-
- if(j<sy-2)
- {
- n++;
- }
- else
- {
- n=n+2;
- }
-
- }
- }
- }
-
- }
- else if(imageType == VTK_DOUBLE)
- {
- std::cout << "Got inside Double" << std::endl;
- // pointers to get into the image
- double* dataImagePointer=NULL;
-
- // we start where the image starts
- dataImagePointer=(double*)imageData->GetScalarPointer(0,0,0);
-
- /*
- Image Size
- */
- int ext[6];
- imageData->GetExtent(ext);
- int sx,sy,sz;
- sx=ext[1]-ext[0]+1;
- sy=ext[3]-ext[2]+1;
- sz=ext[5]-ext[4]+1;
-
- //-----------------
- //A3
- //-----------------
- //walking in the image
- int i=0,j=0,k=0;
- double sum1=0,sum2=0,sum3=0,sum4=0;
- for(i=0;i<sx;i++)
- {
- for(j=0;j<sy;j++)
- {
- for(k=0;k<sz;k++)
- {
-
- // we get the pointer to the position (i,j,k)y that way we can get the position of the point in the surface
- dataImagePointer=(double*)imageData->GetScalarPointer(i,j,k);
-
- sum1=(int)(dataImagePointer[0]) + (int)(dataImagePointer[1]) + (int)(dataImagePointer[2]);
- sum1=sum1/(3*VTK_DOUBLE_MAX);
-
- surfacePoints->InsertPoint(counter, i, j, sum1*height);
-
- counter ++;
- }
- }
- }
-
- //This cycle creates the cells of the surface
- int n =0;
- for(i=0;i<sx-1;i++)
- {
- for(j=0;j<sy-1;j++)
- {
- for(k=0;k<sz;k++)
- {
- surfaceCells->InsertNextCell(3);
- surfaceCells->InsertCellPoint(n);
- surfaceCells->InsertCellPoint(n+1);
- surfaceCells->InsertCellPoint(n+sy+1);
-
- surfaceCells->InsertNextCell(3);
- surfaceCells->InsertCellPoint(n);
- surfaceCells->InsertCellPoint(n+sy+1);
- surfaceCells->InsertCellPoint(n+sy);
-
- if(j<sy-2)
- {
- n++;
- }
- else
- {
- n=n+2;
- }
-
- }
- }
- }
-
- }
-
- vtkPolyData* surfaceData = vtkPolyData::New();
- surfaceData->SetPolys(surfaceCells);
- surfaceData->SetPoints(surfacePoints);
- surfaceData->Update();
-
- vtkPolyDataMapper* surfaceMapper = vtkPolyDataMapper::New();
- surfaceMapper->SetInput(surfaceData);
- surfaceMapper->Update();
-
- surfaceResult->SetMapper(surfaceMapper);
- surfaceResult->GetProperty()->SetOpacity(1.0);
-
- if (color == "RED")
- {
- surfaceResult->GetProperty()->SetColor(1,0,0);
- }
- else if (color == "BLUE")
- {
- surfaceResult->GetProperty()->SetColor(0,0,1);
- }
- else if (color == "GREEN")
- {
- surfaceResult->GetProperty()->SetColor(0,1,0);
- }
- else
- {
- surfaceResult->GetProperty()->SetColor(1,1,1);
- }
-}