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.

177 lines
5.1 KiB

2 years ago
/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: Regression.java,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.
=========================================================================*/
import vtk.*;
public class Regression
{
public static void main (String []args)
{
vtkTesting2.Initialize(args, true);
vtkShortArray array = new vtkShortArray();
array.InsertNextTuple1(3.0);
array.InsertNextTuple1(1.0);
array.InsertNextTuple1(4.0);
array.InsertNextTuple1(1.0);
array.InsertNextTuple1(5.0);
array.InsertNextTuple1(9.0);
array.InsertNextTuple1(2.0);
array.InsertNextTuple1(6.0);
array.InsertNextTuple1(5.0);
array.InsertNextTuple1(3.0);
array.InsertNextTuple1(5.0);
array.InsertNextTuple1(8.0);
array.InsertNextTuple1(9.0);
array.InsertNextTuple1(7.0);
array.InsertNextTuple1(9.0);
array.InsertNextTuple1(3.0);
array.InsertNextTuple1(1.0);
short[] carray = array.GetJavaArray();
int cc;
System.out.print("[");
for ( cc = 0; cc < carray.length; cc ++ )
{
short i = carray[cc];
System.out.print(i);
}
System.out.println("]");
vtkUnsignedShortArray narray = new vtkUnsignedShortArray();
narray.SetJavaArray(carray);
System.out.print("[");
for ( cc = 0; cc <= narray.GetMaxId(); cc ++ )
{
int i = narray.GetValue(cc);
System.out.print(i);
}
System.out.println("]");
vtkRenderWindow renWin = new vtkRenderWindow();
vtkRenderer ren1 = new vtkRenderer();
renWin.AddRenderer(ren1);
vtkRenderWindowInteractor iren = new vtkRenderWindowInteractor();
iren.SetRenderWindow(renWin);
vtkConeSource cone = new vtkConeSource();
cone.SetResolution(8);
vtkPolyDataMapper coneMapper = new vtkPolyDataMapper();
coneMapper.SetInput(cone.GetOutput());
vtkActor coneActor = new vtkActor();
coneActor.SetMapper(coneMapper);
ren1.AddActor(coneActor);
renWin.Render();
vtkWindowToImageFilter w2i = new vtkWindowToImageFilter();
w2i.SetInput(renWin);
w2i.Modified();
renWin.Render();
w2i.Update();
vtkImageData image = w2i.GetOutput();
vtkUnsignedCharArray da = (vtkUnsignedCharArray)image.GetPointData().GetScalars();
byte[] barray = da.GetJavaArray();
System.out.println("Length of array: " + barray.length);
vtkUnsignedCharArray nda = new vtkUnsignedCharArray();
nda.SetJavaArray(barray);
vtkImageData nimage = new vtkImageData();
nimage.SetDimensions(image.GetDimensions());
nimage.SetSpacing(image.GetSpacing());
nimage.SetOrigin(image.GetOrigin());
nimage.SetScalarType(image.GetScalarType());
nimage.SetNumberOfScalarComponents(image.GetNumberOfScalarComponents());
nimage.AllocateScalars();
vtkUnsignedCharArray nida = (vtkUnsignedCharArray)nimage.GetPointData().GetScalars();
nida.SetJavaArray(barray);
int retVal0 = vtkTesting2.PASSED;
for ( cc = 0; cc <= da.GetMaxId(); cc ++ )
{
int v1=0, v2=0, v3=0;
v1 = da.GetValue(cc);
if ( cc <= nda.GetMaxId() )
{
v2 = nda.GetValue(cc);
}
else
{
System.out.println("Cannot find point " + cc + " in nda");
retVal0 = vtkTesting2.FAILED;
}
if ( cc <= nida.GetMaxId() )
{
v3 = nida.GetValue(cc);
}
else
{
System.out.println("Cannot find point " + cc + " in nida");
retVal0 = vtkTesting2.FAILED;
}
if ( v1 != v2 || v1 != v3 )
{
System.out.println("Wrong point: " + v1 + " <> " + v2 + " <> " + v3);
retVal0 = vtkTesting2.FAILED;
}
}
vtkImageDifference imgDiff = new vtkImageDifference();
imgDiff.SetInput(nimage);
imgDiff.SetImage(image);
imgDiff.Update();
int retVal1 = vtkTesting2.PASSED;
if ( imgDiff.GetThresholdedError() != 0 )
{
System.out.println("Problem with array conversion. Image difference is: " + imgDiff.GetThresholdedError());
vtkPNGWriter wr = new vtkPNGWriter();
wr.SetInput(image);
wr.SetFileName("im1.png");
wr.Write();
wr.SetInput(nimage);
wr.SetFileName("im2.png");
wr.Write();
wr.SetInput(imgDiff.GetOutput());
wr.SetFileName("diff.png");
wr.Write();
retVal1 = vtkTesting2.FAILED;
}
int retVal2 = vtkTesting2.PASSED;
if ( vtkTesting2.IsInteractive() )
{
iren.Start();
}
else
{
vtkTesting2.RegressionTest(renWin, 10);
}
if ( retVal0 != vtkTesting2.PASSED )
{
vtkTesting2.Exit(retVal0);
}
if ( retVal1 != vtkTesting2.PASSED )
{
vtkTesting2.Exit(retVal1);
}
vtkTesting2.Exit(retVal2);
}
}