```
bool OEAddComplexSurfaceArcs(OEChem::OEMolBase &ligand,
const OEChem::OEMolBase &protein,
const OESurfaceArcFxnBase &solventExposedFxn=OEDefaultSolventArcFxn(),
const OESurfaceArcFxnBase &buriedFxn=OEDefaultBuriedArcFxn(),
const OEComplexSurfaceArcFxnBase &cavityFxn=OEDefaultCavityArcFxn(),
const OEComplexSurfaceArcFxnBase &voidFxn=OEDefaultVoidArcFxn())
```

Takes a ligand-protein complex and generates the 2D molecule
surface of the ligand, where the arcs of the surface are annotated
based on the distance calculated between the accessible surface of
the ligand and the protein.
See *Figure: Example of surface drawing with the OEAddComplexSurfaceArcs function*.

*ligand*- The molecule for which the 2D surface is generated.
*protein*- The macromolecule whose contact with the ligand influences the surface drawing.
*solventExposedFxn*- This functor is used to draw those arc segments of the 2D
molecule surface where the ligand is exposed to the solvent
in the 3D complex.
By default, the
`OEDefaultSolventArcFxn`functor is used. *buriedFxn*- This functor is used to draw those arc segments of the 2D
molecule surface where the ligand and the protein tightly fit
in the 3D complex.
By default, the
`OEDefaultBuriedArcFxn`functor is used. *cavityFxn*- This functor is used to draw those arc segments of the 2D
molecule surface where there is a cavity detected between the
ligand and the protein in the 3D complex.
By default, the
`OEDefaultCavityArcFxn`functor is used. *voidFxn*- This functor is used to draw those arc segments of the 2D
molecule surface where there is a small gap detected between
the ligand and the protein in the 3D complex.
By default, the
`OEDefaultVoidArcFxn`functor is used.

See also

```
void OEAddGlyph(OEDepict::OE2DMolDisplay &disp,
const OEAtomGlyphBase &atomglyph,
const OEChem::OEMatchBase &match)
void OEAddGlyph(OEDepict::OE2DMolDisplay &disp,
const OEAtomGlyphBase &atomglyph,
const OEChem::OEAtomBondSet &abset)
void OEAddGlyph(OEDepict::OE2DMolDisplay &disp,
const OEAtomGlyphBase &atomglyph,
const OESystem::OEUnaryPredicate<OEChem::OEAtomBase> &pred)
```

Annotates atoms with the style implemented in the given
`OEAtomGlyphBase` object.
The atoms being annotated can be specified either by an
`OEMatchBase` or an `OEAtomBondSet`
object or by an atom predicate.

*disp*- The
`OE2DMolDisplay`object whose atoms are being annotated. *atomglyph*- Specifies the style of the annotation.
Each atom is being annotated by calling the
`OEAtomGlyphBase.RenderGlyph`method. *match*`OEAddGlyph`function annotates the target atoms of the`OEMatchBase`object.*abset*`OEAddGlyph`function annotates the atoms returned by the`GetAtoms`method.*pred*`OEAddGlyph`function annotates only atoms for which the given atom predicate returns true.

See also

*Annotating Atoms and Bonds*chapter`OEAtomGlyphBase`class`OEAtomGlyphCircle`class

```
void OEAddGlyph(OEDepict::OE2DMolDisplay &disp,
const OEBondGlyphBase &bondglyph,
const OEChem::OEMatchBase &match)
void OEAddGlyph(OEDepict::OE2DMolDisplay &disp,
const OEBondGlyphBase &bondglyph,
const OEChem::OEAtomBondSet &abset)
void OEAddGlyph(OEDepict::OE2DMolDisplay &disp,
const OEBondGlyphBase &bondglyph,
const OESystem::OEUnaryPredicate<OEChem::OEBondBase> &pred)
```

Annotates bonds with the style implemented in the given
`OEBondGlyphBase` object.
The bond being annotated can be specified either by an
`OEMatchBase` or an `OEAtomBondSet`
object or by a bond predicate.

*disp*- The
`OE2DMolDisplay`object whose bonds are being annotated. *bondglyph*- Specifies the style of the annotation.
Each bond is being annotated by calling the
`OEBondGlyphBase.RenderGlyph`method. *match*`OEAddGlyph`function annotates the target bonds of the`OEMatchBase`object.*abset*`OEAddGlyph`function annotates the bonds returned by the`GetBonds`method.*pred*`OEAddGlyph`function annotates only bonds for which the given bond predicate returns true.

See also

*Annotating Atoms and Bonds*chapter`OEBondGlyphBase`class`OEBondGlyphArrow``OEBondGlyphCircle``OEBondGlyphCross`class`OEBondGlyphCurvedArrow`class`OEBondGlyphScissors`class

```
void OEClearSurfaceArcFxn(OEChem::OEAtomBase *atom)
```

Removes the surface drawing functor previously added to the atom.

See also

`OEGet2DSurfaceArcs`function`OEGetSurfaceArcFxn`function`OEHasSurfaceArcFxn`function`OESetSurfaceArcFxn`function

```
bool OEConfigure2DPropMap(OESystem::OEInterface &itf,
unsigned int config=OE2DPropMapSetup::All)
```

Configures the given interface to add property map style parameters.

*itf*- The interface being configured.
*config*- The option that specifies which parameters will be added to the
interface
This value has to be from the
`OE2DPropMapSetup`namespace.

See also

`OEInterface`class in the**OEChem TK**manual`OE2DPropMapSetup`namespace

```
bool OEDraw2DSurface(OEDepict::OE2DMolDisplay &disp)
```

Calculates the arc segments of the molecule surface and
draws the arcs into the molecule display using the functor
previously added to the atoms
(by calling `OESetSurfaceArcFxn`).
See *Figure: Example of drawing a molecule surface using the OEDraw2DSurface function*.

*disp*- The molecule display on which the 2D molecule surface is drawn.

Note

If no surface drawing functor is set to the atoms, then
the `OEDefaultArcFxn` functor will be used
by default.

See also

```
bool OEDraw2DSurface(OEDepict::OE2DMolDisplay &disp,
const OEDepict::OE2DMolDisplay &refdisp)
```

Allows a molecule surface to be generated on one molecule display but drawn
into an other display.
See *Figure: Example of using OEDraw2DSurface with reference molecule display*.

*disp*- The molecule display on which the 2D molecule surface is drawn.
*refdisp*- The molecule display for which the 2D molecule surface is calculated.

