![]() |
RDKit
Open-source cheminformatics and machine learning.
|
MolDraw2D is the base class for doing 2D renderings of molecules. More...
#include <MolDraw2D.h>
Public Member Functions | |
MolDraw2D (int width, int height, int panelWidth, int panelHeight) | |
constructor for a particular size More... | |
MolDraw2D (const MolDraw2D &rhs)=delete | |
MolDraw2D (MolDraw2D &&rhs)=delete | |
MolDraw2D & | operator= (const MolDraw2D &rhs)=delete |
MolDraw2D & | operator= (MolDraw2D &&rhs)=delete |
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=nullptr, const std::map< int, DrawColour > *highlight_bond_map=nullptr, const std::map< int, double > *highlight_radii=nullptr, int confId=-1) |
draw a single molecule More... | |
virtual void | drawMolecule (const ROMol &mol, const std::vector< int > *highlight_atoms=nullptr, const std::map< int, DrawColour > *highlight_map=nullptr, const std::map< int, double > *highlight_radii=nullptr, int confId=-1) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
virtual void | drawMolecule (const ROMol &mol, const std::string &legend, const std::vector< int > *highlight_atoms=nullptr, const std::map< int, DrawColour > *highlight_map=nullptr, const std::map< int, double > *highlight_radii=nullptr, int confId=-1) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
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=nullptr, const std::map< int, DrawColour > *highlight_bond_map=nullptr, const std::map< int, double > *highlight_radii=nullptr, int confId=-1) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
virtual void | drawMoleculeWithHighlights (const ROMol &mol, const std::string &legend, const std::map< int, std::vector< DrawColour > > &highlight_atom_map, const std::map< int, std::vector< DrawColour > > &highlight_bond_map, const std::map< int, double > &highlight_radii, const std::map< int, int > &highlight_linewidth_multipliers, int confId=-1) |
draw molecule with multiple colours allowed per atom. More... | |
virtual void | drawMolecules (const std::vector< ROMol * > &mols, const std::vector< std::string > *legends=nullptr, const std::vector< std::vector< int > > *highlight_atoms=nullptr, const std::vector< std::vector< int > > *highlight_bonds=nullptr, const std::vector< std::map< int, DrawColour > > *highlight_atom_maps=nullptr, const std::vector< std::map< int, DrawColour > > *highlight_bond_maps=nullptr, const std::vector< std::map< int, double > > *highlight_radii=nullptr, const std::vector< int > *confIds=nullptr) |
draw multiple molecules in a grid More... | |
virtual void | drawReaction (const ChemicalReaction &rxn, bool highlightByReactant=false, const std::vector< DrawColour > *highlightColorsReactants=nullptr, const std::vector< int > *confIds=nullptr) |
draw a ChemicalReaction More... | |
virtual void | clearDrawing () |
clears the contents of the drawing More... | |
virtual void | drawLine (const Point2D &cds1, const Point2D &cds2, bool rawCoords=false)=0 |
virtual void | drawPolygon (const std::vector< Point2D > &cds, bool rawCoords=false)=0 |
virtual void | drawLine (const Point2D &cds1, const Point2D &cds2, const DrawColour &col1, const DrawColour &col2, bool rawCoords=false) |
draw a line where the ends are different colours More... | |
virtual void | drawTriangle (const Point2D &cds1, const Point2D &cds2, const Point2D &cds3, bool rawCoords=false) |
draw a triangle More... | |
virtual void | drawEllipse (const Point2D &cds1, const Point2D &cds2, bool rawCoords=false) |
draw an ellipse More... | |
virtual void | drawArc (const Point2D ¢re, double radius, double ang1, double ang2, bool rawCoords=false) |
virtual void | drawArc (const Point2D ¢re, double xradius, double yradius, double ang1, double ang2, bool rawCoords=false) |
virtual void | drawRect (const Point2D &cds1, const Point2D &cds2, bool rawCoords=false) |
draw a rectangle given two opposite corners More... | |
virtual void | drawAttachmentLine (const Point2D &cds1, const Point2D &cds2, const DrawColour &col, double len=1.0, unsigned int nSegments=16, bool rawCoords=false) |
virtual void | drawWavyLine (const Point2D &cds1, const Point2D &cds2, const DrawColour &col1, const DrawColour &col2, unsigned int nSegments=16, double vertOffset=0.05, bool rawCoords=false) |
draw a wavy line like that used to indicate unknown stereochemistry More... | |
virtual void | drawArrow (const Point2D &cds1, const Point2D &cds2, bool asPolygon=false, double frac=0.05, double angle=M_PI/6, const DrawColour &col=DrawColour(0.0, 0.0, 0.0), bool rawCoords=false) |
Draw an arrow with either lines or a filled head (when asPolygon is true) More... | |
virtual void | drawPlus (const Point2D &cds, int plusWidth, const DrawColour &col, bool rawCoords=false) |
virtual void | drawString (const std::string &str, const Point2D &cds, bool rawCoords=false) |
drawString centres the string on cds. More... | |
virtual void | drawString (const std::string &str, const Point2D &cds, MolDraw2D_detail::TextAlignType align, bool rawCoords=false) |
const std::vector< Point2D > & | atomCoords () const |
const std::vector< std::pair< std::string, MolDraw2D_detail::OrientType > > & | atomSyms () const |
returns the atomic symbols of the activeMolIdx_ molecule 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... | |
virtual int | drawHeight () const |
virtual double | getDrawLineWidth () const |
double | scale () const |
void | setScale (double newScale) |
explicitly sets the scaling factors for the drawing More... | |
void | setScale (int width, int height, const Point2D &minv, const Point2D &maxv, const ROMol *mol=nullptr) |
void | setOffset (int x, int y) |
sets the drawing offset (in drawing coords) More... | |
Point2D | offset () const |
returns the drawing offset (in drawing coords) More... | |
Point2D | minPt () const |
returns the minimum point of the drawing (in molecular coords) More... | |
Point2D | range () const |
returns the width and height of the grid (in molecular coords) More... | |
virtual double | fontSize () const |
font size in drawing coordinate units. That's probably pixels. 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 (double width) |
sets the current line width More... | |
virtual double | lineWidth () const |
returns the current line width More... | |
virtual void | getStringSize (const std::string &label, double &label_width, double &label_height) const |
void | getLabelSize (const std::string &label, MolDraw2D_detail::OrientType orient, double &label_width, double &label_height) const |
void | getStringExtremes (const std::string &label, MolDraw2D_detail::OrientType orient, const Point2D &cds, double &x_min, double &y_min, double &x_max, double &y_max) const |
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 either or not polygons should be filled More... | |
MolDrawOptions & | drawOptions () |
returns our current drawing options More... | |
const MolDrawOptions & | drawOptions () const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
virtual bool | supportsAnnotations () const |
void | setActiveMolIdx (int newIdx) |
bool | hasActiveAtmIdx () const |
int | getActiveAtmIdx1 () const |
int | getActiveAtmIdx2 () const |
void | setActiveAtmIdx (int at_idx1=-1, int at_idx2=-1) |
bool | hasActiveBndIdx () const |
int | getActiveBndIdx () const |
void | setActiveBndIdx (int bnd_idx=-1) |
void | setActiveClass (std::string actClass=std::string("")) |
std::string | getActiveClass () const |
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 |
Protected Attributes | |
std::unique_ptr< MolDraw2D_detail::DrawText > | text_drawer_ |
std::string | d_activeClass |
bool | needs_init_ = true |
std::vector< std::pair< std::string, std::string > > | d_metadata |
unsigned int | d_numMetadataEntries = 0 |
MolDraw2D is the base class for doing 2D renderings of molecules.
Definition at line 47 of file MolDraw2D.h.
RDKit::MolDraw2D::MolDraw2D | ( | int | width, |
int | height, | ||
int | panelWidth, | ||
int | panelHeight | ||
) |
constructor for a particular size
width | : width (in pixels) of the rendering set this to -1 to have the canvas size set automatically |
height | : height (in pixels) of the rendering set this to -1 to have the canvas size set automatically |
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.
|
delete |
|
delete |
|
virtual |
const std::vector< Point2D > & RDKit::MolDraw2D::atomCoords | ( | ) | const |
returns the coordinates of the atoms of the activeMolIdx_ molecule in molecular coordinates.
const std::vector< std::pair< std::string, MolDraw2D_detail::OrientType > > & RDKit::MolDraw2D::atomSyms | ( | ) | const |
returns the atomic symbols of the activeMolIdx_ molecule
|
inlinevirtual |
clears the contents of the drawing
Reimplemented in RDKit::MolDraw2Dwx, RDKit::MolDraw2DCairo, RDKit::MolDraw2DJS, RDKit::MolDraw2DSVG, and RDKit::MolDraw2DQt.
Definition at line 198 of file MolDraw2D.h.
|
inlinevirtual |
returns the current draw color
Definition at line 354 of file MolDraw2D.h.
|
inlinevirtual |
returns the current dash pattern
Definition at line 358 of file MolDraw2D.h.
|
virtual |
|
virtual |
|
virtual |
Draw an arrow with either lines or a filled head (when asPolygon is true)
|
virtual |
draw a line indicating the presence of an attachment point (normally a squiggle line perpendicular to a bond)
|
virtual |
draw an ellipse
Reimplemented in RDKit::MolDraw2DJS, and RDKit::MolDraw2DSVG.
|
inlinevirtual |
Definition at line 323 of file MolDraw2D.h.
|
pure virtual |
draws a line from cds1
to cds2
using the current drawing style in atom coords. If rawCoords is passed as true, the coordinates are used as is, if not they are assumed to be in the molecule coordinate frame and converted with getDrawCoords into canvas coords.
Implemented in RDKit::MolDraw2DCairo, RDKit::MolDraw2DJS, RDKit::MolDraw2DSVG, and RDKit::MolDraw2DQt.
|
virtual |
draw a line where the ends are different colours
A Whole bunch of drawing primitives. They may be over-ridden by different renderers, or they may be implemented in terms of drawLine and drawPolygon above. If rawCoords is passed as true,
|
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 screwed up. If the number of rows or columns ends up being <= 1, molecules will be being drawn in a single row/column.
|
virtual |
draw molecule with multiple colours allowed per atom.
mol | : the molecule to draw |
legend | : the legend (to be drawn under the molecule) |
highlight_atom_map | : map from atomId -> DrawColours providing the highlight colours. |
highlight_bond_map | : map from bondId -> DrawColours providing the highlight colours. |
highlight_radii | : map from atomId -> radius (in molecule coordinates) for the radii of atomic highlights. If not provided for an index, the default value from drawOptions() will be used. |
highlight_linewidth_multipliers | : map from atomId -> int, used to vary the width the highlight lines. Only active if drawOptions().fillHighlights is false. |
confId | : (optional) conformer ID to be used for atomic coordinates |
|
inline |
returns our current drawing options
Definition at line 394 of file MolDraw2D.h.
Referenced by RDKit::setDarkMode(), and RDKit::setMonochromeMode().
|
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 396 of file MolDraw2D.h.
|
virtual |
|
pure virtual |
draw a polygon. Note that if fillPolys() returns false, it doesn't close the path. If you want it to in that case, you do it explicitly yourself. If rawCoords is passed as true, the coordinates are used as is, if not they are assumed to be in the molecule coordinate frame and converted with getDrawCoords into canvas coords.
Implemented in RDKit::MolDraw2DCairo, RDKit::MolDraw2DJS, 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. |
|
virtual |
draw a rectangle given two opposite corners
|
virtual |
drawString centres the string on cds.
|
virtual |
|
virtual |
draw a triangle
|
virtual |
draw a wavy line like that used to indicate unknown stereochemistry
Reimplemented in RDKit::MolDraw2DCairo, RDKit::MolDraw2DJS, RDKit::MolDraw2DSVG, and RDKit::MolDraw2DQt.
|
inlinevirtual |
set whether or not polygons are being filled
Definition at line 389 of file MolDraw2D.h.
|
virtual |
font size in drawing coordinate units. That's probably pixels.
|
inline |
Definition at line 402 of file MolDraw2D.h.
|
inline |
Definition at line 403 of file MolDraw2D.h.
|
inline |
Definition at line 406 of file MolDraw2D.h.
|
inline |
Definition at line 413 of file MolDraw2D.h.
|
virtual |
transform a point from drawing coordinates to the molecule coordinate system. Prefers globalDrawTrans_ if it exists, otherwise uses drawMols_[activeMolIdx_].
|
virtual |
Prefers globalDrawTrans_ if it exists, otherwise uses drawMols_[activeMolIdx_].
|
virtual |
returns the molecular coordinates of a particular atom. at_num refers to the atom in activeMolIdx_.
transform a point from the molecule coordinate system into the drawing coordinate system. Prefers globalDrawTrans_ if it exists, otherwise uses drawMols_[activeMolIdx_].
|
virtual |
returns the drawing coordinates of a particular atom
|
virtual |
void RDKit::MolDraw2D::getLabelSize | ( | const std::string & | label, |
MolDraw2D_detail::OrientType | orient, | ||
double & | label_width, | ||
double & | label_height | ||
) | const |
void RDKit::MolDraw2D::getStringExtremes | ( | const std::string & | label, |
MolDraw2D_detail::OrientType | orient, | ||
const Point2D & | cds, | ||
double & | x_min, | ||
double & | y_min, | ||
double & | x_max, | ||
double & | y_max | ||
) | const |
|
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.
Reimplemented in RDKit::MolDraw2Dwx.
|
inline |
Definition at line 401 of file MolDraw2D.h.
|
inline |
Definition at line 405 of file MolDraw2D.h.
|
inlinevirtual |
return the height of the drawing area.
Definition at line 318 of file MolDraw2D.h.
|
inlinevirtual |
returns the current line width
Definition at line 363 of file MolDraw2D.h.
Point2D RDKit::MolDraw2D::minPt | ( | ) | const |
returns the minimum point of the drawing (in molecular coords)
|
inline |
returns the drawing offset (in drawing coords)
Definition at line 340 of file MolDraw2D.h.
|
inlinevirtual |
return the height of the drawing panels.
Definition at line 322 of file MolDraw2D.h.
|
inlinevirtual |
return the width of the drawing panels.
Definition at line 320 of file MolDraw2D.h.
Point2D RDKit::MolDraw2D::range | ( | ) | const |
returns the width and height of the grid (in molecular coords)
double RDKit::MolDraw2D::scale | ( | ) | const |
returns the drawing scale (conversion from molecular coords -> drawing coords)
void RDKit::MolDraw2D::setActiveAtmIdx | ( | int | at_idx1 = -1 , |
int | at_idx2 = -1 |
||
) |
|
inline |
Definition at line 407 of file MolDraw2D.h.
|
inline |
Definition at line 410 of file MolDraw2D.h.
void RDKit::MolDraw2D::setActiveMolIdx | ( | int | newIdx | ) |
|
inlinevirtual |
sets the current draw color
Reimplemented in RDKit::MolDraw2Dwx, RDKit::MolDraw2DCairo, RDKit::MolDraw2DSVG, and RDKit::MolDraw2DQt.
Definition at line 352 of file MolDraw2D.h.
Referenced by RDKit::MolDraw2Dwx::setColour().
|
inlinevirtual |
sets the current dash pattern
Definition at line 356 of file MolDraw2D.h.
|
inlinevirtual |
returns either or not polygons should be filled
Definition at line 391 of file MolDraw2D.h.
|
virtual |
Reimplemented in RDKit::MolDraw2Dwx.
Referenced by RDKit::MolDraw2Dwx::setFontSize().
|
inlinevirtual |
sets the current line width
Definition at line 361 of file MolDraw2D.h.
|
inline |
sets the drawing offset (in drawing coords)
Definition at line 335 of file MolDraw2D.h.
void RDKit::MolDraw2D::setScale | ( | double | newScale | ) |
explicitly sets the scaling factors for the drawing
void RDKit::MolDraw2D::setScale | ( | int | width, |
int | height, | ||
const Point2D & | minv, | ||
const Point2D & | maxv, | ||
const ROMol * | mol = nullptr |
||
) |
|
inlinevirtual |
Definition at line 398 of file MolDraw2D.h.
|
inlinevirtual |
adds additional information about the atoms to the output. Does not make sense for all renderers.
Reimplemented in RDKit::MolDraw2DSVG, and RDKit::MolDraw2DSVG.
Definition at line 387 of file MolDraw2D.h.
References RDUNUSED_PARAM.
|
inlinevirtual |
return the width of the drawing area.
Definition at line 316 of file MolDraw2D.h.
|
protected |
Definition at line 417 of file MolDraw2D.h.
|
protected |
Definition at line 419 of file MolDraw2D.h.
|
protected |
Definition at line 420 of file MolDraw2D.h.
|
protected |
Definition at line 418 of file MolDraw2D.h.
|
protected |
Definition at line 416 of file MolDraw2D.h.