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
|
#include "vtkActor.h"
#include "vtkConeSource.h"
#include "vtkImageData.h"
#include "vtkPolyDataMapper.h"
#include "vtkJPEGReader.h"
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkSmartPointer.h"
#include "vtkTestUtilities.h"
#include "vtkTexture.h"
#include "vtkRegressionTestImage.h"
#define VTK_CREATE(type,name) \
vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
int TestTexturedBackground(int argc, char* argv[])
{
VTK_CREATE(vtkRenderWindow, win);
VTK_CREATE(vtkRenderWindowInteractor, iren);
VTK_CREATE(vtkRenderer, ren);
VTK_CREATE(vtkConeSource, cone);
VTK_CREATE(vtkPolyDataMapper, map);
VTK_CREATE(vtkActor, act);
VTK_CREATE(vtkTexture, textr);
VTK_CREATE(vtkJPEGReader, imgReader);
VTK_CREATE(vtkImageData, image);
char* fname = vtkTestUtilities::ExpandDataFileName(
argc, argv, "Data/beach.jpg");
imgReader->SetFileName(fname);
delete [] fname;
imgReader->Update();
textr->SetInputConnection(imgReader->GetOutputPort(0));
// Do not call this.
// textr->Update();
map->SetInputConnection(cone->GetOutputPort(0));
act->SetMapper(map);
ren->AddActor(act);
ren->TexturedBackgroundOn();
// ren->GradientBackgroundOn();
ren->SetBackgroundTexture(textr);
ren->SetBackground(0.8, 0.4, 0.1);
ren->SetBackground2(0.1, 0.4, 0.8);
win->AddRenderer(ren);
win->SetInteractor(iren);
win->Render();
iren->Initialize();
int retVal = vtkRegressionTestImage(win);
if (retVal == vtkRegressionTester::DO_INTERACTOR)
{
iren->Start();
}
return !retVal;
}
|