See also

```
void OEDrawActiveSiteLegend(OEDepict::OEImageBase &image,
const OE2DActiveSiteDisplay &adisp,
const OE2DActiveSiteLegendDisplayOptions &opts)
```

Draws a legend of the active site interaction.

*image*- The image on which the color force field legend is drawn.
*adisp*- The
`OE2DActiveSiteDisplay`object that holds the data necessary to depict the interactions of an active site. *opts*- The
`OE2DActiveSiteLegendDisplayOptions`object that determine how the legend is depicted.

The following code snippet shows how to use the `OEDrawActiveSiteLegend`
function. The image created is shown in
*Figure: Example of using the OEDrawActiveSiteLegend function*.

```
# initializing adisp OE2DActiveSiteDisplay object
rows, cols = 2, 3
opts = OE2DActiveSiteLegendDisplayOptions(rows, cols)
image = OEImage(600, 150)
OEDrawActiveSiteLegend(image, adisp, opts)
```

Note

The `OEDrawActiveSiteLegend` function renders
only those residue “glyphs” that are used to depicted the interactions
of the given active site when calling the `OERenderActiveSite`
function.

See also

```
bool OEDrawAlphaRainbowCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen,
unsigned int patternDirection=OEPatternDirection::Outside)
```

Draws a circle with the `OECircleStyle_AlphaRainbow` style.
See *Figure: OEDrawAlphaRainbowCircle*.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See example (A) and (B) in

*Figure: OEDrawAlphaRainbowCircle*.*patternDirection*Specifies whether the pattern is drawn inside or outside of the circle. This value has to be from the

`OEPatternDirection`namespace.See example (C) in

*Figure: OEDrawAlphaRainbowCircle*.

```
bool OEDrawAlphaRainbowSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen,
double edgeAngle=10.0,
unsigned int patternDirection=OEPatternDirection::Outside)
```

Draws an arc with the `OESurfaceArcStyle_AlphaRainbow` style.
See *Figure: OEDrawAlphaRainbowSurfaceArc*.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*The angle (in degrees) between the end points of the arc and the points where the pattern of the arc starts.

See example (B) in

*Figure: OEDrawAlphaRainbowSurfaceArc*.*patternDirection*Specifies whether the pattern is drawn inside or outside of the arc. This value has to be from the

`OEPatternDirection`namespace.See example (C) in

*Figure: OEDrawAlphaRainbowSurfaceArc*.

See also

`OEAlphaRainbowArcFxn`class

```
bool OEDrawBrickRoadCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen,
unsigned int patternDirection=OEPatternDirection::Outside,
double patternAngle=20.0,
double patternWidthRatio=0.15)
```

Draws a circle with the `OECircleStyle_BrickRoad` style.
See *Figure: OEDrawBrickRoadCircle*.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawBrickRoadCircle*.*patternDirection*Specifies whether the pattern is drawn inside or outside of the circle. This value has to be from the

`OEPatternDirection`namespace.See example (C) in

*Figure: OEDrawBrickRoadCircle*.*patternAngle*Specifies the angle (in degrees) between the patterns of the circle. The angle has to be in a range of \([1.0^{\circ} - 90.0^{\circ}]\)

See example (D) in

*Figure: OEDrawBrickRoadCircle*.*patternWidthRatio*Specifies the width of the pattern of the circle relative to its radius. The ratio has to be in a range of \([0.01 - 1.00]\).

See example (E) in

*Figure: OEDrawBrickRoadCircle*.

```
bool OEDrawBrickRoadSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen, double edgeAngle=10.0,
unsigned int patternDirection=OEPatternDirection::Outside,
double patternAngle=20.0,
double minPatternWidthRatio=0.15,
double maxPatternWidthRatio=0.15)
```

Draws an arc with the `OESurfaceArcStyle_BrickRoad` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*The angle (in degrees) between the end points of the arc and the points where the pattern of the arc starts.

See example (B) in

*Figure: OEDrawBrickRoadSurfaceArc*.*patternDirection*Specifies whether the pattern is drawn inside or outside of the arc. This value has to be from the

`OEPatternDirection`namespace.See example (C) in

*Figure: OEDrawBrickRoadSurfaceArc*.*patternAngle*Specifies the angle (in degrees) between the patterns of the arc. The angle has to be in a range of \([1.0^{\circ} - 90.0^{\circ}]\)

See example (D) in

*Figure: OEDrawBrickRoadSurfaceArc*.*minPatternWidthRatio, maxPatternWidthRatio*Specifies the width of the pattern of the arc relative to its radius. The

*min*ratio is applied to the end of the arc while the*max*ratio specifies the width of the patterns at the middle of the arc. Both ratios have to be in a range of \([0.01 - 1.00]\).See examples (E) and (F) in

*Figure: OEDrawBrickRoadSurfaceArc*.

See also

`OEBrickRoadArcFxn`class

```
bool OEDrawCastleCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen, double patternAngle=15.0,
double patternWidthRatio=0.20)
```

Draws a circle with the `OECircleStyle_Castle` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawCastleCircle*.*patternAngle*Specifies the angle (in degrees) between the patterns of the circle. The angle has to be in a range of \([1.0^{\circ} - 90.0^{\circ}]\)

See example (C) in

*Figure: OEDrawCastleCircle*.*patternWidthRatio*Specifies the width of the pattern of the circle relative to its radius. The ratio has to be in a range of \([0.01 - 1.00]\).

See example (D) in

*Figure: OEDrawCastleCircle*.

```
bool OEDrawCastleSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen, double edgeAngle=10.0,
double patternAngle=15.0,
double minPatternWidthRatio=0.20,
double maxPatternWidthRatio=0.20)
```

Draws an arc with the `OESurfaceArcStyle_Castle` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*The angle (in degrees) between the end points of the arc and the points where the pattern of the arc starts.

See example (B) in

*Figure: OEDrawCastleSurfaceArc*.*patternAngle*Specifies the angle (in degrees) between the patterns of the arc. The angle has to be in a range of \([1.0^{\circ} - 90.0^{\circ}]\)

See example (C) in

*Figure: OEDrawCastleSurfaceArc*.*minPatternWidthRatio, maxPatternWidthRatio*Specifies the width of the pattern of the arc relative to its radius. The

*min*ratio is applied to the end of the arc while the*max*ratio specifies the width of the patterns at the middle of the arc. Both ratios have to be in a range of \([0.01 - 1.00]\).See examples (D) and (E) in

