.TH "SoHeightMapToNormalMap" 3 "Tue Dec 26 2023 17:59:22" "Version 4.0.2" "Coin" \" -*- nroff -*- .ad l .nh .SH NAME SoHeightMapToNormalMap \- Engine for computing a normal map from a height map\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBSoTexture2Convert\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBNormalMapFormat\fP { \fBINT8\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBvirtual\fP \fBSoType\fP \fBgetTypeId\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBconst\fP \fBSoFieldData\fP * \fBgetFieldData\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBconst\fP \fBSoEngineOutputData\fP * \fBgetOutputData\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBSoHeightMapToNormalMap\fP (\fBvoid\fP)" .br .in -1c Public Member Functions inherited from \fBSoEngine\fP .in +1c .ti -1c .RI "\fBvoid\fP \fBevaluateWrapper\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBvirtual\fP int \fBgetOutputs\fP (\fBSoEngineOutputList\fP &\fBl\fP) \fBconst\fP" .br .ti -1c .RI "\fBSoEngineOutput\fP * \fBgetOutput\fP (\fBconst\fP \fBSbName\fP &\fBoutputname\fP) \fBconst\fP" .br .ti -1c .RI "SbBool \fBgetOutputName\fP (\fBconst\fP \fBSoEngineOutput\fP *output, \fBSbName\fP &\fBoutputname\fP) \fBconst\fP" .br .ti -1c .RI "SbBool \fBisNotifying\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBnotify\fP (\fBSoNotList\fP *\fBnl\fP)" .br .ti -1c .RI "\fBSoEngine\fP * \fBcopy\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBSoFieldContainer\fP * \fBcopyThroughConnection\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "SbBool \fBshouldCopy\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBwriteInstance\fP (\fBSoOutput\fP *\fBout\fP)" .br .in -1c Public Member Functions inherited from \fBSoFieldContainer\fP .in +1c .ti -1c .RI "\fBvoid\fP \fBsetToDefaults\fP (\fBvoid\fP)" .br .ti -1c .RI "SbBool \fBhasDefaultValues\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "SbBool \fBfieldsAreEqual\fP (\fBconst\fP \fBSoFieldContainer\fP *container) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBcopyFieldValues\fP (\fBconst\fP \fBSoFieldContainer\fP *container, SbBool \fBcopyconnections\fP=FALSE)" .br .ti -1c .RI "SbBool \fBset\fP (\fBconst\fP char *\fBconst\fP fielddata)" .br .ti -1c .RI "\fBvoid\fP \fBget\fP (\fBSbString\fP &fielddata)" .br .ti -1c .RI "\fBvirtual\fP int \fBgetFields\fP (\fBSoFieldList\fP &\fBl\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP int \fBgetAllFields\fP (\fBSoFieldList\fP &\fBl\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBSoField\fP * \fBgetField\fP (\fBconst\fP \fBSbName\fP &name) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBSoField\fP * \fBgetEventIn\fP (\fBconst\fP \fBSbName\fP &name) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBSoField\fP * \fBgetEventOut\fP (\fBconst\fP \fBSbName\fP &name) \fBconst\fP" .br .ti -1c .RI "SbBool \fBgetFieldName\fP (\fBconst\fP \fBSoField\fP *\fBconst\fP \fBfield\fP, \fBSbName\fP &name) \fBconst\fP" .br .ti -1c .RI "SbBool \fBenableNotify\fP (\fBconst\fP SbBool \fBflag\fP)" .br .ti -1c .RI "SbBool \fBisNotifyEnabled\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "SbBool \fBset\fP (\fBconst\fP char *fielddata, \fBSoInput\fP *input)" .br .ti -1c .RI "\fBvoid\fP \fBget\fP (\fBSbString\fP &fielddata, \fBSoOutput\fP *\fBout\fP)" .br .ti -1c .RI "\fBvirtual\fP SbBool \fBvalidateNewFieldValue\fP (\fBSoField\fP *\fBfield\fP, \fBvoid\fP *\fBnewval\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBaddWriteReference\fP (\fBSoOutput\fP *\fBout\fP, SbBool \fBisfromfield\fP=FALSE)" .br .ti -1c .RI "SbBool \fBgetIsBuiltIn\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBcopyContents\fP (\fBconst\fP \fBSoFieldContainer\fP *from, SbBool \fBcopyconnections\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBgetFieldsMemorySize\fP (size_t &\fBmanaged\fP, size_t &\fBunmanaged\fP) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBsetUserData\fP (\fBvoid\fP *userdata) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP * \fBgetUserData\fP (\fBvoid\fP) \fBconst\fP" .br .in -1c Public Member Functions inherited from \fBSoBase\fP .in +1c .ti -1c .RI "\fBvoid\fP \fBref\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBunref\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBunrefNoDelete\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "int32_t \fBgetRefCount\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBtouch\fP (\fBvoid\fP)" .br .ti -1c .RI "SbBool \fBisOfType\fP (\fBSoType\fP type) \fBconst\fP" .br .RI "Returns \fCTRUE\fP if the type of this object is either of the same type or inherited from \fItype\fP\&. " .ti -1c .RI "\fBvirtual\fP \fBSbName\fP \fBgetName\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBsetName\fP (\fBconst\fP \fBSbName\fP &\fBnewname\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBstartNotify\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBvoid\fP \fBaddAuditor\fP (\fBvoid\fP *\fBconst\fP \fBauditor\fP, \fBconst\fP \fBSoNotRec::Type\fP type)" .br .ti -1c .RI "\fBvoid\fP \fBremoveAuditor\fP (\fBvoid\fP *\fBconst\fP \fBauditor\fP, \fBconst\fP \fBSoNotRec::Type\fP type)" .br .ti -1c .RI "\fBconst\fP \fBSoAuditorList\fP & \fBgetAuditors\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "SbBool \fBshouldWrite\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBvoid\fP \fBassertAlive\fP (\fBvoid\fP) \fBconst\fP" .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "\fBstatic\fP \fBSoType\fP \fBgetClassTypeId\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP * \fBcreateInstance\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBinitClass\fP (\fBvoid\fP)" .br .RI "Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system\&. " .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBconvert\fP (\fBconst\fP \fBunsigned\fP char *\fBsrcptr\fP, \fBSbVec2s\fP size, int \fBnc\fP, \fBSbImage\fP &\fBdst_out\fP)" .br .in -1c Static Public Member Functions inherited from \fBSoTexture2Convert\fP .in +1c .ti -1c .RI "\fBstatic\fP \fBSoType\fP \fBgetClassTypeId\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBinitClass\fP (\fBvoid\fP)" .br .RI "Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system\&. " .in -1c Static Public Member Functions inherited from \fBSoEngine\fP .in +1c .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBinitClass\fP (\fBvoid\fP)" .br .RI "Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system\&. " .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBinitClasses\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBSoType\fP \fBgetClassTypeId\fP (\fBvoid\fP)" .br .RI "This static method returns the \fBSoType\fP object associated with objects of this class\&. " .ti -1c .RI "\fBstatic\fP \fBSoEngine\fP * \fBgetByName\fP (\fBconst\fP \fBSbName\fP &name)" .br .ti -1c .RI "\fBstatic\fP int \fBgetByName\fP (\fBconst\fP \fBSbName\fP &name, \fBSoEngineList\fP &\fBel\fP)" .br .in -1c Static Public Member Functions inherited from \fBSoFieldContainer\fP .in +1c .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBinitClass\fP (\fBvoid\fP)" .br .RI "Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system\&. " .ti -1c .RI "\fBstatic\fP \fBSoType\fP \fBgetClassTypeId\fP (\fBvoid\fP)" .br .RI "This static method returns the \fBSoType\fP object associated with objects of this class\&. " .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBcleanupClass\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBinitCopyDict\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBaddCopy\fP (\fBconst\fP \fBSoFieldContainer\fP *\fBorig\fP, \fBconst\fP \fBSoFieldContainer\fP *copy)" .br .ti -1c .RI "\fBstatic\fP \fBSoFieldContainer\fP * \fBcheckCopy\fP (\fBconst\fP \fBSoFieldContainer\fP *\fBorig\fP)" .br .ti -1c .RI "\fBstatic\fP \fBSoFieldContainer\fP * \fBfindCopy\fP (\fBconst\fP \fBSoFieldContainer\fP *\fBorig\fP, \fBconst\fP SbBool \fBcopyconnections\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBcopyDone\fP (\fBvoid\fP)" .br .in -1c Static Public Member Functions inherited from \fBSoBase\fP .in +1c .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBinitClass\fP (\fBvoid\fP)" .br .RI "Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system\&. " .ti -1c .RI "\fBstatic\fP \fBSoType\fP \fBgetClassTypeId\fP (\fBvoid\fP)" .br .RI "This static method returns the \fBSoType\fP object associated with objects of this class\&. " .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBaddName\fP (\fBSoBase\fP *\fBconst\fP base, \fBconst\fP char *\fBconst\fP name)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBremoveName\fP (\fBSoBase\fP *\fBconst\fP base, \fBconst\fP char *\fBconst\fP name)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBincrementCurrentWriteCounter\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBdecrementCurrentWriteCounter\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBSoBase\fP * \fBgetNamedBase\fP (\fBconst\fP \fBSbName\fP &name, \fBSoType\fP type)" .br .ti -1c .RI "\fBstatic\fP int \fBgetNamedBases\fP (\fBconst\fP \fBSbName\fP &name, \fBSoBaseList\fP &\fBbaselist\fP, \fBSoType\fP type)" .br .ti -1c .RI "\fBstatic\fP SbBool \fBread\fP (\fBSoInput\fP *input, \fBSoBase\fP *&base, \fBSoType\fP \fBexpectedtype\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBsetInstancePrefix\fP (\fBconst\fP \fBSbString\fP &c)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBsetTraceRefs\fP (SbBool \fBtrace\fP)" .br .ti -1c .RI "\fBstatic\fP SbBool \fBgetTraceRefs\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP SbBool \fBconnectRoute\fP (\fBSoInput\fP *input, \fBconst\fP \fBSbName\fP &\fBfromnodename\fP, \fBconst\fP \fBSbName\fP &\fBfromfieldname\fP, \fBconst\fP \fBSbName\fP &\fBtonodename\fP, \fBconst\fP \fBSbName\fP &\fBtofieldname\fP)" .br .ti -1c .RI "\fBstatic\fP SbBool \fBreadRoute\fP (\fBSoInput\fP *input)" .br .in -1c .SS "Public Attributes" .in +1c .ti -1c .RI "\fBSoSFEnum\fP \fBformat\fP" .br .in -1c Public Attributes inherited from \fBSoTexture2Convert\fP .in +1c .ti -1c .RI "\fBSoSFImage\fP \fBsourceImage\fP" .br .ti -1c .RI "\fBSoEngineOutput\fP \fBimage\fP" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBinputChanged\fP (\fBSoField\fP *\fBwhich\fP)" .br .ti -1c .RI "\fBvirtual\fP \fBvoid\fP \fBevaluate\fP (\fBvoid\fP)" .br .in -1c Protected Member Functions inherited from \fBSoEngine\fP .in +1c .ti -1c .RI "\fBSoEngine\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBvirtual\fP \fB~SoEngine\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBvirtual\fP SbBool \fBreadInstance\fP (\fBSoInput\fP *\fBin\fP, \fBunsigned\fP short flags)" .br .ti -1c .RI "\fBvoid\fP \fBwriteOutputTypes\fP (\fBSoOutput\fP *\fBout\fP)" .br .in -1c Protected Member Functions inherited from \fBSoFieldContainer\fP .in +1c .ti -1c .RI "\fBSoFieldContainer\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBvirtual\fP \fB~SoFieldContainer\fP ()" .br .in -1c Protected Member Functions inherited from \fBSoBase\fP .in +1c .ti -1c .RI "\fBSoBase\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBvirtual\fP \fB~SoBase\fP ()" .br .ti -1c .RI "SbBool \fBhasMultipleWriteRefs\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "SbBool \fBwriteHeader\fP (\fBSoOutput\fP *\fBout\fP, SbBool \fBisgroup\fP, SbBool \fBisengine\fP) \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBwriteFooter\fP (\fBSoOutput\fP *\fBout\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBconst\fP char * \fBgetFileFormatName\fP (\fBvoid\fP) \fBconst\fP" .br .ti -1c .RI "\fBvirtual\fP \fBSoNotRec\fP \fBcreateNotRec\fP (\fBvoid\fP)" .br .in -1c .SS "Static Protected Member Functions" .in +1c .ti -1c .RI "\fBstatic\fP \fBconst\fP \fBSoFieldData\fP ** \fBgetInputDataPtr\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBconst\fP \fBSoEngineOutputData\fP ** \fBgetOutputDataPtr\fP (\fBvoid\fP)" .br .in -1c Static Protected Member Functions inherited from \fBSoTexture2Convert\fP .in +1c .ti -1c .RI "\fBstatic\fP \fBconst\fP \fBSoFieldData\fP ** \fBgetInputDataPtr\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBconst\fP \fBSoEngineOutputData\fP ** \fBgetOutputDataPtr\fP (\fBvoid\fP)" .br .in -1c Static Protected Member Functions inherited from \fBSoEngine\fP .in +1c .ti -1c .RI "\fBstatic\fP \fBconst\fP \fBSoFieldData\fP ** \fBgetInputDataPtr\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBconst\fP \fBSoEngineOutputData\fP ** \fBgetOutputDataPtr\fP (\fBvoid\fP)" .br .in -1c Static Protected Member Functions inherited from \fBSoBase\fP .in +1c .ti -1c .RI "\fBstatic\fP uint32_t \fBgetCurrentWriteCounter\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBstaticDataLock\fP (\fBvoid\fP)" .br .ti -1c .RI "\fBstatic\fP \fBvoid\fP \fBstaticDataUnlock\fP (\fBvoid\fP)" .br .in -1c .SS "Additional Inherited Members" Protected Types inherited from \fBSoBase\fP .in +1c .ti -1c .RI "enum \fBBaseFlags\fP { \fBIS_ENGINE\fP = 0x01, \fBIS_GROUP\fP = 0x02 }" .br .in -1c Protected Attributes inherited from \fBSoFieldContainer\fP .in +1c .ti -1c .RI "SbBool \fBisBuiltIn\fP" .br .in -1c .SH "Detailed Description" .PP Engine for computing a normal map from a height map\&. This engine will create a normal map texture from a height map texture\&. You can use it in an Inventor file like this: .PP .PP .nf Texture2 { image = HeightMapToNormalMap { sourceImage = Texture2 { filename "HeightMap\&.jpg" } \&. image } \&. image } .fi .PP .PP Be aware that the field connections will remain active, so both Texture2 nodes and the HeightMapToNormalMap engine will be kept resident in memory (unless you intervene manually and detach the engine) even though only the 'outer' Texture2 node is needed\&. This can give quite a big memory use overhead\&. .PP Be aware that this class is an extension for Coin, and it is not available in the original SGI Open Inventor \fBv2\&.1\fP API\&. .br \fBSince\fP .RS 4 Coin \fB3\&.0\fP .RE .PP .SH "Member Enumeration Documentation" .PP .SS "\fBenum\fP \fBSoHeightMapToNormalMap::NormalMapFormat\fP" Enumeration of available normal map formats\&. .PP \fBEnumerator\fP .in +1c .TP \fB\fIINT8 \fP\fP Encode the normals as a 3 component byte texture\&. This is the only option for now, as long as float textures are not conveniently supported in Coin\&. .SH "Constructor & Destructor Documentation" .PP .SS "SoHeightMapToNormalMap::SoHeightMapToNormalMap (\fBvoid\fP)" Constructor\&. .SH "Member Function Documentation" .PP .SS "\fBSoType\fP SoHeightMapToNormalMap::getClassTypeId (\fBvoid\fP)\fC [static]\fP" This static method returns the \fBSoType\fP object associated with objects of this class\&. .br .SS "\fBSoType\fP SoHeightMapToNormalMap::getTypeId (\fBvoid\fP) const\fC [virtual]\fP" Returns the type identification of an object derived from a class inheriting \fBSoBase\fP\&. This is used for runtime type checking and 'downward' casting\&. .br .PP Reimplemented from \fBSoTexture2Convert\fP\&. .SS "\fBconst\fP \fBSoFieldData\fP ** SoHeightMapToNormalMap::getInputDataPtr (\fBvoid\fP)\fC [static]\fP, \fC [protected]\fP" Returns the \fBSoFieldData\fP class which holds information about inputs in this engine\&. .br .SS "\fBconst\fP \fBSoEngineOutputData\fP ** SoHeightMapToNormalMap::getOutputDataPtr (\fBvoid\fP)\fC [static]\fP, \fC [protected]\fP" Returns the \fBSoEngineOutputData\fP class which holds information about the outputs in this engine\&. .br .SS "\fBconst\fP \fBSoFieldData\fP * SoHeightMapToNormalMap::getFieldData (\fBvoid\fP) const\fC [virtual]\fP" Returns the \fBSoFieldData\fP class which holds information about inputs in this engine\&. .br .PP Reimplemented from \fBSoTexture2Convert\fP\&. .SS "\fBconst\fP \fBSoEngineOutputData\fP * SoHeightMapToNormalMap::getOutputData (\fBvoid\fP) const\fC [virtual]\fP" Returns the \fBSoEngineOutputData\fP class which holds information about the outputs in this engine\&. .br .PP Reimplemented from \fBSoTexture2Convert\fP\&. .SS "\fBvoid\fP * SoHeightMapToNormalMap::createInstance (\fBvoid\fP)\fC [static]\fP" Creates a new instance of the class type corresponding to the \fBSoType\fP object\&. .br .SS "\fBvoid\fP SoHeightMapToNormalMap::convert (\fBconst\fP \fBunsigned\fP char * srcptr, \fBSbVec2s\fP size, int nc, \fBSbImage\fP & dst_out)\fC [static]\fP" Static function for computing a normal map from a height map\&. This function can be used directly without any engine instantiation\&. .SS "\fBvoid\fP SoHeightMapToNormalMap::inputChanged (\fBSoField\fP * which)\fC [protected]\fP, \fC [virtual]\fP" Called when an input is changed\&. The default method does nothing, but subclasses may override this method to do The Right Thing when a specific field is changed\&. .PP Reimplemented from \fBSoEngine\fP\&. .SS "\fBvoid\fP SoHeightMapToNormalMap::evaluate (\fBvoid\fP)\fC [protected]\fP, \fC [virtual]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br .PP Implements \fBSoEngine\fP\&. .SH "Member Data Documentation" .PP .SS "\fBSoMFEnum\fP SoHeightMapToNormalMap::format" This setting decides what kind of normal map is generated\&. For now, only the INT8 format is available, and it is the default value\&. .SH "Author" .PP Generated automatically by Doxygen for Coin from the source code\&.