Carnac

Fast
C++ Toolkit for 2D Graphics

Carnac
provides software developers with a library of software tools that
promote rapid development of sophisticated graphical applications under
Qt, Windows MFC, or Unix Motif. Carnac offers fully interactive data
display, as well as the ability to share views across the web.
Carnac
now includes a comprehensive and powerful Chart Library, offering
a selection of widely used chart types including Bar, Column,
Histogram, Line, Area, Pie, Doughnut, & Scatter
plots.
Cross-platform
Tools and Outstanding Performance
Carnac has been designed with performance as its
primary goal, with
every component tailored to optimally drive the native graphics
pipeline. Most Carnac-written applications will be faster than
applications written using native graphics directly. Carnac's
outstanding performance and cross-platform support make it the leading
product in its target market.
Carnac's
Distributed Architecture
Carnac's distributed architecture is ideal for
developing Web applications, including enabling technologies such as
ActiveX controls and Netscape plug-ins.
Carnac's components are connected using a proxy interface, which can be
easily distributed. For example, Carnac's Web scene is used to
distribute graphic objects across the Web.
Benefits
- Full cross-platform support
- Extensible, portable, integratable
- Scalable graphics
- Built-in view management
Features
- CGM
-
support extended to 3.0 standard
- Shapes - Primitive shapes
include bezier curves, ellipses, images, polygons, polylines,
polymarkers, rectangles, restricted text and scalable text.
- Flavors - Flavors are
used to
augment the primitive shapes, provide application specific symbols,
lines symbology, animation sprites, etc.
- Attributes - Attributes
encapsulate visual properties of shapes, including line color, line
style, line pattern, fill color, fill style, fill pattern, font
attributes and marker styles. Different attributes can be set per
target device (hardcopy, for example).
- Scenes - Memory scenes:
optimized for very fast shape creation. Suitable to handle tens of
thousands of objects. Paged scenes: shapes are spatially stored in a
file. Application has control over the size of the memory cache.
Optimized to handle up to millions of objects. Dynamic scenes: provides
a mechanism to generate shapes on the fly from a database, an algorithm
or over the web. Data compression techniques and filtering can be
implemented to minimize network traffic.
- Views - Support View laying,
filtering and buffering. Extensive View composition support, including
embedded views. Scenes can be visualized using multiple views, with
automatic propagation of updates.
- Interaction - Extensive support
for interaction is available, including selection, scaling, reshaping
and rotation. Interaction primitives can be applied to single or
multiple shapes.
- Thread safe - Systems that
support multithreading can implement the rendering part of Carnac, as a
separate thread. Methods are provided to enforce internal locking and
preserve data integrity.
- Persistence - Built-in support
for binary and ASCII serialization of scenes and palettes.
- Drivers - Drivers are available
for Qt3. Qt4. Win32, X-Window, OpenGL, PostScript and CGM.
- Online documentation - All
documentation (Getting Started, Users Guide, and Reference) is
available in HTML format for easy access on-line
- Hardcopy output - PostScript is
provided, and CGM is optional.
Plot
Toolkit
The integrated Plot components can be
used for general plotting purpose, to display XY-plots for example, or
for more domain specific applications, including contour, seismic or
log displays. Some of the main features provided in the Plot Framework
are described below:
- Flexible
Design - The
Carnac Plot Framework provides two levels of functionality. The first
level consists of the plotting infrastructure. In order to be able to
display high performance and somewhat complex scientific visual
displays, the plotting infrastructure was designed to support the most
demanding requirements of low-level application framework programmers.
The components of the plotting infrastructure provide great flexibility
and full functionality at the expense of a somewhat more complex API.
The second level consists of higher-level components built on top of
the plotting infrastructure. These components were designed for those
who wish to quickly display standard looking plots with a minimum of
effort. The layers aren't opaque, allowing the programmers the ability
to use the higher-level components, while still providing access to the
plotting infrastructure when needed.
- Axes
and Grids - The Carnac Plot
Framework provides extensive axis support, including linear and
logarithmic axes, axes with fixed increments or adaptive axes. Instead
of being a single object with a multitude of properties however, axes
and grids are described by multiple objects that can be used as
building blocks. The flexibility of the design is further enhanced by
the fact that the user is allowed to add his own components by
implementing the documented interfaces.
- Plot Layout
- A set of objects with simple API's is provided to facilitate the
construction and modification of single or composite plots. A plot is
usually a combination of single or multiple data frames, each
surrounded by a number of axes and/or annotation such as titles,
headers or footers. The Plot Layout controls the alignment of the
plots, the behavior during resize operations, and the dynamic addition
and removal of plots.
- Overlays
- Thanks to Carnac sophisticated view layer management, the Plot
Framework allows plot views to be stacked on top of each other to
create powerful overlays. Cache layers can be inserted between plot
views to minimize redrawing when editing a layer.
- Plot
Spaces
- Plot spaces (or coordinate spaces) are used
to synchronize the mapping transformations between individual plot
scenes and their corresponding axes. Changes in a plot space are
propagated automatically to all the attached view. Plot spaces are
designed to simplify all viewing transformations, including
synchronized scrolling and zooming operations. GUI specific components
such as scrollbars can be tied directly to plot spaces.
- Plot Scenes and Visuals
- Plot scenes are the primary component in the
Carnac Plot Framework. They encapsulate a generic interface that can be
used to model any specific input data type using Carnac primitives.
Plot scenes provide the data from which plot visuals are built. Since
the visual layout is independent of the nature of the data displayed in
the plot, no requirements are imposed on the types of scenes
constituting the plot. Thanks to Carnac advanced layering capabilities,
it is possible to build all sorts of composite plots. For example, in
the case of the GeoToolkit, a Contour plot scene can easily be overlaid
on top of a map, or even on top of a seismic plot scene.
Chart Library
Bring powerful charting into your Qt applications
with minimum programming effort. A comprehensive set of tutorials is
available to assist you and chart customization is available through a
comprehensive set of editors and templates. Chart Overview
CGMOutput
CGMOutput is an add-on module that can be used to
output a display to a CGM file. CGM (Computer Graphic Metafile) is
particularly well-suited for describing large plots and is a standard
graphics file format used by many industries such as Oil & Gas,
Aerospace and Automotive.
Availability
Carnac is available on Linux, Windows, and Solaris for
32bit and 64bit architectures.
|
|