*Figure: OEDrawCastleSurfaceArc*.

See also

`OECastleArcFxn`class

```
bool OEDrawCircle(OEDepict::OEImageBase &image, unsigned int style,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen=OEDepict::OEBlackPen)
```

Draws a circle with the given style.

*image*- The image on which the circle is drawn.
*style*- Specifies the style of the circle.
This value has to be from the
`OECircleStyle`namespace. *center*- The center of the circle.
*radius*- The radius of the circle.
*pen*- The graphical properties of the circle.

```
bool OEDrawCogCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen,
double patternAngle=15.0, double patternWidthRatio=0.20)
```

Draws a circle with the `OECircleStyle_Cog` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawCogCircle*.*patternAngle*Specifies the angle (in degrees) between the patterns of the circle. The angle has to be in a range of \([1.0^{\circ} - 90.0^{\circ}]\)

See example (C) in

*Figure: OEDrawCogCircle*.*patternWidthRatio*Specifies the width of the pattern of the circle relative to its radius. The ratio has to be in a range of \([0.01 - 1.00]\).

See example (D) in

*Figure: OEDrawCogCircle*.

```
bool OEDrawCogSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen, double edgeAngle=10.0,
double patternAngle=15.0,
double minPatternWidthRatio=0.20,
double maxPatternWidthRatio=0.20)
```

Draws an arc with the `OESurfaceArcStyle_Cog` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*See example (B) in

*Figure: OEDrawCogSurfaceArc*.*patternAngle*Specifies the angle (in degrees) between the patterns of the arc. The angle has to be in a range of \([1.0^{\circ} - 90.0^{\circ}]\)

See example (C) in

*Figure: OEDrawCogSurfaceArc*.*minPatternWidthRatio, maxPatternWidthRatio*Specifies the width of the pattern of the arc relative to its radius. The

*min*ratio is applied to the end of the arc while the*max*ratio specifies the width of the patterns at the middle of the arc. Both ratios have to be in a range of \([0.01 - 1.00]\).See examples (D) and (E) in

*Figure: OEDrawCogSurfaceArc*.

See also

`OECogArcFxn`class

```
void OEDrawColorForceFieldLegend(OEDepict::OEImageBase &image,
const OEColorForceFieldDisplay &cffdisp,
const OEColorForceFieldLegendDisplayOptions &opts)
```

Draws a legend of the color force field.

*image*- The image on which the color force field legend is drawn.
*cffdisp*- The
`OEColorForceFieldDisplay`object that holds the data necessary to depict the color force field. *opts*- The
`OEColorForceFieldLegendDisplayOptions`object that determine how the legend of color force field is depicted.

The following code snippet shows how to use the `OEDrawColorForceFieldLegend`
function. The image created is shown in
*Figure: Example of using the OEDrawColorForceFieldLegend function*.

```
cff = OEColorForceField()
cff.Init(OEColorFFType_ImplicitMillsDean)
cffdisp = OEColorForceFieldDisplay(cff)
rows, cols = 2, 3
opts = OEColorForceFieldLegendDisplayOptions(rows, cols)
image = OEImage(450, 150)
OEDrawColorForceFieldLegend(image, cffdisp, opts)
```

See also

```
void OEDrawColorGradient(OEDepict::OEImageBase &image,
const OESystem::OEColorGradientBase &colorg)
void OEDrawColorGradient(OEDepict::OEImageBase &image,
const OESystem::OEColorGradientBase &colorg,
const OEColorGradientDisplayOptions &opts)
```

Draws a color gradient.

*image*- The image on which the color gradient is drawn.
*colorg*- The color gradient being drawn.
*opts*- The
`OEColorGradientDisplayOptions`object that stores the parameters that determine how the color gradient is drawn.

The following code snippet shows how to use the `OEDrawColorGradient`
function. The image created is shown in
*Figure: Example of using the OEDrawColorGradient function*.

```
colorg = OELinearColorGradient(OEColorStop(0.0, OEYellow))
colorg.AddStop(OEColorStop(+1.0, OEOrange))
colorg.AddStop(OEColorStop(-1.0, OEGreen))
image = OEImage(400, 100)
OEDrawColorGradient(image, colorg)
OEWriteImage("DrawColorGradient.png", image)
```

The orientation (*i.e.*, whether the color gradient is rendered vertically or
horizontally) depends on the width and height of the `OEImageBase` object.
If the width is greater than the height, then the color gradient is drawn
horizontally; otherwise it is rendered vertically .
See examples in *Figure: Example of rendering the same color gradient into different dimensions*.

The `OEDrawColorGradient` function can depict any color gradient
derived from the `OEColorGradientBase` base class.
See examples in *Figure: Example of rendering various color gradients*.

See also

`OEColorGradientDisplayOptions`class`OEColorGradientBase`base class`OELinearColorGradient`,`OEExponentialColorGradient`,`OELogarithmicColorGradient`, and`OEExponentColorGradient`concrete classes

```
bool OEDrawDefaultCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen)
```

Draws a circle with the `OECircleStyle_Default` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples in

*Figure: OEDrawDefaultCircle*.

```
bool OEDrawDefaultSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen)
```

Draws an arc with the `OESurfaceArcStyle_Default` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.

See also

`OEDefaultArcFxn`class

```
bool OEDrawEyelashCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen,
unsigned int patternDirection=OEPatternDirection::Outside,
double patternAngle=10.0,
double patternWidthRatio=0.15)
```

Draws a circle with the `OECircleStyle_Eyelash` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawEyelashCircle*.*patternDirection*Specifies whether the pattern is drawn inside or outside of the circle. This value has to be from the

`OEPatternDirection`namespace.See example (C) in

*Figure: OEDrawEyelashCircle*.*patternAngle*See example (D) in

*Figure: OEDrawEyelashCircle*.*patternWidthRatio*See example (E) in

*Figure: OEDrawEyelashCircle*.

```
bool OEDrawEyelashSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen, double edgeAngle=10.0,
unsigned int patternDirection=OEPatternDirection::Outside,
double patternAngle=10.0,
double minPatternWidthRatio=0.15,
double maxPatternWidthRatio=0.15)
```

Draws an arc with the `OESurfaceArcStyle_Eyelash` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*See example (B) in

*Figure: OEDrawEyelashSurfaceArc*.*patternDirection*Specifies whether the pattern is drawn inside or outside of the arc. This value has to be from the

`OEPatternDirection`namespace.See example (C) in

