Show directed AND undirected edges on vtkGraphLayoutView

Hello, I am new to the VTK support forum. If possible, I would like to ask if any of you have ever tried to display a graph with both directed and undirected edges using the vtkGraphLayoutView class. I came out with the code below, which works fine for the visualization of directed arcs, but not for the undirected ones. Do any of you have a guess or hint for the solution?

vtkSmartPointer strategy = vtkSmartPointer::New();
vtkSmartPointer graphLayoutView = vtkSmartPointer::New();
vtkSmartPointer layout = vtkSmartPointer::New();
vtkSmartPointer graphToPolydataFilter = vtkSmartPointer::New();
vtkSmartPointer arrowSource = vtkSmartPointer::New();
vtkSmartPointer arrowGlyph = vtkSmartPointer::New();
vtkSmartPointer arrowMapper = vtkSmartPointer::New();
vtkSmartPointer arrowActor = vtkSmartPointer::New();

vtkSmartPointer<vtkLookupTable> lookupTable = vtkSmartPointer<vtkLookupTable>::New();
lookupTable->SetNumberOfTableValues(2);
lookupTable->SetTableValue(0, 1.0, 1.0, 1.0); // white
lookupTable->SetTableValue(1, 1.0, 0.0, 0.0); // red
lookupTable->Build();

graphLayoutView->SetVertexColorArrayName("NodesColor");
graphLayoutView->SetEdgeColorArrayName("EdgesColor");
vtkSmartPointer<vtkViewTheme> theme = vtkSmartPointer<vtkViewTheme>::New();
theme->SetPointLookupTable(lookupTable);
theme->SetCellLookupTable(lookupTable);
graphLayoutView->ApplyViewTheme(theme);
graphLayoutView->ColorVerticesOn();
graphLayoutView->ColorEdgesOn();

graphLayoutView->SetEdgeLayoutStrategyToPassThrough();

graphToPolydataFilter->SetInputConnection(layout->GetOutputPort());
graphToPolydataFilter->EdgeGlyphOutputOn();

// Set the position (0: edge start, 1: edge end) where
// the edge arrows should go.
graphToPolydataFilter->SetEdgeGlyphPosition(0.99);

// Make a simple edge arrow for glyphing.
arrowSource->SetGlyphTypeToEdgeArrow();
arrowSource->SetScale(0.03);
arrowSource->Update();

// Use Glyph3D to repeat the glyph on all edges.
arrowGlyph->SetInputConnection(0, graphToPolydataFilter->GetOutputPort(1));
arrowGlyph->SetInputConnection(1, arrowSource->GetOutputPort());

// Add the edge arrow actor to the view.
arrowMapper->SetInputConnection(arrowGlyph->GetOutputPort());
arrowActor->SetMapper(arrowMapper);
graphLayoutView->GetRenderer()->AddActor(arrowActor);

layout->SetInputData(g);
//strategy->ThreeDimensionalLayoutOn();
layout->SetLayoutStrategy(strategy);
graphLayoutView->SetLayoutStrategy(strategy);
graphLayoutView->AddRepresentationFromInputConnection(layout->GetOutputPort());
graphLayoutView->SetVertexLabelVisibility(true);
graphLayoutView->SetEdgeLabelVisibility(true);
graphLayoutView->SetEdgeLabelArrayName("RelType"); //default is "labels"
graphLayoutView->SetVertexLabelArrayName("AnnotationsTag"); //default is "labels"
graphLayoutView->Modified();
graphLayoutView->Update();
graphLayoutView->ResetCamera();
graphLayoutView->GetRenderer()->AddActor(arrowActor);
graphLayoutView->SetInteractor(this->ui->qvtkWidget->GetInteractor());
interactorStyle->setGraphLayoutView(graphLayoutView);
graphLayoutView->SetInteractorStyle(interactorStyle);
this->ui->qvtkWidget->SetRenderWindow(graphLayoutView->GetRenderWindow());