World Wind v1.4 API Specification

From World Wind Wiki

Revision as of 19:44, 20 April 2005 by 143.232.86.153 (Talk)
Jump to: navigation, search

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...

Personal tools