*Figure: OEDrawEyelashSurfaceArc*.*patternAngle*See example (D) in

*Figure: OEDrawEyelashSurfaceArc*.*minPatternWidthRatio, maxPatternWidthRatio**min*ratio is applied to the end of the arc while the*max*ratio specifies the width of the patterns at the middle of the arc. Both ratios have to be in a range of \([0.01 - 1.00]\).See examples (E) and (F) in

*Figure: OEDrawEyelashSurfaceArc*.

See also

`OEEyelashArcFxn`class

```
bool OEDrawFlowerCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen, double patternAngle=30.0)
```

Draws a circle with the `OECircleStyle_Flower` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawFlowerCircle*.*patternAngle*See example (C) in

*Figure: OEDrawFlowerCircle*.

```
bool OEDrawFlowerSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen, double edgeAngle=10.0,
double patternAngle=30.0,
double minPatternWidthRatio=0.20,
double maxPatternWidthRatio=0.20)
```

Draws an arc with the `OESurfaceArcStyle_Flower` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*See example (B) in

*Figure: OEDrawFlowerSurfaceArc*.*patternAngle*See example (C) in

*Figure: OEDrawFlowerSurfaceArc*.*minPatternWidthRatio, maxPatternWidthRatio**min*ratio is applied to the end of the arc while the*max*ratio specifies the width of the patterns at the middle of the arc. Both ratios have to be in a range of \([0.01 - 1.00]\).See examples (D) and (E) in

*Figure: OEDrawFlowerSurfaceArc*.

See also

`OEFlowerArcFxn`class

```
bool OEDrawGreekKeyCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen, double patternAngle=15.0,
double patternWidthRatio=0.20)
```

Draws a circle with the `OECircleStyle_GreekKey` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawGreekKeyCircle*.*patternAngle*See example (C) in

*Figure: OEDrawGreekKeyCircle*.*patternWidthRatio*See example (D) in

*Figure: OEDrawGreekKeyCircle*.

```
bool OEDrawNecklaceCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen, double patternAngle=20.0,
double patternWidthRatio=0.15)
```

Draws a circle with the `OECircleStyle_Necklace` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawNecklaceCircle*.*patternAngle*See example (C) in

*Figure: OEDrawNecklaceCircle*.*patternWidthRatio*See example (D) in

*Figure: OEDrawNecklaceCircle*.

```
bool OEDrawNecklaceSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen, double edgeAngle=10.0,
double patternAngle=20.0,
double minPatternWidthRatio=0.15,
double maxPatternWidthRatio=0.15)
```

Draws an arc with the `OESurfaceArcStyle_Necklace` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*See example (B) in

*Figure: OEDrawNecklaceSurfaceArc*.*patternAngle*See example (C) in

*Figure: OEDrawNecklaceSurfaceArc*.*minPatternWidthRatio, maxPatternWidthRatio**min*ratio is applied to the end of the arc while the*max*ratio specifies the width of the patterns at the middle of the arc. Both ratios have to be in a range of \([0.01 - 1.00]\).See examples (D) and (E) in

*Figure: OEDrawNecklaceSurfaceArc*.

See also

`OENecklaceArcFxn`class

```
bool OEDrawOliveBranchCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen,
double patternAngle=15.0,
double patternWidthRatio=0.15)
```

Draws a circle with the `OECircleStyle_OliveBranch` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawOliveBranchCircle*.*patternAngle*See example (C) in

*Figure: OEDrawOliveBranchCircle*.*patternWidthRatio*See example (D) in

*Figure: OEDrawOliveBranchCircle*.

See also

`OEOliveBranchArcFxn`class

```
bool OEDrawOliveBranchSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen,
double edgeAngle=10.0, double patternAngle=15.0,
double minPatternWidthRatio=0.15,
double maxPatternWidthRatio=0.15)
```

Draws an arc with the `OESurfaceArcStyle_OliveBranch` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*See example (B) in

*Figure: OEDrawOliveBranchSurfaceArc*.*patternAngle*See example (C) in

*Figure: OEDrawOliveBranchSurfaceArc*.*minPatternWidthRatio, maxPatternWidthRatio**min*ratio is applied to the end of the arc while the*max*ratio specifies the width of the patterns at the middle of the arc. Both ratios have to be in a range of \([0.01 - 1.00]\).See examples (D) and (E) in

*Figure: OEDrawOliveBranchSurfaceArc*.

```
bool OEDrawPearlsCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen, double patternAngle=15.0)
```

Draws a circle with the `OECircleStyle_Pearls` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawPearlsCircle*.*patternAngle*See example (C) in

*Figure: OEDrawPearlsCircle*.

```
bool OEDrawPearlsSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen, double edgeAngle=10.0,
double patternAngle=25.0,
double minPatternWidthRatio=0.20,
double maxPatternWidthRatio=0.20)
```

Draws an arc with the `OESurfaceArcStyle_Pearls` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*See example (B) in

*Figure: OEDrawPearlsSurfaceArc*.*patternAngle*See example (C) in

*Figure: OEDrawPearlsSurfaceArc*.*minPatternWidthRatio, maxPatternWidthRatio**min*ratio is applied to the end of the arc while the*max*ratio specifies the width of the patterns at the middle of the arc. Both ratios have to be in a range of \([0.01 - 1.00]\).See examples (D) and (E) in

*Figure: OEDrawPearlsSurfaceArc*.

See also

`OEPearlsArcFxn`class

```
bool OEDrawRaceTrackCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen)
```

Draws a circle with the `OECircleStyle_RaceTrack` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawRaceTrackCircle*.

```
bool OEDrawRaceTrackSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen,
double edgeAngle=10.0)
```

Draws an arc with the `OESurfaceArcStyle_RaceTrack` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*See example (B) in

*Figure: OEDrawRaceTrackSurfaceArc*.

See also

`OERaceTrackArcFxn`class

```
bool OEDrawRailroadTrackCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen,
double patternAngle=10.0,
double patternWidthRatio=0.15)
```

Draws a circle with the `OECircleStyle_RailroadTrack` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawRailroadTrackCircle*.*patternAngle*See example (C) in

*Figure: OEDrawRailroadTrackCircle*.*patternWidthRatio*See example (D) in

*Figure: OEDrawRailroadTrackCircle*.

```
bool OEDrawRailroadTrackSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen,
double edgeAngle=10.0,
double patternAngle=10.0,
double minPatternWidthRatio=0.15,
double maxPatternWidthRatio=0.15)
```

