Page MenuHomePhabricator

Implement the curved MPR for MITK
Closed, WontfixPublic

Description

The old QFunctionality is located under QFunctionality/QMitkCoronaryMapping, but not all features need to be ported to the new Bundle.

Event Timeline

As of now, the creation of the thin-plate-spline geometry based on the points works. There are two main problems:

(1) the reslicing (texturing the curved plane with corresponding voxel values) works first after setting the 2D-MapperID to the m_MappingRenderer once and then switching back to 3D (and calling Reinit/GlobalReinit on some node). Aftewards, the resampling works correctly even when adding new control points or manipulating the present points.

(2) the data is resliced ONLY for the XZ-plane. Choosing another projection plane changes the geometry of the curved plane as expected, but reslicing does not work.

what is the status of this bug?

New remote branch pushed: bug-10719-CurvedMPR-Example

Current status:

  • setting the control poins + curved plane creation works
  • switching 2D/3D rendering works also

BUT in rendering:

  • the data shown on the curved plane correspond with the data of the first slice (depending on the projected plane)
  • the ExtractSliceFilter::GenerateData() is never reached with the curved (Abstract) geometry, all calls are with standard planes
  • this is because the ImageVtkMapper2D::GenerateDataForRenderer terminates early with worldGeometry being NULL ( but we set the TPS_Geometry as WorldGeom of the Renderer beforehand )

We could need some advice/help from a rendering experts ( setting Thomas CC )

Correction of previous comment:

  • the world geometry of the renderer fails to pass

    if( ( worldGeometry == NULL ) || ( !worldGeometry->IsValid() ) || ( !worldGeometry->HasReferenceGeometry() ))

    because of m_ReferenceGeometry = 0x0 and not because of being NULL.

It is somehow more complicated:

(1) The geometry used in ThinPlateSplineGeom::SetReferenceFrame() is not passed to the Superclass as m_ReferenceGeometry.

After setting the reference geometry manually at the same point the SetReferenceFrame() is set, the ExtractSliceFilter crashes, because in the second part of ::GenerateData() the 'planeGeometry' is used but not present ( the curved geometry is an abstractGeometry, not planeGeometry )

(Entered new T14452 )

Status report:

  • with the recent changes in T14452, the data values are correctly extracted and shown on the curved planes in 3D
  • the 2D rendering shows the data only for the XY-Reference plane. For other planes, the renderer has the correct (projected) geometry, but no texture is shown.
  • there are also some Reinits() missing: switching 2D/3D and back

We have checked if the m_ReslicedImage used by the Mapper has the correct data when the projection plane is switched in 2D and it seems correct. So possibly the problem is the camera setting done by the VtkPropRenderer::AdjustCameraToScene() method.

The method does nothing for abstract geometries, as soon as the cast to planeGeometry fails, the method returns.

The points (landmarks), which are visible and on correct position for the 2D rendering, get rendered by OpenGL, which support the above hypothesis.

This bug could not be fixed for release 2013-06. Setting target milestone to next release

The bug that this has been marked as a duplicate of is fixed. Is this bug still valid? please check and set status accordingly.

The bug is not fixed yet, only the T3222 was marked as duplicated. The bug remains open.

Current release is finished. Reseting target milestone...

User hering has pushed new remote branch:

bug-10719-curved-mpr-master-integration

Current status: we are on the 'after 2014.03' master, using the new point set interactor.

We did manually verify (with a custom VTK PolyData Plane) the transformed plane (which seems correct). Also after adapting the ExtractSliceFilter to the restructured geometry structure

--> T17877

The data is now correctly sampled out, however the plane the data is rendered on remains unwarped. [ Very likely it is also related to the geometry bug above ]

Jan, the geometry bug is fixed. Should we have a look together in the next bs?

hering added a subscriber: hering.

not working on this currently...

kislinsk claimed this task.
kislinsk removed kislinsk as the assignee of this task.
kislinsk added a subscriber: kislinsk.