VTK vtkCustomAnimationCue

#include "vtkAnimationCue.h" 
#include "vtkRenderWindow.h" 
#include "vtkSphereSource.h"  //
#include "vtkRenderWindowInteractor.h"
#include "vtkRenderWindow.h" 
#include "vtkRenderer.h" 
#include "vtkActor.h" 
#include "vtkImageSinusoidSource.h"
#include "vtkImageData.h" 
#include "vtkImageDataGeometryFilter.h" 
#include "vtkDataSetSurfaceFilter.h" 
#include "vtkPolyDataMapper.h" 
#include "vtkLookupTable.h" 
#include "vtkAnimationScene.h"
#include "vtkAnimationScene.h"
#include "vtkAnimationScene.h"
class vtkCustomAnimationCue : public vtkAnimationCue {
public:  
	static vtkCustomAnimationCue* New(); 
	//vtkTypeRevisionMacro(vtkCustomAnimationCue, vtkAnimationCue);
	vtkRenderWindow *RenWin; 
	vtkSphereSource* Sphere;
protected:  
	vtkCustomAnimationCue() 
	{
		this->RenWin = 0;   
		this->Sphere = 0; 
	}  
			virtual void TickInternal(double currenttime, double deltatime, double clocktime) 
			{
				double new_st = currenttime * 180;     
				 
				this->Sphere->SetStartTheta(new_st);   
				this->RenWin->Render(); 
			} }; 
vtkStandardNewMacro(vtkCustomAnimationCue);
//vtkCxxRevisionMacro(vtkCustomAnimationCue, "$Revision$"); 		
int main(int argc, char *argv[])
{
	 
	vtkRenderer *ren1 = vtkRenderer::New();
	vtkRenderWindow *renWin = vtkRenderWindow::New();
	renWin->SetMultiSamples(0);
	renWin->AddRenderer(ren1);
	vtkSphereSource* sphere = vtkSphereSource::New();
	vtkPolyDataMapper* mapper = vtkPolyDataMapper::New();
	mapper->SetInputConnection(sphere->GetOutputPort());
	vtkActor* actor = vtkActor::New();
	actor->SetMapper(mapper);
	ren1->AddActor(actor);
	ren1->ResetCamera();
	renWin->Render();
	 
	vtkAnimationScene *scene = vtkAnimationScene::New();
	scene->SetModeToSequence();
	scene->SetFrameRate(30);
	scene->SetStartTime(0);
	scene->SetEndTime(60);
 
	vtkCustomAnimationCue *cue1 = vtkCustomAnimationCue::New();
	cue1->Sphere = sphere;
	cue1->RenWin = renWin;
	cue1->SetTimeModeToNormalized();
	cue1->SetStartTime(0);
	cue1->SetEndTime(1.0);
	scene->AddCue(cue1);
 
	scene->Play();
	scene->Stop();
	ren1->Delete();
	renWin->Delete();
	scene->Delete();
	cue1->Delete();
	return 0;
}

在这里插入图片描述在这里插入图片描述

发布了15 篇原创文章 · 获赞 6 · 访问量 1689

猜你喜欢

转载自blog.csdn.net/sinat_33514750/article/details/104882510
今日推荐