Draws an arc with the `OESurfaceArcStyle_RailroadTrack` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*See example (B) in

*Figure: OEDrawRailroadTrackSurfaceArc*.*patternAngle*See example (C) in

*Figure: OEDrawRailroadTrackSurfaceArc*.*minPatternWidthRatio, maxPatternWidthRatio**min*ratio is applied to the end of the arc while the*max*ratio specifies the width of the patterns at the middle of the arc. Both ratios have to be in a range of \([0.01 - 1.00]\).See examples (D) and (E) in

*Figure: OEDrawRailroadTrackSurfaceArc*.

See also

`OERailroadTrackArcFxn`class

```
bool OEDrawSawCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen,
unsigned int patternDirection=OEPatternDirection::Outside,
double patternAngle=15.0, double patternWidthRatio=0.15)
```

Draws a circle with the `OECircleStyle_Saw` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawSawCircle*.*patternDirection*`OEPatternDirection`namespace.See example (C) in

*Figure: OEDrawSawCircle*.*patternAngle*See example (D) in

*Figure: OEDrawSawCircle*.*patternWidthRatio*See example (E) in

*Figure: OEDrawSawCircle*.

```
bool OEDrawSawSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen, double edgeAngle=10.0,
unsigned int patternDirection=OEPatternDirection::Outside,
double patternAngle=15.0,
double minPatternWidthRatio=0.15,
double maxPatternWidthRatio=0.15)
```

Draws an arc with the `OESurfaceArcStyle_Saw` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*See example (B) in

*Figure: OEDrawSawSurfaceArc*.*patternDirection*`OEPatternDirection`namespace.See example (C) in

*Figure: OEDrawSawSurfaceArc*.*patternAngle*See example (D) in

*Figure: OEDrawSawSurfaceArc*.*minPatternWidthRatio, maxPatternWidthRatio**min*ratio is applied to the end of the arc while the*max*ratio specifies the width of the patterns at the middle of the arc. Both ratios have to be in a range of \([0.01 - 1.00]\).See examples (E) and (F) in

*Figure: OEDrawSawSurfaceArc*.

See also

`OESawArcFxn`class

```
bool OEDrawSimpsonCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen, double patternAngle=10.0,
double patternWidthRatio=0.20)
```

Draws a circle with the `OECircleStyle_Simpson` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawSimpsonCircle*.*patternAngle*See example (C) in

*Figure: OEDrawSimpsonCircle*.*patternWidthRatio*See example (D) in

*Figure: OEDrawSimpsonCircle*.

```
bool OEDrawSimpsonSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen, double edgeAngle=10.0,
double patternAngle=15.0,
double minPatternWidthRatio=0.20,
double maxPatternWidthRatio=0.20)
```

Draws an arc with the `OESurfaceArcStyle_Simpson` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*See example (B) in

*Figure: OEDrawSimpsonSurfaceArc*.*patternAngle*See example (C) in

*Figure: OEDrawSimpsonSurfaceArc*.*minPatternWidthRatio, maxPatternWidthRatio**min*ratio is applied to the end of the arc while the*max*ratio specifies the width of the patterns at the middle of the arc. Both ratios have to be in a range of \([0.01 - 1.00]\).See examples (D) and (E) in

*Figure: OEDrawSimpsonSurfaceArc*.

See also

`OESimpsonArcFxn`class

```
bool OEDrawStitchCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen, double patternAngle=10.0,
double patternWidthRatio=0.20)
```

Draws a circle with the `OECircleStyle_Stitch` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawStitchCircle*.*patternAngle*See example (C) in

*Figure: OEDrawStitchCircle*.*patternWidthRatio*See example (D) in

*Figure: OEDrawStitchCircle*.

```
bool OEDrawStitchSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen, double edgeAngle=10.0,
double patternAngle=10.0,
double minPatternWidthRatio=0.20,
double maxPatternWidthRatio=0.20)
```

Draws an arc with the `OESurfaceArcStyle_Stitch` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*See example (B) in

*Figure: OEDrawStitchSurfaceArc*.*patternAngle*See example (C) in

*Figure: OEDrawStitchSurfaceArc*.*minPatternWidthRatio, maxPatternWidthRatio**min*ratio is applied to the end of the arc while the*max*ratio specifies the width of the patterns at the middle of the arc. Both ratios have to be in a range of \([0.01 - 1.00]\).See examples (D) and (E) in

*Figure: OEDrawStitchSurfaceArc*.

See also

`OEStitchArcFxn`class

```
bool OEDrawSunCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen,
unsigned int patternDirection=OEPatternDirection::Outside,
double patternAngle=15.0, double patternWidthRatio=0.15)
```

Draws a circle with the `OECircleStyle_Sun` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawSunCircle*.*patternDirection*`OEPatternDirection`namespace.See example (C) in

*Figure: OEDrawSunCircle*.*patternAngle*See example (D) in

*Figure: OEDrawSunCircle*.*patternWidthRatio*See example (E) in

*Figure: OEDrawSunCircle*.

```
bool OEDrawSunSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen, double edgeAngle=10.0,
unsigned int patternDirection=OEPatternDirection::Outside,
double patternAngle=15.0,
double minPatternWidthRatio=0.15,
double maxPatternWidthRatio=0.15)
```

Draws an arc with the `OESurfaceArcStyle_Sun` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*See example (B) in

*Figure: OEDrawSunSurfaceArc*.*patternDirection*`OEPatternDirection`namespace.See example (C) in

*Figure: OEDrawSunSurfaceArc*.*patternAngle*See example (D) in

*Figure: OEDrawSunSurfaceArc*.*minPatternWidthRatio, maxPatternWidthRatio**min*ratio is applied to the end of the arc while the*max*ratio specifies the width of the patterns at the middle of the arc. Both ratios have to be in a range of \([0.01 - 1.00]\).See examples (E) and (F) in

*Figure: OEDrawSunSurfaceArc*.

See also

`OESunArcFxn`class

```
bool OEDrawSurfaceArc(OEDepict::OEImageBase &image, unsigned int style,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen)
```

Draws an arc with the given style.

*image*- The image on which the arc is drawn.
*style*- Specifies the style of the arc.
This value has to be from the
`OESurfaceArcStyle`namespace. *center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.

```
bool OEDrawWreathCircle(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er, double radius,
const OEDepict::OEPen &pen, double patternAngle=15.0,
double patternWidthRatio=0.20)
```

Draws a circle with the `OECircleStyle_Wreath` style.

