This document outlines the proposed architecture for an application framework. It includes packages for the GUI, data framework, common services, domain logic, sketching/editing, data modeling, visualization, and rendering. The GUI package will manage menus, toolbars, views and layouts. The data framework will contain common attributes and interfaces. Common services will include undo/redo and file management. Domain packages will contain business logic. Sketching and editing frameworks will support 2D and 3D modeling. Data modeling will handle geometric data and algorithms. Visualization will provide geometric services, views, and raster support. Rendering will utilize an existing 3D engine.
1. Kernel Architecture
Application Framework
Data Modeler
Foundation
Classes
Visualization / SceneGraph
Rendering Engine
JOGL / JDK 5.0
2. Application Framework
GUI
Sketch & Data Domain
Common Services
Edit Framework Packages
GUI This package will contain the GUI implementation of Ayaam and related projects.
Will manage all l Menu bars, Tool bars, multiple layouts, multiple viewports, Console, Printing
Layouts
Data Framework This package will contain information about all the common attributes and data needed for
domain packages. Information and interfaces for Views, WCS, Working plane , selected
objects, mouse and keyboard events,
Common Services Will contain the implementation and interfaces for undo and redo, cut, copy, paste and other
common functionalities like pan, zoom rotate. They will also allow you to:- Update external links
- Manage the saving and opening of data
Domain Packages This package will contain the implementation of business logic. The entry point of this package
has to be registered with gui, it can avail the services Data Framework, common services and
data modeling packages.
Sketch & Edit Sketching and editing frameworks for 2d & 3d entities using mouse, console, property sheets
and grip points.
3. Data Modeler
View & Geometric Data
Geometric Algo
VIEW & Geometric Data Import ACAD DWG entities into own data structures, contain information about
different views and view ports, data and view information can be edited and
modeled through sketch , grip points, property sheets and console inputs.
Geometric Algo This package will be using the Geometric Data package extensively.
This will contain the logic to fulfill the different process, like building topology from
the topology data structures ( Geometric data package), Fillet and chamfers,
Offsets, sweeps, Hidden line removal, Construction of primitives, (using primitive’s
data structure from Geometric Data package), Boolean operations.
4. Visualization / Scene Graph
Raster Services
Geometric services View Services
Scene Graph
Geometric services Will be used for loading the scene for visualization purpose,
Will be used for editing geometry objects and there appearances;
View services Selection and querying of objects,
View management;
Raster services Raster image saving and manipulation
Scene graph Scene graph implementation.