Changesets: Import 2017-06-07 23:51:09

master 9261ac47

2016-07-29 17:23:59

pieper

Details Diff
ENH: update MuliVolumeImporter version

Enables cine CT viewing - see:

https://github.com/fedorov/MultiVolumeImporter/pull/19

From: Steve Pieper <pieper@isomics.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25256 3bd1e089-480b-0410-8dfb-8563597acbee
mod - SuperBuild.cmake Diff File

master 65a24549

2016-07-29 16:07:02

lassoan

Details Diff
ENH: Made Python interactor dockable window optional

In application settings Python section the user can now choose betwen dockable/standalone window.
Also made the Python Interactor toolbar button and menu item checkable.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25255 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Applications/SlicerApp/qSlicerAppMainWindow.cxx Diff File
mod - Applications/SlicerApp/qSlicerAppMainWindow_p.h Diff File
mod - Base/QTGUI/Resources/UI/qSlicerSettingsPythonPanel.ui Diff File
mod - Base/QTGUI/qSlicerSettingsPythonPanel.cxx Diff File

master 0e5e2b71

2016-07-29 12:55:02

pieper

Details Diff
BUG: use correct setter for tensor value

Issue was:

AttributeError: 'vtkCommonCorePython.vtkFloatArray' object has no attribute 'SetTupleValue'
Traceback (most recent call last):
File "/Users/pieper/slicer4/latest/Slicer-superbuild/Slicer-build/lib/Slicer-4.5/qt-scripted-modules/DataProbe.py", line 260, in processEvent
self.layerValues[layer].setText(self.generateIJKPixelValueDescription(ijk, layerLogic))
File "/Users/pieper/slicer4/latest/Slicer-superbuild/Slicer-build/lib/Slicer-4.5/qt-scripted-modules/DataProbe.py", line 314, in generateIJKPixelValueDescription
return "<b>%s</b>" % self.getPixelString(volumeNode,ijk) if volumeNode else ""
File "/Users/pieper/slicer4/latest/Slicer-superbuild/Slicer-build/lib/Slicer-4.5/qt-scripted-modules/DataProbe.py", line 170, in getPixelString
value = self.calculateTensorScalars(tensor, operation=operation)
File "/Users/pieper/slicer4/latest/Slicer-superbuild/Slicer-build/lib/Slicer-4.5/qt-scripted-modules/DataProbe.py", line 553, in __call__
self.tensor_data.SetTupleValue(0, tensor)
AttributeError: 'vtkCommonCorePython.vtkFloatArray' object has no attribute 'SetTupleValue'

From: Steve Pieper <pieper@isomics.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25254 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Scripted/DataProbe/DataProbe.py Diff File

master a74feff8

2016-07-29 12:47:19

pieper

Details Diff
ENH: Make it faster/easier to work with long fiducial lists

Put Start/EndModify calls around removing a list of markups from the current node (speed up is significant when deleting 100 fiducials from a list of 272 fiducials)

Automatically select the last loaded fiducial node when entering the Markups module if there are nodes loaded and none are selected.

Adjust the right click context menu in the table:
Use one line per markup, consolidating the label (use index if no label) and the coordinate (half the rows in the menu).
Put the operations first in the menu in case so many are selected that part of the menu ends up off screen.

Issue 0004239

From: Nicole Aucoin <nicole@bwh.harvard.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25253 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Loadable/Markups/Widgets/qSlicerSimpleMarkupsWidget.cxx Diff File
mod - Modules/Loadable/Markups/qSlicerMarkupsModuleWidget.cxx Diff File

master 8e402b78

2016-07-29 09:41:12

lassoan

Details Diff
ENH: Add back Python interactor button to toolbar

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25252 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Applications/SlicerApp/qSlicerAppMainWindow.cxx Diff File

master 10b59813

2016-07-28 18:54:47

jcfr

Details Diff
ENH: Update CreateDICOMSeries.xml doc link

