/[gzz]/gzz/doc/pegboard/1009/PEG_1009.rst
ViewVC logotype

Diff of /gzz/doc/pegboard/1009/PEG_1009.rst

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by benja, Sun Oct 6 16:16:00 2002 UTC revision 1.5 by benja, Sun Oct 6 16:27:42 2002 UTC
# Line 26  Add into VobCoorder the following conven Line 26  Add into VobCoorder the following conven
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    
# Line 40  And into AffineVobCoorder the following Line 48  And into AffineVobCoorder the following
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:
# Line 47  in VobScene: Line 60  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    

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26