1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
#include "vtkCleanUnstructuredGrid.h"
#include "vtkExtractHistogram.h"
#include "vtkDataSetReader.h"
#include "vtkPiecewiseFunction.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkTesting.h"
#include "vtkTestUtilities.h"
#include "vtkTransferFunctionEditorWidget.h"
#include "vtkTransferFunctionViewer.h"
int main(int argc, char* argv[])
{
vtkTesting *t = vtkTesting::New();
int cc;
for (cc = 1; cc < argc; cc++)
{
t->AddArgument(argv[cc]);
}
char* fname =
vtkTestUtilities::ExpandDataFileName(argc, argv, "Data/ironProt.vtk");
vtkDataSetReader *reader = vtkDataSetReader::New();
reader->SetFileName(fname);
delete [] fname;
vtkCleanUnstructuredGrid *clean = vtkCleanUnstructuredGrid::New();
clean->SetInputConnection(reader->GetOutputPort());
vtkExtractHistogram *histogram = vtkExtractHistogram::New();
histogram->SetInputConnection(clean->GetOutputPort());
histogram->SetComponent(0);
histogram->SetBinCount(256);
histogram->Update();
vtkPiecewiseFunction *oFunc = vtkPiecewiseFunction::New();
oFunc->AddPoint(0, 0.0);
oFunc->AddPoint(255, 0.2);
vtkTransferFunctionViewer *viewer = vtkTransferFunctionViewer::New();
viewer->SetTransferFunctionEditorTypeToSimple1D();
viewer->SetModificationTypeToOpacity();
//viewer->SetHistogram(histogram->GetOutput());
//viewer->SetHistogramVisibility(1);
viewer->SetHistogramColor(0.67, 0.82, 1.0);
viewer->SetElementsColor(1, 0, 1);
viewer->SetAllowInteriorElements(0);
viewer->SetOpacityFunction(oFunc);
viewer->SetVisibleScalarRange(100, 200);
viewer->SetSize(800, 300);
viewer->Render();
viewer->GetEditorWidget()->ShowWholeScalarRange();
viewer->Render();
t->SetRenderWindow(viewer->GetRenderWindow());
int retVal = t->RegressionTest(10);
histogram->Delete();
reader->Delete();
clean->Delete();
viewer->Delete();
oFunc->Delete();
t->Delete();
return !retVal;
}
|