RDKit
Open-source cheminformatics and machine learning.
RDKit::MolDraw2DSVG Class Reference

#include <MolDraw2DSVG.h>

Inheritance diagram for RDKit::MolDraw2DSVG:
RDKit::MolDraw2D

Public Member Functions

 MolDraw2DSVG (int width, int height, std::ostream &os, int panelWidth=-1, int panelHeight=-1)
 
 MolDraw2DSVG (int width, int height, int panelWidth=-1, int panelHeight=-1)
 
virtual void setFontSize (double new_size) override
 
virtual void setColour (const DrawColour &col) override
 sets the current draw color More...
 
void finishDrawing ()
 
virtual void drawLine (const Point2D &cds1, const Point2D &cds2) override
 draws a line from cds1 to cds2 using the current drawing style More...
 
virtual void drawString (const std::string &str, const Point2D &cds) override
 drawString centres the string on cds. More...
 
virtual void drawPolygon (const std::vector< Point2D > &cds) override
 draw a polygon More...
 
virtual void drawEllipse (const Point2D &cds1, const Point2D &cds2) override
 draw an ellipse More...
 
virtual void clearDrawing () override
 clears the contes of the drawingd] More...
 
virtual void drawWavyLine (const Point2D &cds1, const Point2D &cds2, const DrawColour &col1, const DrawColour &col2, unsigned int nSegments=16, double vertOffset=0.05) override
 draw a wavy line like that used to indicate unknown stereochemistry More...
 
virtual void getStringSize (const std::string &label, double &label_width, double &label_height) const override
 
std::string getDrawingText () const
 
void tagAtoms (const ROMol &mol)
 
void tagAtoms (const ROMol &mol, double radius, const std::map< std::string, std::string > &events={})
 
void addMoleculeMetadata (const ROMol &mol, int confId=-1) const
 
void addMoleculeMetadata (const std::vector< ROMol * > &mols, const std::vector< int > confIds={}) const
 
virtual void tagAtoms (const ROMol &mol)
 
- Public Member Functions inherited from RDKit::MolDraw2D
 MolDraw2D (int width, int height, int panelWidth, int panelHeight)
 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=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 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 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...
 
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, const std::vector< int > *highlight_atoms=nullptr, const std::map< int, double > *highlight_radii=nullptr)
 calculates the drawing scale (conversion from molecular coords -> drawing More...
 
void calculateScale ()
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
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 () 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
 returns the font size (in nolecule units) 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 DashPatterndash () 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 drawTriangle (const Point2D &cds1, const Point2D &cds2, const Point2D &cds3)
 draw a triange 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 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...
 
MolDrawOptionsdrawOptions ()
 returns our current drawing options More...
 
const MolDrawOptionsdrawOptions () const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
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...
 
virtual void drawArrow (const Point2D &cds1, const Point2D &cds2, bool asPolygon=false, double frac=0.05, double angle=M_PI/6)
 Draw an arrow with either lines or a filled head (when asPolygon is true) More...
 

Protected Member Functions

virtual void drawBond (const ROMol &mol, const Bond *bond, int at1_idx, int at2_idx, const std::vector< int > *highlight_atoms=nullptr, const std::map< int, DrawColour > *highlight_atom_map=nullptr, const std::vector< int > *highlight_bonds=nullptr, const std::map< int, DrawColour > *highlight_bond_map=nullptr) override
 
- Protected Member Functions inherited from RDKit::MolDraw2D
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)
 

Additional Inherited Members

- Public Types inherited from RDKit::MolDraw2D
enum  OrientType {
  C = 0, N, E, S,
  W
}
 
enum  TextDrawType { TextDrawNormal = 0, TextDrawSuperscript, TextDrawSubscript }
 

Detailed Description

Definition at line 27 of file MolDraw2DSVG.h.

Constructor & Destructor Documentation

◆ MolDraw2DSVG() [1/2]

RDKit::MolDraw2DSVG::MolDraw2DSVG ( int  width,
int  height,
std::ostream &  os,
int  panelWidth = -1,
int  panelHeight = -1 
)
inline

Definition at line 30 of file MolDraw2DSVG.h.

◆ MolDraw2DSVG() [2/2]

RDKit::MolDraw2DSVG::MolDraw2DSVG ( int  width,
int  height,
int  panelWidth = -1,
int  panelHeight = -1 
)
inline

