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.
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/Cargo.lock +57 -48
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/Cargo.toml +3 -3
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/PKG-INFO +1 -1
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/Cargo.toml +3 -3
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/parser/sdf.rs +20 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/scene.rs +4 -54
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/canvas.rs +64 -58
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shapes/mod.rs +2 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shapes/molecules.rs +95 -149
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shapes/sphere.rs +30 -16
- cosmol_viewer-0.2.0.dev5/crates/core/src/shapes/stick.rs +408 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/utils.rs +14 -4
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/pyproject.toml +1 -1
- cosmol_viewer-0.2.0.dev4/crates/core/src/shapes/stick.rs +0 -215
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/README.md +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/lib.rs +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/parser/dssp.rs +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/parser/mmcif.rs +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/parser/mod.rs +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/parser/utils.rs +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/bg_fragment.glsl +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/bg_vertex.glsl +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/fragment.glsl +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/mod.rs +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/vertex.glsl +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/vertex_sphere.glsl +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shader/vertex_stick.glsl +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/core/src/shapes/protein.rs +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/python/Cargo.toml +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/python/README.md +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/python/src/bin/stub_gen.rs +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/python/src/lib.rs +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/python/src/shapes.rs +0 -0
- {cosmol_viewer-0.2.0.dev4 → cosmol_viewer-0.2.0.dev5}/crates/wasm/Cargo.toml +0 -0
- {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.
|
|
239
|
+
version = "1.3.0"
|
|
240
240
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
241
|
-
checksum = "
|
|
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.
|
|
423
|
+
version = "1.2.54"
|
|
424
424
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
425
|
-
checksum = "
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
1074
|
+
version = "1.30.0"
|
|
1061
1075
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1062
|
-
checksum = "
|
|
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.
|
|
1251
|
+
version = "0.31.0"
|
|
1238
1252
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1239
|
-
checksum = "
|
|
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.
|
|
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.
|
|
1772
|
+
version = "0.2.16"
|
|
1753
1773
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1754
|
-
checksum = "
|
|
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.
|
|
2584
|
+
version = "1.0.106"
|
|
2565
2585
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2566
|
-
checksum = "
|
|
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.
|
|
2740
|
+
version = "1.0.44"
|
|
2721
2741
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2722
|
-
checksum = "
|
|
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.
|
|
3068
|
+
version = "1.0.0"
|
|
3049
3069
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3050
|
-
checksum = "
|
|
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.
|
|
3674
|
+
version = "1.20.0"
|
|
3666
3675
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3667
|
-
checksum = "
|
|
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 = "
|
|
4071
|
+
version = "1.1.1"
|
|
4063
4072
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4064
|
-
checksum = "
|
|
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.
|
|
4544
|
+
version = "0.8.34"
|
|
4536
4545
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4537
|
-
checksum = "
|
|
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.
|
|
4553
|
+
version = "0.8.34"
|
|
4545
4554
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4546
|
-
checksum = "
|
|
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.
|
|
4618
|
+
version = "1.0.17"
|
|
4610
4619
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4611
|
-
checksum = "
|
|
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.
|
|
4654
|
+
version = "0.5.11"
|
|
4646
4655
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4647
|
-
checksum = "
|
|
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.
|
|
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.
|
|
17
|
-
cosmol_viewer_core = { version = "0.2.0-nightly.
|
|
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 }
|
|
@@ -14,13 +14,13 @@ serde.workspace = true
|
|
|
14
14
|
base64.workspace = true
|
|
15
15
|
thiserror.workspace = true
|
|
16
16
|
|
|
17
|
-
glam = { version = "0.
|
|
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 = "
|
|
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
|
-
|
|
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 {
|