Geometry Service Project Main

From BRL-CAD
Revision as of 08:02, 21 September 2010 by Dloman (talk | contribs) (New page: {{DesignDocument}} category:Projects =Integrated BRL-CAD Modeling Environment= The Integrated BRL-CAD Modeling Environment (iBME, or spoken 'I-Beam') is the internal name for a proje...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Design icon.png This page contains the design document for an enhancement or feature. The design should be considered a work in progress and may not represent the final design. As this is a collaborative design, contributions and participation from other developers and users is encouraged. Use the discussion page for providing comments and suggestions.

Integrated BRL-CAD Modeling Environment

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:

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

GeometryServiceNetworkProtocol


ScratchPad

NetMsgTypes

URL URI URN Implimentations

Architecture