mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-06 22:39:55 +08:00
2dbf83898ddc4e932184212dbda00aad47cfb288
3 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
578b56a7c5 |
Resolve clashing atom labels in 2D drawing (#8074)
* Move atom labels round if they clash. * Tidy. * Re-work orientation logic. Remove virtual fns from AtomSymbol. --------- Co-authored-by: David Cosgrove <david@cozchemix.co.uk> |
||
|
|
f9b47d907f |
Add ACS1996 drawing style (#5425)
* Started on ACS 1996 drawing mode. Significant change (not by itself, sadly) is that MolDrawOptions::lineWidth has changed from int to double to allow for ACS requirement of 0.6px bond widths. * Wavy lines and dashed wedges. * Better dashed wedges. * Rounder wavy bonds, same as SVG. * Added FreeSans font for ACS1996 mode. * Add help functions to write enum classes to ostream. * Dashed wedge separation now 2.5px between line edges rather than line middles. Therefore wider gap between lines. * Increase offset for wavy bond. Get classes for atoms and bonds in wavy bond correct. * For SMILES input, option to force wavy and crossed bonds for unspecified stereochem. * Tidy debugging. * Extra space round atom labels. * Extra space between chars in freetype string. * Reformats. * Change double bond offset. * Improve ring double bonds. * Simple non-ring double bonds all working. * Tidy. * All double bonds seem good. * Remove redundant function. Move calcTripleBondLines into DrawMol for consistency with calcDoubleBondLines. Use doubleBondOffset for wavy lines. * Correct spacing between FT chars. * Tidying. * Use MolBlock wedging if there is any. Needs to be made an option. * If dashed wedge thick end has bonds of it, stop one dash short. * Adjust solid wedge ends to line with attached bonds. * Width of wedge ends now based on double bond separation. * Change catch_tests.cpp * Rounder waves in wavy lines. * Dashed wedges same width even if one dash less.. * Embedded Roboto-Regular font in code. * Fix docstrings. * doubleBondTerminal swapped ends. Deal with O2 - 2 terminal atoms of degree 1. * Fix terminal double bonds. * Slightly fatter truncated wedge bonds. * Fix crash on complicated double bonds. * Control more assert tests with DO_TEST_ASSERT. * Fix 2 colour solid wedges. Fix slanted wedge for morphine (test1_5). * Change definittion of multipleBondOffset to fraction of mean bond length. * Don't slant end of solid wedge to atom symbol. * Fix wiggle separation. * Fix 2-colour terminal double bonds. * Fix colours on triple bonds. * Don't attempt to draw non-existent points in triangle.. * Symmetric bond for P=O and like. * Fix query bonds. * Reformatting. * Tidy up use of font. * Add FreeSans font and license to $RDBASE/Data/Fonts. * Draw unspecified stereo as unknown. * Add check_file_hash. * Tidying. * Tidying. * Start Python wrappers. * Fix solid wedges for 3-connected atoms. * Docstrings. * Tidying. * Alter width of bond highlights in ACS 1996 mode. * Expose setACS1996Options and mean BondLength in Python. * Expose drawMolACS1996Cairo in Python. Docstrings. * Extra padding between legend and picture in flexicanvas. * Python tests. * Tidy catch tests. * Tidying. * Fix catch tests. * Fix no Freetype tests. * Draw solid wedge more sensibly.. * Fix bond end at solid wedge. * Tidy. * Fix Python Cairo build issues. * Fix wedge end shape for terminal double bonds. * Hide the joins at the bond ends. * Fix gcc pickiness. * Extra test for no atom labels. * Change where it looks for FreeSans.ttf for ACS1996 drawings. * Same number of waves for wavy bonds in SVG and Cairo. * Same number of waves for wavy bonds in SVG and Cairo. * rename unspecifiedStereoIsUnknown to markUnspecifiedStereoAsUnknown and move to MolFileStereochem.h * refactor use of iterators * py docs update * undo a bunch of bad formatting changes * remove FreeSans * get windows builds working * Fix problem with Windows build. * Changes in response to review. * Align description of unspecifiedStereoIsUnknown in C++ to match Python. * Still working on file open modes. * Took out extraneous functions for drawing in ACS1996 mode, including the one that was breaking the windows build. * Add RDKIT_MOLDRAW2D_EXPORT. * Fix expected test results. * Clarified warning. * RDKIT_MOLDRAW2D_EXPORT missing. * Windows! * Update Code/GraphMol/MolDraw2D/rxn_test1.cpp Co-authored-by: David Cosgrove <david@cozchemix.co.uk> Co-authored-by: greg landrum <greg.landrum@gmail.com> |
||
|
|
f93016a77f |
Refactor mol draw2 d (#4948)
* MolDraw2D refactoring - rename setupMoleculeDraw->initMoleculeDraw - track whether or not initDrawing() has been called - centralize calls to initDrawing() and clearDrawing() into initMoleculeDraw() - update svg hashes in tests * update some expected test results * support changing font scale and default scale add reaction test * does not work... this is hard * all tests pass * do something about legends * docs * more tests * more docs * cleanup * going around in circles... hopefully converging * cleanup * Single bond skeleton works. * Simple bond drawing seems to be working. * Initial addition of atom symbols. * Stash of not-quite-working atom symbols prior to major surgery. * Atom symbols seem to be working. Major surgery not required, just inverted Y coords at the outset. * Add classes to atom labels. * Renamed AtomLabel AtomSymbol. * Add highlights. * Fix bug from PR4839. * Molecule note. * Added atom notes. * Added bond notes. * Extract radicals. * Annotation via new DrawAnnotation class. * Add brackets. * Add linknodes. * Add close contacts. * Add attachment points. Fix wavy lines. * Draw molecules in grid. * Tidy. * Fix radicals when font has hit maxFontSize. Make getDrawCoords work. * Draw primitives take atom or draw coords. * Fix legends. * More fixing for tests. DrawMol::setScale now takes font scale as well. * tidy debug writes * Variable fraction of panel for legend. * Better legend positioning. * Fix sub- and super-script spacing. Added spaces to Freetype strings. * Basic reaction drawing. * Reaction highlighting. * Minor tweak to reacctions. * Tweaked reaction DrawMol widths. * Fix atomTags. * Fix catch tests except contours. * Contouring working in catch_tests.cpp. * Fix catch tests. * AtomSymbol and DrawAnnotation into MolDraw2D_detail. * DrawMol and DrawShape into MolDraw2D_detail. * DrawText inot MolDraw2D_detail. * Machete out. * DrawText goes private. * Move some stuff about, such as StringRect to its own header. * Python wrapper compiles (but crashes when Draw imported). * More tidying. Python DrawArrow failing. * Linux changes. * Fixed error in DrawShapeArrow spotted by valgrind. Fixed some warnings from gcc. * Maybe fixed DrawArrow. * Added basic argparse interface. * Added newlines. * Changes in response to review. Non-const args in move constructors and operator=. Added missing classes to MolDraw2D_detail. Deleted move operator= where it had been forgotten. Fixed copyright dates. * Deleted all default c'tors in derived classes. * Changes in response to review: Wedge widths now a proportion of mean bond length in draw coords.. Add padding below legend when positioning it. * Fix tests. * Fix the private/protected mess of the new classes. * Moved doesLineIntersect etc. * Reinstate original alignString for non-FT drawings. * More faffing about with reaction layouts. * Fix font sizes in testGitHub3391. * Fix atom notes fitting inside fat wedges. * Fix molecule annotation font size. * More fixes of rectangle/triangle collision detection. * Test for highlight linewidth multiplier. * Use push_back not emplace_back. * Attempt at better Freetype char spacing. * Option to turn off TEST_ASSERT. Currently off. * Fixed embarrassing maths to do with wedge fatness. * More tidying post-review. * Document highlight_linewidth_multipliers. * Expose baseFontSize to Python. * Changes in response to review. * Allow DrawMolecules molecules to be drawn to different scales. * Fix bond sneaking between C:8 in, for example, reactions. * Fix bad re-factoring. * Fix globbing. * Changes in response to review. * Add invariant check. * Add draw option to fix font size. * suggested changes * Update catch test results. * Fix expected freetype results. * Fix non-freetype drawers. * Fin non-freetype test results. * get the Qt drawer working too * Fix disappearing reaction highlights. * Changes as result of review. * Fixed non-FreeType hash codes for reaction SVGs. Extra comment in catch_tests. * reactant highlighting was clearning properties * Fix for failing contour python test. * fix a non-freetype problem * swig wrappers working * Bump timeouts in test. Co-authored-by: greg landrum <greg.landrum@gmail.com> Co-authored-by: David Cosgrove <david@cozchemix.co.uk> |