-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvtkUpdateCubeCallback.h
More file actions
79 lines (68 loc) · 1.71 KB
/
vtkUpdateCubeCallback.h
File metadata and controls
79 lines (68 loc) · 1.71 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
#ifndef VTK_UPDATE_CUBE_CALLBACK_
#define VTK_UPDATE_CUBE_CALLBACK_
#include "vtkCommand.h"
#include "vtkObject.h"
#include "vtkPolyData.h"
#include "vtkSmartPointer.h"
#include "vtkBoxWidget.h"
#include "vtkCubeSource.h"
#include "vtkActor.h"
#include <log4cpp/Category.hh>
#include <log4cpp/PropertyConfigurator.hh>
class vtkUpdateCubeCallback:public vtkCommand
{
public:
static vtkUpdateCubeCallback* New()
{
return new vtkUpdateCubeCallback;
}
virtual void Execute(vtkObject *caller, unsigned long ev,
void *callData)
{
log4cpp::Category& rootLog = log4cpp::Category::getRoot();
log4cpp::Category& subLog = log4cpp::Category::getInstance(std::string("sub1"));
if( ev == vtkCommand::EndInteractionEvent|| ev == vtkCommand::EnableEvent)
{
vtkSmartPointer<vtkPolyData> polyData = vtkSmartPointer<vtkPolyData>::New();
vtkBoxWidget* boxWidget = dynamic_cast<vtkBoxWidget*>(caller);
if(boxWidget != 0)
{
boxWidget->GetPolyData(polyData);
polyData->ComputeBounds();
if(cubeSource != 0 )
{
cubeSource->SetBounds(polyData->GetBounds());
cubeSource->Modified();
}else
{
rootLog.error("vtkUpdateCubeCallback:cubeSource没有设置");
subLog.error("vtkUpdateCubeCallback:cubeSource没有设置");
}
if(cubeActor != 0)
{
cubeActor->VisibilityOn();
}else
{
rootLog.error("vtkUpdateCubeCallback:cubeActor没有设置");
subLog.error("vtkUpdateCubeCallback:cubeActor没有设置");
}
}
}
}
void setCubeActor( vtkActor* va)
{
cubeActor = va;
}
void setCubeSource(vtkCubeSource* cs)
{
cubeSource = cs;
}
protected:
vtkUpdateCubeCallback()
{
}
private:
vtkCubeSource * cubeSource;
vtkActor* cubeActor;
};
#endif