Chapter 1:
Introduction to the
Presentation Graphics SDK


The Presentation Graphics Software Development Kit (PGSDK) is a library of routines for producing and editing presentation-quality graphs and charts. With this SDK, you can add graphs and charts to any C/C++ application quickly and easily. The application can incorporate any level of functionality of the library -- from simple drawing of preset graphs to complete functional editing of all parts of new graphs.




Basic Features


Key Features


Advanced Features


Professional Configuration Features









PGSDK provides the tools you need to add professional charts and graphs to an application. The chart is drawn in your application's window or child window within the rectangular location your application indicates. Your application can draw any number of charts in any number of windows. It is limited only by available memory and Windows system resources.

Basic Features


Any Output DC: Drawing can be performed to any output DC -- screen, printer, memory and Windows metafile (WMF). This allows your application to copy a chart to the clipboard as a metafile picture or a bitmap. PGSDK supports True Windows copy and paste capability.


Selection Highlight: User-selected objects are easy to highlight. Minimal code is required to highlight a user selection and provide visual feedback to the user


Move and Resize Objects: Title, Subtitle, Footnote, Row Title, Column Title, Axis Titles, Frame, and Legend objects can be moved and sized dynamically by the user. When an object is selected and highlighted, eight resize handles appear on the object's bounding box. You can resize by clicking and dragging. PGSDK supplies sample code to show how easily this is done.


Annotations: You can draw rectangles, rounded rectangles, ellipses, polygons, lines, arrows, free hand lines, and text boxes.


Vertical/Horizontal Charts: 2D Bar, Line, and Area charts can be displayed vertically or horizontally.


Numeric Text Formats: Numeric text supports a wide variety of formats for miscellaneous values, dollar amounts, percentages, scientific notation, thousands, and millions.


Date & Time: PGSDK supports these data/time formats: "2/25/64", "Feb 25", "Tuesday, February 25, 1964", "18:56" (24 hr. time), "Feb 25, 64", "Feb 64", "Feb 25, 64 6:56 PM"


Object Poke Through: PGSDK supports the ability to find the next object even when objects are layered on top of each other. Just because an object is underneath doesn't mean it can't be selected.


Horizontal or Vertical Legends: Legends can be oriented horizontally or vertically or as rows and columns under your applications control.


Emphasize a Data Series: In a bar, line, or area chart a data series can be emphasized by drawing it as another chart type. For example, on a side by side bar chart your application can make one of the data series draw as a line or area riser.

Key Features


A Cross-Platform solution: PGSDK is the only library available for Windows (16&32 bit), Macintosh (680x0 & PowerMac), UNIX, and OS/2. With standard ANSI-C calls that work identically on all computers, you can be guaranteed of having great graphics regardless of the development platform, now or in the future.


Two different data models: PGSDK provides two unique ways of inserting data into a graph.



Data Callbacks: User-defined functions that the library calls when it draws a riser (basically, you provide the numbers only at the exact moment the library needs to chart them). Perfect for large and/or constantly changing data sets since it avoids constant update and storage issues.



Send Data Interface: A family of functions that allow you to "send" data to a chart where it is stored for you.


Graphs that actually draw in your own window: Unlike some competitors that draw your chart in another window and then attempt to ''paste" the finished chart in your application, PGSDK creates charts in the Windows DC of your choice. This provides the fastest, cleanest and most intimate link possible.


On-screen editing and detection: PGSDK lets you click on any chart element and move or resize it. PGSDK provides XOR handles and highlights so that users get visual feedback on what items have been selected. Specialized feedback functions provide all the information needed to create data drill-down effects and provide an unparalleled degree of chart customization.


Advanced Special Effects: When you want to add some sizzle to your application, nothing quite compares to the effects offered by PGSDK. You can put bitmap or vector images on any chart element (choose if they stretch-to-fit or tile!). You can add drop-shadows or any of 16 types of gradient fills. You can even create Pictogram chart types for that "USA Today" look.


Left-to-Right and Up-Down Charts: PGSDK has Bi-polar, dual-Y, Horizontal/Vertical and Ascending/Descending controls. You can create special effects such as bar charts that draw from the top down or comparison charts that draw from the middle out (for example, boys on the left and girls on the right).


Fantastic 3D Charts! PGSDK offers complete customization of your 3D viewing parameters as well as 16 "preset" 3D Viewing Angles so you can provide your users a multitude of ways to see their data without fear of getting lost in 3D space.


AutoFit Font Technology: PGSDK has font technology that allows you to resize the chart in any manner without destroying its readability. Whether Big, Small, Short & Wide, Tall & Skinny, it will automatically select a font size that looks good so you get great looking charts every time.


Endless Customization: With PGSDK, you get individual control over the Pie Thickness, Location, Tilt Angle, Rotation Direction, Start Angle, Feeler Position and much more. You also get complete control over the text size and location. With every chart type, PGSDK provides a range of custom features.


Full Internationalization Support: If your plans include overseas sale or development, PGSDK is a worldwide charting tool. With features like automatic detection of currency and decimal symbols, easily editable resource strings and double-byte character support, this library is ready to go wherever you go.


Undo and Redo Support: PGSDK also provides a powerful undo/redo facility so your users can experiment without any fear of wasting time/destroying previous work. Choose from last-action or Anchor-style undo schemes.


RAMFILES: The Presentation Graphics SDK has the ability to load and save chart files directly into memory (called RAMFILES). This provides you with the ability to store frequently used chart templates in resources or embed your user's charts inside your own file format.


Year 2000 Compliant: The PGSDK does not manipulate, store, or transform any dates or date-related numbers, strings, or tags anywhere in its code. It cannot be affected in any way by date changes on a client machine. This compliance has been tested and verified at Three |D| Graphics.

