Sophie

Sophie

distrib > Mandriva > 10.0 > i586 > media > contrib > by-pkgid > e42466f081a63a01cff2cdde695034f3 > files > 46

kmovisto-0.7.0-1mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>The KMovisto Plugin Development Handbook: Development</TITLE>
 <LINK HREF="kmpi_index-3.html" REL=next>
 <LINK HREF="kmpi_index-1.html" REL=previous>
 <LINK HREF="kmpi_index.html#toc2" REL=contents>
</HEAD>
<BODY>
<A HREF="kmpi_index-3.html">Next</A>
<A HREF="kmpi_index-1.html">Previous</A>
<A HREF="kmpi_index.html#toc2">Contents</A>
<HR>
<H2><A NAME="s2">2. Development</A></H2>
<P>
<H2><A NAME="ss2.1">2.1 Plugin types</A>
</H2>
<P>
The interface supports four plugin types:
<UL>
<LI>Import</LI>
<LI>Export</LI>
<LI>Import with file dialog and working directory functionality</LI>
<LI>Export with file dialog and working directory functionality</LI>
</UL>
The first and the second interface type does not support any additional functionality 
like file import/export dialog or user defined working directories. These types could be used 
for plugins which includes their own file dialogs or maybe which use other data sources/targets 
than files (databases e. g.).
<P>
The third and second types are used for plugins which extends KMovisto file import/export 
funtionality similar to the integrated KMovisto import/export routines. This also includes the 
configurable user defined working directories.
<P>
The interface type depends on the class where the plugin class is derived from, so each plugin library  
is used for one import or export type.
<P>
<H2><A NAME="ss2.2">2.2 Programming Plugins</A>
</H2>
<P>
As described above the plugin interface supports four different import/export types which depends on 
the class the plugin is derived from. <I>CPluginFileImport</I>, <I>CPluginFileExport</I>, <I>CPluginFileImportDialog</I> and 
<I>CPluginFileExportDialog</I> are used for this purpose. Furthermore the six classes  <I>CIPluginElements</I>, 
<I>CIPluginAtom</I>, <I>CIPluginBond</I>, <I>CIPluginMolecule</I>, <I>CIPluginColor</I> and <I>CIPluginPosition</I> 
are used for data exchange and for storing actual settings (<B>Fig. 1</B>).
<P>
<map name="CIPlugin_classes">
	<AREA shape=rect coords="12, 11, 205, 30" HREF="kmpi_index-2.html#sss2.2.1">
	<AREA shape=rect coords="44, 44, 236, 62" HREF="kmpi_index-2.html#sss2.2.2">	
	<AREA shape=rect coords="76, 77, 269, 95" HREF="kmpi_index-2.html#sss2.2.3">
	<AREA shape=rect coords="113, 108, 305, 128" HREF="kmpi_index-2.html#sss2.2.3">
	<AREA shape=rect coords="76, 142, 269, 160" HREF="kmpi_index-2.html#sss2.2.3">
	<AREA shape=rect coords="113, 174, 305, 194" HREF="kmpi_index-2.html#sss2.2.3">	
	<AREA shape=rect coords="337, 11, 530, 30" HREF="kmpi_index-2.html#sss2.2.4">
	<AREA shape=rect coords="337, 44, 530, 62" HREF="kmpi_index-2.html#sss2.2.5">
	<AREA shape=rect coords="337, 76, 530, 95" HREF="kmpi_index-2.html#sss2.2.6">
	<AREA shape=rect coords="337, 108, 530, 127" HREF="kmpi_index-2.html#sss2.2.7">
	<AREA shape=rect coords="337, 142, 530, 160" HREF="kmpi_index-2.html#sss2.2.8">
	<AREA shape=rect coords="337, 174, 530, 194" HREF="kmpi_index-2.html#sss2.2.9">
