mTimeSpacing = 1;
mTimeOrigin = 0;
mImageDimension = 0;
+ mrange[0] = std::numeric_limits<int>::max();;//min
+ mrange[1] = std::numeric_limits<int>::min();;//max
}
//--------------------------------------------------------------------
#else
int* extent = input->GetInformation()->Get(vtkDataObject::DATA_EXTENT());
#endif
-
if (extent[4] != extent[5])
mImageDimension = 3;
else if (extent[3] != extent[4])
//--------------------------------------------------------------------
void vvImage::GetScalarRange(double* range)
{
- assert(mVtkImages.size());
- double * temp = mVtkImages[0]->GetScalarRange();
- range[0]=temp[0];
- range[1]=temp[1];
- for (unsigned int i=1; i<mVtkImages.size(); i++) {
- temp = mVtkImages[i]->GetScalarRange();
- if (temp[0] < range[0]) range[0]=temp[0];
- if (temp[1] > range[1]) range[1]=temp[1];
- }
+ range[0]=mrange[0];
+ range[1]=mrange[1];
}
//--------------------------------------------------------------------
{
unsigned long size = 0;
for (unsigned int i = 0; i < mVtkImages.size(); i++) {
- size += mVtkImages[i]->GetActualMemorySize();
+ size += mVtkImages[i]->GetActualMemorySize()*1024;
}
return size;
}
//--------------------------------------------------------------------
+//--------------------------------------------------------------------
+void vvImage::InitializeTransform()
+{
+ for (int i = 0; i < mTransform.size(); i++)
+ mTransform[i]->Identity();
+}
+//--------------------------------------------------------------------
+
+
+//--------------------------------------------------------------------
+std::vector< std::vector<double> > vvImage::GetDirection()
+{
+ int dim = this->GetNumberOfDimensions();
+ vtkSmartPointer<vtkTransform> transform = vtkSmartPointer<vtkTransform>::New();
+ transform->Identity();
+ for (int i = 0; i < mTransform.size(); i++)
+ transform->Concatenate(this->mTransform[i]);
+
+ vtkSmartPointer<vtkMatrix4x4> matrix = transform->GetMatrix();
+ matrix->Invert();
+ std::vector<std::vector<double> > direction0;
+ for (int i = 0; i < dim; i++) {
+ if (i != 3) {
+ std::vector<double> direction1;
+ for (int j = 0; j < dim; j++) {
+ if (j != 3)
+#if VTK_MAJOR_VERSION <= 6
+ direction1.push_back((*matrix)[i][j]);
+#else
+ direction1.push_back((*matrix).GetElement(i,j));
+#endif
+ }
+ direction0.push_back(direction1);
+ }
+ }
+ return direction0;
+}
+//--------------------------------------------------------------------
+
+
+
//--------------------------------------------------------------------
bool vvImage::HaveSameSizeAndSpacingThan(vvImage * other)
{