14#ifndef RDKIT_MOLDRAW2DHELPERS_H
15#define RDKIT_MOLDRAW2DHELPERS_H
23namespace MolDraw2D_detail {
40 double r = 0.0,
g = 0.0,
b = 0.0,
a = 1.0;
62 return {
r / v,
g / v,
b / v,
a / v};
162 bool atomLabelDeuteriumTritium =
164 bool dummiesAreAttachments =
false;
165 bool circleAtoms =
true;
166 bool splitBonds =
false;
170 bool continuousHighlight =
true;
172 bool fillHighlights =
true;
174 double highlightRadius = 0.3;
176 int flagCloseContactsDist = 3;
178 bool includeAtomTags =
181 bool clearBackground =
true;
187 int legendFontSize = 16;
189 double legendFraction =
191 int maxFontSize = 40;
197 double annotationFontScale = 0.5;
199 std::string fontFile =
"";
205 double multipleBondOffset = 0.15;
210 double componentPadding = 0.0;
212 double additionalAtomLabelPadding = 0.0;
228 double bondLineWidth = 2.0;
229 bool scaleBondWidth =
false;
230 bool scaleHighlightBondWidth =
true;
231 int highlightBondWidthMultiplier = 8;
233 bool prepareMolsBeforeDrawing =
true;
246 double fixedBondLength =
256 bool addAtomIndices =
false;
257 bool addBondIndices =
false;
258 bool isotopeLabels =
true;
259 bool dummyIsotopeLabels =
true;
261 bool addStereoAnnotation =
false;
262 bool showAllCIPCodes =
false;
264 bool atomHighlightsAreCircles =
false;
268 MultiColourHighlightStyle::CIRCLEANDLINE;
269 bool centreMoleculesBeforeDrawing =
false;
271 bool explicitMethyl =
false;
272 bool includeRadicals =
275 bool includeMetadata =
278 bool comicMode =
false;
281 int variableBondWidthMultiplier = 16;
283 double variableAtomRadius = 0.4;
287 bool includeChiralFlagLabel =
289 bool simplifiedStereoGroupLabel =
293 bool unspecifiedStereoIsUnknown =
false;
298 bool singleColourWedgeBonds =
302 bool useMolBlockWedging =
false;
305 double scalingFactor = 20.0;
307 double baseFontSize =
311 bool drawMolsSameScale =
true;
314 bool useComplexQueryAtomSymbols =
319 bool bracketsAroundAtomLists =
true;
321 bool standardColoursForHighlightedAtoms =
326 highlightColourPalette.emplace_back(
328 highlightColourPalette.emplace_back(
DrawColour(1., .8, .6));
329 highlightColourPalette.emplace_back(
331 highlightColourPalette.emplace_back(
333 highlightColourPalette.emplace_back(
DrawColour(.87, .63, .87));
334 highlightColourPalette.emplace_back(
336 highlightColourPalette.emplace_back(
338 highlightColourPalette.emplace_back(
DrawColour(.64, .76, .34));
339 highlightColourPalette.emplace_back(
341 highlightColourPalette.emplace_back(
DrawColour(.20, .63, .79));
#define PRECONDITION(expr, mess)
#define RDKIT_MOLDRAW2D_EXPORT
std::vector< double > DashPattern
bool rdvalue_is(const RDValue_cast_t)
static const double lineWidthScaleFactor
MultiColourHighlightStyle
void assignDefaultPalette(ColourPalette &palette)
use the RDKit's default palette r
void assignAvalonPalette(ColourPalette &palette)
use the color palette from the Avalon renderer
void assignDarkModePalette(ColourPalette &palette)
std::map< int, DrawColour > ColourPalette
void assignBWPalette(ColourPalette &palette)
void assignCDKPalette(ColourPalette &palette)
use (part of) the CDK color palette
bool feq(const DrawColour &other, double tol=0.001, bool ignoreAlpha=true) const
DrawColour operator+(const DrawColour &other) const
DrawColour operator/(double v) const
DrawColour operator*(double v) const
DrawColour(double r, double g, double b, double a=1.0)
bool operator!=(const DrawColour &other) const
DrawColour operator-(const DrawColour &other) const
bool operator==(const DrawColour &other) const
std::vector< std::vector< int > > atomRegions
std::map< int, std::string > atomLabels
ColourPalette atomColourPalette
std::vector< DrawColour > highlightColourPalette