add voximage represetation and test

This commit is contained in:
AndreaRigoni
2026-03-19 16:39:05 +00:00
parent 80952cc706
commit 6234dffaa7
4 changed files with 155 additions and 4 deletions

View File

@@ -125,6 +125,7 @@ void vtkVoxImage::SetContent() {
vtkVoxImage::vtkVoxImage(Content &content)
: m_Content(content), m_Actor(vtkVolume::New()),
m_Image(vtkImageData::New()), m_Outline(vtkCubeSource::New()),
m_OutlineActor(vtkActor::New()),
m_Reader(NULL), m_Writer(NULL), writer_factor(1.E6) {
GetContent();
InstallPipe();
@@ -134,6 +135,7 @@ vtkVoxImage::~vtkVoxImage() {
m_Image->Delete();
m_Actor->Delete();
m_Outline->Delete();
m_OutlineActor->Delete();
}
vtkImageData *vtkVoxImage::GetImageData() {
@@ -260,6 +262,18 @@ void vtkVoxImage::setShadingPreset(int blendType) {
}
}
void vtkVoxImage::SetRepresentation(Representation mode) {
if (mode == Wireframe) {
m_Actor->SetVisibility(0);
m_OutlineActor->SetVisibility(1);
} else if (mode == Surface) {
m_Actor->SetVisibility(1);
m_OutlineActor->SetVisibility(0);
} else {
Puppet::SetRepresentation(mode);
}
}
void vtkVoxImage::Update() {
m_Actor->Update();
m_Outline->SetBounds(m_Image->GetBounds());
@@ -284,12 +298,16 @@ void vtkVoxImage::InstallPipe() {
vtkSmartPointer<vtkPolyDataMapper> mmapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
mmapper->SetInputConnection(m_Outline->GetOutputPort());
vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mmapper);
actor->GetProperty()->SetRepresentationToWireframe();
actor->GetProperty()->SetAmbient(0.7);
m_OutlineActor->SetMapper(mmapper);
m_OutlineActor->GetProperty()->SetRepresentationToWireframe();
m_OutlineActor->GetProperty()->SetAmbient(0.7);
this->SetProp(m_Actor);
this->SetProp(m_OutlineActor);
// Default look
this->SetRepresentation(Surface);
}
} // namespace Vtk