Site Contents

Intro & News

Development

Miscellaneous

Projects


Tektosyne Library

The Tektosyne Library for the .NET Framework offers a variety of types and methods to supplement the .NET Base Class Library, including the following:

  • specialized exception types for several common error scenarios;
  • generic collection classes with extra features, and a generic “braided” tree class;
  • natural string sorting, i.e. numerical sorting of digit-only substrings;
  • classes for directed lines, regular polygons, and grids of polygons;
  • A* pathfinding, coverage & visibility algorithms for arbitrary planar graphs;
  • geometric algorithms: line intersection, point in polygon, convex hull, Voronoi diagram;
  • an implementation of the Mersenne Twister pseudo-random number generator;
  • a library of Fortran 90 functions with overloads for most numeric types;
  • using the Simple MAPI protocol to send e-mail messages with attachments;
  • hosting a NumericUpDown control with error provider and tooltip in a WPF window;
  • manipulating a WriteableBitmap’s pixel data with or without a secondary buffer;
  • and many other utility types & methods that I needed at one time or another.

Please refer to the class reference for details on the library contents. The library itself and all examples in the documentation are written in C#.

The Tektosyne Library for the .NET Framework and its documentation are © 2002–2010 by Christoph Nahr but available for free download under the MIT license.

Limitations

The library does not cover web programming of any sort. I’d like to mention this explicitly because .NET is quite popular in this field.

The library’s IL code is not verifiable. Mostly due to its Win32 interoperation and bitmap manipulation methods, the library is compiled in “unsafe” mode. If you require verifiable IL code for security reasons, you must pull out the stuff you need and recompile without the “unsafe” flag.

System Requirements

To deploy a program that uses the Tektosyne library, you need a Microsoft Windows system capable of running the Microsoft .NET Framework 3.5 SP1. This includes Windows XP, Vista, Server 2003 and 2008 with Internet Explorer 6.0 SP1 or later.

The Code Package also includes a suite of unit tests. You will need the free NUnit unit testing framework if you wish to run them.

Note: You must install Service Pack 1 for the .NET Framework 3.5 because Tektosyne requires several features that were added by this update.

Project Information

Consult the following links for more information on the Tektosyne library. Copies of the ReadMe and WhatsNew files are included with the code package.

  • The ReadMe file contains the copyright notice and technical details on the project.
  • The WhatsNew file contains the annotated version history of the project.
  • The discontinued Tektosyne News page elaborates on the most important project changes up to version 3.0.1. More recent changes are only covered in the WhatsNew file.

We also have some executables that show the Tektosyne library in action:

  • The Code Package itself contains a small test program for various features, called Tektosyne.GuiTest.
  • Hexkit is a larger application that exercises most Tektosyne classes. The Hexkit User’s Guide also describes the pathfinding algorithms.

Tektosyne.GuiTest contains a useful feature that helps with the creation of tiled maps based on real-world terrain. Choose Geometry: Save & Print Grid to show a dialog that allows you to save or print grids of arbitrary size that are composed of squares or hexagons of any side length and orientation.

You can print a grid on transparent film and overlay it on an atlas page to determine your map layout, or you can save a grid to a PNG file and use your favorite paint program to superimpose it on an image file with your real-world map. This is how I created the “Roman Empire” and “Battle of Crécy” demo scenarios that ship with Hexkit.

Download Files

The current version of the Tektosyne library is 4.4.0, released on 04 March 2010.

Code Package

The current code package is Tektosyne.zip (786 KB). This is a standard ZIP archive containing subdirectories and long file names. The archive includes all source code files, the XML documentation file generated by the C# compiler, and the library and test projects precompiled in release mode.

Class Reference

The current class reference is Tektosyne.chm (2.71 MB). This file was created from XML source code comments using the free Sandcastle help compiler. To view the class reference, you need Microsoft’s HTML Help Viewer (which should be present on most systems).

Note: Due to limitations of the current Sandcastle version, the class reference does not include any links to the .NET Framework documentation.

Older Versions

Prior to version 4.0, Tektosyne was based on .NET 2.0 rather than 3.5 and focused on Windows Forms rather than Windows Presentation Foundation. Most related types were removed in Tektosyne 4.0, including various customized controls, bitmap manipulation tools, and a simple XAML clone for Windows Forms.

The final release for .NET 2.0 and Windows Forms was Tektosyne 3.4.6, released on 21 August 2008. The code package for this version is still available for download as Tektosyne-346.zip (745 KB), and the corresponding class reference as Tektosyne-346.chm (2.81 MB).

What’s up with the silly name?

Hey, do you have any idea how hard it is to come up with a pretentious Greek name that isn’t already taken?

Tektosyne is sufficiently unique to avoid such confusion. Moreover, ή τεκτοσυνη (hē tektosynē) means “the art of building” which seems not entirely inappropriate for a toolbox library.


This page was last updated on 04 March 2010.
Current version available at http://www.kynosarges.de