Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesTurn Numbers into Pictures


April 1996 / International Features / Turn Numbers into Pictures

New RAD tools for developing graphical applications

Bernhard Steppan

As the demand for visual data grows, tools that graphically represent data in spreadsheets and databases are gradually becoming state of the art. New rapid application development (RAD) tools and libraries for programming graphics applications are making life easier for developers. They provide a wide range of geometry, display, object-generation, and modeling functions and also help manage the storage of graphical objects in relational databases.

For instance, insurance companies use mapping software to more easily evaluate risks in earthquake regions. Big international warehouse chains require graphics programs to help manage their distribution systems. If you're developing an e nterprise-wide visualization system, you know how time-consuming it is to integrate existing databases in a consistent visualization scheme. Your development strategy depends on answers to such questions as "Shall I use low-level or high-level, procedural or object-oriented libraries?," "Which parts can be based on third-party graphics kernels?," and "How many off-the-shelf modules can I use?"

Graphics applications consist of three main parts: user interface, object generation, and data management. The development strategy for an enterprise-tailored application can take two main paths: Use a graphics kernel with a flexible programming interface or deploy a library and build the program from scratch. Libraries can be procedural or object-oriented, wrapped as DLLs.

Advantages of Procedural Libraries

The advantage of procedural libraries is that they can be used with standard DLL-compatible development tools as well as with comfortable tools, suc h as Visual Basic and Turbo Pascal. Object-oriented class libraries can usually be used only with the compiler that created the libraries. However, most library producers offer versions for the market-leading C++ compilers.

Class libraries offer the well-known advantages of object-oriented programming, including overriding, overloading, and inheritance. Inheritance is especially beneficial during the design of a user interface when you can define subsequent windows in a user dialog box as instances or as derived classes of one superclass. If you use a high-level GUI library, you don't even need to know the internal structure of the classes.

If you want to develop a CAD, mapping, or business visualization application, things can get complicated. There are two basic routes you can take: Build your own visual application or modify a shipping CAD or mapping application. There are several CAD packages on the market, but most come with inflexible APIs. C++ class libraries, on the other hand, offer open design possibilities but require a deep knowledge of graphics data management and a keen understanding of the OS's features, such as its event-handling and basic I/O functions.

Best of Both Worlds

But some vendors offer a mixture of both approaches and ship a graphics kernel with extended APIs and an appropriate programming library. In such cases, the application framework is ready to use, and you can tailor it with the library functions.

Condor, developed by the German software publisher SOFA (Marburg, Germany), is an example of a development system that consists of a CAD program and a programming interface wrapped in a DLL. The package is available as both a procedural library (Condor 3.2) and a class library (Condor 4.0).

The Condor CAD kernel of both versions is a ready-to-use application with a wide range of CAD features, such as object generation and drawing. The Condor 3.2 DLL/API contains more than 200 additional functions. But the DLL can also be the basis for stand-alone products. In both cases, DLL-compatible C or Pascal compilers are necessary. As long as you use the CAD kernel, however, a separate interface builder is not required.

Condor 4.0 offers a much more flexible object-oriented class library. Its CAD kernel is based on the Condor C++ class library and on the Microsoft Foundation Classes (MFC) and comes completely documented with all sources. The MFC covers the interface functionality, whereas the Condor class library provides the drawing functionality. Both systems can be used for the development of all-purpose 2-D graphics applications under Windows 3.1. Their domain, however, is in the development of MCAD (i.e., mechanical engineering) applications.

The Condor systems ship with sample programs and documentation written in German. An English version will be available during the second half of this year. Source code versions are available on request. Applications developed and shipped with Condor include the price of the Con dor development system and an additional per-copy run-time fee for applications.

Database Management

In contrast to Condor, which concentrates on the representation of graphical data, DbCAD 1.4 from Abaco (Mantova, Italy) provides database management and administration for graphics applications. DbCAD's architecture is based on an API, a graphics database, manipulation functions for vector and bit-mapped data, and a graphical windowing system.