From: Isaiah <isaiah.norton@gmail.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25251 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/CLI/CreateDICOMSeries/CreateDICOMSeries.xml Diff File

master 296f3158

2016-07-28 09:55:40

lassoan

Details Diff
ENH: Tuned Python interactor window display

Hide Python interactor by default.

Moved "Reset to default" to the main menu (from the Toolbars submenu) because it actually restores all windows positions and states (docked, visible, etc).

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25250 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Applications/SlicerApp/Resources/UI/qSlicerAppMainWindow.ui Diff File
mod - Applications/SlicerApp/qSlicerAppMainWindow.cxx Diff File

master b00d56cb

2016-07-28 09:55:36

lassoan

Details Diff
ENH: Added getNodesByClass Python utility method

It returns all nodes of a certain class in a python list.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25249 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Base/Python/slicer/util.py Diff File

master 7c97ad2c

2016-07-27 17:29:57

lassoan

Details Diff
ENH: Made Python interactor a docking widget

Problem:
It was always necessary to rearrange windows after showing the Python interactor so that both the console and Slicer screen.
This has to be repeated every time Slicer is started, since the Python interactor window's position was not saved.

Implemented solution:

1.Made Python interactor a docking widget (if Slicer starts with main window visible).
For single-screen configuration this allows sharing of the screen between the Python interactor and other Slicer windows.
On multi-screen configurations the interactor can be dragged to the second screen.

2.The position (which screen, where), size, and state (docked/undocked, shown/hidden) of the Python interactor window is now also saved,
so there is no need for any repositioning of the windows between sessions.

3.Ctrl-3 shows/hides the interactor (not just shows as before) and when the interactor is shown it gets keyboard focus.
It allows easy opening of the interactor, typing some text, and closing it, without the need of taking the mouse to reposition
any windows.

Also cleaned up deletion of ctkPythonConsole. As the ctkPythonConsole widget can be owned by a widget (docking window), it is not
possible to create it on the stack anymore. Instead, qSlicerApplication creates the ctkPythonConsole (similarly to qSlicerPythonManager)
and destroys it if it is not owned by a widget.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25248 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Applications/SlicerApp/Main.cxx Diff File
mod - Applications/SlicerApp/Resources/UI/qSlicerAppMainWindow.ui Diff File
mod - Applications/SlicerApp/qSlicerAppMainWindow.cxx Diff File
mod - Applications/SlicerApp/qSlicerAppMainWindow.h Diff File
mod - Applications/SlicerApp/qSlicerAppMainWindow_p.h Diff File
mod - Base/Python/slicer/util.py Diff File
mod - Base/QTApp/qSlicerApplicationHelper.cxx Diff File
mod - Base/QTApp/qSlicerApplicationHelper.h Diff File
mod - Base/QTCore/Testing/Cxx/CMakeLists.txt Diff File
mod - Base/QTCore/Testing/Cxx/qSlicerCoreApplicationTest1.cxx Diff File
mod - Base/QTCore/qSlicerCoreApplication.cxx Diff File
mod - Base/QTCore/qSlicerCoreApplication.h Diff File
mod - Base/QTCore/qSlicerCoreApplication_p.h Diff File
mod - Base/QTGUI/qSlicerApplication.cxx Diff File
mod - Base/QTGUI/qSlicerApplication.h Diff File

master 0a1a258a

2016-07-26 21:46:19

lassoan

Details Diff
BUG: Fixed py_nomainwindow_qSlicerEditorModuleGenericTest error

Problem:

