Editing Geometry Service Project Main

From BRL-CAD

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
[[category:Geometry Service]]
+
{{DesignDocument}}
{|
+
[[category:Projects]]
|width=210|[[Image:GS_Symbol.png|left|Geometry Service]]
+
=Integrated BRL-CAD Modeling Environment=
|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 Integrated BRL-CAD Modeling Environment (iBME, or spoken 'I-Beam') 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 iBME project consists of three major pieces:
  
 +
* [[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.
 +
* [[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.
 +
 +
Project implementation particulars:
 +
* iBME's core will be written in C/C++.
 +
* OO Design will be leveraged to allow runtime-extensibility
 +
* iBME 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
 +
 
----
 
----
===The Geometry Service consists of three major pieces===
+
[[GeometryServiceNetworkProtocol]]
 
+
   
* '''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.
 
 
 
 
----
 
----
 +
[[ScratchPad]]
  
===QuickLinks===
+
[[NetMsgTypes]]
<!-- 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]]

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)