Definition at line 36 of file MolDraw2DSVG.h.

Member Function Documentation

◆ addMoleculeMetadata() [1/2]

void RDKit::MolDraw2DSVG::addMoleculeMetadata ( const ROMol mol,
int  confId = -1 
) const

◆ addMoleculeMetadata() [2/2]

void RDKit::MolDraw2DSVG::addMoleculeMetadata ( const std::vector< ROMol * > &  mols,
const std::vector< int >  confIds = {} 
) const

◆ clearDrawing()

virtual void RDKit::MolDraw2DSVG::clearDrawing ( )
overridevirtual

clears the contes of the drawingd]

Implements RDKit::MolDraw2D.

◆ drawBond()

virtual void RDKit::MolDraw2DSVG::drawBond ( const ROMol mol,
const Bond bond,
int  at1_idx,
int  at2_idx,
const std::vector< int > *  highlight_atoms = nullptr,
const std::map< int, DrawColour > *  highlight_atom_map = nullptr,
const std::vector< int > *  highlight_bonds = nullptr,
const std::map< int, DrawColour > *  highlight_bond_map = nullptr 
)
overrideprotectedvirtual

Reimplemented from RDKit::MolDraw2D.

◆ drawEllipse()

virtual void RDKit::MolDraw2DSVG::drawEllipse ( const Point2D cds1,
const Point2D cds2 
)
overridevirtual

draw an ellipse

Reimplemented from RDKit::MolDraw2D.

◆ drawLine()

virtual void RDKit::MolDraw2DSVG::drawLine ( const Point2D cds1,
const Point2D cds2 
)
overridevirtual

draws a line from cds1 to cds2 using the current drawing style

Implements RDKit::MolDraw2D.

◆ drawPolygon()

virtual void RDKit::MolDraw2DSVG::drawPolygon ( const std::vector< Point2D > &  cds)
overridevirtual

draw a polygon

Implements RDKit::MolDraw2D.

◆ drawString()

virtual void RDKit::MolDraw2DSVG::drawString ( const std::string &  str,
const Point2D cds 
)
overridevirtual

drawString centres the string on cds.

Reimplemented from RDKit::MolDraw2D.

◆ drawWavyLine()

virtual void RDKit::MolDraw2DSVG::drawWavyLine ( const Point2D cds1,
const Point2D cds2,
const DrawColour col1,
const DrawColour col2,
unsigned int  nSegments = 16,
double  vertOffset = 0.05 
)
overridevirtual

draw a wavy line like that used to indicate unknown stereochemistry

Reimplemented from RDKit::MolDraw2D.

◆ finishDrawing()

void RDKit::MolDraw2DSVG::finishDrawing ( )

◆ getDrawingText()

std::string RDKit::MolDraw2DSVG::getDrawingText ( ) const
inline

Definition at line 69 of file MolDraw2DSVG.h.

◆ getStringSize()

virtual void RDKit::MolDraw2DSVG::getStringSize ( const std::string &  label,
double &  label_width,
double &  label_height 
) const
overridevirtual

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.

Implements RDKit::MolDraw2D.

◆ setColour()

virtual void RDKit::MolDraw2DSVG::setColour ( const DrawColour col)
overridevirtual

sets the current draw color

Reimplemented from RDKit::MolDraw2D.

◆ setFontSize()

virtual void RDKit::MolDraw2DSVG::setFontSize ( double  new_size)
overridevirtual

set font size in molecule coordinate units. That's probably Angstrom for RDKit.

Reimplemented from RDKit::MolDraw2D.

◆ tagAtoms() [1/3]

virtual void RDKit::MolDraw2D::tagAtoms
inline

adds additional information about the atoms to the output. Does not make sense for all renderers.

Definition at line 429 of file MolDraw2D.h.

◆ tagAtoms() [2/3]

void RDKit::MolDraw2DSVG::tagAtoms ( const ROMol mol)
inlinevirtual

adds additional information about the atoms to the output. Does not make sense for all renderers.

Reimplemented from RDKit::MolDraw2D.

Definition at line 74 of file MolDraw2DSVG.h.

References tagAtoms().

Referenced by tagAtoms().

◆ tagAtoms() [3/3]

void RDKit::MolDraw2DSVG::tagAtoms ( const ROMol mol,
double  radius,
const std::map< std::string, std::string > &  events = {} 
)

The documentation for this class was generated from the following file: