mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-04 21:54:27 +08:00
master
5 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
7b7a8a4e17 |
Refactor iostreams includes (#8846)
* refactor iostreams includes * restore ostream to MonomerInfo.cpp |
||
|
|
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> |
||
|
|
ef5ec47b1d |
Embed default truetype font (#3288)
* Embed default font in source. Unfortunately there's some reformatting in here too. * make moldraw2d build correctly with _static and in emscripten * get minmalllib working with freetype and emscripten |
||
|
|
bc9e4d6478 |
Support using FreeType for text rendering (#3237)
* First working version with DrawText classes, original functionality only. No font scaling. * Added font scaling. * Added atom colours. * First stab at freetype text drawing. A stash prior to major surgery. * Freetype seems to be working. On to whack-a-mole. * Added class flag to atom labels and annotations. * Another intermim commit whilst re-factoring all string drawing code from MolDraw2D. * Fixed scaling and implemented max font size. * Fixed bugs in non-FT Cairo and SVG drawing. * More re-factoring of drawStrings - now creates StringRwct for each char in all strings. * More re-factoring of string drawing - all mentions removed from MolDraw2D, I think.. * Working native Cairo, simple tests. * Working native Cairo, simple tests. * Padding roumd rectangles. * Working FT Cairo, FT SVG, native SVG, simple tests. * Two line labels mostly sorted. Native SVG wrong. * Two line SVG labels sorted. * Two line SVG labels sorted. * Tidied out debug writes. * Tweaked merge. * Annotations working, radicals now failing. * Fixed radicals crash. * All tests passed for freetype drawings. Grid drawings not right. * Fixed bug in grid drawings. * Better font size. * Fixed legends in grids. * Fixed rect intersection bug. * Tidied up font sizes. * moldraw2DTest1 all passing. * All catch tests pass. * Few rixes, and reactions look ok. * Added minimum font size. * Fixed radical drawing when max/min font size hit. * Interim cmmmit, most test1.cpp working. * Fixed uninitialised min_font_size_ in DrawText. Took out use of MolDraw2D::setFontSize() which probably needs to go back in at some point. * More test1.cpp passing. * test1.cpp all pass, freetype and non-freetype * Fixed superscripts hitting min font size in test860. Made superscripts and subscripts same size. * testc.pp all pass. * Fixed bug in freetype text. All testt1.cpp pass. * All tests passed.d * Added option for different font. * Added option for explicit terminal methyls. * Added option to explicitly not use Freetype in drawers. Used same in catch_tests.cpp. * Got sense of NO_FREETYPE wrong in catch_tests.cpp. D'oh! * Fixed Python draw tests. * Added new options to JSON interpreter. * Fixed scale of text in contoured plots. * Added optional molecule to grid drawer to help set scale. * Fixed Python wrappers for drawing 2D grids . * Added Greg's CMakeLists.txt * Moved fonts out of code tree. Improved handling of font files not found, including logging to rdWarningLog. * Interim commit. * Tidied up some namespace std issues. * Reverted to previous version. Took out 'using namespace std;' * update expected java results * Added multi-line legends. Also carves out a reserved bit for the legend, and sets the font size so the legend will fit. * enable annotations on windows with freetype * Removed stray font file. * Removed stray font file. * Re-instanted fontSize() and setFontSize(), though with change of units. * Added RDK_BUILD_FREETYPE_SUPPORT to cmake. * re-expose the fontsize controls to python. document API change w.r.t. font size * Update ReleaseNotes.md Co-authored-by: David Cosgrove <david@cozchemix.co.uk> Co-authored-by: greg landrum <greg.landrum@gmail.com> |