World Wind v1.4 API Specification
From World Wind Wiki
Revision as of 19:44, 20 April 2005 by 143.232.86.153 (Talk)
Key Interfaces that will be defined in the Plugin API
- IRenderable
- void Initialize(...)
- void Update(...)
- void Render(...)
- bool Initialized{get;}
- bool Disposed{get;}
- Vector3 Position{get;set;}
- Vector3 Orientation{get;set;}
- string Name{get;} //should this be "set" as well?
- bool Visible{get;set;} //used to be "IsOn", perhaps this shouldn't be "Visible" because being "Visible" doesn't mean that an object is actually in the View Frustum.
- byte Opacity{get;set;}
- Hashtable MetaData{get;set;}
- ArrayList ChildRenderables{get;} //combine RenderableObject and RenderableObjectList
- IInteractive //perhaps there are interfaces in .Net already for this...similar to JAVA KeyListener and MouseListener ?
- void OnKeyDown(KeyEventArgs e)
- void OnKeyUp(KeyEventArgs e)
- void OnMouseDown(MouseEventArgs e)
- void OnMouseUp(MouseEventArgs e)
- void OnMouseMove(MouseEventArgs e)
- void OnMouseWheel(MouseEventArgs e)
- void OnMouseLeave(EventArgs e)
- void OnMouseEnter(EventArgs e) //??
- ICamera
- under construction...
- IWorld
- under construction...
- AppContext
- Direct3D.Device Direct3D_Device
- int ScreenWidth
- int ScreenHeight
- ...
One issue that has always bothered me was whether to exclusively make the camera "focus" on a "World" or whether to make it focus on a "RenderableObject". Of course, you cannot really define what a view range is if you focus on something like the International Space Station, but perhaps someone would want to focus on that...