This page contains information about imp++ and is maintained by Bo Nordin

imp++ - information page

latest news

Modules in bosse's directory are not official (whatever that means?)

  • 001010: The new filter editor (FRED++, aka FilterEditor2000) is now available as a plug-in:
    setenv IMPMODDIR /usr/users2/bosse/Imp/Modules/Fred3D
    
    (still partly under construction, hence the non-standard path).

  • 991117: The filter editor (FRED) is now available as a plug-in. You activate a plug-in by entering a path to its directory in the environment variable IMPMODDIR. Fred is found in /usr/local/lib/Imp++/Fred. If you want to specify several plug-ins (but only Fred exists as far as I know...), you can enter several directories separated by a ':' character. Examples:
    setenv IMPMODDIR /usr/local/lib/Imp++/Fred
    setenv IMPMODDIR /usr/local/lib/Imp++/Fred:/usr/users2/bosse/Myfuncs
    
    The first example activates Fred while the second one activates Fred and any plug-ins in Myfuncs. Information on how to write, compile, and link plug-ins will soon be made public (I hope).

  • 991013: new version, copy the updated resource file (/usr/local/lib/Imp++/IMP++). Or better: have somebody with superuser privileges create a link /usr/lib/X11/app-defaults/IMP++ -> /usr/local/lib/Imp++/IMP++ (use whatever force you deem necessary) and the X server on your machine will automagically be using the latest resource file.

    introduction

    A test version of imp++ is now available. You start it with the command imp++. Imp++ is still in its infancy, and very few functions are supplied in the current (991004) version.

    Before starting imp++ you should copy the file /usr/local/lib/Imp++/IMP++ to your home directory (or make the X server aware of the file in some other way - linking /usr/lib/X11/app-defaults/IMP++ or setting either of XAPPLRESDIR or XENVIRONMENT).

    running imp++

    From the user's point of view, imp++ is very similar to imp. One difference is how the windows that are used to define function parameters work: imp++ can handle several simultaneous such windows (and any number [HAHA] of interactions like region editing and contrast/brightness can execute simultaneously as well). An example of a parameter window (this one is for LinearFilter):

    What's new here is the character sequence "(*)": this signifies a hidden option menu that you can bring up by pressing mouse button 1 or 3. The option menu contains all "variables" of the type of the parameter (all linear filters in this case). By default, each parameter is represented by a name (such as the label filter), a text field, and the "option menu tag" (*). The text field may be editable or not; if it is editable, you may enter an expression that evaluates to a value of the correct type. It is possible to enter a full filter description, for instance.

    creating and using add-ons

    Unlike old imp, imp++ uses dynamic linking, at run-time, of functions (apart from those that are supplied with imp). So if you write your own functions or use packages written for imp++, dynamic linking will be used. One consequence of this is that you can write a function, add it to a library, start imp++, test the function, rewrite it, and test the new version without terminatig imp++. And there is no need for an imp++ of one's own anymore.

    Like imp, imp++ reads your function declarations at start-up, but imp++ can read many different declaration files. Use the environment variable IMPMODDIR to define directories where the declaration files (called "impmodfunctions.h") are located. IMPMODDIR is like PATH, so directories are separated by a semicolon.

    For those who have written C functions for imp and for those unfortunate souls who persist in doing so: imp++ tries to stay compatible with imp so most of your old imp functions should work almost without modification: the exceptions are

    Currently, only one imp++ package - consisting of a single function - exists: FilterEditor. If you want to test it, define IMPMODDIR:
    setenv IMPMODDIR /usr/local/lib/Imp++/Fred
    and FilterEditor will be added to the menu bar of imp++ (under Special).

    The directory /usr/local/lib/Imp++/Additions contains what is needed to get started writing imp++ functions - or adding old imp functions to imp++: a Makefile, example C++ (imptest.C) and C files (whcanny.c and whbandaverage.c), declarations of the functions (impcppfunctions.h and impcfunctions.h). The Makefile uses the program impctocpp to "translate" (i.e., create the necessary functions in cfuncs.C) from C to C++. As mentioned above, imp++ reads declarations in impmodfunctions.h: this file is created by the Makefile if either of impcppfunctions.h or impcfunctions.h has changed. The first line in impmodfunctions.h - USING ("myimplib.so"); - informs imp++ about the name of the library file.

    plans for the immediate future

    In the next couple of weeks, I intend to bring the functionality of imp++ close to that of imp. Old imp functions will be added and I will probably rewrite most functions that involves interactive image manipulation.

    One important reason why this test version is made available is that I want feedback from other users than myself. I am aware of quite a few bugs in imp++, but please report any bugs and quirks you encounter.

    I will add information (any kind: bugs, corrected bugs, new test releases, ...) here - there will probably be no other sources of information about the progress of imp++ ...

    what's new?


    Last modified: Wed Nov 6 11:58:21 MET 2002 by Bo Nordin