X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FvvImage.cxx;h=ae5c5a645ca5c842524be2c8b03c617485254571;hb=7f78d7b6b6bca61ca0aae964a6747cd769c0ba94;hp=c0c3aa61c683a734854a21b90c17024bfa73b191;hpb=931a42358442f4ee4f314613c991c838d4b4e3b7;p=clitk.git
diff --git a/common/vvImage.cxx b/common/vvImage.cxx
index c0c3aa6..ae5c5a6 100644
--- a/common/vvImage.cxx
+++ b/common/vvImage.cxx
@@ -1,13 +1,10 @@
#ifndef VVIMAGE_CXX
#define VVIMAGE_CXX
-/*=========================================================================
+/*-------------------------------------------------------------------------
Program: vv
-Module: $RCSfile: vvImage.cxx,v $
Language: C++
-Date: $Date: 2010/01/06 13:32:01 $
-Version: $Revision: 1.1 $
Author : Pierre Seroul (pierre.seroul@gmail.com)
Copyright (C) 2008
@@ -26,29 +23,29 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
-=========================================================================*/
+-------------------------------------------------------------------------*/
#include "vvImage.h"
#include "vtkImageData.h"
#include "clitkCommon.h"
#include
-//====================================================================
+//--------------------------------------------------------------------
vvImage::vvImage() {
mVtkImages.resize(0);
}
-//====================================================================
+//--------------------------------------------------------------------
-//====================================================================
+//--------------------------------------------------------------------
vvImage::~vvImage() {
for (unsigned int i = 0; i < mVtkImages.size(); i++) {
if (mVtkImages[i] != NULL)
mVtkImages[i]->Delete();
}
}
-//====================================================================
+//--------------------------------------------------------------------
-//====================================================================
+//--------------------------------------------------------------------
void vvImage::SetImage(std::vector images) {
for (unsigned int i = 0; i < mVtkImages.size(); i++) {
if (mVtkImages[i] != NULL)
@@ -59,15 +56,15 @@ void vvImage::SetImage(std::vector images) {
mVtkImages.push_back(images[i]);
}
}
-//====================================================================
+//--------------------------------------------------------------------
-//====================================================================
+//--------------------------------------------------------------------
void vvImage::AddImage(vtkImageData* image) {
mVtkImages.push_back(image);
}
-//====================================================================
+//--------------------------------------------------------------------
-//====================================================================
+//--------------------------------------------------------------------
void vvImage::Init() {
for (unsigned int i = 0; i < mVtkImages.size(); i++) {
if (mVtkImages[i] != NULL)
@@ -75,9 +72,9 @@ void vvImage::Init() {
}
mVtkImages.resize(0);
}
-//====================================================================
+//--------------------------------------------------------------------
-//====================================================================
+//--------------------------------------------------------------------
int vvImage::GetNumberOfSpatialDimensions() {
int dim=GetNumberOfDimensions();
if (IsTimeSequence())
@@ -85,9 +82,9 @@ int vvImage::GetNumberOfSpatialDimensions() {
else
return dim;
}
-//====================================================================
+//--------------------------------------------------------------------
//
-//====================================================================
+//--------------------------------------------------------------------
int vvImage::GetNumberOfDimensions() const {
if (mVtkImages.size())
{
@@ -102,7 +99,7 @@ int vvImage::GetNumberOfDimensions() const {
}
return 0;
}
-//====================================================================
+//--------------------------------------------------------------------
void vvImage::GetScalarRange(double* range)
{
assert(mVtkImages.size());
@@ -116,25 +113,25 @@ void vvImage::GetScalarRange(double* range)
}
}
-//====================================================================
+//--------------------------------------------------------------------
std::string vvImage::GetScalarTypeAsString() {
return mVtkImages[0]->GetScalarTypeAsString();
}
-//====================================================================
+//--------------------------------------------------------------------
-//====================================================================
+//--------------------------------------------------------------------
int vvImage::GetNumberOfScalarComponents() {
return mVtkImages[0]->GetNumberOfScalarComponents();
}
-//====================================================================
+//--------------------------------------------------------------------
-//====================================================================
+//--------------------------------------------------------------------
int vvImage::GetScalarSize() {
return mVtkImages[0]->GetScalarSize();
}
-//====================================================================
+//--------------------------------------------------------------------
-//====================================================================
+//--------------------------------------------------------------------
std::vector vvImage::GetSpacing() {
std::vector spacing;
int dim = this->GetNumberOfDimensions();
@@ -147,9 +144,9 @@ std::vector vvImage::GetSpacing() {
}
return spacing;
}
-//====================================================================
+//--------------------------------------------------------------------
-//====================================================================
+//--------------------------------------------------------------------
std::vector vvImage::GetOrigin() const {
std::vector origin;
int dim = this->GetNumberOfDimensions();
@@ -162,9 +159,9 @@ std::vector vvImage::GetOrigin() const {
}
return origin;
}
-//====================================================================
+//--------------------------------------------------------------------
-//====================================================================
+//--------------------------------------------------------------------
std::vector vvImage::GetSize() {
std::vector size0;
int dim = this->GetNumberOfDimensions();
@@ -177,9 +174,9 @@ std::vector vvImage::GetSize() {
}
return size0;
}
-//====================================================================
+//--------------------------------------------------------------------
-//====================================================================
+//--------------------------------------------------------------------
unsigned long vvImage::GetActualMemorySize() {
unsigned long size = 0;
for (unsigned int i = 0; i < mVtkImages.size(); i++) {
@@ -187,6 +184,56 @@ unsigned long vvImage::GetActualMemorySize() {
}
return size;
}
-//====================================================================
+//--------------------------------------------------------------------
+
+
+//--------------------------------------------------------------------
+bool vvImage::IsTimeSequence() {
+ return mVtkImages.size()>1;
+}
+//--------------------------------------------------------------------
+
+
+//--------------------------------------------------------------------
+const std::vector& vvImage::GetVTKImages() {
+ return mVtkImages;
+}
+//--------------------------------------------------------------------
+
+
+//--------------------------------------------------------------------
+vtkImageData* vvImage::GetFirstVTKImageData() {
+ return mVtkImages[0];
+}
+//--------------------------------------------------------------------
+
+
+//--------------------------------------------------------------------
+bool vvImage::IsScalarTypeInteger() {
+ assert(mVtkImages.size()> 0);
+ int t = mVtkImages[0]->GetScalarType();
+ return IsScalarTypeInteger(t);
+}
+//--------------------------------------------------------------------
+
+//--------------------------------------------------------------------
+bool vvImage::IsScalarTypeInteger(int t) {
+ if ((t == VTK_BIT) ||
+ (t == VTK_CHAR) ||
+ (t == VTK_UNSIGNED_CHAR) ||
+ (t == VTK_SHORT) ||
+ (t == VTK_UNSIGNED_SHORT) ||
+ (t == VTK_INT) ||
+ (t == VTK_UNSIGNED_INT) ||
+ (t == VTK_LONG) ||
+ (t == VTK_UNSIGNED_LONG)) {
+ return true;
+ }
+ else {
+ return false;
+ }
+}
+//--------------------------------------------------------------------
+
#endif // VVIMAGE_CXX