3243 Commits

Author SHA1 Message Date
David Koes
c26e390544 version bump 2.5.5 2026-05-22 11:33:04 -04:00
David Koes
392faa7c65 Merge pull request #852 from dxdc/aromatic-bonds-feature
Aromatic ring rendering, per-bond style overrides, and SDF embedded styling
2026-02-28 12:10:33 -05:00
Daniel Caspi
98c3b746e9 fix: prevent crash when frames lack 3DMOL_STYLE blocks 2026-02-27 01:23:29 -06:00
Daniel Caspi
2d0796f810 feat: add aromaticStyle option with torus rendering for aromatic rings 2026-02-26 23:00:22 -06:00
Daniel Caspi
fe6c8d2472 test: add tests for ring dashed bonds, SDF style parsing, and V3000 2026-02-26 22:22:29 -06:00
Daniel Caspi
ab2b879cd6 feat: per-bond style overrides and DRY draw helpers
Add support for per-bond style configuration via bondStyles, enabling
fine-grained control over individual bond appearance from SDF 3DMOL_STYLE
or programmatic use.

Per-bond overrides (via bondStyles[].dashedBondConfig):
- solidColor / dashedColor: override colors for solid and dashed halves
- dashLength / gapLength: override dash geometry per bond
- dashedBondFlip: force which side gets the dashed line
2026-02-26 22:22:29 -06:00
Daniel Caspi
148e42461f feat: ring-aware dashed bond placement
Use ring detection to place the dashed portion of aromatic bonds toward
the ring interior, matching standard chemical drawing conventions.

For bonds in rings, a BFS finds the smallest ring containing the bond
and computes its centroid to determine which side gets the dashed line.
Non-ring bonds fall back to the existing neighbor centroid heuristic.

This replaces the previous approach that used only neighbor positions,
which could place dashes on the wrong side for fused ring systems or
asymmetric substituent patterns.
2026-02-26 16:17:08 -06:00
Daniel Caspi
2586225517 fix: align frame indices with modelDatas and apply embedded styles
When addMolData skips empty frames, the modelDatas array (populated by
3DMOL_STYLE parsing in the SDF parser) would get out of sync with
this.frames because empty-frame compaction only affected frames but not
modelDatas.

