![]() |
RDKit
Open-source cheminformatics and machine learning.
|
MolDraw2D is the base class for doing 2D renderings of molecules. More...
#include <MolDraw2D.h>
Public Types | |
enum | OrientType { C = 0, N, E, S, W } |
enum | TextDrawType { TextDrawNormal = 0, TextDrawSuperscript, TextDrawSubscript } |
Public Member Functions | |
MolDraw2D (int width, int height, int panelWidth=-1, int panelHeight=-1) | |
constructor for a particular size More... | |
virtual | ~MolDraw2D () |
virtual void | drawMolecule (const ROMol &mol, const std::string &legend, const std::vector< int > *highlight_atoms, const std::vector< int > *highlight_bonds, const std::map< int, DrawColour > *highlight_atom_map=NULL, const std::map< int, DrawColour > *highlight_bond_map=NULL, const std::map< int, double > *highlight_radii=NULL, int confId=-1) |
draw a single molecule More... | |
virtual void | drawMolecule (const ROMol &mol, const std::vector< int > *highlight_atoms=NULL, const std::map< int, DrawColour > *highlight_map=NULL, const std::map< int, double > *highlight_radii=NULL, int confId=-1) |
virtual void | drawMolecule (const ROMol &mol, const std::string &legend, const std::vector< int > *highlight_atoms=NULL, const std::map< int, DrawColour > *highlight_map=NULL, const std::map< int, double > *highlight_radii=NULL, int confId=-1) |
virtual void | drawMolecule (const ROMol &mol, const std::vector< int > *highlight_atoms, const std::vector< int > *highlight_bonds, const std::map< int, DrawColour > *highlight_atom_map=NULL, const std::map< int, DrawColour > *highlight_bond_map=NULL, const std::map< int, double > *highlight_radii=NULL, int confId=-1) |
virtual void | drawMolecules (const std::vector< ROMol *> &mols, const std::vector< std::string > *legends=NULL, const std::vector< std::vector< int > > *highlight_atoms=NULL, const std::vector< std::vector< int > > *highlight_bonds=NULL, const std::vector< std::map< int, DrawColour > > *highlight_atom_maps=NULL, const std::vector< std::map< int, DrawColour > > *highlight_bond_maps=NULL, const std::vector< std::map< int, double > > *highlight_radii=NULL, const std::vector< int > *confIds=NULL) |
draw multiple molecules in a grid More... | |
virtual void | drawReaction (const ChemicalReaction &rxn, bool highlightByReactant=false, const std::vector< DrawColour > *highlightColorsReactants=NULL, const std::vector< int > *confIds=NULL) |
draw a ChemicalReaction More... | |
virtual int | width () const |
return the width of the drawing area. More... | |
virtual int | height () const |
return the height of the drawing area. More... | |
virtual int | panelWidth () const |
return the width of the drawing panels. More... | |
virtual int | panelHeight () const |
return the height of the drawing panels. More... | |
double | scale () const |
returns the drawing scale (conversion from molecular coords -> drawing More... | |
void | calculateScale (int width, int height) |
calculates the drawing scale (conversion from molecular coords -> drawing More... | |
void | calculateScale () |
void | setScale (int width, int height, const Point2D &minv, const Point2D &maxv) |
explicitly sets the scaling factors for the drawing More... | |
void | setOffset (int x, int y) |
sets the drawing offset (in drawing coords) More... | |
Point2D | offset () |
returns the drawing offset (in drawing coords) More... | |
virtual double | fontSize () const |
returns the font size (in nolecule units) More... | |
virtual void | setFontSize (double new_size) |
virtual void | setColour (const DrawColour &col) |
sets the current draw color More... | |
virtual DrawColour | colour () const |
returns the current draw color More... | |
virtual void | setDash (const DashPattern &patt) |
sets the current dash pattern More... | |
virtual const DashPattern & | dash () const |
returns the current dash pattern More... | |
virtual void | setLineWidth (int width) |
sets the current line width More... | |
virtual int | lineWidth () const |
returns the current line width More... | |
bool | setStringDrawMode (const std::string &instring, TextDrawType &draw_mode, int &i) const |
virtual void | clearDrawing ()=0 |
clears the contes of the drawingd] More... | |
virtual void | drawLine (const Point2D &cds1, const Point2D &cds2)=0 |
draws a line from cds1 to cds2 using the current drawing style More... | |
virtual void | getStringSize (const std::string &label, double &label_width, double &label_height) const =0 |
virtual void | drawString (const std::string &str, const Point2D &cds) |
drawString centres the string on cds. More... | |
virtual void | drawPolygon (const std::vector< Point2D > &cds)=0 |
draw a polygon More... | |
virtual void | drawTriangle (const Point2D &cds1, const Point2D &cds2, const Point2D &cds3) |
draw a triange More... | |
virtual void | drawEllipse (const Point2D &cds1, const Point2D &cds2) |
draw an ellipse More... | |
virtual void | drawRect (const Point2D &cds1, const Point2D &cds2) |
draw a rectangle More... | |
virtual void | drawAttachmentLine (const Point2D &cds1, const Point2D &cds2, const DrawColour &col, double len=1.0, unsigned int nSegments=16) |
virtual void | drawWavyLine (const Point2D &cds1, const Point2D &cds2, const DrawColour &col1, const DrawColour &col2, unsigned int nSegments=16, double vertOffset=0.05) |
draw a wavy line like that used to indicate unknown stereochemistry More... | |
virtual void | tagAtoms (const ROMol &mol) |
virtual bool | fillPolys () const |
set whether or not polygons are being filled More... | |
virtual void | setFillPolys (bool val) |
returns ehther or not polygons should be filled More... | |
MolDrawOptions & | drawOptions () |
returns our current drawing options More... | |
const MolDrawOptions & | drawOptions () const |
const std::vector< Point2D > & | atomCoords () const |
const std::vector< std::pair< std::string, OrientType > > & | atomSyms () const |
returns the atomic symbols of the current molecule More... | |
Transformations | |
virtual Point2D | getDrawCoords (const Point2D &mol_cds) const |
virtual Point2D | getDrawCoords (int at_num) const |
returns the drawing coordinates of a particular atom More... | |
virtual Point2D | getAtomCoords (const std::pair< int, int > &screen_cds) const |
virtual Point2D | getAtomCoords (const std::pair< double, double > &screen_cds) const |
virtual Point2D | getAtomCoords (int at_num) const |
returns the molecular coordinates of a particular atom More... | |
Protected Member Functions | |
virtual void | doContinuousHighlighting (const ROMol &mol, const std::vector< int > *highlight_atoms, const std::vector< int > *highlight_bonds, const std::map< int, DrawColour > *highlight_atom_map, const std::map< int, DrawColour > *highlight_bond_map, const std::map< int, double > *highlight_radii) |
virtual void | highlightCloseContacts () |
Point2D | calcPerpendicular (const Point2D &cds1, const Point2D &cds2) |
MolDraw2D is the base class for doing 2D renderings of molecules.
Definition at line 133 of file MolDraw2D.h.
Enumerator | |
---|---|
C | |
N | |
E | |
S | |
W |
Definition at line 135 of file MolDraw2D.h.
Enumerator | |
---|---|
TextDrawNormal | |
TextDrawSuperscript | |
TextDrawSubscript |
Definition at line 136 of file MolDraw2D.h.
RDKit::MolDraw2D::MolDraw2D | ( | int | width, |
int | height, | ||
int | panelWidth = -1 , |
||
int | panelHeight = -1 |
||
) |
constructor for a particular size
width | : width (in pixels) of the rendering |
height | : height (in pixels) of the rendering |
panelWidth | : (optional) width (in pixels) of a single panel |
panelHeight | : (optional) height (in pixels) of a single panel |
The panelWidth
and panelHeight
arguments are used to provide the sizes of the panels individual molecules are drawn in when drawMolecules()
is called.
|
inlinevirtual |
Definition at line 155 of file MolDraw2D.h.
|
inline |
returns the coordinates of the atoms of the current molecule in molecular coordinates
Definition at line 386 of file MolDraw2D.h.
References PRECONDITION.
|
inline |
returns the atomic symbols of the current molecule
Definition at line 391 of file MolDraw2D.h.
References PRECONDITION.
|
protected |
void RDKit::MolDraw2D::calculateScale | ( | int | width, |
int | height | ||
) |
calculates the drawing scale (conversion from molecular coords -> drawing
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 298 of file MolDraw2D.h.
References calculateScale().
Referenced by calculateScale().
|
pure virtual |
clears the contes of the drawingd]
Implemented in RDKit::MolDraw2Dwx, RDKit::MolDraw2DCairo, RDKit::MolDraw2DSVG, and RDKit::MolDraw2DQt.
|
inlinevirtual |
returns the current draw color
Definition at line 318 of file MolDraw2D.h.
|
inlinevirtual |
returns the current dash pattern
Definition at line 322 of file MolDraw2D.h.
|
protectedvirtual |
|
virtual |
draw a line indicating the presence of an attachment point (normally a squiggle line perpendicular to a bond)
draw an ellipse
Reimplemented in RDKit::MolDraw2DSVG.
draws a line from cds1
to cds2
using the current drawing style
Implemented in RDKit::MolDraw2DCairo, RDKit::MolDraw2Dwx, RDKit::MolDraw2DSVG, and RDKit::MolDraw2DQt.
|
virtual |
draw a single molecule
mol | : the molecule to draw |
legend | : the legend (to be drawn under the molecule) |
highlight_atoms | : (optional) vector of atom ids to highlight |
highlight_atoms | : (optional) vector of bond ids to highlight |
highlight_atom_map | : (optional) map from atomId -> DrawColour providing the highlight colors. If not provided the default highlight colour from drawOptions() will be used. |
highlight_bond_map | : (optional) map from bondId -> DrawColour providing the highlight colors. If not provided the default highlight colour from drawOptions() will be used. |
highlight_radii | : (optional) map from atomId -> radius (in molecule coordinates) for the radii of atomic highlights. If not provided the default value from drawOptions() will be used. |
confId | : (optional) conformer ID to be used for atomic coordinates |
|
virtual |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
virtual |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
virtual |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
virtual |
draw multiple molecules in a grid
mols | : the molecules to draw |
legends | : (optional) the legends (to be drawn under the molecules) |
highlight_atoms | : (optional) vectors of atom ids to highlight |
highlight_atoms | : (optional) vectors of bond ids to highlight |
highlight_atom_map | : (optional) maps from atomId -> DrawColour providing the highlight colors. If not provided the default highlight colour from drawOptions() will be used. |
highlight_bond_map | : (optional) maps from bondId -> DrawColour providing the highlight colors. If not provided the default highlight colour from drawOptions() will be used. |
highlight_radii | : (optional) maps from atomId -> radius (in molecule coordinates) for the radii of atomic highlights. If not provided the default value from drawOptions() will be used. |
confId | : (optional) conformer IDs to be used for atomic coordinates |
The panelWidth
and panelHeight
values will be used to determine the number of rows and columns to be drawn. Theres not a lot of error checking here, so if you provide too many molecules for the number of panes things are likely to get screweed up. If the number of rows or columns ends up being <= 1, molecules will be being drawn in a single row/column.
|
inline |
returns our current drawing options
Definition at line 380 of file MolDraw2D.h.
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 382 of file MolDraw2D.h.
|
pure virtual |
draw a polygon
Implemented in RDKit::MolDraw2Dwx, RDKit::MolDraw2DCairo, RDKit::MolDraw2DSVG, and RDKit::MolDraw2DQt.
|
virtual |
draw a ChemicalReaction
rxn | : the reaction to draw |
highlightByReactant | : (optional) if this is set, atoms and bonds will be highlighted based on which reactant they come from. Atom map numbers will not be shown. |
highlightColorsReactants | : (optional) provide a vector of colors for the reactant highlighting. |
confIds | : (optional) vector of confIds to use for rendering. These are numbered by reactants, then agents, then products. |
draw a rectangle
|
virtual |
drawString centres the string on cds.
Reimplemented in RDKit::MolDraw2DSVG.
|
virtual |
draw a triange
|
virtual |
draw a wavy line like that used to indicate unknown stereochemistry
Reimplemented in RDKit::MolDraw2DCairo, and RDKit::MolDraw2DSVG.
|
inlinevirtual |
set whether or not polygons are being filled
Definition at line 375 of file MolDraw2D.h.
|
inlinevirtual |
returns the font size (in nolecule units)
Definition at line 310 of file MolDraw2D.h.
|
virtual |
|
virtual |
transform a point from drawing coordinates to the molecule coordinate system
|
virtual |
returns the molecular coordinates of a particular atom
transform a point from the molecule coordinate system into the drawing coordinate system
|
virtual |
returns the drawing coordinates of a particular atom
|
pure virtual |
using the current scale, work out the size of the label in molecule coordinates.
Bear in mind when implementing this, that, for example, NH2 will appear as NH2 to convey that the 2 is a subscript, and this needs to accounted for in the width and height.
Implemented in RDKit::MolDraw2Dwx, RDKit::MolDraw2DCairo, RDKit::MolDraw2DSVG, and RDKit::MolDraw2DQt.
|
inlinevirtual |
return the height of the drawing area.
Definition at line 285 of file MolDraw2D.h.
|
protectedvirtual |
|
inlinevirtual |
returns the current line width
Definition at line 327 of file MolDraw2D.h.
|
inline |
returns the drawing offset (in drawing coords)
Definition at line 308 of file MolDraw2D.h.
|
inlinevirtual |
return the height of the drawing panels.
Definition at line 289 of file MolDraw2D.h.
|
inlinevirtual |
return the width of the drawing panels.
Definition at line 287 of file MolDraw2D.h.
|
inline |
returns the drawing scale (conversion from molecular coords -> drawing
Definition at line 293 of file MolDraw2D.h.
|
inlinevirtual |
sets the current draw color
Reimplemented in RDKit::MolDraw2DCairo, RDKit::MolDraw2Dwx, RDKit::MolDraw2DSVG, and RDKit::MolDraw2DQt.
Definition at line 316 of file MolDraw2D.h.
Referenced by RDKit::MolDraw2Dwx::setColour().
|
inlinevirtual |
sets the current dash pattern
Definition at line 320 of file MolDraw2D.h.
|
inlinevirtual |
returns ehther or not polygons should be filled
Definition at line 377 of file MolDraw2D.h.
|
virtual |
set font size in molecule coordinate units. That's probably Angstrom for RDKit.
Reimplemented in RDKit::MolDraw2DCairo, RDKit::MolDraw2DSVG, RDKit::MolDraw2Dwx, and RDKit::MolDraw2DQt.
Referenced by RDKit::MolDraw2Dwx::setFontSize().
|
inlinevirtual |
sets the current line width
Definition at line 325 of file MolDraw2D.h.
|
inline |
sets the drawing offset (in drawing coords)
Definition at line 303 of file MolDraw2D.h.
void RDKit::MolDraw2D::setScale | ( | int | width, |
int | height, | ||
const Point2D & | minv, | ||
const Point2D & | maxv | ||
) |
explicitly sets the scaling factors for the drawing
bool RDKit::MolDraw2D::setStringDrawMode | ( | const std::string & | instring, |
TextDrawType & | draw_mode, | ||
int & | i | ||
) | const |
establishes whether to put string draw mode into super- or sub-script mode based on contents of instring from i onwards. Increments i appropriately
|
inlinevirtual |
adds additional information about the atoms to the output. Does not make sense for all renderers.
Reimplemented in RDKit::MolDraw2DSVG.
Definition at line 373 of file MolDraw2D.h.
References RDUNUSED_PARAM.
|
inlinevirtual |
return the width of the drawing area.
Definition at line 283 of file MolDraw2D.h.