The basic architecture should be made of numerous threads. The **//constant//** threads will be the GUI, Geometry engine, Geometry analysis, Graphics and the GPS. There are several threads that will be **//as needed//**: Read/Import and AgtekAccess. **Activity**: GUI \\ **Content Provider**: Geometry Engine \\ **Service** : Geometry Analysis, Graphics, GPS \\ **Broadcast Receiver**: GPS * __GUI__ - Settings * This is where app settings and display choices are made - Graphical Screen (plan view ... see OpenGL) * This is the main screen graphics that displays lines, text and cut-fill maps. - Alignment of File to Lat/Lon * This is the means by which to create an transformation between Lat/Lon and North/East. - Display of analysis information (cut/fill, distance, etc...) * This is the place to display analysis information such as the cut-fill value a the current location. * __Geometry engine__ - Basic object * Color * Layer - Points * 2D * 3D * with time slice - Lines * 2D * 3D * line segment * curved segments * line segments * Surface control * Contour * Timed - Triangles * For surfaces - Surfaces * Points * Lines (Surface control lines) - Text * Size * Font * Rotation - Blocks * Collection of lines/text/points - Symbols * Predefined blocks of a recognized form (Benchmark symbol) * __Geometry Analysis__ * Provides analysis reports of geometry items - Distance report - Cut-Fill Report - Elevation report * __GPS__ - Autonomous * On Phone * GRay - RTK * Topcon * Trimble - Transform location to local coordinates * __Read/Import__ - AGT - AGT (xml format) - ESW - DWF - LandXML * __AgtekAccess__ * Incorporate current library * __Graphics__ - OpenGL * Design data * Existing data * Zoom in/out * Pan * Text * Surface in Plan * Surface in 3D * Move about 3D surface - Connection to data structures