test_widgetRepresentation (qSlicerEditorModuleGenericTest.qSlicerEditorModuleGenericTest) ... Traceback (most recent call last):
File "C:/D/N/Slicer-0-build/Slicer-build/lib/Slicer-4.5/qt-scripted-modules/Editor.py", line 197, in setup
self.createSegmentEditorMessage()
File "C:/D/N/Slicer-0-build/Slicer-build/lib/Slicer-4.5/qt-scripted-modules/Editor.py", line 299, in createSegmentEditorMessage
self.segmentEditorLabel.setSizePolicy( qt.QSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Preferred) )
ValueError: Could not find matching overload for given arguments:
(7, 5)
The following slots are available:
QSizePolicy() -> QSizePolicy
QSizePolicy(QSizePolicy other) -> QSizePolicy
QSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical, QSizePolicy::ControlType type) -> QSizePolicy
QSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical) -> QSizePolicy

Solution: qt.QSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Preferred)
fails on some systems, therefore now we set the policies using separate method calls.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25247 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Scripted/Editor/Editor.py Diff File

master b4083cf3

2016-07-25 22:20:46

lassoan

Details Diff
ENH: Added vtkMatrix4x4 string conversion methods (0000554)

Contributed by Matthew S Holden (PerkLab, Queen's)

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25246 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Libs/vtkAddon/Testing/vtkAddonMathUtilitiesTest1.cxx Diff File
mod - Libs/vtkAddon/vtkAddonMathUtilities.cxx Diff File
mod - Libs/vtkAddon/vtkAddonMathUtilities.h Diff File
mod - Modules/Loadable/Transforms/qSlicerTransformsModuleWidget.cxx Diff File

master 1554a534

2016-07-25 14:51:29

pinter

Details Diff
ENH: Added convenience function to segmentations logic to get arbitrary representation

The method GetSegmentRepresentation is very useful in processing modules that need to use certain types of representations of a segmentation.
The python test was changed not to show the main window so it is faster.
Unused code removed from SegmentationsModuleTest1

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25245 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Loadable/Segmentations/Logic/vtkSlicerSegmentationsModuleLogic.cxx Diff File
mod - Modules/Loadable/Segmentations/Logic/vtkSlicerSegmentationsModuleLogic.h Diff File
mod - Modules/Loadable/Segmentations/Testing/Python/CMakeLists.txt Diff File
mod - Modules/Loadable/Segmentations/Testing/Python/SegmentationsModuleTest1.py Diff File

master 5777b231

2016-07-25 08:44:23

lassoan

Details Diff
ENH: Added screen video capture module (Utilities/ScreenCapture)

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25244 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Scripted/CMakeLists.txt Diff File
add - Modules/Scripted/ScreenCapture/CMakeLists.txt Diff File
add - Modules/Scripted/ScreenCapture/Resources/Icons/ScreenCapture.png Diff File
add - Modules/Scripted/ScreenCapture/ScreenCapture.py Diff File

master a2b893bc

2016-07-21 12:51:57

lassoan

Details Diff
ENH: Allow modules to detect when the user clicks on a markup fiducial

Many times a module need to know when the user selects an existing markup. Often the markup position has to be locked but we still want to be able to detect when the user clicked on it.

Added.improved events:
PointStartInteractionEvent: invoked when mouse button is pressed over a markup point.
PointEndInteractionEvent: invoked when mouse button is released over a markup point. Fixed so that it contains the markup point index.
PointClickedEvent: invoked when mouse button is pressed and released over a markup point, without moving the mouse pointer.

VTK allowed locking a seed but then no interaction is possible. VTK handle and seed widgets were improved (see https://github.com/Slicer/VTK/commit/0f8ed32e0b7018d776271dbf5f27968b716a9e10) to allow locking of position but still able to select.

Slicer markups module behavior was changed so that if a markup point is locked then it can still be selected (but not moved). If the entire markup node is locked then markup points cannot be selected or moved (same behavior as before).

How to test the new/enhanced events:

---

@vtk.calldata_type(vtk.VTK_INT)
def markupCallback1(caller, eventId, callData):
print("PointStartInteractionEvent: {0}".format(callData))

@vtk.calldata_type(vtk.VTK_INT)
def markupCallback2(caller, eventId, callData):
print("PointEndInteractionEvent: {0}".format(callData))

@vtk.calldata_type(vtk.VTK_INT)
def markupCallback3(caller, eventId, callData):
print("PointClickedEvent: {0}".format(callData))

markupsNode = getNode('F')
observerTag1 = markupsNode.AddObserver(slicer.vtkMRMLMarkupsNode.PointStartInteractionEvent, markupCallback1)
observerTag2 = markupsNode.AddObserver(slicer.vtkMRMLMarkupsNode.PointEndInteractionEvent, markupCallback2)
observerTag3 = markupsNode.AddObserver(slicer.vtkMRMLMarkupsNode.PointClickedEvent, markupCallback3)

---

Markups module may be improved in the future to use this new event, for example select the markup in the markup list if it is selected in a 2D or 3D view. Also, selection state of markups could be changed when the user clicks on a markup (there could be single-select and multi-select modes).

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25243 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Loadable/Markups/MRML/vtkMRMLMarkupsNode.h Diff File
mod - Modules/Loadable/Markups/MRMLDM/vtkMRMLMarkupsDisplayableManagerHelper.cxx Diff File
mod - Modules/Loadable/Markups/MRMLDM/vtkMRMLMarkupsFiducialDisplayableManager2D.cxx Diff File
mod - Modules/Loadable/Markups/MRMLDM/vtkMRMLMarkupsFiducialDisplayableManager3D.cxx Diff File

master 543e52d7

2016-07-20 10:40:35

msmolens

Details Diff
ENH: Update VTK to include vtkSeedWidget enhancement

$ git shortlog 8f2ca63..0f8ed32
Andras Lasso (1):
ENH: Allow selection of seed points using vtkSeedWidget

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25242 3bd1e089-480b-0410-8dfb-8563597acbee
mod - SuperBuild/External_VTKv7.cmake Diff File

master 3fb107bc

2016-07-19 18:27:10

jcfr

Details Diff
COMP: BRAINSTools: Address MacOSX packaging issue. Fix 0004041

$ git shortlog 7859819..47dc8e6 --no-merges
Isaiah Norton (1):
COMP: Address MacOSX packaging issue.

The BRAINS CMAKE_OSX_RPATH default no longer matched the Slicer default [1].

Due to this setting, the RPATH for BRAINS libraries was not being
detected and replaced correctly by the Slicer fixup_bundle procedure.

Specifically, as far as I can tell, having a pre-set `@rpath` in the
installed libraries caused the fixup_bundle procedure to copy the
(fixed) libraries into the `Slicer-4.5` base directory, rather than
fixing in-place the libraries in `Slicer-4.5/cli-modules`. This caused
two copies of the libraries to be included in the distribution bundle
[2], one of which was un-patched. This un-patched version is referred
to by all *other* libraries, causing dlopen failures. The end result
is that BRAINS could not be used in shared-library mode on Mac [3].

See:
[1] https://github.com/Slicer/ITK/commit/8ac0d6013b76238f9d84de906c14b493addf8ac8
[2] http://www.na-mic.org/Bug/view.php?id=4041
[3] http://massmail.spl.harvard.edu/public-archives/slicer-users/2016/010782.html

From: Isaiah Norton <isaiah.norton@gmail.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25241 3bd1e089-480b-0410-8dfb-8563597acbee
mod - SuperBuild.cmake Diff File

master 0da14d3b

2016-07-19 10:31:00

pinter

Details Diff
STYLE: Use Q_FUNC_INFO in subject hierarchy Qt classes

Instead of manually curated class/function info in log messages

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25240 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Loadable/SubjectHierarchy/Widgets/qMRMLSceneSubjectHierarchyModel.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qMRMLSubjectHierarchyTreeView.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qMRMLTransformItemDelegate.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyAbstractPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyChartsPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyCloneNodePlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyDefaultPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyFolderPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyParseLocalDataPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyPluginHandler.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyPluginLogic.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyRegisterPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyScriptedPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/qSlicerSubjectHierarchyModuleWidget.cxx Diff File

master 0368da05

2016-07-19 09:02:17

msmolens

Details Diff
BUG: Fix OpenGL errors/segfault when entering volume rendering module

The following workflow triggered OpenGL errors (when using the VTK OpenGL
backend) followed by a segfault (when using the VTK OpenGL2 backend):

1. Set 3D-only layout, restart app
2. Load volume
3. Enter the volume rendering module

For the OpenGL2 backend, the top of the stack trace is similar to the following:

vtkOpenGL-7.1.dll!vtkShaderProgram::IsUniformUsed(const char * cname) Line 847 C++
vtkOpenGL-7.1.dll!vtkOpenGLPolyDataMapper2D::SetMapperShaderParameters(vtkOpenGLHelper & cellBO, vtkViewport * viewport, vtkActor2D * actor) Line 409 C++
vtkOpenGL-7.1.dll!vtkOpenGLPolyDataMapper2D::UpdateShaders(vtkOpenGLHelper & cellBO, vtkViewport * viewport, vtkActor2D * actor) Line 325 C++
vtkOpenGL-7.1.dll!vtkOpenGLPolyDataMapper2D::RenderOverlay(vtkViewport * viewport, vtkActor2D * actor) Line 874 C++
vtkRendering-7.1.dll!vtkActor2D::RenderOverlay(vtkViewport * viewport) Line 125 C++
vtkRendering-7.1.dll!vtkRenderer::PickGeometry() Line 1810 C++
vtkOpenGL-7.1.dll!vtkOpenGLRenderer::DevicePickRender() Line 602 C++
vtkRendering-7.1.dll!vtkRenderer::PickRender(vtkPropCollection * props) Line 1735 C++
vtkRendering-7.1.dll!vtkRenderer::PickProp(double selectionX1, double selectionY1, double selectionX2, double selectionY2) Line 1559 C++
vtkRendering-7.1.dll!vtkRenderer::PickProp(double selectionX, double selectionY) Line 432 C++
vtkRendering-7.1.dll!vtkViewport::PickPropFrom(double selectionX, double selectionY, vtkPropCollection * pickfrom) Line 721 C++
vtkRendering-7.1.dll!vtkPropPicker::PickProp(double selectionX, double selectionY, vtkRenderer * renderer) Line 87 C++
vtkRendering-7.1.dll!vtkPropPicker::PickProp(double selectionX, double selectionY, vtkRenderer * renderer, vtkPropCollection * pickfrom) Line 63 C++
vtkRendering-7.1.dll!vtkPropPicker::Pick(double selectionX, double selectionY, double __formal, vtkRenderer * renderer) Line 49 C++
vtkSlicerAnnotationsModuleVTKWidgets.dll!vtkAnnotationROIRepresentation2D::ComputeInteractionState(int X, int Y, int __formal) Line 644 C++
vtkInteraction-7.1.dll!vtkAbstractWidget::SetEnabled(int enabling) Line 155 C++
vtkRendering-7.1.dll!vtkInteractorObserver::On() Line 73 C++
vtkSlicerAnnotationsModuleMRMLDisplayableManager.dll!vtkMRMLAnnotationROIDisplayableManager::CreateWidget(vtkMRMLAnnotationNode * node) Line 192 C++
vtkSlicerAnnotationsModuleMRMLDisplayableManager.dll!vtkMRMLAnnotationDisplayableManager::AddAnnotation(vtkMRMLAnnotationNode * annotationNode) Line 2166 C++
vtkSlicerAnnotationsModuleMRMLDisplayableManager.dll!vtkMRMLAnnotationDisplayableManager::OnMRMLSceneNodeAdded(vtkMRMLNode * node) Line 464 C++
MRMLLogic.dll!vtkMRMLAbstractLogic::ProcessMRMLSceneEvents(vtkObject * caller, unsigned long event, void * callData) Line 476 C++
MRMLLogic.dll!vtkMRMLAbstractLogic::MRMLSceneCallback(vtkObject * caller, unsigned long eid, void * clientData, void * callData) Line 173 C++
vtkCommon-7.1.dll!vtkCallbackCommand::Execute(vtkObject * caller, unsigned long event, void * callData) Line 43 C++
MRMLCore.dll!vtkEventBroker::InvokeObservation(vtkObservation * observation, unsigned long eid, void * callData) Line 842 C++
MRMLCore.dll!vtkEventBroker::ProcessEvent(vtkObservation * observation, vtkObject * caller, unsigned long eid, void * callData) Line 687 C++
MRMLCore.dll!vtkEventBroker::Callback(vtkObject * caller, unsigned long eid, void * clientData, void * callData) Line 914 C++
vtkCommon-7.1.dll!vtkCallbackCommand::Execute(vtkObject * caller, unsigned long event, void * callData) Line 43 C++
vtkCommon-7.1.dll!vtkSubjectHelper::InvokeEvent(unsigned long event, void * callData, vtkObject * self) Line 619 C++
vtkCommon-7.1.dll!vtkObject::InvokeEvent(unsigned long event, void * callData) Line 785 C++
MRMLCore.dll!vtkMRMLScene::AddNode(vtkMRMLNode * n) Line 1241 C++
vtkSlicerAnnotationsModuleMRML.dll!vtkMRMLAnnotationNode::Initialize(vtkMRMLScene * mrmlScene) Line 668 C++
vtkSlicerAnnotationsModuleMRML.dll!vtkMRMLAnnotationControlPointsNode::Initialize(vtkMRMLScene * mrmlScene) Line 702 C++
vtkSlicerAnnotationsModuleMRML.dll!vtkMRMLAnnotationLinesNode::Initialize(vtkMRMLScene * mrmlScene) Line 570 C++
vtkSlicerAnnotationsModuleMRML.dll!vtkMRMLAnnotationROINode::Initialize(vtkMRMLScene * mrmlScene) Line 47 C++
vtkSlicerVolumeRenderingModuleLogic.dll!vtkSlicerVolumeRenderingLogic::UpdateDisplayNodeFromVolumeNode(vtkMRMLVolumeRenderingDisplayNode * displayNode, vtkMRMLVolumeNode * volumeNode, vtkMRMLVolumePropertyNode * * propNode, vtkMRMLAnnotationROINode * * roiNode) Line 939 C++
qSlicerVolumeRenderingModuleWidgets.dll!qSlicerVolumeRenderingModuleWidgetPrivate::createVolumeRenderingDisplayNode(vtkMRMLVolumeNode * volumeNode) Line 249 C++
qSlicerVolumeRenderingModuleWidgets.dll!qSlicerVolumeRenderingModuleWidget::onCurrentMRMLVolumeNodeChanged(vtkMRMLNode * node) Line 346 C++
...

The errors/segfault occur when hardware picking is performed before the render
window has created an OpenGL context. Usually render windows create a context on
their first render, but that doesn't happen in this case because the slice views
aren't visible; see [1].

This commit fixes the problem by forcing an initial render when creating a slice
view. This ensures that the render window has a context, which in turn prevents
the OpenGL errors/segfault in the above workflow, and possibly others.

[1] https://github.com/commontk/CTK/blob/bacd360/Libs/Visualization/VTK/Widgets/ctkVTKAbstractView.cpp#L229-L233.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25239 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Libs/MRML/Widgets/qMRMLSliceView.cxx Diff File
mod - Modules/Loadable/VolumeRendering/Testing/Python/CMakeLists.txt Diff File
add - Modules/Loadable/VolumeRendering/Testing/Python/VolumeRenderingThreeDOnlyLayout.py Diff File

master 7313997c

2016-07-19 08:43:46

pinter

Details Diff
STYLE: Update obsolete CMake macro for generating modules

slicerMacroBuildQtModule is obsolete, so slicerMacroBuildLoadableModule is now used instead in the modules where it was still found.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25238 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Loadable/Segmentations/CMakeLists.txt Diff File
mod - Modules/Loadable/SubjectHierarchy/CMakeLists.txt Diff File

master 24f9016a

2016-07-18 10:17:00

msmolens

Details Diff
BUG: Fix OpenGL errors in py_RSNA2012ProstateDemo test

Debug builds showed OpenGL errors while running the py_RSNA2012ProstateDemo
test.

The problem is that vtkMRMLAnnotationDisplayableManager could directly call
vtkRenderer::Render() in some cases, but only vtkRenderWindow should call that
method. The errors occur when OpenGL functions are called before an OpenGL
context has been initialized. When the VTK OpenGL2 backend is enabled, running
the py_RSNA2012ProstateDemo test leads to a crash.

See the documentation for vtkRenderer::Render():
https://github.com/Kitware/VTK/blob/5f52c1a91a9e9fbfc1efe0d14b3c11b548c7acb1/Rendering/Core/vtkRenderer.h#L231-L236

This commit replaces the direct call to vtkRenderer::Render() with a call to the
displayable manager's RequestRender() method. This queues a render request to be
handled by the framework at an appropriate time.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25237 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Loadable/Annotations/MRMLDM/vtkMRMLAnnotationDisplayableManager.cxx Diff File

master b09de614

2016-07-14 01:26:16

jcfr

Details Diff
ENH: Update Slicer.crt

This commit implements the following changes:

* updates make-ca.sh and make-cert.pl script considering latest
version provided by BLFS:
http://www.linuxfromscratch.org/blfs/view/svn/postlfs/cacerts.html

* updates the scripts to work with version of certdata.txt not having CVS_ID

* improves make-ca.sh to that it can be called from any dictory

* updates README file

* re-generate Slicer.crt

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25236 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Base/QTCore/Resources/Certs/README Diff File
mod - Base/QTCore/Resources/Certs/Slicer.crt Diff File
mod - Base/QTCore/Resources/Certs/make-ca.sh Diff File
mod - Base/QTCore/Resources/Certs/make-cert.pl Diff File

master 700bcbe4

2016-07-12 11:13:38

jcfr

Details Diff
ENH: qSlicerCLILoadableModuleFactory: Print CTK QLibrary load error messages

From: Isaiah Norton <inorton@bwh.harvard.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25235 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Base/QTCLI/qSlicerCLILoadableModuleFactory.cxx Diff File

master f2826e8e

2016-07-11 14:13:22

pinter

Details Diff
ENH: Added Segment Editor message in Editor and feature in SH

Message about Segment Editor has been added to the Editor module as agreed with Ron. Segment subject hierarchy plugin extended with Segment Editor option

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25234 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchySegmentPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchySegmentPlugin.h Diff File
mod - Modules/Scripted/Editor/Editor.py Diff File

master 1d7b4daf

2016-07-11 13:02:55

jcfr

Details Diff
COMP: ExtensionBuildSystem: Fix build of "local" extension

Systematically prepend ${Slicer_LOCAL_EXTENSIONS_DIR} if scmurl
corresponds to a relative path. Simply checking for the path existence
was leading to error in case the path was located in the current working
directory.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25233 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Extensions/CMake/SlicerBlockBuildPackageAndUploadExtensions.cmake Diff File

master 7dec2b63

2016-07-11 13:02:53

jcfr

Details Diff
STYLE: Templates/Extensions: Consistently specify EXTENSION_DEPENDS

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25232 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Utilities/Templates/Extensions/Default/CMakeLists.txt Diff File
mod - Utilities/Templates/Extensions/SuperBuild/CMakeLists.txt Diff File
 First  Prev  1 2 3 ... 10 ... 20 ... 30 31 32 33 34 35 36 ... 40 ... 50 ... 60 ... 70 ... 80 ... 90 ... 100 ... 110 ... 120 ... 130 ... 133 134 135  Next  Last