The way that we envisioned this to be done is for you to implement a 3D renderer, your renderer could use the other renderers if it desires.  Each layer is assigned a  renderer whose responsibility is to render the layer.  A Renderer may be a MultiRenderer ( meaning it handles multiple layers ) or a normal renderer ( it can only handle a single layer ).  Each Renderer renders to an image provided by the framework and the frame work merges them together and displays them. 

Now the problem with this approach is that if there are 2 renderers that can render a layer it currently is more or less random which will be chosen.  We have the idea of a RenderMetrics object that is supposed to help determin what renderer should be used.  Currently it has 2 metrics that it uses, canStyle and isOptimized.  These describe how well the renderer can render the layer we also want the frameworks to measure the performance of the potential renderers.  This will never be enough though because the use needs to be able to decide what his/her preferences are and nothing stops a plugin from always setting its metrics to maximum.  So we need a renderer preference page that will allow a user to set the metrics of the renderers. 

In summary:
You can make a 3d Renderer and use the same MapEditor but you will have to hack the code so that your renderer will be used everytime until we (or you) make the renderer preference page.

Jesse



Tiago Silva wrote:
Hi,

I'm having a hard time extending uDig's architecture to implement my 3D plugin. What must I extend to make a new type of editor that shows maps in 3D instead of 2D. At this time of writing I have an hardcoded prototype that doesn't work along with uDig's architecture. I have a 3D view that reads a texture file that is written in the disk every time net.refractions.udig.render.wms.basic makes a new request a receives a new image. This just isn't correct, since it messes with the base code, I want to make my functionality extend in a real plugin like fashion, can someone give me some tips on what I must extend, and what classes should I be aware of.

By the way, I was wondering what should I also extend to make uDig work with a new protocol, in this case WTS (Web Terrain Server).

Best regards,
Tiago Silva

_______________________________________________ User-friendly Desktop Internet GIS (uDig) http://udig.refractions.net http://lists.refractions.net/mailman/listinfo/udig-devel



_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel

Reply via email to