Misfit Code MM3D small logo Misfit Model 3D

SourceForge.net Logo

Get Firefox!

Donate towards my web hosting bill!



Contributions to Misfit Model 3D are encouraged. There are several ways (both coding and non-coding) that you can help this project continue. The easiest thing is simply to send me an encouraging email. Bug reports and feature requests are also appreciated.

Source code patches for bugs or new features are also welcome. In the case of patches, there are a few guidelines to follow which will help expedite the integration process.

  • Follow the coding style in the rest of the project.
  • Make a patch from the latest version. If your patch is a bug fix for the stable version, your patch should be against the most recent stable version. If your patch is a new feature or a bug fix for the development version, it should be against the SVN repository or the most recent development version.
  • Contact me before starting a complex feature. I may be close to finishing a similar feature myself, or the feature you wish to add may conflict with Misfit Model 3D's design goals. If you are interested in contributing code to Misfit Model 3D, I certainly do not want your efforts to be wasted.

You can also make contributions in the form of plugins. You can create new tools, commands, texture filters, and model filters through the plugin system. I am willing to host quality plugins on the main website, or even consider integration into the core codebase.

Non-coding contributions could come in the form of documentation or artwork; or possibly even in forms I have not considered. If you have the desire and means to contribute, contact me and I will be happy to help you get started.


Plugins can be created to add new tools, commands, texture filters and model filters. Currently Misfit development is done in C++. If you have a compelling reason to implement a plugin in another language, contact me and I may be able to arrange C bidings which can be extended to support other languages.

The details of the plugin system may change. The discussion below details the plugin system as of 1.4, but the development source code is always the most up-to-date source of documentation. Check the plugins directory in the misfit model distribution for an example. The ImLib2 Texture plugin contains a documented, non-trivial example.

A Misfit plugin is a dynamic library which contains three required functions and two optional functions, declared as extern "C". Functions marked with a * are optional.

  • plugin_init - Initialize the plugin
  • plugin_uninit - Uninitialize the plugin
  • plugin_mm3d_version - Provide Misfit Model 3D version string the plugin was compiled for
  • plugin_version * - Provide plugin version string
  • plugin_desc * - Provide plugin description string

The contents of the init and uninit functions will depend on what the purpose of the plugin is. In most cases it will register a new tool, command, or filter through the appropriate manager singleton. The version and description functions are optional, but are useful in providing information to the end user about the version and purpose of the plugin. These details can be viewed from the Plugins Window.

The plugin_mm3d_version function should return the VERSION_STRING constant that is defined in version.h.

See the ImLib2 Texture plugin for an introduction to writing a plugin. The example also contains pointers to other files in the codebase which contain classes to derive from and documentation on how to use the manager singletons. The source code for the latest stable or development release is always the authoritative reference. I try to keep documentation in the relevant header files current.

[ Main | Download | Online Help | Development | Contact ]
Last updated: Sat Aug 1 08:57:02 PDT 2009
Copyright © 2004-2009, Kevin Worcester -- email kevin at the misfitcode.com domain.