*image*- The image on which the circle is drawn.
*center*- The center of the circle.
*radius*- The radius of the circle.
*pen*The graphical properties of the circle.

See examples (A) and (B) in

*Figure: OEDrawWreathCircle*.*patternAngle*See example (C) in

*Figure: OEDrawWreathCircle*.*patternWidthRatio*See example (D) in

*Figure: OEDrawWreathCircle*.

```
bool OEDrawWreathSurfaceArc(OEDepict::OEImageBase &image,
const OEDepict::OE2DPoint ¢er,
double bgnAngle, double endAngle, double radius,
const OEDepict::OEPen &pen, double edgeAngle=10.0,
double patternAngle=20.0,
double minPatternWidthRatio=0.15,
double maxPatternWidthRatio=0.15)
```

Draws an arc with the `OESurfaceArcStyle_Wreath` style.

*image*- The image on which the arc is drawn.
*center*- The center of the arc.
*bgnAngle, endAngle*- The two endpoints of the arc. Both angles are in degrees and their values have to be in a range of \([0.0^{\circ} - 360.0^{\circ}]\). Angles are interpreted such that \(0.0^{\circ}\) and \(360.0^{\circ}\) degrees are at the
*12 o’clock*position, \(90.0^{\circ}\) degrees corresponds to*3 o’clock*, etc. *radius*- The radius of the arc.
*pen*- The graphical properties of the arc.
*edgeAngle*See example (B) in

*Figure: OEDrawWreathSurfaceArc*.*patternAngle*See example (C) in

*Figure: OEDrawWreathSurfaceArc*.*minPatternWidthRatio, maxPatternWidthRatio**min*ratio is applied to the end of the arc while the*max*ratio specifies the width of the patterns at the middle of the arc. Both ratios have to be in a range of \([0.01 - 1.00]\).See examples (D) and (E) in

*Figure: OEDrawWreathSurfaceArc*.

See also

`OEWreathArcFxn`class

```
OESystem::OEIterBase<OESurfaceArc> *
OEGet2DSurfaceArcs(const OEDepict::OE2DMolDisplay &disp,
double radiusScale = OESurfaceArcScale::Default)
```

Returns an iterator over the `OESurfaceArc`
objects from which a continuous 2D molecule surface can be drawn.
See *Figure: Example of the data stored in the OESurfaceArc
class*.

*disp*- The
`OE2DMolDisplay`object for which the arcs of the 2D molecule surface are generated. *radiusScale*- The multiplier used to modify the radius of the returned arcs.
The scaling factor has to be in the range of
[
`OESurfaceArcScale_Minimum`,`OESurfaceArcScale_Maximum`].

```
OESystem::OEIterBase<OESurfaceArc> *
OEGet2DSurfaceArcs(const OEDepict::OE2DMolDisplay &mdisp,
const OEDepict::OE2DAtomDisplay &adisp,
double radiusScale = OESurfaceArcScale::Default)
```

Returns an iterator over the `OESurfaceArc`
object(s) generated for the given atom display.
See *Figure: Example of the arcs returned for an atom display
with various radius scales*.

*mdisp*- The
`OE2DMolDisplay`object to which the`OE2DAtomDisplay`object belongs. *adisp*- The
`OE2DAtomDisplay`object for which the arc(s) of the 2D molecule surface are generated. *radiusScale*- The multiplier used to modify the radius of the returned arcs.
The scaling factor has to be in the range of
[
`OESurfaceArcScale_Minimum`,`OESurfaceArcScale_Maximum`].

```
OESystem::OEIterBase<OESurfaceArc> *
OEGet2DSurfaceArcs(const OEDepict::OE2DMolDisplay &disp,
const std::vector<double> &radiusScales)
```

Returns an iterator over the `OESurfaceArc`
objects from which a continuous 2D molecule surface can be drawn.

*disp*- The
`OE2DMolDisplay`object for which the arcs of the 2D molecule surface are generated. *radiusScales*- The multipliers used to modify the radius of the returned arcs.
The vector has to be
`OEMolBase.GetMaxAtomIdx`long. Each scaling factor has to be in the range of [`OESurfaceArcScale_Minimum`,`OESurfaceArcScale_Maximum`].

See also

*Drawing a Molecule Surface*chapter`OESurfaceArc`classes`OESurfaceArcScale`namespace

```
double OEGetMoleculeSurfaceScale(const OEChem::OEMolBase &mol,
const OEDepict::OE2DMolDisplayOptions &opts,
double maxRadiusScale = OESurfaceArcScale::Default)
```

Estimates the scaling factor of the molecule depiction considering
the size of the molecule surface being drawn around the molecule
diagram.
See *Figure: Example of using the OEGetMoleculeSurfaceScale function*.

*mol*- The molecule for which the scaling factor is determined.
*opts*- The
`OE2DMolDisplayOptions`object that stores the parameters which influence the calculated scaling factor (such as the width and the height of the image). *maxRadiusScale*- The maximum radius multiplier used to generate the arcs of the 2D molecule surface.

See also

`OESurfaceArcScale`namespace

```
const OESurfaceArcFxnBase &OEGetSurfaceArcFxn(const OEChem::OEAtomBase *atom)
```

Returns the surface drawing functor that is associated with the
given atom, *i.e.*, when calling the
`OEDraw2DSurface`
function this return functor is used to draw the arc segment of the
given atom.

See also

`OEClearSurfaceArcFxn`function`OEGet2DSurfaceArcs`function`OEHasSurfaceArcFxn`function`OESetSurfaceArcFxn`function

```
const char *OEGraphemeGetArch()
```

```
bool OEGraphemeGetLicensee(std::string &licensee)
```

```
const char *OEGraphemeGetPlatform()
```

```
const char *OEGraphemeGetRelease()
```

```
bool OEGraphemeGetSite(std::string &site)
```

```
unsigned int OEGraphemeGetVersion()
```

```
bool OEGraphemeIsLicensed(const char *feature=0,
unsigned int *expdate=0)
```

```
bool OEHasSurfaceArcFxn(const OEChem::OEAtomBase *atom)
```

Returns whether or not a surface drawing functor is associated with the given atom.

See also

`OEClearSurfaceArcFxn`function`OEGetSurfaceArcFxn`function`OESetSurfaceArcFxn`function

```
bool OEPrepareActiveSiteDepiction(OEBio::OEFragmentNetwork &asite)
```

Prepares an active site before depiction that involves suppressing hydrogens and calculate distances between the accessible surfaces of the ligand and the surrounding protein.

