mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-04 21:54:27 +08:00
* First working lasso. * Adjust lasso radii in non-overlapping sets of atoms. * Move MultiColourHighlightStyle enum out of MolDrawOptions class. Add Python wrappers. * Update copyright notices. * Fix bug where order of lines off arc wasn't clockwise, so circle wasn't trimmed properly. * Use highlight_bond_map in lassos. * Fix bug in colour selection for multi-coloured lasso bonds. * Response to review. * Attempt to add new option to JSON input. * Fix bug with larger radii. * Fix yet another bug with the arc tidying. * Remove separate colouring of bond highlights in Lasso. * Fix intersection between line and arc not on end of line. * Another pernickety fix. * Tidy. * I should know better than to use the web editor --------- Co-authored-by: David Cosgrove <david@cozchemix.co.uk> Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
51 lines
2.0 KiB
C++
51 lines
2.0 KiB
C++
//
|
|
// Copyright (C) 2021-2023 David Cosgrove and other RDKit contributors
|
|
//
|
|
// @@ All Rights Reserved @@
|
|
// This file is part of the RDKit.
|
|
// The contents are covered by the terms of the BSD license
|
|
// which is included in the file license.txt, found at the root
|
|
// of the RDKit source tree.
|
|
//
|
|
// Original author: David Cosgrove (CozChemIx Limited)
|
|
//
|
|
|
|
#include <GraphMol/RWMol.h>
|
|
#include <GraphMol/MolDraw2D/MolDraw2DDetails.h>
|
|
#include <GraphMol/MolDraw2D/DrawMolMCH.h>
|
|
|
|
namespace RDKit {
|
|
namespace MolDraw2D_detail {
|
|
|
|
// ****************************************************************************
|
|
DrawMolMCH::DrawMolMCH(
|
|
const ROMol &mol, const std::string &legend, int width, int height,
|
|
MolDrawOptions &drawOptions, DrawText &textDrawer,
|
|
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)
|
|
: DrawMol(mol, legend, width, height, drawOptions, textDrawer, nullptr,
|
|
nullptr, nullptr, nullptr, nullptr, &highlight_radii, confId),
|
|
mcHighlightAtomMap_(highlight_atom_map),
|
|
mcHighlightBondMap_(highlight_bond_map),
|
|
highlightLinewidthMultipliers_(highlight_linewidth_multipliers) {}
|
|
|
|
// ****************************************************************************
|
|
void DrawMolMCH::extractHighlights(double scale) {
|
|
DrawMol::extractHighlights(scale);
|
|
extractMCHighlights();
|
|
}
|
|
|
|
// ****************************************************************************
|
|
void DrawMolMCH::getAtomRadius(unsigned int atomIdx, double &xradius,
|
|
double &yradius) const {
|
|
xradius = drawOptions_.highlightRadius;
|
|
yradius = xradius;
|
|
if (highlightRadii_.find(atomIdx) != highlightRadii_.end()) {
|
|
xradius = highlightRadii_.find(atomIdx)->second;
|
|
yradius = xradius;
|
|
}
|
|
}
|
|
} // namespace MolDraw2D_detail
|
|
} // namespace RDKit
|