The DbCAD system works concurrently in a client/server mode. The server provides the main functionality, including a DBF database and the visualization functions that the client uses. The client operates as the front end of the database and can manipulate the server window via a DLL interface to visualize the data. You can also use DbCAD with external databases, such as Access and FoxPro. In additon, SQL and Open Database Connectivity (ODBC) interfaces, as well as DWG and DXF filters, are provided.

DbCAD 1.4 ship s with a sample program and documentation written in English. The source code of this procedural library is not available for users, but Abaco plans to integrate it in a future release.

The architecture of the Heron CAD development system from ICAT (Schaffhausen, Switzerland) consists of a CAD kernel, a comprehensive API, additional toolboxes, and ready-to-run user programs. The kernel includes a database, complete data management functionality, and the entire 2-D and 3-D visualization system. Parts of this functionality is available via about 200 APIs. Heron can store and manage up to several megabytes of graphical data. For higher amounts of data, ICAT recommends more powerful external ODBC-compatible databases. Heron can effectively display bit-mapped and vector drawings. For the shading of 3-D objects, the system uses the OpenGL library.

You can program Heron with APIs or with the higher-level toolbox functions. The Heron toolboxes provide a container for complex special-purpose functions, suc h as views, mathematical transformations, and user dialog boxes.

Heron is best for developing graphics applications with a high degree of interactivity, such as design programs. Because of its four-layer architecture, novice and experienced graphics developers alike can benefit from using Heron. The system is available on Windows 95, Windows NT, the X Window System, and OS/2 and ships with all sources. The compa-ny also expects to develop an OLE Control (OCX) version of Heron during this year. ICAT charges a development license fee and royalties for commercial applications developed with Heron (run-time license).

Mapping Systems

Geographic information systems (GISes) and mapping systems require a lower degree of user interaction than CAD systems because they're used mainly to administrate, analyze, and display existing information, such as data in environmental or land-registry databases. In contrast to CAD applications, they don't require sophisticated 3-D functions. However, the seamless integration of graphical (spatial) and nongraphical (administrative) databases in GISes is very important.

Sysdeco's (Oslo, Norway) Tellus Vision 2.0 tool set targets developers of GIS and mapping systems. It has a sophisticated SQL query tool, QBE Vision, and the dedicated GIS tool set Tellus (Latin for "the Earth"), which includes a comprehensive visualization kernel. QBE Vision consists of a so-called Form Designer, a database management and query system, a debugger, and a report generator. The Form Designer works as the interface builder. It supports a large range of GUI objects, such as status, progress, and toolbars, as well as sliders and push buttons.

If you have the right tool, developing graphics applications is no more difficult than programming any other type of application. As with all other development areas, object orientation is the preferred way to go. But as long as a standard object format for componentware is missing, the best alternative for graphics applications are C++ class libraries.


WHERE TO FIND


Abaco

Mantova, Italy
Phone:  +39 376 222181
Fax:    +39 376 222182

ICAT

Schaffhausen, Switzerland
Phone:  +41 53 255 655
Fax:    +41 53 255 656

SOFA

Marburg, Germany
Phone:  +49 6421 12061
Fax:    +49 6421 12063
E-Mail: 
100331.506@compuserve.com


Sysdeco

Oslo, Norway
Phone:  +47 22 096500
Fax:    +49 22 09 6501

HotBYTEs
 - information on products covered or advertised in BYTE


DbCAD Does Vectors and Rasters

screen_link (107 Kbytes)

DbCAD lets developers visualize and manage databases of vector and raster information.


Condor Soars Thru Grouping and Generation

screen_link (52 Kbytes)

The visualization functions of Condor 3.2 include object generation and grouping as well as mathematical transformations.


Bernhard Steppan is a freelance writer based in Frankfurt, Germany. You can reach him by sending E-mail to editors@bix.com .

Up to the International Features section contentsGo to previous article: SearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network