mirror of
https://github.com/molstar/molstar.git
synced 2026-06-06 22:54:22 +08:00
Compare commits
3 Commits
v0.5.0-dev
...
v0.5.0-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
64c72aa6f5 | ||
|
|
0a22917773 | ||
|
|
3c4888e52b |
2
package-lock.json
generated
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "molstar",
|
||||
"version": "0.5.0-dev.2",
|
||||
"version": "0.5.0-dev.3",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "molstar",
|
||||
"version": "0.5.0-dev.2",
|
||||
"version": "0.5.0-dev.3",
|
||||
"description": "A comprehensive macromolecular library.",
|
||||
"homepage": "https://github.com/molstar/molstar#readme",
|
||||
"repository": {
|
||||
|
||||
@@ -62,7 +62,7 @@ interface Canvas3D {
|
||||
/**
|
||||
* This function must be called if animate() is not set up so that add/remove actions take place.
|
||||
*/
|
||||
commit(): void
|
||||
commit(isSynchronous?: boolean): void
|
||||
update(repr?: Representation.Any, keepBoundingSphere?: boolean): void
|
||||
clear(): void
|
||||
|
||||
@@ -77,7 +77,7 @@ interface Canvas3D {
|
||||
|
||||
handleResize(): void
|
||||
/** Focuses camera on scene's bounding sphere, centered and zoomed. */
|
||||
requestCameraReset(): void
|
||||
requestCameraReset(durationMs?: number): void
|
||||
readonly camera: Camera
|
||||
readonly boundingSphere: Readonly<Sphere3D>
|
||||
downloadScreenshot(): void
|
||||
@@ -190,6 +190,7 @@ namespace Canvas3D {
|
||||
|
||||
let drawPending = false
|
||||
let cameraResetRequested = false
|
||||
let nextCameraResetDuration: number | undefined = void 0
|
||||
|
||||
function getLoci(pickingId: PickingId) {
|
||||
let loci: Loci = EmptyLoci
|
||||
@@ -282,25 +283,30 @@ namespace Canvas3D {
|
||||
return webgl.isContextLost ? undefined : pickPass.identify(x, y)
|
||||
}
|
||||
|
||||
function commit() {
|
||||
commitScene();
|
||||
resolveCameraReset();
|
||||
function commit(isSynchronous: boolean = false) {
|
||||
const allCommited = commitScene(isSynchronous);
|
||||
// Only reset the camera after the full scene has been commited.
|
||||
if (allCommited) resolveCameraReset();
|
||||
}
|
||||
|
||||
function resolveCameraReset() {
|
||||
if (!cameraResetRequested) return;
|
||||
const { center, radius } = scene.boundingSphere;
|
||||
camera.focus(center, radius, radius, p.cameraResetDurationMs);
|
||||
camera.focus(center, radius, radius,
|
||||
typeof nextCameraResetDuration === 'undefined' ? p.cameraResetDurationMs : nextCameraResetDuration);
|
||||
nextCameraResetDuration = void 0;
|
||||
cameraResetRequested = false;
|
||||
}
|
||||
|
||||
const sceneCommitTimeoutMs = 250;
|
||||
function commitScene() {
|
||||
if (!scene.needsCommit) return;
|
||||
function commitScene(isSynchronous: boolean) {
|
||||
if (!scene.needsCommit) return true;
|
||||
|
||||
if (!scene.commit(isSynchronous ? void 0 : sceneCommitTimeoutMs)) return false;
|
||||
|
||||
const allCommited = scene.commit(sceneCommitTimeoutMs);
|
||||
if (debugHelper.isEnabled) debugHelper.update();
|
||||
if (allCommited) reprCount.next(reprRenderObjects.size);
|
||||
reprCount.next(reprRenderObjects.size);
|
||||
return true;
|
||||
}
|
||||
|
||||
function add(repr: Representation.Any) {
|
||||
@@ -384,7 +390,8 @@ namespace Canvas3D {
|
||||
getLoci,
|
||||
|
||||
handleResize,
|
||||
requestCameraReset: () => {
|
||||
requestCameraReset: (durationMs) => {
|
||||
nextCameraResetDuration = durationMs;
|
||||
cameraResetRequested = true;
|
||||
},
|
||||
camera,
|
||||
|
||||
@@ -126,8 +126,6 @@ namespace Scene {
|
||||
return true;
|
||||
}
|
||||
|
||||
// const toAdd: GraphicsRenderObject[] = []
|
||||
// const toRemove: GraphicsRenderObject[] = []
|
||||
const commitQueue = new CommitQueue();
|
||||
|
||||
return {
|
||||
|
||||
@@ -221,7 +221,6 @@ export const WaterNames = new Set([
|
||||
export const AminoAcidNamesL = new Set([
|
||||
'HIS', 'ARG', 'LYS', 'ILE', 'PHE', 'LEU', 'TRP', 'ALA', 'MET', 'PRO', 'CYS',
|
||||
'ASN', 'VAL', 'GLY', 'SER', 'GLN', 'TYR', 'ASP', 'GLU', 'THR', 'SEC', 'PYL',
|
||||
|
||||
'UNK' // unknown amino acid from CCD
|
||||
])
|
||||
export const AminoAcidNamesD = new Set([
|
||||
@@ -249,8 +248,14 @@ export const AminoAcidNamesD = new Set([
|
||||
])
|
||||
export const AminoAcidNames = SetUtils.unionMany(AminoAcidNamesL, AminoAcidNamesD)
|
||||
|
||||
export const RnaBaseNames = new Set([ 'A', 'C', 'T', 'G', 'I', 'U' ])
|
||||
export const DnaBaseNames = new Set([ 'DA', 'DC', 'DT', 'DG', 'DI', 'DU' ])
|
||||
export const RnaBaseNames = new Set([
|
||||
'A', 'C', 'T', 'G', 'I', 'U',
|
||||
'N' // unknown RNA base from CCD
|
||||
])
|
||||
export const DnaBaseNames = new Set([
|
||||
'DA', 'DC', 'DT', 'DG', 'DI', 'DU',
|
||||
'DN' // unknown DNA base from CCD
|
||||
])
|
||||
export const PeptideBaseNames = new Set([ 'APN', 'CPN', 'TPN', 'GPN' ])
|
||||
export const PurineBaseNames = new Set([ 'A', 'G', 'DA', 'DG', 'DI', 'APN', 'GPN' ])
|
||||
export const PyrimidineBaseNames = new Set([ 'C', 'T', 'U', 'DC', 'DT', 'DU', 'CPN', 'TPN' ])
|
||||
|
||||
Reference in New Issue
Block a user