World Wind v1.4 API Specification

From World Wind Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 19:52, 20 April 2005 (edit)
143.232.86.153 (Talk)

← Previous diff
Revision as of 22:24, 20 April 2005 (edit) (undo)
143.232.86.153 (Talk)

Next diff →
Line 1: Line 1:
'''Key Interfaces that will be defined in the Plugin API''' '''Key Interfaces that will be defined in the Plugin API'''
-*IRenderable+*'''IRenderable'''
-**void Initialize(...)+**Methods
-**void Update(...)+***void Dispose()
-**void Render(...)+***void Initialize(AppContext appContext)
-**bool Initialized{get;}+***void Render(AppContext appContext)
-**bool Disposed{get;}+***void Update(AppContext appContext)
-**Vector3 Position{get;set;}+**Properties
-**Vector3 Orientation{get;set;}+***bool Disposed{get;}
-**string Name{get;} //should this be "set" as well?+***bool Initialized{get;}
-**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.+***Hashtable MetaData{get;set;}
-**byte Opacity{get;set;}+***string Name{get;} //should this be "set" as well?
-**Hashtable MetaData{get;set;}+***byte Opacity{get;set;}
-**<s>ArrayList ChildRenderables{get;} //combine RenderableObject and RenderableObjectList</s>+***Vector3 Orientation{get;set;}
 +***Vector3 Position{get;set;}
 +***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.
 +***<s>ArrayList ChildRenderables{get;} //combine RenderableObject and RenderableObjectList</s>
-*IInteractive //perhaps there are interfaces in .Net already for this...similar to JAVA KeyListener and MouseListener ?+*'''IInteractive''' //perhaps there are interfaces in .Net already for this...similar to JAVA KeyListener and MouseListener ?
-**void OnKeyDown(KeyEventArgs e)+**Methods
-**void OnKeyUp(KeyEventArgs e)+***void OnKeyDown(KeyEventArgs e)
-**void OnMouseDown(MouseEventArgs e)+***void OnKeyUp(KeyEventArgs e)
-**void OnMouseUp(MouseEventArgs e)+***void OnMouseDown(MouseEventArgs e)
-**void OnMouseMove(MouseEventArgs e)+***void OnMouseEnter(EventArgs e) //??
-**void OnMouseWheel(MouseEventArgs e)+***void OnMouseLeave(EventArgs e)
-**void OnMouseLeave(EventArgs e)+***void OnMouseMove(MouseEventArgs e)
-**void OnMouseEnter(EventArgs e) //??+***void OnMouseUp(MouseEventArgs e)
 +***void OnMouseWheel(MouseEventArgs e)
*ICamera *ICamera
Line 29: Line 33:
** under construction... ** under construction...
-*AppContext+*'''RenderableList''' <class>
 +**Methods
 +***void Add(IRenderable renderable)
 +***void Dispose()
 +***void Initialize(AppContext appContext)
 +***void Remove(string name)
 +***void Render(AppContext appContext)
 +***void Update(AppContext appContext)
 +**Properties
 +***ArrayList ChildRenderables{get;set;}
 +***bool Disposed{get;}
 +***bool Initialized{get;}
 +***Hashtable MetaData{get;set;}
 +***string Name
 +***byte Opacity{get;set;}
 +***bool Visible{get;set;}
 + 
 + 
 +*'''AppContext''' <class>
**Direct3D.Device Direct3D_Device **Direct3D.Device Direct3D_Device
**int ScreenWidth **int ScreenWidth

Revision as of 22:24, 20 April 2005

Key Interfaces that will be defined in the Plugin API

  • IRenderable
    • Methods
      • void Dispose()
      • void Initialize(AppContext appContext)
      • void Render(AppContext appContext)
      • void Update(AppContext appContext)
    • Properties
      • bool Disposed{get;}
      • bool Initialized{get;}
      • Hashtable MetaData{get;set;}
      • string Name{get;} //should this be "set" as well?
      • byte Opacity{get;set;}
      • Vector3 Orientation{get;set;}
      • Vector3 Position{get;set;}
      • 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.
      • ArrayList ChildRenderables{get;} //combine RenderableObject and RenderableObjectList
  • IInteractive //perhaps there are interfaces in .Net already for this...similar to JAVA KeyListener and MouseListener ?
    • Methods
      • void OnKeyDown(KeyEventArgs e)
      • void OnKeyUp(KeyEventArgs e)
      • void OnMouseDown(MouseEventArgs e)
      • void OnMouseEnter(EventArgs e) //??
      • void OnMouseLeave(EventArgs e)
      • void OnMouseMove(MouseEventArgs e)
      • void OnMouseUp(MouseEventArgs e)
      • void OnMouseWheel(MouseEventArgs e)
  • ICamera
    • under construction...
  • IWorld
    • under construction...
  • RenderableList <class>
    • Methods
      • void Add(IRenderable renderable)
      • void Dispose()
      • void Initialize(AppContext appContext)
      • void Remove(string name)
      • void Render(AppContext appContext)
      • void Update(AppContext appContext)
    • Properties
      • ArrayList ChildRenderables{get;set;}
      • bool Disposed{get;}
      • bool Initialized{get;}
      • Hashtable MetaData{get;set;}
      • string Name
      • byte Opacity{get;set;}
      • bool Visible{get;set;}


  • AppContext <class>
    • 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