*
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