Apparently, Thunderbird destroys the formatting. So here it is again,
for better readability:
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 /DisplayGeometry/ will be deleted. Its original purposes were:
- Controller for the /vtkCamera/ in 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 DisplayGeometry functionalities 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(p, pt2d);
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users