*

Dear MITK users,


We are currently working on major improvement of the structure regarding the mitk::DisplayGeometry[1] and interaction handling. This will not be part of the upcoming release, but we want to inform you about the main changes so that you can give us feedback if you have any concerns about the compatibility with your code.


DisplayGeometry:

The DisplayGeometrywill be deleted. Its original purposes were:

- Controller for the vtkCamerain a RenderWindow. The position and the zoom factor was set as a member variable, and the next rendering would transform the camera accordingly. Also it contained a method to calculate the camera parameters so that an object was fitted to the 2D RenderWindow.

- It provided methods to convert between display coordinates and world coordinates on the image plane.


Our goal is to provide the former DisplayGeometryfunctionalities within existing classes, using vtk code wherever it is possible.


CameraController:

CameraController[2] will be extended to control the camera in the 2D renderwindows as a convenient interface. It will provide the following new functions:


+ void MoveCameraToPoint(const Point2D &planePoint) -> Move camera so that the given point on the plane is in the center of the screen preserving the scale.

+ void Zoom(ScalarType factor, const Point2D &zoomPointInMM) -> Zooming the camera by the factor, around the given point.

+ void Fit() -> Zoom and move the camera, so that the whole world geometry is visible.

+ ScalarType GetMmPerDisplayUnits() -> returns the current scaling factor.

+ void AdjustCameraToPlane() -> Adjusts the camera to be orthogonal to the plane. This is called for example, when the plane has been rotated.


There will be only one implementation of the CameraController. All other implementations will be deleted. Interactors [3] will be used instead to apply the movement of any input device to the camera via the CameraController. An example for this concept is the already used DisplayInteractor [4] which applies certain mouse events as camera transformations (zooming, panning)


BaseRenderer:

Methods for converting between display coordinates and world coordinates can now be accessed in the BaseRenderer:


+ void DisplayToWorld(const Point2D& displayPoint, Point3D& worldIndex)

+ void DisplayToPlane(const Point2D& displayPoint, Point2D& planePointInMM)

+ void WorldToDisplay(const Point3D& worldIndex, Point2D& displayPoint)

+ void PlaneToDisplay(const Point2D& planePointInMM, Point2D& displayPoint)


Map2DRendererPositionTo3DWorldPosition does the same as DisplayToWorld and will be deprecated.


Example:

The new usage will be

 renderer->WorldToDisplay(point, point2d);

to replace the old code

 displayGeometry->Project(p, projected_p);

 displayGeometry->Map(projected_p, pt2d);

 displayGeometry->WorldToDisplay(pt2d, pt2d);


Legacy Classes:

We want to remove many legacy classes, e.g. all legacy event handling and some legacy GLMappers (e.g. PlaneGeometryDataGLMapper2D,mitkPointSetGLMapper2D, mitkSurfaceGLMapper2D).

Also, the event handling is restructured. The 3D positions are not automatically calculated but only if they are needed.


If you have any concerns, that the proposed changes will be incompatible with your code, please let us know.

We welcome and appreciate any feedback, comments and suggestions!


Of course, we will provide a migration guide and send out another notification before these changes are incorporated into an MITK release.


Thank you


Christian, Esther and Christoph


[1] http://docs.mitk.org/2014.10/classmitk_1_1DisplayGeometry.html

[2] http://docs.mitk.org/2014.10/classmitk_1_1CameraController.html

[3] http://docs.mitk.org/2014.10/DataInteractionPage.html

[4] http://docs.mitk.org/2014.10/classmitk_1_1DisplayInteractor.html

*
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
mitk-users mailing list
mitk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to