Cloned library of VTK-5.0.0 with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

146 lines
5.1 KiB

/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: vtkBranchExtentTranslator.cxx,v $
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#include "vtkBranchExtentTranslator.h"
#include "vtkObjectFactory.h"
#include "vtkSource.h"
#include "vtkImageData.h"
vtkCxxRevisionMacro(vtkBranchExtentTranslator, "$Revision: 1.15 $");
vtkStandardNewMacro(vtkBranchExtentTranslator);
vtkCxxSetObjectMacro(vtkBranchExtentTranslator,OriginalSource,vtkImageData);
//----------------------------------------------------------------------------
vtkBranchExtentTranslator::vtkBranchExtentTranslator()
{
this->OriginalSource = NULL;
this->AssignedPiece = 0;
this->AssignedNumberOfPieces = 1;
}
//----------------------------------------------------------------------------
vtkBranchExtentTranslator::~vtkBranchExtentTranslator()
{
this->SetOriginalSource(NULL);
}
//----------------------------------------------------------------------------
int vtkBranchExtentTranslator::PieceToExtent()
{
//cerr << this << " PieceToExtent: " << this->Piece << " of " << this->NumberOfPieces << endl;
//cerr << "OriginalData: " << this->OriginalSource << endl;
//cerr << "OriginalData is of type " << this->OriginalSource->GetClassName() << endl;
//cerr << "OriginalSource: " << this->OriginalSource->GetSource() << endl;
//cerr << "OriginalSource is of type: " << this->OriginalSource->GetSource()->GetClassName() << endl;
if (this->OriginalSource == NULL)
{ // If the user has not set the original source, then just default
// to the method in the superclass.
return this->vtkExtentTranslator::PieceToExtent();
}
this->OriginalSource->UpdateInformation();
this->OriginalSource->GetWholeExtent(this->Extent);
//cerr << this << "WholeExtent: " << this->Extent[0] << ", " << this->Extent[1] << ", "
// << this->Extent[2] << ", " << this->Extent[3] << ", "
// << this->Extent[4] << ", " << this->Extent[5] << endl;
if (this->SplitExtent(this->Piece, this->NumberOfPieces, this->Extent, 3) == 0)
{
//cerr << "Split thinks nothing is in the piece" << endl;
//cerr << this << " Split: " << this->Extent[0] << ", " << this->Extent[1] << ", "
// << this->Extent[2] << ", " << this->Extent[3] << ", "
// << this->Extent[4] << ", " << this->Extent[5] << endl;
// Nothing in this piece.
this->Extent[0] = this->Extent[2] = this->Extent[4] = 0;
this->Extent[1] = this->Extent[3] = this->Extent[5] = -1;
//cerr << this << " Extent: " << this->Extent[0] << ", " << this->Extent[1] << ", "
// << this->Extent[2] << ", " << this->Extent[3] << ", "
// << this->Extent[4] << ", " << this->Extent[5] << endl;
return 0;
}
//cerr << this << " Split: " << this->Extent[0] << ", " << this->Extent[1] << ", "
// << this->Extent[2] << ", " << this->Extent[3] << ", "
// << this->Extent[4] << ", " << this->Extent[5] << endl;
// Clip with the whole extent passed in.
if (this->Extent[0] < this->WholeExtent[0])
{
this->Extent[0] = this->WholeExtent[0];
}
if (this->Extent[1] > this->WholeExtent[1])
{
this->Extent[1] = this->WholeExtent[1];
}
if (this->Extent[2] < this->WholeExtent[2])
{
this->Extent[2] = this->WholeExtent[2];
}
if (this->Extent[3] > this->WholeExtent[3])
{
this->Extent[3] = this->WholeExtent[3];
}
if (this->Extent[4] < this->WholeExtent[4])
{
this->Extent[4] = this->WholeExtent[4];
}
if (this->Extent[5] > this->WholeExtent[5])
{
this->Extent[5] = this->WholeExtent[5];
}
if (this->Extent[0] > this->Extent[1] ||
this->Extent[2] > this->Extent[3] ||
this->Extent[4] > this->Extent[5])
{
this->Extent[0] = this->Extent[2] = this->Extent[4] = 0;
this->Extent[1] = this->Extent[3] = this->Extent[5] = -1;
//cerr << this << " Extent: " << this->Extent[0] << ", " << this->Extent[1] << ", "
// << this->Extent[2] << ", " << this->Extent[3] << ", "
// << this->Extent[4] << ", " << this->Extent[5] << endl;
return 0;
}
//cerr << this << " Extent: " << this->Extent[0] << ", " << this->Extent[1] << ", "
// << this->Extent[2] << ", " << this->Extent[3] << ", "
// << this->Extent[4] << ", " << this->Extent[5] << endl;
return 1;
}
//----------------------------------------------------------------------------
void vtkBranchExtentTranslator::PrintSelf(ostream& os, vtkIndent indent)
{
this->Superclass::PrintSelf(os,indent);
os << indent << "Original Source: (" << this->OriginalSource << ")\n";
os << indent << "AssignedPiece: " << this->AssignedPiece << endl;
os << indent << "AssignedNumberOfPieces: " << this->AssignedNumberOfPieces << endl;
}