cosmol-viewer 0.2.0.dev4__tar.gz → 0.2.0.dev5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/Cargo.lock +57 -48
  2. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/Cargo.toml +3 -3
  3. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/PKG-INFO +1 -1
  4. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/Cargo.toml +3 -3
  5. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/parser/sdf.rs +20 -0
  6. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/scene.rs +4 -54
  7. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/canvas.rs +64 -58
  8. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shapes/mod.rs +2 -0
  9. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shapes/molecules.rs +95 -149
  10. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shapes/sphere.rs +30 -16
  11. cosmol_viewer-0.2.0.dev5/crates/core/src/shapes/stick.rs +408 -0
  12. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/utils.rs +14 -4
  13. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/pyproject.toml +1 -1
  14. cosmol_viewer-0.2.0.dev4/crates/core/src/shapes/stick.rs +0 -215
  15. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/README.md +0 -0
  16. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/lib.rs +0 -0
  17. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/parser/dssp.rs +0 -0
  18. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/parser/mmcif.rs +0 -0
  19. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/parser/mod.rs +0 -0
  20. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/parser/utils.rs +0 -0
  21. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/bg_fragment.glsl +0 -0
  22. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/bg_vertex.glsl +0 -0
  23. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/fragment.glsl +0 -0
  24. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/mod.rs +0 -0
  25. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/vertex.glsl +0 -0
  26. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/vertex_sphere.glsl +0 -0
  27. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/vertex_stick.glsl +0 -0
  28. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shapes/protein.rs +0 -0
  29. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/python/Cargo.toml +0 -0
  30. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/python/README.md +0 -0
  31. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/python/src/bin/stub_gen.rs +0 -0
  32. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/python/src/lib.rs +0 -0
  33. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/python/src/shapes.rs +0 -0
  34. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/wasm/Cargo.toml +0 -0
  35. {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/wasm/src/lib.rs +0 -0
@@ -236,9 +236,9 @@ dependencies = [
236
236
 
237
237
  [[package]]
238
238
  name = "az"
239
- version = "1.2.1"
239
+ version = "1.3.0"
240
240
  source = "registry+https://github.com/rust-lang/crates.io-index"
241
- checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973"
241
+ checksum = "be5eb007b7cacc6c660343e96f650fedf4b5a77512399eb952ca6642cf8d13f7"
242
242
 
243
243
  [[package]]
244
244
  name = "base64"
@@ -420,9 +420,9 @@ dependencies = [
420
420
 
421
421
  [[package]]
422
422
  name = "cc"
423
- version = "1.2.53"
423
+ version = "1.2.54"
424
424
  source = "registry+https://github.com/rust-lang/crates.io-index"
425
- checksum = "755d2fce177175ffca841e9a06afdb2c4ab0f593d53b4dee48147dfaade85932"
425
+ checksum = "6354c81bbfd62d9cfa9cb3c773c2b7b2a3a482d569de977fd0e961f6e7c00583"
426
426
  dependencies = [
427
427
  "find-msvc-tools",
428
428
  "jobserver",
@@ -589,17 +589,18 @@ dependencies = [
589
589
 
590
590
  [[package]]
591
591
  name = "cosmol_viewer"
592
- version = "0.2.0-nightly.4"
592
+ version = "0.2.0-nightly.5"
593
593
  dependencies = [
594
594
  "cosmol_viewer_core",
595
595
  ]
596
596
 
597
597
  [[package]]
598
598
  name = "cosmol_viewer_core"
599
- version = "0.2.0-nightly.4"
599
+ version = "0.2.0-nightly.5"
600
600
  dependencies = [
601
601
  "base64",
602
602
  "bytemuck",
603
+ "dashmap",
603
604
  "eframe",
604
605
  "egui-winit",
605
606
  "egui_extras",
@@ -611,7 +612,6 @@ dependencies = [
611
612
  "regex",
612
613
  "serde",
613
614
  "serde_json",
614
- "serde_repr",
615
615
  "thiserror 2.0.18",
616
616
  "wide",
617
617
  ]
@@ -632,7 +632,7 @@ dependencies = [
632
632
 
633
633
  [[package]]
634
634
  name = "cosmol_viewer_wasm"
635
- version = "0.2.0-nightly.4"
635
+ version = "0.2.0-nightly.5"
636
636
  dependencies = [
637
637
  "base64",
638
638
  "cosmol_viewer_core",
@@ -703,6 +703,20 @@ version = "1.2.0"
703
703
  source = "registry+https://github.com/rust-lang/crates.io-index"
704
704
  checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f"
705
705
 
706
+ [[package]]
707
+ name = "dashmap"
708
+ version = "6.1.0"
709
+ source = "registry+https://github.com/rust-lang/crates.io-index"
710
+ checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
711
+ dependencies = [
712
+ "cfg-if",
713
+ "crossbeam-utils",
714
+ "hashbrown 0.14.5",
715
+ "lock_api",
716
+ "once_cell",
717
+ "parking_lot_core",
718
+ ]
719
+
706
720
  [[package]]
707
721
  name = "dispatch"
708
722
  version = "0.2.0"
@@ -1057,9 +1071,9 @@ checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db"
1057
1071
 
1058
1072
  [[package]]
1059
1073
  name = "fixed"
1060
- version = "1.29.0"
1074
+ version = "1.30.0"
1061
1075
  source = "registry+https://github.com/rust-lang/crates.io-index"
1062
- checksum = "707070ccf8c4173548210893a0186e29c266901b71ed20cd9e2ca0193dfe95c3"
1076
+ checksum = "c566da967934c6c7ee0458a9773de9b2a685bd2ce26a3b28ddfc740e640182f5"
1063
1077
  dependencies = [
1064
1078
  "az",
1065
1079
  "bytemuck",
@@ -1234,9 +1248,9 @@ dependencies = [
1234
1248
 
1235
1249
  [[package]]
1236
1250
  name = "glam"
1237
- version = "0.30.10"
1251
+ version = "0.31.0"
1238
1252
  source = "registry+https://github.com/rust-lang/crates.io-index"
1239
- checksum = "19fc433e8437a212d1b6f1e68c7824af3aed907da60afa994e7f542d18d12aa9"
1253
+ checksum = "74a4d85559e2637d3d839438b5b3d75c31e655276f9544d72475c36b92fabbed"
1240
1254
  dependencies = [
1241
1255
  "bytemuck",
1242
1256
  "serde_core",
@@ -1353,6 +1367,12 @@ dependencies = [
1353
1367
  "byteorder",
1354
1368
  ]
1355
1369
 
1370
+ [[package]]
1371
+ name = "hashbrown"
1372
+ version = "0.14.5"
1373
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1374
+ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
1375
+
1356
1376
  [[package]]
1357
1377
  name = "hashbrown"
1358
1378
  version = "0.16.1"
@@ -1541,7 +1561,7 @@ dependencies = [
1541
1561
  "rgb",
1542
1562
  "tiff",
1543
1563
  "zune-core 0.5.1",
1544
- "zune-jpeg 0.5.10",
1564
+ "zune-jpeg 0.5.11",
1545
1565
  ]
1546
1566
 
1547
1567
  [[package]]
@@ -1567,7 +1587,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1567
1587
  checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
1568
1588
  dependencies = [
1569
1589
  "equivalent",
1570
- "hashbrown",
1590
+ "hashbrown 0.16.1",
1571
1591
  ]
1572
1592
 
1573
1593
  [[package]]
@@ -1749,9 +1769,9 @@ dependencies = [
1749
1769
 
1750
1770
  [[package]]
1751
1771
  name = "libm"
1752
- version = "0.2.15"
1772
+ version = "0.2.16"
1753
1773
  source = "registry+https://github.com/rust-lang/crates.io-index"
1754
- checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de"
1774
+ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
1755
1775
 
1756
1776
  [[package]]
1757
1777
  name = "libredox"
@@ -1895,7 +1915,7 @@ dependencies = [
1895
1915
  "cfg_aliases",
1896
1916
  "codespan-reporting",
1897
1917
  "half",
1898
- "hashbrown",
1918
+ "hashbrown 0.16.1",
1899
1919
  "hexf-parse",
1900
1920
  "indexmap",
1901
1921
  "libm",
@@ -2561,9 +2581,9 @@ dependencies = [
2561
2581
 
2562
2582
  [[package]]
2563
2583
  name = "proc-macro2"
2564
- version = "1.0.105"
2584
+ version = "1.0.106"
2565
2585
  source = "registry+https://github.com/rust-lang/crates.io-index"
2566
- checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7"
2586
+ checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
2567
2587
  dependencies = [
2568
2588
  "unicode-ident",
2569
2589
  ]
@@ -2717,9 +2737,9 @@ dependencies = [
2717
2737
 
2718
2738
  [[package]]
2719
2739
  name = "quote"
2720
- version = "1.0.43"
2740
+ version = "1.0.44"
2721
2741
  source = "registry+https://github.com/rust-lang/crates.io-index"
2722
- checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a"
2742
+ checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
2723
2743
  dependencies = [
2724
2744
  "proc-macro2",
2725
2745
  ]
@@ -3045,9 +3065,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
3045
3065
 
3046
3066
  [[package]]
3047
3067
  name = "safe_arch"
3048
- version = "0.9.3"
3068
+ version = "1.0.0"
3049
3069
  source = "registry+https://github.com/rust-lang/crates.io-index"
3050
- checksum = "629516c85c29fe757770fa03f2074cf1eac43d44c02a3de9fc2ef7b0e207dfdd"
3070
+ checksum = "1f7caad094bd561859bcd467734a720c3c1f5d1f338995351fefe2190c45efed"
3051
3071
  dependencies = [
3052
3072
  "bytemuck",
3053
3073
  ]
@@ -3122,17 +3142,6 @@ dependencies = [
3122
3142
  "zmij",
3123
3143
  ]
3124
3144
 
3125
- [[package]]
3126
- name = "serde_repr"
3127
- version = "0.1.20"
3128
- source = "registry+https://github.com/rust-lang/crates.io-index"
3129
- checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c"
3130
- dependencies = [
3131
- "proc-macro2",
3132
- "quote",
3133
- "syn",
3134
- ]
3135
-
3136
3145
  [[package]]
3137
3146
  name = "serde_spanned"
3138
3147
  version = "1.0.4"
@@ -3662,9 +3671,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
3662
3671
 
3663
3672
  [[package]]
3664
3673
  name = "uuid"
3665
- version = "1.19.0"
3674
+ version = "1.20.0"
3666
3675
  source = "registry+https://github.com/rust-lang/crates.io-index"
3667
- checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a"
3676
+ checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f"
3668
3677
  dependencies = [
3669
3678
  "getrandom 0.3.4",
3670
3679
  "js-sys",
@@ -3972,7 +3981,7 @@ dependencies = [
3972
3981
  "cfg-if",
3973
3982
  "cfg_aliases",
3974
3983
  "document-features",
3975
- "hashbrown",
3984
+ "hashbrown 0.16.1",
3976
3985
  "log",
3977
3986
  "portable-atomic",
3978
3987
  "profiling",
@@ -3997,7 +4006,7 @@ dependencies = [
3997
4006
  "bytemuck",
3998
4007
  "cfg_aliases",
3999
4008
  "document-features",
4000
- "hashbrown",
4009
+ "hashbrown 0.16.1",
4001
4010
  "indexmap",
4002
4011
  "log",
4003
4012
  "naga",
@@ -4059,9 +4068,9 @@ dependencies = [
4059
4068
 
4060
4069
  [[package]]
4061
4070
  name = "wide"
4062
- version = "0.8.3"
4071
+ version = "1.1.1"
4063
4072
  source = "registry+https://github.com/rust-lang/crates.io-index"
4064
- checksum = "13ca908d26e4786149c48efcf6c0ea09ab0e06d1fe3c17dc1b4b0f1ca4a7e788"
4073
+ checksum = "ac11b009ebeae802ed758530b6496784ebfee7a87b9abfbcaf3bbe25b814eb25"
4065
4074
  dependencies = [
4066
4075
  "bytemuck",
4067
4076
  "safe_arch",
@@ -4532,18 +4541,18 @@ dependencies = [
4532
4541
 
4533
4542
  [[package]]
4534
4543
  name = "zerocopy"
4535
- version = "0.8.33"
4544
+ version = "0.8.34"
4536
4545
  source = "registry+https://github.com/rust-lang/crates.io-index"
4537
- checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd"
4546
+ checksum = "71ddd76bcebeed25db614f82bf31a9f4222d3fbba300e6fb6c00afa26cbd4d9d"
4538
4547
  dependencies = [
4539
4548
  "zerocopy-derive",
4540
4549
  ]
4541
4550
 
4542
4551
  [[package]]
4543
4552
  name = "zerocopy-derive"
4544
- version = "0.8.33"
4553
+ version = "0.8.34"
4545
4554
  source = "registry+https://github.com/rust-lang/crates.io-index"
4546
- checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1"
4555
+ checksum = "d8187381b52e32220d50b255276aa16a084ec0a9017a0ca2152a1f55c539758d"
4547
4556
  dependencies = [
4548
4557
  "proc-macro2",
4549
4558
  "quote",
@@ -4606,9 +4615,9 @@ dependencies = [
4606
4615
 
4607
4616
  [[package]]
4608
4617
  name = "zmij"
4609
- version = "1.0.15"
4618
+ version = "1.0.17"
4610
4619
  source = "registry+https://github.com/rust-lang/crates.io-index"
4611
- checksum = "94f63c051f4fe3c1509da62131a678643c5b6fbdc9273b2b79d4378ebda003d2"
4620
+ checksum = "02aae0f83f69aafc94776e879363e9771d7ecbffe2c7fbb6c14c5e00dfe88439"
4612
4621
 
4613
4622
  [[package]]
4614
4623
  name = "zune-core"
@@ -4642,9 +4651,9 @@ dependencies = [
4642
4651
 
4643
4652
  [[package]]
4644
4653
  name = "zune-jpeg"
4645
- version = "0.5.10"
4654
+ version = "0.5.11"
4646
4655
  source = "registry+https://github.com/rust-lang/crates.io-index"
4647
- checksum = "ea2db9186c0a6ad1aa7012046f3fadc8db9001691b367c510f5867f17f975752"
4656
+ checksum = "2959ca473aae96a14ecedf501d20b3608d2825ba280d5adb57d651721885b0c2"
4648
4657
  dependencies = [
4649
4658
  "zune-core 0.5.1",
4650
4659
  ]
@@ -1,6 +1,6 @@
1
1
  [workspace.package]
2
2
  edition = "2024"
3
- version = "0.2.0-nightly.4"
3
+ version = "0.2.0-nightly.5"
4
4
  authors = ["9028 wjt@cosmol.org"]
5
5
  repository = "https://github.com/COSMol-repl/COSMol-viewer"
6
6
  homepage = "https://github.com/COSMol-repl/COSMol-viewer"
@@ -13,8 +13,8 @@ resolver = "2"
13
13
  members = ["crates/python"]
14
14
 
15
15
  [workspace.dependencies]
16
- cosmol_viewer = { version = "0.2.0-nightly.4", path = "cosmol_viewer"}
17
- cosmol_viewer_core = { version = "0.2.0-nightly.4", path = "crates/core" }
16
+ cosmol_viewer = { version = "0.2.0-nightly.5", path = "cosmol_viewer"}
17
+ cosmol_viewer_core = { version = "0.2.0-nightly.5", path = "crates/core" }
18
18
 
19
19
  pyo3 = { version = "0.27.2", features = ["extension-module", "abi3-py310"] }
20
20
  eframe = { version = "0.33.3", features = ["wayland","x11","glow"], default-features = false }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cosmol-viewer
3
- Version: 0.2.0.dev4
3
+ Version: 0.2.0.dev5
4
4
  Summary: Molecular visualization tools
5
5
  Author-email: 95028 <wjt@cosmol.org>
6
6
  Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
@@ -14,13 +14,13 @@ serde.workspace = true
14
14
  base64.workspace = true
15
15
  thiserror.workspace = true
16
16
 
17
- glam = { version = "0.30.10" , features = ["serde", "bytemuck"] }
17
+ glam = { version = "0.31.0" , features = ["serde", "bytemuck"] }
18
+ dashmap = "6.1.0"
18
19
  regex = "1.12.2"
19
20
  na_seq = "0.3.12"
20
21
  bytemuck = "1.24.0"
21
- serde_repr = "0.1.20"
22
22
  once_cell = "1.21.3"
23
- wide = "0.8.3"
23
+ wide = "1.1.1"
24
24
  kiddo = "5.2.4"
25
25
  image = "0.25.9"
26
26
 
@@ -15,6 +15,7 @@ pub struct Sdf {
15
15
  pub ident: String,
16
16
  pub metadata: HashMap<String, String>,
17
17
  pub atoms: Vec<AtomGeneric>,
18
+ pub atoms_weight: Option<Vec<Option<f32>>>,
18
19
  pub bonds: Vec<BondGeneric>,
19
20
  pub chains: Vec<ChainGeneric>,
20
21
  pub residues: Vec<ResidueGeneric>,
@@ -48,6 +49,8 @@ impl Sdf {
48
49
  let mut atoms = Vec::new();
49
50
  let mut bonds = Vec::new();
50
51
 
52
+ let mut atoms_weight: Option<Vec<Option<f32>>> = None;
53
+
51
54
  if is_v2000 {
52
55
  // ============================
53
56
  // V2000 parsing
@@ -137,6 +140,7 @@ impl Sdf {
137
140
  // --- find counts ---
138
141
  let mut n_atoms = 0usize;
139
142
  let mut n_bonds = 0usize;
143
+ let mut atoms_weight_: Vec<Option<f32>> = Vec::new();
140
144
 
141
145
  while i < lines.len() {
142
146
  let line = lines[i];
@@ -162,6 +166,17 @@ impl Sdf {
162
166
  let y = cols[5].parse::<f64>().unwrap();
163
167
  let z = cols[6].parse::<f64>().unwrap();
164
168
 
169
+ // ---- parse WEIGHT if exists ----
170
+ let mut weight: Option<f32> = None;
171
+
172
+ for col in cols.iter().skip(7) {
173
+ if let Some(v) = col.strip_prefix("WEIGHT=") {
174
+ if let Ok(w) = v.parse::<f32>() {
175
+ weight = Some(w);
176
+ }
177
+ }
178
+ }
179
+
165
180
  let element = match Element::from_letter(element_str) {
166
181
  Ok(element) => element,
167
182
  Err(_) => Element::Other,
@@ -175,9 +190,13 @@ impl Sdf {
175
190
  ..Default::default()
176
191
  });
177
192
 
193
+ atoms_weight_.push(weight);
194
+
178
195
  i += 1;
179
196
  }
180
197
 
198
+ atoms_weight = Some(atoms_weight_);
199
+
181
200
  // --- find bond begin ---
182
201
  while i < lines.len() && !lines[i].starts_with("M V30 BEGIN BOND") {
183
202
  i += 1;
@@ -227,6 +246,7 @@ impl Sdf {
227
246
  Ok(Self {
228
247
  ident,
229
248
  metadata: HashMap::new(),
249
+ atoms_weight,
230
250
  atoms,
231
251
  bonds,
232
252
  chains,
@@ -1,3 +1,4 @@
1
+ use crate::utils::InstanceGroups;
1
2
  use crate::utils::Logger;
2
3
  use glam::Mat3;
3
4
  use glam::Mat4;
@@ -13,60 +14,9 @@ use crate::{
13
14
  utils::{self, Interpolatable, IntoInstanceGroups, ToMesh},
14
15
  };
15
16
 
16
- pub enum Instance {
17
- Sphere(SphereInstance),
18
- }
19
-
20
- #[repr(C)]
21
- #[derive(Clone, Copy, bytemuck::Pod, bytemuck::Zeroable, Debug)]
22
- pub struct SphereInstance {
23
- pub position: [f32; 3],
24
- pub radius: f32,
25
- pub color: [f32; 4],
26
- }
27
-
28
- impl SphereInstance {
29
- pub fn new(position: [f32; 3], radius: f32, color: [f32; 4]) -> Self {
30
- Self {
31
- position,
32
- radius,
33
- color,
34
- }
35
- }
36
- }
37
-
38
- #[repr(C)]
39
- #[derive(Clone, Copy, bytemuck::Pod, bytemuck::Zeroable, Debug)]
40
- pub struct StickInstance {
41
- pub start: [f32; 3],
42
- pub end: [f32; 3],
43
- pub radius: f32,
44
- pub color: [f32; 4],
45
- }
46
-
47
- impl StickInstance {
48
- pub fn new(start: [f32; 3], end: [f32; 3], radius: f32, color: [f32; 4]) -> Self {
49
- Self {
50
- start,
51
- end,
52
- radius,
53
- color,
54
- }
55
- }
56
- }
57
-
58
- #[derive(Clone, Default)]
59
- pub struct InstanceGroups {
60
- pub spheres: Vec<SphereInstance>,
61
- pub sticks: Vec<StickInstance>,
62
- }
63
-
64
- impl InstanceGroups {
65
- pub fn merge(&mut self, mut other: InstanceGroups) {
66
- self.spheres.append(&mut other.spheres);
67
- self.sticks.append(&mut other.sticks);
68
- }
69
- }
17
+ // pub enum Instance {
18
+ // Sphere(SphereInstance),
19
+ // }
70
20
 
71
21
  #[derive(Serialize, Deserialize, Debug, Clone)]
72
22
  pub struct Scene {