World Wind v1.4 API Specification
From World Wind Wiki
(Difference between revisions)
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
- Methods
- 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)
- Methods
- 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;}
- Methods
- 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...