From: Martin D. <mar...@te...> - 2003-05-28 10:36:37
|
One last renaming: RenderedIsoline --> RenderedGeometries A new package has been added: org.geotools.renderer.style It contains only the following class at the moment, which are almost empty: Style Style2D I guess it is the starting point for Andrea (and others work). Fell free to modify and extends those class as much as you want. Style2D is referenced in RenderedGeometries, but its methods are not yet used anywhere. So you have complete freedom to do all the changes you want. Style2D is going to be used in RenderedGeometries.paint(Graphics2D, Shape, Style2D). You can extends this class (for example RenderedStyledGeometries) and override this method: this is the place where to use Style2D. Later, I will propose to move the RenderedStyledGeometries code right into RenderedGeometries. The following methods has been added to Geometry: Style getStyle() void setStyle(Style) It allow to attach a style to a Geometry. When the same geometry is used more than once with different style, uses the following: GeometryProxy This is a geometry wrapping an other geometry with a different style. This is exactly the equivalents of Andrea's intermediate class, the only difference is that this class is itself a geometry. It contains only two fields: Geometry geometry; // The wrapped geometry Style style; // The style, inherited from Geometry Consequently, the memory cost is exactly the same than Andrea's intermediate class. The advantage of this approach is to avoid the creation of intermediate class in the common case where a geometry is rendered only once. A GeometryProxy object is created only if a geometry is rendered more than once. I believe there is now enough room for peoples starting to work on Style2D implementations and usage in RenderedGeometries.paint(Graphics2D, Shape, Style2D). In the main time, there is again some issue that need to be fixed as a result of the refactoring, but it can be done in parallel. Note: I propose to not work on marks immediately. I would like to discut about them in IRC meeting first. Martin. |