Home > GeoToolkit > GeoToolkit.NET > Carnac.NET
Carnac.NET

Powerful
2D Graphics Libraries and Chart components for Microsoft.NET

Written completely in the C# language, Carnac.NET
is a powerful class library designed to facilitate the development of
sophisticated 2D graphical applications for the Microsoft .NET
environment. By taking care of most of the complexity of graphics
programming, including hardcopy output, object selection and editing,
performance optimization, layout and synchronization of complex plots,
Carnac.NET greatly simplifies the task of building the graphics
displays required in scientific, business, process control and GIS
applications.
Carnac.NET provides a powerful infrastructure for
developing high-level industry specific graphics components and serves
as the foundation for our own CarnacGIS.NET and GeoToolkit.NET
component suites.
Benefits
Ease-of-Use
Carnac.NET provides an intuitive graphics environment where users can
model and organize their data in terms of shapes, attributes, and
layers. A model can be attached to a view for visualization or
printing. Selection strategies and manipulators are provided for easy
selection and editing of shapes inside a view.
Functionality
Carnac.NET offers all the standard graphic shapes plus more complex
ones, such as axis, grid, arrow, and symbol. Shapes can be organized in
layers, which can be stacked, added, removed, and reordered
dynamically. Layers can offer different containment mechanisms for
shapes, including linear list and quad tree. Layout managers allow
views to be stacked, positioned side by side, or assembled in more
complex ways to handle different requirements from basic scrolled views
to multi-plot views with several levels of axes and shared scrollbars.
Performance
Carnac.NET utilizes various techniques to maximize performance from
GDI+, including attribute caching, advanced damage repair control,
extensive buffering control, optimized spatial retrieval of shapes,
dynamic rendering of complex shapes and more.
Extensibility
Advanced users don't want to be limited by
capabilities of the underlying toolkit, so Carnac.NET has been designed
to be extensible from the ground up. Most Carnac.NET resources are
specified as extensible interfaces. For example, it is easy for users
to create their own custom shapes, provide their own shape geometry or
attribute editor, or customize the axis object to generate their own
labels. It is also possible to make a custom driver to render data to a
particular device or graphics format.
Built-in
editors
Carnac.NET comes with a number of built-in editors and GUI components,
including a colormap editor, an advanced print GUI component with print
preview, and attribute/properties editors for shapes.
Feature List
Model
View Controller Architecture
The data model, the views, and the actions on the data or view are
logically separated, allowing a single data model to be shared between
multiple views.
Separation
of Core and GUI Components
Allows the toolkit to be targeted to different
platforms and implementations of .NET Framework (like Mono).
Hardcopy
Support
Full support for printing, print previewing, export
to CGM, EMF, and raster images. |
 |
Shapes
Lines, polylines, polygons, fixed and scalable texts, multi-line texts,
fixed and scalable images, ovals, symbols, arrows, grid lines, axes,
and custom shapes.
Attributes
Support for a complete set of GDI+ properties, including line styles,
fill patterns, and font properties. Sharing of attributes among
multiple shapes. Built-in attribute editor for pre-defined shapes.
Shape
Containers
Support for layers and models utilizing different
containment mechanisms, including list and quad-tree. |
 |
Layering
Shapes within a model can be organized into layers. Views can be
stacked on top of each other.
Selection
A rich set of selection strategies including selection by point,
polygon, ellipse, rectangle, and region.
Editing
A rich set of manipulators to create or edit the geometry of the shapes
(moving, resizing, rotating, adding and removing of vertices). The
custom manipulators can be created by the user. The existing
manipulators can be customized or extended. Clipboard and drag
& drop support. |
 |
Views
and Plots
A view serves as a representation of data in a
model. A view can be cached to improve performance. Different cache
strategies can be applied. A plot provides the physical bounds for a
view and managing of clipping area. Plots can be organized into plot
containers that maintain certain layout of plots.
Transaction
Support
Optimizes a number of repaints during invalidation
of data.
High
Level Components
A number of high-level components like color map editor or attribute
editor are available for reuse in applications. |
 |
Property
Editors
Provides an infrastructure to easily build
property editor dialogs or modify predefined dialogs.
Tutorials
A rich set of tutorials to show the solution for typical tasks.
Serialization
Support for binary and XML serialization of data including shapes with
attributes, layers, and models.
Server-Side
Rendering
Export to raster images allows the user to create the ASP.NET
applications. |
 |
.NET
Compact Framework Support
Carnac applications can be developed for Pocket PC and Windows based
smart phones using the Compact version of Carnac.NET. Please contact
INT to access a Community Technology Preview of the Compact Framework
version of Carnac.NET. |
 |
|
Documentation
A complete set of documentation including API reference, architectural
overview, and tutorial overview. |
 |
Chart
Library
Users can easily incorporate stunning charts in
their applications with minimum programming effort. An extensive set of
tutorials is provided, and chart customization is available through a
comprehensive set of editors and templates. Chart Overview
Availability
Carnac.NET is available on 32bit or 64bit Windows
platforms with .NET environment version 2.0 or newer installed.