26 |
|
|
27 |
.. IMPORTANT:: |
.. IMPORTANT:: |
28 |
Should 3D scaling be here as well? |
Should 3D scaling be here as well? |
29 |
|
|
30 |
|
(Benja says:) |
31 |
|
|
32 |
|
``scale`` doesn't belong here, because AWT cannot do it properly |
33 |
|
when text is involved (because text's aspect ratio may change |
34 |
|
with size). |
35 |
|
|
36 |
|
(Therefore, 3D scale doesn't belong here, either.) |
37 |
|
|
38 |
And into AffineVobCoorder the following functions:: |
And into AffineVobCoorder the following functions:: |
39 |
|
|
48 |
Should rotate3D really be there? It extends the capabilities? |
Should rotate3D really be there? It extends the capabilities? |
49 |
Should there be a third interface, ThreeDCoorder? |
Should there be a third interface, ThreeDCoorder? |
50 |
Or leave it into GLVobCoorder for now, like distort? |
Or leave it into GLVobCoorder for now, like distort? |
51 |
|
|
52 |
|
(Benja says:) |
53 |
|
|
54 |
|
What would rotate3D be for? In our 2 1/2 D world, the z axis |
55 |
|
is really different from x and y... |
56 |
|
|
57 |
Also, for all these functions, we should have a shorthand |
Also, for all these functions, we should have a shorthand |
58 |
in VobScene: |
in VobScene: |
60 |
public int translateCS(int into, Object key, float x, float y); |
public int translateCS(int into, Object key, float x, float y); |
61 |
|
|
62 |
just to make it a little easier to say them. |
just to make it a little easier to say them. |
63 |
|
|
64 |
|
(Benja:) How about just ``translate``? |
65 |
|
|
66 |
For the affine ones, the VobCoorder is cast into AffineVobCoorder, and |
For the affine ones, the VobCoorder is cast into AffineVobCoorder, and |
67 |
the error propagated if it's not. |
the error propagated if it's not. |
68 |
|
|
69 |
Transforming points interactively |
(Benja:) Not sure about error propagation: we need to make sure |
70 |
--------------------------------- |
that we can catch the error at a high level and look at it and |
71 |
|
be *sure* that the reason for it is that one view needs an |
72 |
|
``AffineVobCoorder``, and we also need to know which view, so |
73 |
|
that we can give a reasonable error message to the user. (This |
74 |
|
is the direction into which we need to be moving... because this |
75 |
|
is not a programming error when it happens, it is that a view |
76 |
|
is used in an environment it wasn't programmed for, which may |
77 |
|
happen in a production system.) |
78 |
|
|
79 |
|
|
80 |
|
Transforming points into coordinate systems |
81 |
|
------------------------------------------- |
82 |
|
|
83 |
It would be nice to be able to easily transform points to and from |
It would be nice to be able to easily transform points to and from |
84 |
coordsystems, since we now have hierarchies. Since the coordsys are |
coordsystems, since we now have hierarchies. Since the coordsys are |
85 |
known incrementally, it should not be a problem to provide in VobCoorder:: |
known incrementally, it should not be a problem to provide in VobCoorder:: |
86 |
|
|
87 |
/** Transform one or more points to screen coordinates from the given cs. |
/** Transform one or more points to screen coordinates from the given cs. |
88 |
|
* Each point is represented as three values (x,y,z) in pt[]. |
89 |
* @param into The array to store the results in. |
* @param into The array to store the results in. |
90 |
*/ |
*/ |
91 |
public void transformPoints3(int withCS, float[] pt, float[]into) ; |
public void transformPoints3(int withCS, float[] pt, float[]into) ; |
92 |
|
|
93 |
/** Transform one or more points from screen to given CS. |
/** Transform one or more points from screen to given CS. |
94 |
|
* Each point is represented as three values (x,y,z) in pt[]. |
95 |
* @return True, if a reasonable inverse was found. |
* @return True, if a reasonable inverse was found. |
96 |
*/ |
*/ |
97 |
public boolean inverseTransformPoints3(int withCS, float[] pt, float[]into) ; |
public boolean inverseTransformPoints3(int withCS, float[] pt, float[]into) ; |
98 |
|
|
99 |
At the same time, remove VobCoorder.getRenderInfo as unnecessary. |
At the same time, remove VobCoorder.getRenderInfo as unnecessary. |
100 |
|
|
101 |
|
(Benja:) I think ``inverseTransformPoints3`` should raise an exception |
102 |
|
if no reasonable inverse can be found. |
103 |
|
|
104 |
The reason for allowing the array ``pt[]`` to contain several points is |
The reason for allowing the array ``pt[]`` to contain several points is |
105 |
simply performance. |
simply performance. |
106 |
|
|