See also

```
bool OEPrepareAlignedDepictionFrom3D(OEChem::OEMolBase &fitmol2D,
const OEChem::OEMolBase &fitmol3D,
const OEChem::OEMolBase &refmol2D,
const OEChem::OEMolBase &refmol3D,
bool clearCoords=true, bool suppressH=true)
```

Generates the 2D coordinates of a molecule driven by the 3D overlay of the 3D reference and the 3D fit molecules and the orientation of the 2D reference molecule.

*fitmol2D*- The molecule for which 2D coordinates are generated.
*refmol2D*- The 2D molecule whose orientation drives the 2D coordinate generation.
*fitmol3D, refmol3D*- The 3D molecules whose overlay drives the 2D coordinate generation.
*clearCoords*- If false and the
*fitmol2D*has 2D coordinates, then these coordinates are used for the alignment. Otherwise the 2D coordinates of the fitted molecule are generated by calling the`OEPrepareDepictionFrom3D`function. *suppressH*- If true, then explicit hydrogens are suppressed when generating the 2D coordinates of the fitted molecule. Only hydrogens that are necessary to faithfully represent tetrahedral stereochemistry will be kept.

The following code snippet shows how to use the `OEPrepareAlignedDepictionFrom3D`
function.
See generated images in *Table: 2D depiction based on 3D molecule overlay*.

```
refmol2D = OEGraphMol(refmol3D)
OEPrepareDepictionFrom3D(refmol2D)
fitmol2D = OEGraphMol(fitmol3D)
OEPrepareAlignedDepictionFrom3D(fitmol2D, fitmol3D, refmol2D, refmol3D)
width, height = 300, 300
opts = OE2DMolDisplayOptions(width, height, OEScale_AutoScale)
refscale = OEGetMoleculeScale(refmol2D, opts)
fitscale = OEGetMoleculeScale(fitmol2D, opts)
opts.SetScale(min(refscale, fitscale))
refdisp = OE2DMolDisplay(refmol2D, opts)
OERenderMolecule("OEPrepareAlignedDepictionFrom3D-ref-2D.png", refdisp)
fitdisp = OE2DMolDisplay(fitmol2D, opts)
OERenderMolecule("OEPrepareAlignedDepictionFrom3D-fit-2D.png", fitdisp)
```

3D reference molecule | 3D molecule overlay | 3D fit molecule |

2D reference molecule (generated by OEPrepareDepictionFrom3D) | 2D fit molecule (generated by OEPrepareAlignedDepictionFrom3D) |

```
bool OEPrepareDepictionFrom3D(OEChem::OEMolBase &mol, bool suppressH=true)
```

Takes a 3D molecule and generates its 2D coordinates. The layout and orientation of the 2D coordinates are driven by the 3D coordinates.

*mol*- The 3D molecule for which 2D coordinates are generated.
*suppressH*- If true, then explicit hydrogens are suppressed in the input molecule. Only hydrogens that are necessary to faithfully represent tetrahedral stereochemistry will be kept.

```
bool OEPrepareDepictionFrom3D(OEChem::OEMolBase &mol, const OEDepictionFrom3DOptions &opts)
```

Takes a 3D molecule and generates its 2D coordinates using the given options. The layout and orientation of the 2D coordinates are driven by the 3D coordinates.

*mol*- The 3D molecule for which 2D coordinates are generated.
*opts*- The
`OEDepictionFrom3DOptions`object that stores properties that used when generating the 2D coordinates.

See the 2D molecule depictions in
*Table: 2D representation of the 3D molecule*
and the corresponding 3D molecule in
*Figure: Example of 3D molecule displayed in VIDA*.

OEPrepareDepictionFrom3D |
OEPrepareDepiction |

Link | Description |
---|---|

OERenderActiveSite(image, adisp) |
renders a active site into an image |

OERenderActiveSite(filename, adisp) |
writes an active site display into a file |

OERenderActiveSite(stream, ext, adisp) |
writes an active site display into an output stream |

```
bool OERenderActiveSite(OEDepict::OEImageBase &image,
const OE2DActiveSiteDisplay &adisp)
```

Renders the active site display into an image.

*image*- The image in which the active site is drawn.
*adisp*- The
`OE2DActiveSiteDisplay`object that holds the data necessary to depict the interactions of an active site.

Example:

```
# initializing asite OEFragmentNetwork(receptor, ligand) object
image = OEImage(600.0, 400.0)
opts = OE2DActiveSiteDisplayOptions(image.GetWidth(), image.GetHeight())
adisp = OE2DActiveSiteDisplay(asite, opts)
OERenderActiveSite(image, adisp)
OEWriteImage("OERenderActiveSite-image-adisp.png", image)
```

See also

`OE2DActiveSiteDisplay`class`OE2DActiveSiteDisplayOptions`class*Depicting Active Site Interactions*example

```
bool OERenderActiveSite(const std::string &filename,
const OE2DActiveSiteDisplay &adisp)
```

Writes the active site display into a file.

*filename*- The name of the file into which the active site display is being written. The extension of the filename determine the type of the image.
*adisp*- The
`OE2DActiveSiteDisplay`object that holds the data necessary to depict the interactions of an active site.

Example:

```
# initializing asite OEFragmentNetwork(receptor, ligand) object
opts = OE2DActiveSiteDisplayOptions(600.0, 400.0)
adisp = OE2DActiveSiteDisplay(asite, opts)
OERenderActiveSite("OERenderActiveSite-fname-adisp.png", adisp)
```

See also

`OE2DActiveSiteDisplay`class`OE2DActiveSiteDisplayOptions`class*Depicting Active Site Interactions*example

```
bool OERenderActiveSite(OEPlatform::oeostream &os,
const std::string &extension,
const OE2DActiveSiteDisplay &adisp)
```

Writes the active site display into a stream.

*os*- The stream into which the active site is being written.
*ext*- The extension which determine the type of the image.
*adisp*- The
`OE2DActiveSiteDisplay`object that holds the data necessary to depict the interactions of an active site.

Example:

```
# initializing asite OEFragmentNetwork(receptor, ligand) object
opts = OE2DActiveSiteDisplayOptions(600.0, 400.0)
adisp = OE2DActiveSiteDisplay(asite, opts)
ofs = oeofstream("OERenderActiveSite-stream-adisp.png")
OERenderActiveSite(ofs, "png", adisp)
```

See also