Advanced Features


Open GL: Advanced 3D Rendering is an alternate form of drawing that is optionally done when a client calls DrawTheGraph(). Instead of platform-specific API calls (for example to the Windows GDI or Macintosh Toolbox), Advanced 3D uses the OpenGL graphics library to display complex 3D versions of charts with dynamic lighting, z-buffering, 3D text, true texture-mapping and other visual enhancements. In addition, OpenGL takes advantage of any available 3D hardware acceleration if the proper drivers are installed. Advanced 3D attributes use the OpenGL libraries developed by Sun and currently supported by Microsoft.


Visualize Features: The Visualize features can be used to: 1) make any series, group, or individual riser transparent, 2) suppress any series, group or individual riser (with optional rescaling), or 3) apply a glow effect to any series, group, or individual riser.


Curve Fits: PGSDK supports Mean, Median and Standard Deviation curve fits. Advanced curve fitting: Nth-order polynomials, Best-Fit, Error-bars, etc.


Multi-Dimensional Labels: PGSDK supports multi-dimensional (also known as "hierichal") ordinal axis labels.


User Interface Dialogs: A complete set of Microsoft Office-style Tabbed Dialogs are built directly into PGSDK for use in custom applications. It includes a Chart Type dialog with a customizable gallery of chart templates. It also includes Grids & Scales, Titles & Labels, Chart Options, Series Options, and a complete Formatting dialog with built-in gradients, textures, and pictures!


Import/Export Chart from/to JAVA Script Files: Based on special customer request, PGSDK includes API functions that can be used to read and write Java Script Files that are compatible with the Three |D| Graphics Perspective for Java product. For an export operation, you can write the chart "look" only or the graph and its data.

Professional Configuration Features


Primary Graph Types: Pie, Bar, Line, Area, Stock, Scatter, Gantt, Polar, Radar, Table, Spectral Map


Sub-graph types:


Pies: Single, Multiple, Proportional, Pie-Bar


Bars: Side-by-Side, Stacked, Percent, Histogram


Line & Area: Absolute, Stacked, Percent


Scatter: XY, Bubble Chart, Quadrant Chart


Combination charts: Bar-Line-Area.


3D: 21 3D Chart types including Bar, Line, Area, Surface, Contour, Pyramid, Octagon and 3D-Scatter.


Special: Spectral Maps, StemLeaf, Waterfall, Balance Score Card (Gauge) Chart, Position Analysis Chart, Resource Return Chart, Time Series Chart, 4Y Chart.


Full on-screen object detection and automatic object highlighting.


16 Preset 3D viewing angles for real 3D charts.


Horizontal or Vertical chart orientation options.


Depth effect on 2D charts to give "3D Feel".


Gradient and Drop-Shadow Special Effects.


Support for Automatic/Manual scale values and Log/Linear Scales.


Autofit technology for infinitely sizable charts.


Mean, Median and Standard Deviation curve fits.


Advanced curve fitting: Nth order polynomials, Best-Fit, Error-bars, etc.


BiPolar and Dual-Y Axis functionality.


Over 40 numeric format choices including currency, scientific & day/date.


Support for international symbols.


Wire-Frame outline of 3D chart which can be rotated, scaled, or distorted in any fashion.


3D View Tool Child Window (Windows version only).


Undo/Redo editing functions.


Advanced Special Effects: Create Pictogram charts or put Bitmap/Vector images on any chart object.


Annotation features: Arrow, Line, Polygon, Rectangle, Oval, Text, etc.


Platform-independent C function calls control all aspects of library.


RAMFILE technology allows chart templates to be stored in resources or imbedded in any document that supports binary images.


Superior technology allows any chart you create to actually draw inside a window you control.


Perspective Template-Editor (Create chart templates quickly & easily!).




Is it a library or a DLL?



It is a DLL for Windows and OS/2. It is a static library for 68000-based Macintosh's and a Shared library for Power-Mac's and UNIX platform.



Can I select objects on the screen?



Yes! Every object is detectable.



Are the chart templates platform-independent?



Yes! Chart files that are made on one platform can be displayed on any other platform.



Are there royalties or license fees involved?



Yes. Our terms are reasonable and customized to fit your specific situation .



Will it work with my development environment?



Developers contact our library via an ANSI-C compatible C header file. Any development environment that allows access to C function calls should support our system.



The contents of the PGSDK will be slightly different depending on your development platform. It will always include:


One or more dynamic link library (.DLL) files. These files must be included with your application's distribution package.


One or more library (.LIB) files. These files provides access to the PGSDK API calls.


One or more header (.H) files. These files contain all PGSDK declarations, function prototypes, data structures, and constants to compile your application.


Sample Files: Numerous programming examples show how to access and use API calls and implement features in your program. All of the Features described above are demonstrated in the sample programs. Each program is fully commented. Examples are included for C, C++, Visual Basic, Power Builder, and Actor.


Documentation: The following documents describe the Presentation Graphics SDK:



Presentation Graphics SDK Programmer's Manual (this manual): Describes now to install and use the SDK.



Presentation Graphics SDK Attributes Guide: Describes each of the attributes that can be applied to objects in a chart.



Presentation Graphics SDK API Guide: Describes each of the API functions that are available in the graphics library.


These documents are provided in Hypertext Markup Language (.HTML) format. They are also available in Microsoft Word 97 (.DOC) format.



If you need additional information about the PGSDK, contact Three |D| Graphics, Inc. at:


Mailing Address: 11340 West Olympic Blvd., #300, Los Angeles, CA. 90064


Telephone: 1.800.913.0008 or 1.310.231.3330


FAX: 1.310.231.3303