#Vtk#DisplayCoordinateAxes 显示物体坐标系

#pragma once
#include <VtkJoeInterface.h>
#include <vtkAxesActor.h>
#include <vtkCamera.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkOrientationMarkerWidget.h>
#include <vtkPolyData.h>
#include <vtkPolyDataMapper.h>
#include <vtkPropAssembly.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkSmartPointer.h>
#include <vtkSphereSource.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkProperty.h>
class F730DisplayCoordinateAxes :public VtkJoeInterface
{
public:
	void renderInit() override;
	void renderLoop() override;
private:
	vtkNew<vtkActor> actor;
};

inline void F730DisplayCoordinateAxes::renderInit()
{
	vtkNew<vtkSphereSource> sphereSource;
	sphereSource->SetCenter(0.0, 0.0, 0.0);
	sphereSource->SetRadius(1.0);
	sphereSource->Update();

	vtkPolyData* polydata = sphereSource->GetOutput();

	// Create a mapper
	vtkNew<vtkPolyDataMapper> mapper;
	mapper->SetInputData(polydata);

	// Create an actor
	vtkNew<vtkActor> actor;
	actor->SetMapper(mapper);
	actor->GetProperty()->SetColor(colors->GetColor3d("MistyRose").GetData());

	// A renderer and render window
	vtkNew<vtkRenderer> renderer;
	vtkNew<vtkRenderWindow> renderWindow;
	renderWindow->SetWindowName("DisplayCoordinateAxes");
	renderWindow->AddRenderer(renderer);

	// An interactor
	vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;
	renderWindowInteractor->SetRenderWindow(renderWindow);

	// Add the actors to the scene
	renderer->AddActor(actor);
	renderer->SetBackground(colors->GetColor3d("SlateGray").GetData());

	vtkNew<vtkAxesActor> axes;

	vtkNew<vtkOrientationMarkerWidget> widget;
	double rgba[4]{ 0.0, 0.0, 0.0, 0.0 };
	colors->GetColor("Carrot", rgba);
	widget->SetOutlineColor(rgba[0], rgba[1], rgba[2]);
	widget->SetOrientationMarker(axes);
	widget->SetInteractor(renderWindowInteractor);
	widget->SetViewport(0.0, 0.0, 0.4, 0.4);
	widget->SetEnabled(1);
	widget->InteractiveOn();

	renderer->GetActiveCamera()->Azimuth(50);
	renderer->GetActiveCamera()->Elevation(-30);

	renderer->ResetCamera();
	renderWindow->Render();

	// Begin mouse interaction
	renderWindowInteractor->Start();
}
inline void F730DisplayCoordinateAxes::renderLoop()
{

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值