Carnac.NET

Sophisticated 2D Graphics Components for the Microsoft.NET Environment

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 optimisation, 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.

The Carnac.NET environment also serves as the foundation for many of our higher level and customized 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 visualisation 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

  • Shapes - Line, polyline, polygon, fixed and scalable text, multi-line text, fixed and scalable image, oval, symbol, arrow, grid, axis, and custom shapes
  • Attributes - A rich set of attributes including line styles, fill patterns, font properties; Advanced management of attributes for sharing and caching; Built-in attribute editors for pre-defined shapes
  • Shape containers - Models and layers utilizing different containment mechanisms, including list and quad-tree
  • Selection - A set of selection strategies including selection by point, polygon, ellipse, rectangle, and region
  • Editing - Moving, resizing, rotating, vertex adding and removing; Built-in attribute editors; Clipboard and drag & drop support
  • Layering - Shapes within a model can be organized into layers; Views can be stacked on top of each other; Dynamic manipulation of layers and views
  • Transformation - Full 2D linear transformation per view
  • View Component - Scaling, pinpoint scaling, scrolling, panning; Different view cache strategies; Advanced layout management for composite plots with support for multiple axes and annotation area
  • Printing support - Advanced printing interface GUI component with print preview
  • Serialization - Binary and XML serialization of data including shapes with attributes, layers, and models
  • Documentation - API reference with contents, index, full-text search, and bookmarks

A Building Block For High-Level Components

Carnac.NET provides a powerful infrastructure for developing high-level industry specific graphic components. The following components, all built upon Carnac.NET, are currently available:

Availability

Carnac.NET 1.0 is available on all Windows platforms with the .NET environment installed.

You may also have interest in this product for these environments: