Difference between revisions of "Geometry Service Project Main"

From BRL-CAD
m (Implementation Particulars)
 
(10 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{DesignDocument}}
+
[[category:Geometry Service]]
[[category:Projects]]
+
{|
+
|width=210|[[Image:GS_Symbol.png|left|Geometry Service]]
The Geometry Service Project (GS) is the internal name for a project under development that aims to restructure the geometry management services within BRL-CAD and provide a new user interface.  More specifically, the restructuring aims to leverage an object-oriented design and encapsulate much of the existing functionality in BRL-CAD through three specifically layered interfaces. The GS Project consists of three major pieces:
+
|The Geometry Service Project (GS) is the internal name for a project under development that aims to restructure the geometry management services within BRL-CAD and provide a new user interface.  More specifically, the restructuring aims to leverage an object-oriented design and encapsulate much of the existing functionality in BRL-CAD through three C++ interfaces.
 +
|}
  
* [[iBME_GeometryEngine|Geometry Engine]] - C++ library consisting of the existing BRL-CAD libraries and added functionality such as integration of '''all''' BRL-CAD file format converters and SVN storage utilities.
+
----
* [[iBME_GeometryService|Geometry Service]] - Background service that leverages a Geometry Engine, a Session Manager, an Access Manager, and a Communications Manager to facilitate multi-user, multi-threaded, networked access to the Geometry Engine.
+
===The Geometry Service consists of three major pieces===
* [[iBME_GUI|GUI]] - Standalone 'thin client' that provides visualization and captures user input. This thin Client is connected a Geometry Service via one of many communication mediums with network sockets being the most prevalent.
+
 
 +
* '''Geometry Engine''':  The Geometry Engine(GE) is a stateless library built on top of the existing BRL-CAD Libraries: libbu, libbn, libdm, libged, librt, etc. The GE contains all geometric processing functions to include Format Converters, Tessilation, and image processors.
 +
 
 +
* '''Geometry Service''': The Geometry Service(GS) is an application that expands on the functionality of the Geometry Engine (GE) by adding Multi-user Communications and Session Management, Access Controls, Multithread capabilities and SVN utilities.  
  
Project implementation particulars:
+
* '''"New" GUI Project''': Currently nicknamed "G3D", it is a standalone client that provides visualization of geometry and captures user input. G3D is designed to be connected to a Geometry Service over the network via the Geometry Service Network (GSNet) Protocol.
* GS's core will be written in C/C++.
 
* OO Design will be leveraged to allow runtime-extensibility
 
* GS leverages existing functionality in BRL-CAD's libraries and binaries
 
* The Geometry Engine provides compile-time bindings
 
* The Geometry Service provides a network protocol run-time interface
 
* Each of the three major pieces will be stand-alone products
 
 
----
 
  
[[GeometryServiceNetworkProtocol|Geometry Service's Network Protocol Documentation]]
 
 
 
----
 
----
  
[[NetMsgTypes]]
+
===QuickLinks===
 +
<!-- hackish, I know.... -->
 +
<center>
 +
{|
 +
| align="center" |[[Image:Users_128px.png|link=Geometry Service User Main|alt=Alt Text|User Pages]]
 +
| &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
 +
| align="center" |[[Image:Developer_128px.png|link=Geometry_Service_Dev_Main|Developer Pages]]
 +
|-
 +
| align="center" |[[Geometry_Service_User_Main|'''User Pages''']]
 +
|
 +
| align="center" |[[Geometry_Service_Dev_Main|'''Developer Pages''']]
 +
|}
 +
</center>
  
[[URL URI URN Implimentations]]
+
----
 +
===Implementation Particulars===
 +
* The Geometry Service will be written in C/C++ to allow runtime-extensibility and reuse of code in future projects.
 +
* The Geometry Service leverages the proven and stable functionalities in BRL-CAD's libraries and binaries.
 +
* The Geometry Service provides an easy to use and extensible network protocol (GSNet Protocol) for interacting with a running Geometry Server.
 +
* The Geometry Engine provides a clean and easy to use API for BRL-CAD's libraries and binaries.
 +
* Each of the three major pieces will be stand-alone products
  
[[Architecture]]
+
----

Latest revision as of 15:49, 6 June 2011

Geometry Service
The Geometry Service Project (GS) is the internal name for a project under development that aims to restructure the geometry management services within BRL-CAD and provide a new user interface. More specifically, the restructuring aims to leverage an object-oriented design and encapsulate much of the existing functionality in BRL-CAD through three C++ interfaces.

The Geometry Service consists of three major pieces[edit]

  • Geometry Engine: The Geometry Engine(GE) is a stateless library built on top of the existing BRL-CAD Libraries: libbu, libbn, libdm, libged, librt, etc. The GE contains all geometric processing functions to include Format Converters, Tessilation, and image processors.
  • Geometry Service: The Geometry Service(GS) is an application that expands on the functionality of the Geometry Engine (GE) by adding Multi-user Communications and Session Management, Access Controls, Multithread capabilities and SVN utilities.
  • "New" GUI Project: Currently nicknamed "G3D", it is a standalone client that provides visualization of geometry and captures user input. G3D is designed to be connected to a Geometry Service over the network via the Geometry Service Network (GSNet) Protocol.

QuickLinks[edit]

Alt Text                               Developer Pages
User Pages Developer Pages

Implementation Particulars[edit]

  • The Geometry Service will be written in C/C++ to allow runtime-extensibility and reuse of code in future projects.
  • The Geometry Service leverages the proven and stable functionalities in BRL-CAD's libraries and binaries.
  • The Geometry Service provides an easy to use and extensible network protocol (GSNet Protocol) for interacting with a running Geometry Server.
  • The Geometry Engine provides a clean and easy to use API for BRL-CAD's libraries and binaries.
  • Each of the three major pieces will be stand-alone products