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.


GeoToolkit.NET Components:
Information