+//--------------------------------------------------------------------
+std::vector<double> vvImage::GetOrigin() const
+{
+ std::vector<double> origin;
+ int dim = this->GetNumberOfDimensions();
+ for (int i = 0; i < dim; i++) {
+ if (i == 3)
+ origin.push_back(mTimeOrigin);
+ else
+ origin.push_back(mVtkImages[0]->GetOrigin()[i]);
+ }
+ return origin;
+}
+//--------------------------------------------------------------------
+
+//--------------------------------------------------------------------
+std::vector<int> vvImage::GetSize()
+{
+ std::vector<int> size0;
+ int dim = this->GetNumberOfDimensions();
+ for (int i = 0; i < dim; i++) {
+ if (i == 3)
+ size0.push_back(mVtkImages.size());
+ else
+ size0.push_back(mVtkImages[0]->GetDimensions()[i]);
+ }
+ return size0;
+}
+//--------------------------------------------------------------------
+
+//--------------------------------------------------------------------
+unsigned long vvImage::GetActualMemorySize()
+{
+ unsigned long size = 0;
+ for (unsigned int i = 0; i < mVtkImages.size(); i++) {
+ size += mVtkImages[i]->GetActualMemorySize();
+ }
+ return size;
+}
+//--------------------------------------------------------------------
+
+
+//--------------------------------------------------------------------
+bool vvImage::IsTimeSequence()
+{
+ return mVtkImages.size()>1;
+}
+//--------------------------------------------------------------------
+
+
+//--------------------------------------------------------------------
+const std::vector<vtkImageData*>& 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;
+ }
+}
+
+//--------------------------------------------------------------------
+
+//--------------------------------------------------------------------
+vtkSmartPointer<vtkTransform> vvImage::GetTransform()
+{
+ return mTransform;
+}
+//--------------------------------------------------------------------
+
+//--------------------------------------------------------------------
+void vvImage::SetTransform(vtkSmartPointer<vtkTransform> transform)