refactor: update transformation system, improve template readability, and reorganize VTK assembly management
This commit is contained in:
@@ -64,7 +64,7 @@ vtkDetectorChamber::vtkDetectorChamber(DetectorChamber *content)
|
||||
|
||||
this->SetProp(m_PlaneActor);
|
||||
|
||||
this->contentUpdate();
|
||||
this->Update();
|
||||
}
|
||||
|
||||
vtkDetectorChamber::~vtkDetectorChamber() {
|
||||
@@ -76,8 +76,8 @@ DetectorChamber *vtkDetectorChamber::GetContent() {
|
||||
return static_cast<DetectorChamber *>(m_Content);
|
||||
}
|
||||
|
||||
void vtkDetectorChamber::contentUpdate() {
|
||||
this->BaseClass::contentUpdate();
|
||||
void vtkDetectorChamber::Update() {
|
||||
this->BaseClass::Update();
|
||||
|
||||
if (!m_Content) return;
|
||||
DetectorChamber *c = this->GetContent();
|
||||
|
||||
@@ -56,7 +56,7 @@ public:
|
||||
|
||||
Content *GetContent();
|
||||
|
||||
virtual void contentUpdate() override;
|
||||
virtual void Update() override;
|
||||
|
||||
protected:
|
||||
vtkActor *m_PlaneActor;
|
||||
|
||||
@@ -40,20 +40,21 @@ namespace Vtk {
|
||||
vtkMuonScatter::vtkMuonScatter(MuonScatter &content)
|
||||
: m_Content(&content), m_LineIn(vtkLineSource::New()),
|
||||
m_LineOut(vtkLineSource::New()), m_PolyData(vtkPolyData::New()),
|
||||
m_SpherePoca(NULL) {
|
||||
m_SpherePoca(NULL), m_Asm(vtkAssembly::New()) {
|
||||
InstallPipe();
|
||||
}
|
||||
|
||||
vtkMuonScatter::vtkMuonScatter(const MuonScatter &content)
|
||||
: m_Content(const_cast<MuonScatter *>(&content)),
|
||||
m_LineIn(vtkLineSource::New()), m_LineOut(vtkLineSource::New()),
|
||||
m_PolyData(vtkPolyData::New()), m_SpherePoca(NULL) {
|
||||
m_PolyData(vtkPolyData::New()), m_SpherePoca(NULL), m_Asm(vtkAssembly::New()) {
|
||||
InstallPipe();
|
||||
}
|
||||
|
||||
vtkMuonScatter::~vtkMuonScatter() {
|
||||
m_LineIn->Delete();
|
||||
m_LineOut->Delete();
|
||||
m_Asm->Delete();
|
||||
if (m_SpherePoca)
|
||||
m_SpherePoca->Delete();
|
||||
}
|
||||
@@ -87,13 +88,15 @@ void vtkMuonScatter::InstallPipe() {
|
||||
mapper->SetInputConnection(m_LineIn->GetOutputPort());
|
||||
vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
|
||||
actor->SetMapper(mapper);
|
||||
this->SetProp(actor);
|
||||
m_Asm->AddPart(actor);
|
||||
|
||||
mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
|
||||
mapper->SetInputConnection(m_LineOut->GetOutputPort());
|
||||
actor = vtkSmartPointer<vtkActor>::New();
|
||||
actor->SetMapper(mapper);
|
||||
this->SetProp(actor);
|
||||
m_Asm->AddPart(actor);
|
||||
|
||||
this->SetProp(m_Asm);
|
||||
}
|
||||
|
||||
vtkPolyData *vtkMuonScatter::GetPolyData() const {
|
||||
@@ -123,7 +126,7 @@ void vtkMuonScatter::AddPocaPoint(HPoint3f poca) {
|
||||
mapper->SetInputConnection(m_SpherePoca->GetOutputPort());
|
||||
vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
|
||||
actor->SetMapper(mapper);
|
||||
this->SetProp(actor);
|
||||
m_Asm->AddPart(actor);
|
||||
}
|
||||
|
||||
HPoint3f vtkMuonScatter::GetPocaPoint() {
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#define VTKMUONSCATTER_H
|
||||
|
||||
#include <vtkActor.h>
|
||||
#include <vtkAssembly.h>
|
||||
#include <vtkAppendPolyData.h>
|
||||
#include <vtkLineSource.h>
|
||||
#include <vtkPolyDataMapper.h>
|
||||
@@ -85,6 +86,7 @@ private:
|
||||
vtkLineSource *m_LineOut;
|
||||
vtkSphereSource *m_SpherePoca;
|
||||
vtkPolyData *m_PolyData;
|
||||
vtkAssembly *m_Asm;
|
||||
};
|
||||
|
||||
} // namespace Vtk
|
||||
|
||||
Reference in New Issue
Block a user