I was implemented a 2x zoom on my 2D display (with a right click) by
accessing the ProjectionControlJ3D object and getting the matrix
associated with it and multiplying everything by two (except the last
element) and then calling the setMatrix() method:
ProjectionControlJ3D pc = (ProjectionControlJ3D)
display.getProjectionControl();
double[] matrix = pc.getMatrix();
for (int i = 0; i < 15; i++)
matrix[i] = matrix[i]*2;
pc.setMatrix(matrix);
By the way my matrix looks like this:
[0.65][0.00][0.00][0.0]
[0.00][0.65][0.00][0.0]
[0.00][0.00][0.65][0.0]
[0.00][0.00][0.00][1.0]
So my problem is, I currently have a RubberBandBox object collecting all
the user interaction which I want to use to zoom instead, but I don't
know how to incorporate the bounding box they choose to zoom my display.
I tried to use the latMap.setRange() and lonMap.setRange() but that
screws up my display (height and width ratio).
So I am wondering the best way to accomplish this (and if I could using
the ProjectionControlJ3D object)? Or should I just write the code that
will best fit their bounding box to the current ratio and call the
setRange() methods?
Thanks.