Fix by building frames and modelDatas in a single pass so their indices
stay aligned. After loading, apply any embedded 3DMOL_STYLE model-level
styles (e.g. stick radius) to the corresponding frames via setStyle.
2026-02-26 16:17:08 -06:00
Daniel Caspi
309d3dbf72 feat: add 3DMOL_STYLE SDF property parsing and parser modernization
Add support for embedding per-bond and model-level styling in SDF files
via a `3DMOL_STYLE` data property block. This enables fine-grained bond
appearance control (colors, dashed bond config, flip) directly from
chemical structure files.
2026-02-26 16:17:08 -06:00
David Koes
8bb2f598a0 Merge pull request #850 from utkarshasinha/fix-hidden-hover-callback
fix: skip hover callbacks for hidden objects
2026-02-12 21:10:41 -05:00
utkarshasinha
a99358b345 fix: skip hover callbacks for hidden objects 2026-02-12 20:48:56 +05:30
David Koes
b9f8c3f24b Merge pull request #848 from dxdc/patch-4
Refactor bond drawing colors for consistency
2026-02-02 21:57:24 -05:00
Daniel Caspi
229914b482 Refactor bond drawing colors for consistency 2026-02-02 15:37:07 -06:00
David Koes
0ca1bd2ceb Merge pull request #847 from dxdc/dashed-bonds-fix-2
Fix dashed bond side flipping during animation
2026-01-31 13:31:03 -05:00
Daniel Caspi
2242f1bb48 fix: stabilize dashed bond side selection across conformations 2026-01-31 00:20:52 -06:00
David Koes
04a0849b13 Merge pull request #846 from dxdc/dashed-bonds-fix
fix: center dashed bonds
2026-01-24 20:07:43 -05:00
Daniel Caspi
8e3f3d67f2 fix: center dashed bonds 2026-01-23 16:33:35 -06:00
David Koes
0c54f7570f fallback on bcif failure for mmtf type too 2026-01-21 20:53:25 -05:00
David Koes
341ff319a3 packagelock 2.5.4 2026-01-21 20:24:43 -05:00
David Koes
b65f8e62d3 version bump 2026-01-21 17:55:44 -05:00
David Koes
6784a97d00 updated versions 2026-01-21 16:57:02 -05:00
David Koes
f833fe94cb Merge branch 'dxdc-patch-3' 2026-01-21 16:46:08 -05:00
David Koes
e1ee2640d7 update img, packge.json 2026-01-21 16:45:41 -05:00
David Koes
eb0a5523be Merge branch 'patch-3' of https://github.com/dxdc/3Dmol.js into dxdc-patch-3 2026-01-21 16:06:15 -05:00
Daniel Caspi
9c9a07283b Update color variables for dashed bonds 2026-01-21 15:03:03 -06:00
David Koes
29cc020664 Merge branch 'patch-3' of https://github.com/dxdc/3Dmol.js into dxdc-patch-3 2026-01-21 15:17:03 -05:00
Daniel Caspi
69f4a01f6f Update GLModel.ts 2026-01-20 15:54:56 -06:00
Daniel Caspi
c523665d8f Update GLModel.ts 2026-01-20 15:52:17 -06:00
Daniel Caspi
b5667441d7 make calculateDashes safe (no divide-by-zero) 2026-01-20 15:34:07 -06:00
Daniel Caspi
1cc849ebe2 Refactor bond rendering logic in GLModel.ts 2026-01-20 15:24:34 -06:00
Daniel Caspi
aff893e4ad Refactor bond rendering for aromatic bond types
Updated bond rendering logic to handle aromatic bonds as 1.5.
2026-01-20 15:17:36 -06:00
David Koes
1db415155e Merge branch 'master' of github.com:3dmol/3Dmol.js 2026-01-05 15:26:16 -05:00
David Koes
d1cf3ba01f Merge pull request #842 from dxdc/dashed-bonds-2
Aromatic/dashed bond order rendering #455
2026-01-05 15:25:57 -05:00
Daniel Caspi
02c2e22e26 Revert "chore: enable capture-missing in glcheck"
This reverts commit 4bb39f2153.
2026-01-03 01:48:59 -06:00
David Koes
6f65d9b969 edit for newer python 2026-01-02 21:45:41 -05:00
David Koes
fa5be597f1 Merge branch 'master' of github.com:3dmol/3Dmol.js 2026-01-02 21:45:17 -05:00
Daniel Caspi
0442ec46cc fix: double-bond behavior 2025-12-31 21:32:11 -06:00
Daniel Caspi
2d86862b7d test: add visual tests for partial bonds 2025-12-31 15:02:59 -06:00
Daniel Caspi
4bb39f2153 chore: enable capture-missing in glcheck 2025-12-31 15:02:59 -06:00
Daniel Caspi
f0ba78b373 treat aromatic bond type (4) as 1.5 for rendering 2025-12-31 15:02:59 -06:00
Daniel Caspi
8d32b76466 feat: add aromatic bond rendering support 2025-12-31 15:02:59 -06:00
dkoes
5bc6441492 better doc ex 2025-10-05 13:35:47 -04:00
David Koes
5f28e11ebf version bump 2025-09-27 13:27:48 -04:00
David Koes
73e5b67138 Merge branch 'master' of github.com:3dmol/3Dmol.js 2.5.3 2025-09-25 22:55:17 -04:00
David Koes
c433379854 Guard calls to this._gl.drawingBufferWidth with isLost check.
Skipping these guards can cause problems in colab (apparently, Issue
2025-09-25 22:53:40 -04:00
David Koes
77c5fbdc32 version bump 2.5.2 2025-07-30 12:18:42 -04:00
David Koes
e9465f52c0 test for Issue #835 2025-07-30 12:03:59 -04:00
David Koes
d43797ca11 Fix Issue #835
Hidden shapes should not be tested for click/hover interactions.
2025-07-30 11:49:42 -04:00
David Koes
de204a682d Fix Issue #745
Don't show viewers with no pixels.
2025-07-30 10:48:17 -04:00
David Koes
f393cdeb4f version bump 2.5.1 2025-06-26 11:23:11 -04:00