</map>
<DIV align="center"><img src="./images/kmpi_class_hierarchy.jpg" usemap="#CIPlugin_classes" border="0"></DIV>
<P>
<BLOCKQUOTE><CODE>
<PRE>
<B>Fig. 1:</B> Plugin interface class hierarchy
</PRE>
</CODE></BLOCKQUOTE>
<P>
All classes are declared in the namespace <I>kmpi</I> in the header file <I>iplugin.h</I>. Implementations are 
found in <I>iplugin.cpp</I> which has to be compiled and linked to your library. To avoid upgrade problems, you should 
not edit these two files directly. It is recommended to create your own header and source files. The only thing you 
have to do before you start plugin programming is inserting the macro <I>DECLARE_PLUGIN_CLASS(CMyPluginClass)</I> and 
the <I>#include "iplugin.h"</I> precompiler command in the header file and inserting <I>IMPLEMENT_PLUGIN_CLASS(CMyPluginClass)</I> in 
the source file, where <I>CMyPluginClass</I> is the class you have derived from one of the four base classes <I>CIPluginFile...</I>. You 
must not derive your plugin class directly from <I>CIPlugin</I> or <I>CIPluginFile</I>.
<P>
<H3><A NAME="sss2.2.1">2.2.1 Class CIPlugin</A>
</H3> 
Public member functions:
<P>
<B>CIPlugin</B>
<UL>
	<I>get:</I>
	<LI><A HREF="kmpi_index-2.html#CIPlugin.getName">virtual string getName(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPlugin.getDescription">virtual string getDescription(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPlugin.getPluginVersion">virtual string getPluginVersion(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPlugin.getInterfaceVersion">virtual string getInterfaceVersion(void) const</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPlugin.getInterfaceType">virtual KMPI_INTERFACE_TYPE getInterfaceType(void) const</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPlugin.getAuthor">virtual string getAuthor(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPlugin.getEmail">virtual string getEmail(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPlugin.getHomepage">virtual string getHomepage(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPlugin.getLicense">virtual string getLicense(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPlugin.getMolecule">CIPluginMolecule* getMolecule(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPlugin.getElements">CIPluginElements* getElements(void)</A></LI>
</UL>
<UL>
	<I>set:</I>
	<LI><A HREF="kmpi_index-2.html#CIPlugin.setMolecule">KMPI_RESULT setMolecule(const CIPluginMolecule& mol)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPlugin.setElements">KMPI_RESULT setElements(const CIPluginElements& el)</A></LI>
</UL>
<UL>
	<I>events:</I>
	<LI><A HREF="kmpi_index-2.html#CIPlugin.onCreate">virtual KMPI_RESULT onCreate(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPlugin.onDestroy">virtual KMPI_RESULT onDestroy(void)</A></LI>
</UL>
<P>
<B>Detailed Description</B>
<P>
CIPlugin is the base class of all types of KMovisto plugins. This class organizes the main plugin informations which are
displayed in the KMovisto Plugin manager. CIPlugin is an abstract class so you never use it directly for plugin 
development. The member functions are mostly declared as virtual function which have to be overwritten in derivated classes. 
Every inherited plugin class contains protected members <I>elements</I> of type <A HREF="kmpi_index-2.html#sss2.2.4">CIPluginElements</A> 
and <I>molecule</I> of type <A HREF="kmpi_index-2.html#sss2.2.4">CIPluginMolecule</A> which are initialised with 
current setting before the import or export starts.
<P>
<H4><A NAME="CIPlugin.getName">virtual string getName(void)</A></H4>
Returns the plugin name which is shown in the plugin manager list.
<H4><A NAME="CIPlugin.getDescription">virtual string getDescription(void)</A></H4>
Returns the plugin description which is shown in the plugin manager description. Overwrite this member function to return 
a detailed description of the plugin.
<H4><A NAME="CIPlugin.getPluginVersion">virtual string getPluginVersion(void)</A></H4>
Returns the plugin version. This version is not proofed by KMovisto, so it can be defined free. 
<H4><A NAME="CIPlugin.getInterfaceVersion">virtual string getInterfaceVersion(void) const</A></H4>
Returns the plugin interface version. This version is proofed by KMovisto and should be the same or smaller as the plugin 
interface version used by KMovisto.
<H4><A NAME="CIPlugin.getInterfaceType">virtual KMPI_INTERFACE_TYPE getInterfaceType(void) const</A></H4>
Returns the type of the plugin. Valid values of enum type <I>KMPI_INTERFACE_TYPE</I> are <I>KMPI_FILE_IMPORT</I>, 
<I>KMPI_FILE_IMPORT_DIALOG</I>, <I>KMPI_FILE_EXPORT</I> and <I>KMPI_FILE_EXPORT_DIALOG</I>. They will be defined atomaticaly 
in <A HREF="kmpi_index-2.html#sss2.2.3">classes derived from CIPluginFile</A> so you should not overwrite this function.
<H4><A NAME="CIPlugin.getAuthor">virtual string getAuthor(void)</A></H4>
Returns the author of the plugin displayed in the KMovisto plugin manager.
<H4><A NAME="CIPlugin.getEmail">virtual string getEmail(void)</A></H4>
Returns the email address of the plugin author displayed in the KMovisto plugin manager.
<H4><A NAME="CIPlugin.getHomepage">virtual string getHomepage(void)</A></H4>
Returns the internet address where to find plugin informations or latest versions. This information is also displayed in 
the KMovisto plugin manager.
<H4><A NAME="CIPlugin.getLicense">virtual string getLicense(void)</A></H4>
Returns the license of the plugin displayed in the KMovisto plugin manager.
<H4><A NAME="CIPlugin.getMolecule">CIPluginMolecule* getMolecule(void)</A></H4>
Returns a pointer of the protected member <I>molecule</I> of the plugin instance. This function is usually used by 
KMovisto only.
<H4><A NAME="CIPlugin.getElements">CIPluginElements* getElements(void)</A></H4>
Returns a pointer of the protected member <I>elements</I> of the plugin instance. This function is usually used by 
KMovisto only.
<H4><A NAME="CIPlugin.setMolecule">KMPI_RESULT setMolecule(const CIPluginMolecule& mol)</A></H4>
Initialises the instance <I>molecule</I> of the plugin instance. Returns <I>KMPI_SUCCESS</I> if successfull 
otherwise returns <I>KMPI_ERROR</I>. This function is usually used by KMovisto only.
<H4><A NAME="CIPlugin.setElements">KMPI_RESULT setElements(const CIPluginElements& el)</A></H4>
Initialises the instance <I>elements</I> of the plugin instance. Returns <I>KMPI_SUCCESS</I> if successfull 
otherwise returns <I>KMPI_ERROR</I>. This function is usually used by KMovisto only.
<H4><A NAME="CIPlugin.onCreate">virtual KMPI_RESULT onCreate(void)</A></H4>
This member function is called whenever an instance of the plugin class is created during KMovisto program starts and when 
the plugin is added using the plugin manager. Initialisations should be done here rather than in the constructor because there 
is a return value of enum type <I>KMPI_RESULT</I> available. 
<H4><A NAME="CIPlugin.onDestroy">virtual KMPI_RESULT onDestroy(void)</A></H4>
This member function is called whenever an instance of the plugin class is destroyed during KMovisto program exits and when 
the plugin is removed using the plugin manager. Any cleanup should be done here rather than in the constructor because there 
is a return value of enum type <I>KMPI_RESULT</I> available.
<P>
<H3><A NAME="sss2.2.2">2.2.2 Class CIPluginFile</A>
</H3>
Public member functions:
<P>
<B>CIPluginFile</B>
<UL>
	<I>get:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginFile.getButtonXPM">virtual const char** getButtonXPM(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginFile.getTooltipText">virtual string getTooltipText(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginFile.getMenuText">virtual string getMenuText(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginFile.getWhatsThisText">virtual string getWhatsThisText(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginFile.getStatusText">virtual string getStatusText(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginFile.getHighlightText">virtual string getHighlightText(void)</A></LI>
</UL>
<UL>
	<I>events:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginFile.onOpenFile">virtual KMPI_RESULT onOpenFile(const string& file, string& errorMsg)</A></LI>
</UL>
<P>
<B>Detailed Description</B>
<P>
CIPluginFile inherits CIPlugin and is also an abstract base class. This class declares file import and export specific member 
functions. 
<P>
<H4><A NAME="CIPluginFile.getButtonXPM">virtual const char** getButtonXPM(void)</A></H4>
Returns a pointer of const char pointer type of the xpm bitmap shown in the plugin toolbar button and in the plugin 
manager plugin list. The xpm format is not described here but it is a very simple graphic format supported by many graphic 
programs. Note that the xpm format has to be little bit different from the usual declaration. The extra const makes the 
entire definition read-only:
<pre>
static const char* xpm[] = {
"16 15 8 1",
"a c #cec6bd",
....
</pre>
To obtain a uniform look you should define a button xpm's width and height of 16 pixels. 
<H4><A NAME="CIPluginFile.getTooltipText">virtual string getTooltipText(void)</A></H4>
Returns the tool tip of the plugin tool bar button. The tip is a short, single line of text reminding the user of the 
plugin's function. It is drawn immediately below the region in a distinctive black-on-yellow combination.
<H4><A NAME="CIPluginFile.getMenuText">virtual string getMenuText(void)</A></H4>
Returns the text of the plugin menu item.
<H4><A NAME="CIPluginFile.getWhatsThisText">virtual string getWhatsThisText(void)</A></H4>
Returns the "What's this?" help text of the plugin. "What's this?" help is part of an application's online help system. 
It provides a single window with an explanatory text that pops up when the user asks "What's this?".
<H4><A NAME="CIPluginFile.getStatusText">virtual string getStatusText(void)</A></H4>
Returns the status text of the plugin function. This text is displayed in the status line of the program window when the 
plugin function is executed.
<H4><A NAME="CIPluginFile.getHighlightText">virtual string getHighlightText(void)</A></H4>
Returns the status text of the plugin function when the menu item is highlighted.
<H4><A NAME="CIPluginFile.onOpenFile">virtual KMPI_RESULT onOpenFile(const string& file, string& errorMsg)</A></H4>
This member function is called whenever a file is opened. The absolute filename is found in the reference of <I>file</I> if
the plugin supports the file import and export dialog functionality of KMovisto, that means the plugin has to be derived 
from CPluginFileImportDialog and CPluginFileExportDialog otherwise <I>file</I> is an empty string. If file 
operation errors occured the return value should be <I>KMPI_ERROR</I>. In this case KMovisto displays the string <I>errorMsg</I> 
otherwise this string value is ignored.
<P>
<H3><A NAME="sss2.2.3">2.2.3 Classes derived from CIPluginFile</A>
</H3>
<P>
<B>Detailed Description</B>
<P>
The classes CPluginFileImport, CPluginFileExport, CPluginFileImportDialog and 
CPluginFileExportDialog are derived directly or indirectly from CPluginFile and have 
no additional member functions. These classes are used to overload functions of the abstract base 
classes or declare protected members for the different purposes.
<P>
<H3><A NAME="sss2.2.4">2.2.4 Class CIPluginElements</A>
</H3> 
Public member functions:
<P>
<B>CIPluginElements</B>
<UL>
	<I>operators:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginElements.operator">CIPluginElements& operator=(const CIPluginElements& elements)</A></LI>
</UL>
<UL>
	<I>get:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginElements.getRadius1">float getRadius(unsigned int number)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginElements.getRadius2">float getRadius(const string& symbol)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginElements.getColor1">CIPluginColor getColor(unsigned int number)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginElements.getColor2">CIPluginColor getColor(const string& symbol)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginElements.getSymbol">static string getSymbol(unsigned int number)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginElements.getNumber">static unsigned int getNumber(const string& symbol)</A></LI>
</UL>
<UL>
	<I>set:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginElements.setRadius1">KMPI_RESULT setRadius(unsigned int number, float radius)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginElements.setRadius2">KMPI_RESULT setRadius(const string& symbol, float radius)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginElements.setColor1">KMPI_RESULT setColor(unsigned int number, const CIPluginColor& color)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginElements.setColor2">KMPI_RESULT setColor(const string& symbol, const CIPluginColor& color)</A></LI>
</UL>
<P>
<B>Detailed Description</B>
<P>
CIPluginElements is used to define element properties which could be changed during import or export operations. Every 
plugin class contains a protected member <I>elements</I> which is initialised with current setting before the import or 
export starts. The maximum element number is <I>KMPI_MAX_ELEMENT_NUMBER</I> which is currently set to 109. Note the 
valid element symbols above "Ha" (105) are "Unh" (106), "Uns" (107), "Uno" (108) and "Une" (109).
<P>
<H4><A NAME="CIPluginElements.operator">CIPluginElements& operator=(const CIPluginElements& elements)</A></H4>
Copies element color and radius.
<H4><A NAME="CIPluginElements.getRadius1">float getRadius(unsigned int number)</A></H4>
Returns the atom radius of the element given by <I>number</I>. If <I>number</I> is not between 0 and <I>KMPI_MAX_ELEMENT_NUMBER</I> the 
return value is 0.0f.
<H4><A NAME="CIPluginElements.getRadius2">float getRadius(const string& symbol)</A></H4>
Returns the atom radius of the element given by <I>symbol</I>. If <I>symbol</I> is not a valid element symbol the return 
value is 0.0f.
<H4><A NAME="CIPluginElements.getColor1">CIPluginColor getColor(unsigned int number)</A></H4>
Returns the atom color of the element given by <I>number</I>. If <I>number</I> is not between 0 and <I>KMPI_MAX_ELEMENT_NUMBER</I> the 
returned color is black (0, 0, 0).
<H4><A NAME="CIPluginElements.getColor2">CIPluginColor getColor(const string& symbol)</A></H4>
Returns the atom color of the element given by <I>symbol</I>. If <I>symbol</I> is not a valid element symbol the  
returned color is black (0, 0, 0).
<H4><A NAME="CIPluginElements.getSymbol">static string getSymbol(unsigned int number)</A></H4>
Returns the element symbol of the element given by <I>number</I>. If <I>number</I> is not between 0 and <I>KMPI_MAX_ELEMENT_NUMBER</I> the 
return value is empty.
<H4><A NAME="CIPluginElements.getNumber">static unsigned int getNumber(const string& symbol)</A></H4>
Returns the element number of the element given by <I>symbol</I>. If <I>symbol</I> is not a valid element symbol the  
return value is 0.
<H4><A NAME="CIPluginElements.setRadius1">KMPI_RESULT setRadius(unsigned int number, float radius)</A></H4>
Sets the element radius of the element given by <I>number</I> and returns <I>KMPI_SUCCESS</I> if successfull. If <I>number</I> 
is not between 0 and <I>KMPI_MAX_ELEMENT_NUMBER</I> the return value is <I>KMPI_ERROR</I>.
<H4><A NAME="CIPluginElements.setRadius2">KMPI_RESULT setRadius(const string& symbol, float radius)</A></H4>
Sets the element radius of the element given by <I>symbol</I> and returns <I>KMPI_SUCCESS</I> if successfull. If <I>symbol</I> 
is not a valid element symbol the return value is <I>KMPI_ERROR</I>.
<H4><A NAME="CIPluginElements.setColor1">KMPI_RESULT setColor(unsigned int number, const CIPluginColor& color)</A></H4>
Sets the element color of the element given by <I>number</I> and returns <I>KMPI_SUCCESS</I> if successfull. If <I>number</I> 
is not between 0 and <I>KMPI_MAX_ELEMENT_NUMBER</I> the return value is <I>KMPI_ERROR</I>.
<H4><A NAME="CIPluginElements.setColor2">KMPI_RESULT setColor(const string& symbol, const CIPluginColor& color)</A></H4>
Sets the element color of the element given by <I>symbol</I> and returns <I>KMPI_SUCCESS</I> if successfull. If <I>symbol</I> 
is not a valid element symbol the return value is <I>KMPI_ERROR</I>.
<P>
<H3><A NAME="sss2.2.5">2.2.5 Class CIPluginAtom</A>
</H3> 
Public member functions:
<P>
<B>CIPluginAtom</B>
<UL>
	<I>operators:</I>
    <LI><A HREF="kmpi_index-2.html#CIPluginAtom.operator">CIPluginAtom& operator=(const CIPluginAtom& atom)</A></LI>
</UL>
<UL>
	<I>get:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginAtom.getNumber">unsigned int getNumber(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginAtom.getSymbol">string getSymbol(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginAtom.getPosition">CIPluginPosition getPosition(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginAtom.getColor">CIPluginColor getColor(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginAtom.getRadius">float getRadius(void)</A></LI>
</UL>
<UL>
	<I>set:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginAtom.setByNumber">KMPI_RESULT setByNumber(const CIPluginElements* pElements, unsigned int number)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginAtom.setBySymbol">KMPI_RESULT setBySymbol(const CIPluginElements* pElements, const string& symbol)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginAtom.setPosition1">KMPI_RESULT setPosition(const CIPluginPosition& position)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginAtom.setPosition2">KMPI_RESULT setPosition(float x = 0.0f, float y = 0.0f, float z = 0.0f)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginAtom.setColor1">KMPI_RESULT setColor(const CIPluginColor& color)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginAtom.setColor2">KMPI_RESULT setColor(unsigned int red, unsigned int green, unsigned int blue)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginAtom.setRadius">KMPI_RESULT setRadius(float radius)</A></LI>
</UL>
<P>
<B>Detailed Description</B>
<P>
This class represents a single atom and it's coordinates (atom units) in a molecule.
<P>
<H4><A NAME="CIPluginAtom.operator">CIPluginAtom& operator=(const CIPluginAtom& atom)</A></H4>
Copies atom coordinates, number, symbol, radius and color.
<H4><A NAME="CIPluginAtom.getNumber">unsigned int getNumber(void)</A></H4>
Returns the element number of the atom.
<H4><A NAME="CIPluginAtom.getSymbol">string getSymbol(void)</A></H4>
Returns the element symbol of the atom.
<H4><A NAME="CIPluginAtom.getPosition">CIPluginPosition getPosition(void)</A></H4>
Returns the element coordinates of the atom.
<H4><A NAME="CIPluginAtom.getColor">CIPluginColor getColor(void)</A></H4>
Returns the element color of the atom.
<H4><A NAME="CIPluginAtom.getRadius">float getRadius(void)</A></H4>
Returns the element radius of the atom.
<H4><A NAME="CIPluginAtom.setByNumber">KMPI_RESULT setByNumber(const CIPluginElements* pElements, unsigned int number)</A></H4>
Initialise the atom properties by using an instance of CIPluginElements and the atom number. If <I>number</I> is not 
between 0 and <I>KMPI_MAX_ELEMENT_NUMBER</I> the return value is <I>KMPI_ERROR</I> otherwise the return value is <I>KMPI_SUCCESS</I>. 
<H4><A NAME="CIPluginAtom.setBySymbol">KMPI_RESULT setBySymbol(const CIPluginElements* pElements, const string& symbol)</A></H4>
Initialise the atom properties by using an instance of CIPluginElements and the atom symbol. If <I>symbol</I> is not 
a valid element symbol the return value is <I>KMPI_ERROR</I> otherwise the return value is <I>KMPI_SUCCESS</I>. 
<H4><A NAME="CIPluginAtom.setPosition1">KMPI_RESULT setPosition(const CIPluginPosition& position)</A></H4>
Sets the atom position and returns <I>KMPI_SUCCESS</I>.
<H4><A NAME="CIPluginAtom.setPosition2">KMPI_RESULT setPosition(float x = 0.0f, float y = 0.0f, float z = 0.0f)</A></H4>
Sets the atom position and returns <I>KMPI_SUCCESS</I>.
<H4><A NAME="CIPluginAtom.setColor1">KMPI_RESULT setColor(const CIPluginColor& color)</A></H4>
Sets the atom color and returns <I>KMPI_SUCCESS</I>.
<H4><A NAME="CIPluginAtom.setColor2">KMPI_RESULT setColor(unsigned int red, unsigned int green, unsigned int blue)</A></H4>
Sets the atom color and returns <I>KMPI_SUCCESS</I> if the values <I>red</I>, <I>green</I> and <I>blue</I> are between 0 and 255.
<H4><A NAME="CIPluginAtom.setRadius">KMPI_RESULT setRadius(float radius)</A></H4>
Sets the atom radius and returns <I>KMPI_SUCCESS</I> if <I>radius</I> is 0 or greater.
<P>
<H3><A NAME="sss2.2.6">2.2.6 Class CIPluginBond</A>
</H3> 
Public member functions:
<P>
<B>CIPluginBond</B>
<UL>
	<I>operators:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginBond.operator">CIPluginBond& operator=(const CIPluginBond& bond)</A></LI>
</UL>
<UL>
	<I>get:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginBond.getBondPartner1">unsigned int getBondPartner1(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginBond.getBondPartner2">unsigned int getBondPartner2(void)</A></LI>
</UL>
<UL>
	<I>set:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginBond.setBondPartner">KMPI_RESULT setBondPartner(unsigned int index1, unsigned int index2)</A></LI>
</UL>
<P>
<B>Detailed Description</B>
<P>
This class CIPluginBond represents a single connection between atoms in a molecule. Note that bond properties which are 
set only once as bond color or radius are set in the molecule. 
<P>
<H4><A NAME="CIPluginBond.operator">CIPluginBond& operator=(const CIPluginBond& bond)</A></H4>
Copies connected atoms.
<H4><A NAME="CIPluginBond.getBondPartner1">unsigned int getBondPartner1(void)</A></H4>
Returns the index of the first bond partner.
<H4><A NAME="CIPluginBond.getBondPartner2">unsigned int getBondPartner2(void)</A></H4>
Returns the index of the the second bond partner.
<H4><A NAME="CIPluginBond.setBondPartner">KMPI_RESULT setBondPartner(unsigned int index1, unsigned int index2)</A></H4>
Sets the atom indexes of connected atoms. Atom indexes start with 1.
<P>
<H3><A NAME="sss2.2.7">2.2.7 Class CIPluginMolecule</A>
</H3> 
Public member functions:
<P>
<B>CIPluginMolecule</B>
<UL>
	<I>operators:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.operator">CIPluginMolecule& operator=(const CIPluginMolecule& molecule)</A></LI>
</UL>
<UL>
	<I>add:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.addAtom1">unsigned int addAtom(const CIPluginAtom& atom)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.addAtom2">unsigned int addAtom(const CIPluginElements* pElements, unsigned int number)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.addAtom3">unsigned int addAtom(const CIPluginElements* pElements, const string& symbol)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.addBond1">unsigned int addBond(const CIPluginBond& bond)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.addBond2">unsigned int addBond(unsigned int index1, unsigned int index2)</A></LI>
</UL>
<UL>
	<I>delete:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.deleteAtom">KMPI_RESULT deleteAtom(unsigned int index, KMPI_BOOL deleteBonds = TRUE)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.deleteBond">KMPI_RESULT deleteBond(unsigned int index1, unsigned int index2)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.deleteAll">KMPI_RESULT deleteAll(KMPI_BOOL deleteAtoms = TRUE, KMPI_BOOL deleteBonds = TRUE)</A></LI>
</UL>
<UL>
	<I>get:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.getNumberOfAtoms">unsigned int getNumberOfAtoms(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.getNumberOfBonds">unsigned int getNumberOfBonds(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.getAtom">CIPluginAtom* getAtom(unsigned int index)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.getAtomNumber">unsigned int getAtomNumber(unsigned int index)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.getAtomSymbol">string getAtomSymbol(unsigned int index)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.getAtomPosition">CIPluginPosition getAtomPosition(unsigned int index)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.getAtomColor">CIPluginColor getAtomColor(unsigned int index)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.getAtomRadius">float getAtomRadius(unsigned int index)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.getBond">CIPluginBond* getBond(unsigned int index)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.getBondColor">CIPluginColor getBondColor(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.getBondRadius">float getBondRadius(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.getTitle">string getTitle(void)</A></LI>
</UL>
<UL>
	<I>set:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.setAtomByNumber">KMPI_RESULT setAtomByNumber(unsigned int index, const CIPluginElements* pElements, unsigned int number)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.setAtomBySymbol">KMPI_RESULT setAtomBySymbol(unsigned int index, const CIPluginElements* pElements, const string& symbol)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.setAtomPosition1">KMPI_RESULT setAtomPosition(unsigned int index, const CIPluginPosition& position)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.setAtomPosition2">KMPI_RESULT setAtomPosition(unsigned int index, float x = 0.0f, float y = 0.0f, float z = 0.0f)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.setAtomColor1">KMPI_RESULT setAtomColor(unsigned int index, const CIPluginColor& color)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.setAtomColor2">KMPI_RESULT setAtomColor(unsigned int index, unsigned int red, unsigned int green, unsigned int blue)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.setAtomRadius">KMPI_RESULT setAtomRadius(unsigned int index, float radius)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.setBondColor1">KMPI_RESULT setBondColor(const CIPluginColor& color)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.setBondColor2">KMPI_RESULT setBondColor(unsigned int red, unsigned int green, unsigned int blue)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.setBondRadius">KMPI_RESULT setBondRadius(float radius)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.setTitle">KMPI_RESULT setTitle(const string& title)</A></LI>
</UL>
<UL>
	<I>misc:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.isConnected">KMPI_BOOL isConnected(unsigned int index1, unsigned int index2)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginMolecule.makeBonds">KMPI_RESULT makeBonds(float bondFactor = 1.12f)</A></LI>
</UL>
<P>
<B>Detailed Description</B>
<P>
The class CIPluginMolecule represents a molecule.
<P>
<H4><A NAME="CIPluginMolecule.operator">CIPluginMolecule& operator=(const CIPluginMolecule& molecule)</A></H4>
Copies all molecule properties.
<H4><A NAME="CIPluginMolecule.addAtom1">unsigned int addAtom(const CIPluginAtom& atom)</A></H4>
Adds a new atom to the molecule and returns the index of the added atom if successfull. Otherwise the member function 
returns 0. The atom is defined by a CIPluginAtom type. 
<H4><A NAME="CIPluginMolecule.addAtom2">unsigned int addAtom(const CIPluginElements* pElements, unsigned int number)</A></H4>
Adds a new atom to the molecule and returns the index of the added atom if successfull. Otherwise the member function 
returns 0. The atom is defined by a pointer of an instance of CIPluginElements and the element number of the atom. 
<H4><A NAME="CIPluginMolecule.addAtom3">unsigned int addAtom(const CIPluginElements* pElements, const string& symbol)</A></H4>
Adds a new atom to the molecule and returns the index of the added atom if successfull. Otherwise the member function 
returns 0. The atom is defined by a pointer of an instance of CIPluginElements and the element symbol of the atom. 
<H4><A NAME="CIPluginMolecule.addBond1">unsigned int addBond(const CIPluginBond& bond)</A></H4>
Adds a new bond to the molecule and returns the index of the added bond if successfull. Otherwise the member function 
returns 0.
<H4><A NAME="CIPluginMolecule.addBond2">unsigned int addBond(unsigned int index1, unsigned int index2)</A></H4>
Adds a new bond to the molecule and returns the index of the added bond if successfull. Otherwise the member function 
returns 0.
<H4><A NAME="CIPluginMolecule.deleteAtom">KMPI_RESULT deleteAtom(unsigned int index, KMPI_BOOL deleteBonds = TRUE)</A></H4>
Deletes the atom with index number <I>index</I> and returns <I>KMPI_SUCCESS</I> if successfull. By default all connections 
between the deleted atom and other atoms are deleted too if <I>deleteBonds</I> is not set to <I>FALSE</I>.
<H4><A NAME="CIPluginMolecule.deleteBond">KMPI_RESULT deleteBond(unsigned int index1, unsigned int index2)</A></H4>
Deletes the bond between atoms indexed by <I>index1</I> and <I>index2</I>. If successfull the return value is <I>KMPI_SUCCESS</I> otherwise
the return value is <I>KMPI_ERROR</I>.
<H4><A NAME="CIPluginMolecule.deleteAll">KMPI_RESULT deleteAll(KMPI_BOOL deleteAtoms = TRUE, KMPI_BOOL deleteBonds = TRUE)</A></H4>
By default this member function deletes all atoms and bonds and returns <I>KMPI_SUCCESS</I> if successfull. If <I>deleteAtoms</I> and/or 
<I>deleteBonds</I> is set to <I>FALSE</I> atoms and/or bond are not deleted.
<H4><A NAME="CIPluginMolecule.getNumberOfAtoms">unsigned int getNumberOfAtoms(void)</A></H4>
Returns the number of atoms in the molecule.
<H4><A NAME="CIPluginMolecule.getNumberOfBonds">unsigned int getNumberOfBonds(void)</A></H4>
Returns the number of bonds in the molecule.
<H4><A NAME="CIPluginMolecule.getAtom">CIPluginAtom* getAtom(unsigned int index)</A></H4>
Returns a pointer to an instance of CIPluginAtom of the atom indexed by <I>indey</I> if successfull otherwise returns NULL.
<H4><A NAME="CIPluginMolecule.getAtomNumber">unsigned int getAtomNumber(unsigned int index)</A></H4>
Returns the element number of the atom indexed by a valid <I>index</I>. Otherwise returns 0.
<H4><A NAME="CIPluginMolecule.getAtomSymbol">string getAtomSymbol(unsigned int index)</A></H4>
Returns the element symbol of the atom indexed by a valid <I>index</I>. Otherwise returns an empty string.
<H4><A NAME="CIPluginMolecule.getAtomPosition">CIPluginPosition getAtomPosition(unsigned int index)</A></H4>
Returns the coordinates of the atom indexed by <I>index</I>. If <I>index</I> is not a valid index the coordinates are 
set to (0, 0, 0).
<H4><A NAME="CIPluginMolecule.getAtomColor">CIPluginColor getAtomColor(unsigned int index)</A></H4>
Returns the color of the atom indexed by <I>index</I>. If <I>index</I> is not a valid index the color is
set to black (0, 0, 0).
<H4><A NAME="CIPluginMolecule.getAtomRadius">float getAtomRadius(unsigned int index)</A></H4>
Returns the radius of the atom indexed by <I>index</I>. If <I>index</I> is not a valid index the radius is
set to 0.0f.
<H4><A NAME="CIPluginMolecule.getBond">CIPluginBond* getBond(unsigned int index)</A></H4>
Returns a pointer to an instance of CIPluginBond of the bond indexed by <I>index</I> if successfull otherwise returns NULL.
<H4><A NAME="CIPluginMolecule.getBondColor">CIPluginColor getBondColor(void)</A></H4>
Returns the color of the bond indexed by <I>index</I>. If <I>index</I> is not a valid index the color is
set to black (0, 0, 0).
<H4><A NAME="CIPluginMolecule.getBondRadius">float getBondRadius(void)</A></H4>
Returns the radius of the bond indexed by <I>index</I>. If <I>index</I> is not a valid index the radius is
set to 0.0f.
<H4><A NAME="CIPluginMolecule.getTitle">string getTitle(void)</A></H4>
Returns the title of the molecule.
<H4><A NAME="CIPluginMolecule.setAtomByNumber">KMPI_RESULT setAtomByNumber(unsigned int index, const CIPluginElements* pElements, unsigned int number)</A></H4>
Sets the Atom properties of the atom indexed by <I>index</I> using a pointer to a instance of CIPluginElements and the element number. If 
successfull the return value is <I>KMPI_SUCCESS</I> otherwise it is <I>KMPI_ERROR</I>.
<H4><A NAME="CIPluginMolecule.setAtomBySymbol">KMPI_RESULT setAtomBySymbol(unsigned int index, const CIPluginElements* pElements, const string& symbol)</A></H4>
Sets the Atom properties of the atom indexed by <I>index</I> using a pointer to a instance of CIPluginElements and the element symbol. If 
successfull the return value is <I>KMPI_SUCCESS</I> otherwise it is <I>KMPI_ERROR</I>.
<H4><A NAME="CIPluginMolecule.setAtomPosition1">KMPI_RESULT setAtomPosition(unsigned int index, const CIPluginPosition& position)</A></H4>
Sets the coordinates of the atom indexed by <I>index</I> using a reference to a CIPluginPosition. If successfull the return 
value is <I>KMPI_SUCCESS</I> otherwise it is <I>KMPI_ERROR</I>.
<H4><A NAME="CIPluginMolecule.setAtomPosition2">KMPI_RESULT setAtomPosition(unsigned int index, float x = 0.0f, float y = 0.0f, float z = 0.0f)</A></H4>
Sets the coordinates of the atom indexed by <I>index</I> using x, y, and z coordinates. If successfull the return 
value is <I>KMPI_SUCCESS</I> otherwise it is <I>KMPI_ERROR</I>.
<H4><A NAME="CIPluginMolecule.setAtomColor1">KMPI_RESULT setAtomColor(unsigned int index, const CIPluginColor& color)</A></H4>
Sets the color of the atom indexed by <I>index</I> using a reference to a CIPluginColor. If successfull the return 
value is <I>KMPI_SUCCESS</I> otherwise it is <I>KMPI_ERROR</I>.
<H4><A NAME="CIPluginMolecule.setAtomColor2">KMPI_RESULT setAtomColor(unsigned int index, unsigned int red, unsigned int green, unsigned int blue)</A></H4>
Sets the color of the atom indexed by <I>index</I> using red, green and blue values. If successfull the return 
value is <I>KMPI_SUCCESS</I> otherwise it is <I>KMPI_ERROR</I>. Note that valid values of <I>red</I>, <I>green</I> and 
<I>blue</I> are between 0 and 255.
<H4><A NAME="CIPluginMolecule.setAtomRadius">KMPI_RESULT setAtomRadius(unsigned int index, float radius)</A></H4>
Sets the radius of the atom indexed by <I>index</I>. If successfull the return value is <I>KMPI_SUCCESS</I> otherwise 
it is <I>KMPI_ERROR</I>.
<H4><A NAME="CIPluginMolecule.setBondColor1">KMPI_RESULT setBondColor(const CIPluginColor& color)</A></H4>
Sets the color of the bond using a reference to a CIPluginColor. If successfull the return value is <I>KMPI_SUCCESS</I> 
otherwise it is <I>KMPI_ERROR</I>.
<H4><A NAME="CIPluginMolecule.setBondColor2">KMPI_RESULT setBondColor(unsigned int red, unsigned int green, unsigned int blue)</A></H4>
Sets the color of the bond  using red, green and blue values. If successfull the return value is <I>KMPI_SUCCESS</I> 
otherwise it is <I>KMPI_ERROR</I>. Note that valid values of <I>red</I>, <I>green</I> and <I>blue</I> are between 0 and 255.
<H4><A NAME="CIPluginMolecule.setBondRadius">KMPI_RESULT setBondRadius(float radius)</A></H4>
Sets the radius of the bond. If successfull the return value is <I>KMPI_SUCCESS</I> otherwise it is <I>KMPI_ERROR</I>.
<H4><A NAME="CIPluginMolecule.setTitle">KMPI_RESULT setTitle(const string& title)</A></H4>
Sets the title of the molecule and returns <I>KMPI_SUCCESS</I>
<H4><A NAME="CIPluginMolecule.isConnected">KMPI_BOOL isConnected(unsigned int index1, unsigned int index2)</A></H4>
Checks if the atoms indexed by <I>index1</I> and <I>index2</I> are connected. Returns <I>TRUE</I> if a bond exists otherwise 
returns <I>FALSE</I>.
<H4><A NAME="CIPluginMolecule.makeBonds">KMPI_RESULT makeBonds(float bondFactor = 1.12f)</A></H4>
This member function connects atoms automaticly depending on their atom radius and the value of <I>bondFactor</I>. 
Atom1 and atom2 will be connected if the following condition is true:
<PRE>
(radius(atom1) + radius(atom2)) * bondFactor >= distance(atom1, atom2)
</PRE>
<P>
<H3><A NAME="sss2.2.8">2.2.8 Class CIPluginColor</A>
</H3> 
Public member functions:
<P>
<B>CIPluginColor</B>
<UL>
	<I>constructor:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginColor.CIPluginColor">CIPluginColor(unsigned int red = 0, unsigned int green = 0, unsigned int blue = 0)</A></LI>
</UL>
<UL>
	<I>operators:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginColor.operator">CIPluginColor& operator=(const CIPluginColor& color)</A></LI>
</UL>
<UL>
	<I>get:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginColor.getColorRed">unsigned int getColorRed(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginColor.getColorGreen">unsigned int getColorGreen(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginColor.getColorBlue">unsigned int getColorBlue(void)</A></LI>
</UL>
<UL>
	<I>set:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginColor.setColor">KMPI_RESULT setColor(unsigned int red, unsigned int green, unsigned int blue)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginColor.setColorRed">KMPI_RESULT setColorRed(unsigned int red)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginColor.setColorGreen">KMPI_RESULT setColorGreen(unsigned int green)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginColor.setColorBlue">KMPI_RESULT setColorBlue(unsigned int blue)</A></LI>
</UL>
<P>
<B>Detailed Description</B>
<P>
This class provides colors based on RGB values. 
<P>
<H4><A NAME="CIPluginColor.CIPluginColor">CIPluginColor(unsigned int red = 0, unsigned int green = 0, unsigned int blue = 0)</A></H4>
Constructs a color with the RGB value <I>red</I>, <I>green</I> and <I>blue</I>. Note that RGB values must 
be in the range 0 - 255.
<H4><A NAME="CIPluginColor.operator">CIPluginColor& operator=(const CIPluginColor& color)</A></H4>
Copies RGB values.
<H4><A NAME="CIPluginColor.getColorRed">unsigned int getColorRed(void)</A></H4>
Returns the red component of the RGB triplet. 
<H4><A NAME="CIPluginColor.getColorGreen">unsigned int getColorGreen(void)</A></H4>
Returns the green component of the RGB triplet. 
<H4><A NAME="CIPluginColor.getColorBlue">unsigned int getColorBlue(void)</A></H4>
Returns the blue component of the RGB triplet. 
<H4><A NAME="CIPluginColor.setColor">KMPI_RESULT setColor(unsigned int red, unsigned int green, unsigned int blue)</A></H4>
Sets the RGB value to <I>red</I>, <I>green</I> and <I>blue</I>. The arguments, <I>red</I>, <I>green</I> and <I>blue</I> 
must all be in the range 0 - 255. If any of them are outside the legal range, the color component is set to the maximum 
value of 255 and the return value is <I>KMPI_ERROR</I> otherwise it is <I>KMPI_SUCCESS</I>.
<H4><A NAME="CIPluginColor.setColorRed">KMPI_RESULT setColorRed(unsigned int red)</A></H4>
Sets the red component to <I>red</I>. The argument must be in the range 0 - 255. If it is outside the legal range, 
the color component is set to the maximum value of 255 and the return value is <I>KMPI_ERROR</I> otherwise it 
is <I>KMPI_SUCCESS</I>.
<H4><A NAME="CIPluginColor.setColorGreen">KMPI_RESULT setColorGreen(unsigned int green)</A></H4>
Sets the green component to <I>green</I>. The argument must be in the range 0 - 255. If it is outside the legal range, 
the color component is set to the maximum value of 255 and the return value is <I>KMPI_ERROR</I> otherwise it 
is <I>KMPI_SUCCESS</I>.
<H4><A NAME="CIPluginColor.setColorBlue">KMPI_RESULT setColorBlue(unsigned int blue)</A></H4>
Sets the blue component to <I>blue</I>. The argument must be in the range 0 - 255. If it is outside the legal range, 
the color component is set to the maximum value of 255 and the return value is <I>KMPI_ERROR</I> otherwise it 
is <I>KMPI_SUCCESS</I>.
<P>
<H3><A NAME="sss2.2.9">2.2.9 Class CIPluginPosition</A>
</H3> 
Public member functions:
<P>
<B>CIPluginPosition</B>
<UL>
	<I>constructor:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginPosition.CIPluginPosition">CIPluginPosition(float x = 0.0f, float y = 0.0f, float z = 0.0f)</A></LI>
</UL>
<UL>
	<I>operators:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginPosition.operator">CIPluginPosition& operator=(const CIPluginPosition& position)</A></LI>
</UL>
<UL>
	<I>get:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginPosition.getPositionX">float getPositionX(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginPosition.getPositionY">float getPositionY(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginPosition.getPositionZ">float getPositionZ(void)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginPosition.getDistance">static float getDistance(const CIPluginPosition& position1, const CIPluginPosition& position2)</A></LI>
</UL>
<UL>
	<I>set:</I>
	<LI><A HREF="kmpi_index-2.html#CIPluginPosition.setPosition">KMPI_RESULT setPosition(float x, float y, float z)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginPosition.setPositionX">KMPI_RESULT setPositionX(float x)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginPosition.setPositionY">KMPI_RESULT setPositionY(float y)</A></LI>
	<LI><A HREF="kmpi_index-2.html#CIPluginPosition.setPositionZ">KMPI_RESULT setPositionZ(float z)</A></LI>
</UL>
<P>
<B>Detailed Description</B>
<P>
This class represents a coordinate (atom units). 
<P>
<H4><A NAME="CIPluginPosition.CIPluginPosition">CIPluginPosition(float x = 0.0f, float y = 0.0f, float z = 0.0f)</A></H4>
Constructs a coordinate with x, y, and z values.
<H4><A NAME="CIPluginPosition.operator">CIPluginPosition& operator=(const CIPluginPosition& position)</A></H4>
Copies a coordinate.
<H4><A NAME="CIPluginPosition.getPositionX">float getPositionX(void)</A></H4>
Returns the x component of a coordinate.
<H4><A NAME="CIPluginPosition.getPositionY">float getPositionY(void)</A></H4>
Returns the y component of a coordinate.
<H4><A NAME="CIPluginPosition.getPositionZ">float getPositionZ(void)</A></H4>
Returns the z component of a coordinate.
<H4><A NAME="CIPluginPosition.getDistance">static float getDistance(const CIPluginPosition& position1, const CIPluginPosition& position2)</A></H4>
Returns the distance between two coordinates.
<H4><A NAME="CIPluginPosition.setPosition">KMPI_RESULT setPosition(float x, float y, float z)</A></H4>
Sets the coordinate and returns <I>KMPI_SUCCESS</I>.
<H4><A NAME="CIPluginPosition.setPositionX">KMPI_RESULT setPositionX(float x)</A></H4>
Sets the x component of the coordinate and returns <I>KMPI_SUCCESS</I>.
<H4><A NAME="CIPluginPosition.setPositionY">KMPI_RESULT setPositionY(float y)</A></H4>
Sets the y component of the coordinate and returns <I>KMPI_SUCCESS</I>.
<H4><A NAME="CIPluginPosition.setPositionZ">KMPI_RESULT setPositionZ(float z)</A></H4>
Sets the z component of the coordinate and returns <I>KMPI_SUCCESS</I>.
<P>
<HR>
<A HREF="kmpi_index-3.html">Next</A>
<A HREF="kmpi_index-1.html">Previous</A>
<A HREF="kmpi_index.html#toc2">Contents</A>
</BODY>
</HTML>