# 2025.07.29 Weekly Meeting

**URL:** <https://discourse.slicer.org/t/2025-07-29-weekly-meeting/43883>\
**Category:** Weekly meetings\
**Created:** [July 29, 2025, 1:16pm UTC](https://discourse.slicer.org/t/2025-07-29-weekly-meeting/43883 "2025-07-29T13:16:43Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [August 4, 2025, 7:58pm UTC](https://discourse.slicer.org/t/2025-07-29-weekly-meeting/43883/3 "2025-08-04T19:58:15Z")

</div>

## Meeting Notes

### DICOMBrowser Integration

- @DeepaKrishnaswamy inquired about integrating **DICOMBrowser** functionality into the [QuantitativeReporting](https://github.com/QIICR/QuantitativeReporting) extension.

### vtk-sdk-python-distributions

- Plan to review and integrate:  
[PR #2](https://github.com/Kitware/vtk-sdk-python-distributions/pull/2)

### Refactoring to Support Improvements to Segment Editor Effects

To eliminate the need to interact with the Qt layer directly, @Thibault_Pelletier proposed enhancing `vtkMRMLAbstractViewNode` with new properties and mechanisms:

- **New weak pointers** :

- **New events** :

These additions will allow accessing the `RenderWindow`, `DisplayableManager`, and associated logic purely through the **MRML view node** , minimizing dependency on the GUI layer.

**Current code example requiring layout manager access** :

```cpp
qMRMLSliceWidget* sliceWidget = layoutManager->sliceWidget(sliceViewName);
if (!d->segmentationDisplayableInView(sliceWidget->mrmlSliceNode()))

// ...

qMRMLSliceWidget* sliceWidget = qobject_cast<qMRMLSliceWidget*>(viewWidget);
if (sliceWidget)
{
  auto* crosshairDisplayableManager =
    vtkMRMLCrosshairDisplayableManager::SafeDownCast(
      sliceWidget->sliceView()->displayableManagerByClassName(
        "vtkMRMLCrosshairDisplayableManager"));
}

```

### SlicerSOFA

- To help @RafaelPalomar create a **`docs-resources`** release:

### Qt6 Styling Discussion

- @benzwick (in context of **Talk2View** project) discussed matching the **QtQuickControls style to the operating system**. See: [Qt Docs](https://doc.qt.io/qt-6/qtquickcontrols-styles.html)
- Post-Qt6 migration, consider experimenting with modern styles like [**qlementine**](https://oclero.github.io/qlementine/)
- **StyleTester** module in the [`Sandbox`](https://github.com/PerkLab/SlicerSandbox/tree/master/StyleTester) extension can be used to test styles interactively.

### Support for Boolean Functions in Implicit Functions

- VTK-related discussion on enabling support for combining implicit functions via boolean logic.
- See: [VTK Discourse post](https://discourse.vtk.org/t/vtk-boolean-functions/15876)

### Proposed API: `vtkMRMLScene::GetNodesByClass`

@Thibault_Pelletier suggested adding a utility method to retrieve all nodes of a given type with proper type casting:

```cpp
template <class T>
std::vector<T*> GetNodesByClass(const char* className)
{
  std::vector<vtkMRMLNode*> nodes;
  GetNodesByClass(className, nodes);

  std::vector<T*> typedNodes;
  for (const auto& node : nodes)
  {
    auto castNode = T::SafeDownCast(node);
    if (castNode)
    {
      typedNodes.emplace_back(castNode);
    }
  }
  return typedNodes;
}

```

**Next Step** :

- Create a pull request demonstrating usage of this helper by updating select call sites.

---

_[View the full topic](https://discourse.slicer.org/t/2025-07-29-weekly-meeting/43883)._