`OE2DActiveSiteDisplay`class`OE2DActiveSiteDisplayOptions`class*Depicting Active Site Interactions*example

```
void OERenderColorOverlap(OEDepict::OEImageBase &image,
const OEShapeOverlapDisplay &odisp)
```

Renders the color overlap between a reference and a fit molecule.

*image*- The image on which the fit molecule is rendered along with circles representing the satisfied and missed color atoms of the reference molecule.
*odisp*- The
`OEShapeOverlapDisplay`object that holds the data necessary to depict the color overlap between the reference and the fit molecules.

The following code snippet shows how to use the `OERenderColorOverlap`
function. The image created is shown in
*Table: Example of using the OERenderColorOverlap function*.

```
cff = OEColorForceField()
cff.Init(OEColorFFType_ImplicitMillsDean)
qdisp = OEShapeQueryDisplay(refmol, cff)
opts = OEColorOverlapDisplayOptions()
opts.SetTitleLocation(OETitleLocation_Hidden)
arcpen = OEPen(OEGrey, OEGrey, OEFill_Off, 2.0, OEStipple_ShortDash)
opts.SetQuerySurfaceArcFxn(OEDefaultArcFxn(arcpen))
odisp = OEShapeOverlapDisplay(qdisp, fitmol, opts)
image = OEImage(420.0, 280.0)
OERenderColorOverlap(image, odisp)
```

Note

The color atom matches between the reference and the fit molecule are represented by circles (or half circles if two color atoms occupy the same space in 3D). Each circle corresponds to a color atom in the reference molecule. The color of the circle indicates the fitness of the color atom match in 3D. The lighter the color, the smaller the overlap between the reference and fit color atoms in 3D. Unfilled circles represent unmatched reference color atoms. If there is a good color atom match exist for a reference color atom in 3D, then the circle representing the color atom is positioned to the matching fit color atom in 2D.

(A) reference molecule (shape query) |
(B) fit molecule |

shape query depicted by the OERenderShapeQuery function |
color atom overlap depicted by the OERenderColorOverlap function |

Warning

When calling the `OERenderColorOverlap` function
**no overlay is performed to maximize the color overlap** between the
reference and the fit molecule, *i.e.*, the function simply calculates
the color overlap using the given 3D coordinates.

See also

`OEColorOverlapDisplayOptions`class`OERenderShapeQuery`function`OERenderShapeOverlap`function

```
void OERenderShapeOverlap(OEDepict::OEImageBase &image,
const OEShapeOverlapDisplay &odisp)
```

Renders the shape overlap between a reference and a fit molecule.

*image*- The image on which the fit molecule is rendered along with the property map and the molecule surface of the reference molecule representing the shape overlap.
*odisp*- The
`OEShapeOverlapDisplay`object that holds the data necessary to depict the shape overlap between the reference and the fit molecules.

The following code snippet shows how to use the `OERenderShapeOverlap`
function. The image created is shown in
*Table: Example of using the OERenderShapeOverlap function*.

```
cff = OEColorForceField()
cff.Init(OEColorFFType_ImplicitMillsDean)
qdisp = OEShapeQueryDisplay(refmol, cff)
opts = OEShapeOverlapDisplayOptions()
opts.SetTitleLocation(OETitleLocation_Hidden)
arcpen = OEPen(OEGrey, OEGrey, OEFill_Off, 2.0, OEStipple_ShortDash)
opts.SetQuerySurfaceArcFxn(OEDefaultArcFxn(arcpen))
odisp = OEShapeOverlapDisplay(qdisp, fitmol, opts)
image = OEImage(420.0, 280.0)
OERenderShapeOverlap(image, odisp)
```

Note

The shape overlap between the reference and the fit molecule is visualized
by using a property map (`OE2DPropMap`), *i.e.*, a 2D grid,
laid underneath the molecule structure, where the cells of the grid that
are colored brown indicate good 3D shape overlap between the reference and
the fit molecules.
Additionally, clashes between the molecular graph of the fit molecule and
2D molecule surface of the reference structure imply shape mismatch in 3D.

(A) reference molecule (shape query) |
(B) fit molecule |

shape query depicted by the OERenderShapeQuery function |
shape overlap depicted by the OERenderShapeOverlap function |

Warning

When calling the `OERenderShapeOverlap` function
**no overlay is performed to maximize the color overlap** between the
reference and the fit molecule, *i.e.*, the function simply calculates
the shape overlap using the given 3D coordinates.

See also

`OEShapeOverlapDisplayOptions`class`OERenderShapeQuery`function`OERenderColorOverlap`function

```
void OERenderShapeQuery(OEDepict::OEImageBase &image,
const OEShapeQueryDisplay &disp)
```

Renders the reference molecule of the shape overlap.

*image*- The image on which the reference molecule is rendered.
*disp*- The
`OEShapeQueryDisplay`object that holds the data necessary to depict the reference molecule of a shape overlap.

The following code snippet shows how to use the `OERenderShapeQuery`
function. The image created is shown in
*Figure: Example of using the OERenderShapeQuery function*.

```
opts = OEShapeQueryDisplayOptions()
opts.SetTitleLocation(OETitleLocation_Hidden)
arcpen = OEPen(OEWhite, OELightGrey, OEFill_On, 2.0)
opts.SetSurfaceArcFxn(OEDefaultArcFxn(arcpen))
cff = OEColorForceField()
cff.Init(OEColorFFType_ImplicitMillsDean)
disp = OEShapeQueryDisplay(refmol, cff, opts)
image = OEImage(420.0, 280.0)
OERenderShapeQuery(image, disp)
```

See also

`OEShapeQueryDisplayOptions`class`OERenderColorOverlap`function`OERenderShapeOverlap`function

```
bool OESetSurfaceArcFxn(OEChem::OEMolBase& mol,
OEChem::OEAtomBase *atom,
const OESurfaceArcFxnBase &func)
```

Attaches the arc drawing functor to the given atom.

*mol*- The molecule the atom belongs to.
*atom*- The atom to which the functor will be attached.
*func*- The functor that will be used to draw the arc segment(s) of
the molecule surface that correspond(s) to the given atom
when the
`OEDraw2DSurface`function in invoked.

See also

`OEClearSurfaceArcFxn`function`OEGetSurfaceArcFxn`function`OEHasSurfaceArcFxn`function

```
bool OESetup2DPropMap(OE2DPropMap &propmap, const OESystem::OEInterface &itf)
```

Initializes an `OE2DPropMap`
object from the parameters of a given interface.