From 6b349b2232a7cb88f429e3f1185e9a27e93529fb Mon Sep 17 00:00:00 2001 From: Alexander Rose <alex.rose@rcsb.org> Date: Fri, 2 Nov 2018 11:54:31 -0700 Subject: [PATCH] moved representations into mol-repr --- README.md | 5 +-- package.json | 7 ++-- src/apps/canvas/component/representation.tsx | 2 +- src/apps/canvas/component/structure-view.tsx | 4 +-- src/apps/canvas/component/volume-view.tsx | 4 +-- src/apps/canvas/structure-view.ts | 18 +++++----- src/apps/canvas/volume-view.ts | 6 ++-- src/apps/structure-info/volume.ts | 2 +- src/mol-canvas3d/canvas3d.ts | 2 +- src/mol-plugin/state/objects.ts | 2 +- src/mol-plugin/state/transforms/visuals.ts | 2 +- .../representation => mol-repr}/index.ts | 4 +-- .../shape.ts} | 0 .../shape/index.ts | 12 +++---- src/mol-repr/structure.ts | 0 .../structure/complex-representation.ts | 6 ++-- .../structure/complex-visual.ts | 14 ++++---- .../structure/index.ts | 13 ++++--- .../structure/representation/backbone.ts | 7 ++-- .../representation/ball-and-stick.ts | 8 +++-- .../structure/representation/carbohydrate.ts | 7 ++-- .../structure/representation/cartoon.ts | 7 ++-- .../representation/distance-restraint.ts | 7 ++-- .../representation/molecular-surface.ts | 8 ++--- .../structure/representation/point.ts | 8 ++--- .../structure/representation/spacefill.ts | 8 ++--- .../structure/units-representation.ts | 11 +++--- .../structure/units-visual.ts | 22 ++++++------ .../visual/carbohydrate-link-cylinder.ts | 10 +++--- .../visual/carbohydrate-symbol-mesh.ts | 34 +++++++++---------- .../visual/cross-link-restraint-cylinder.ts | 8 ++--- .../structure/visual/element-point.ts | 6 ++-- .../structure/visual/element-sphere.ts | 2 +- .../visual/gaussian-density-point.ts | 6 ++-- .../visual/gaussian-density-volume.ts | 4 +-- .../structure/visual/gaussian-surface-mesh.ts | 6 ++-- .../visual/gaussian-surface-wireframe.ts | 6 ++-- .../visual/inter-unit-link-cylinder.ts | 6 ++-- .../visual/intra-unit-link-cylinder.ts | 6 ++-- .../structure/visual/nucleotide-block-mesh.ts | 10 +++--- .../visual/polymer-backbone-cylinder.ts | 10 +++--- .../visual/polymer-backbone-sphere.ts | 1 + .../visual/polymer-direction-wedge.ts | 8 ++--- .../structure/visual/polymer-gap-cylinder.ts | 12 +++---- .../structure/visual/polymer-trace-mesh.ts | 10 +++--- .../structure/visual/util/common.ts | 16 ++++----- .../structure/visual/util/element.ts | 12 +++---- .../structure/visual/util/gaussian.ts | 0 .../structure/visual/util/link.ts | 10 +++--- .../structure/visual/util/nucleotide.ts | 4 +-- .../structure/visual/util/polymer.ts | 4 +-- .../visual/util/polymer/backbone-iterator.ts | 0 .../visual/util/polymer/curve-segment.ts | 0 .../visual/util/polymer/gap-iterator.ts | 0 .../visual/util/polymer/trace-iterator.ts | 0 .../representation => mol-repr}/util.ts | 2 +- src/mol-repr/volume.ts | 0 .../volume/direct-volume.ts | 10 +++--- .../volume/index.ts | 6 ++-- .../volume/isosurface-mesh.ts | 16 ++++----- tsconfig.json | 3 +- 61 files changed, 217 insertions(+), 207 deletions(-) rename src/{mol-geo/representation => mol-repr}/index.ts (90%) rename src/{mol-geo/representation/structure/visual/polymer-backbone-sphere.ts => mol-repr/shape.ts} (100%) rename src/{mol-geo/representation => mol-repr}/shape/index.ts (91%) create mode 100644 src/mol-repr/structure.ts rename src/{mol-geo/representation => mol-repr}/structure/complex-representation.ts (92%) rename src/{mol-geo/representation => mol-repr}/structure/complex-visual.ts (94%) rename src/{mol-geo/representation => mol-repr}/structure/index.ts (87%) rename src/{mol-geo/representation => mol-repr}/structure/representation/backbone.ts (89%) rename src/{mol-geo/representation => mol-repr}/structure/representation/ball-and-stick.ts (92%) rename src/{mol-geo/representation => mol-repr}/structure/representation/carbohydrate.ts (93%) rename src/{mol-geo/representation => mol-repr}/structure/representation/cartoon.ts (94%) rename src/{mol-geo/representation => mol-repr}/structure/representation/distance-restraint.ts (91%) rename src/{mol-geo/representation => mol-repr}/structure/representation/molecular-surface.ts (95%) rename src/{mol-geo/representation => mol-repr}/structure/representation/point.ts (87%) rename src/{mol-geo/representation => mol-repr}/structure/representation/spacefill.ts (88%) rename src/{mol-geo/representation => mol-repr}/structure/units-representation.ts (93%) rename src/{mol-geo/representation => mol-repr}/structure/units-visual.ts (94%) rename src/{mol-geo/representation => mol-repr}/structure/visual/carbohydrate-link-cylinder.ts (95%) rename src/{mol-geo/representation => mol-repr}/structure/visual/carbohydrate-symbol-mesh.ts (89%) rename src/{mol-geo/representation => mol-repr}/structure/visual/cross-link-restraint-cylinder.ts (95%) rename src/{mol-geo/representation => mol-repr}/structure/visual/element-point.ts (92%) rename src/{mol-geo/representation => mol-repr}/structure/visual/element-sphere.ts (96%) rename src/{mol-geo/representation => mol-repr}/structure/visual/gaussian-density-point.ts (94%) rename src/{mol-geo/representation => mol-repr}/structure/visual/gaussian-density-volume.ts (95%) rename src/{mol-geo/representation => mol-repr}/structure/visual/gaussian-surface-mesh.ts (92%) rename src/{mol-geo/representation => mol-repr}/structure/visual/gaussian-surface-wireframe.ts (93%) rename src/{mol-geo/representation => mol-repr}/structure/visual/inter-unit-link-cylinder.ts (95%) rename src/{mol-geo/representation => mol-repr}/structure/visual/intra-unit-link-cylinder.ts (96%) rename src/{mol-geo/representation => mol-repr}/structure/visual/nucleotide-block-mesh.ts (95%) rename src/{mol-geo/representation => mol-repr}/structure/visual/polymer-backbone-cylinder.ts (92%) create mode 100644 src/mol-repr/structure/visual/polymer-backbone-sphere.ts rename src/{mol-geo/representation => mol-repr}/structure/visual/polymer-direction-wedge.ts (95%) rename src/{mol-geo/representation => mol-repr}/structure/visual/polymer-gap-cylinder.ts (91%) rename src/{mol-geo/representation => mol-repr}/structure/visual/polymer-trace-mesh.ts (94%) rename src/{mol-geo/representation => mol-repr}/structure/visual/util/common.ts (89%) rename src/{mol-geo/representation => mol-repr}/structure/visual/util/element.ts (90%) rename src/{mol-geo/representation => mol-repr}/structure/visual/util/gaussian.ts (100%) rename src/{mol-geo/representation => mol-repr}/structure/visual/util/link.ts (95%) rename src/{mol-geo/representation => mol-repr}/structure/visual/util/nucleotide.ts (96%) rename src/{mol-geo/representation => mol-repr}/structure/visual/util/polymer.ts (97%) rename src/{mol-geo/representation => mol-repr}/structure/visual/util/polymer/backbone-iterator.ts (100%) rename src/{mol-geo/representation => mol-repr}/structure/visual/util/polymer/curve-segment.ts (100%) rename src/{mol-geo/representation => mol-repr}/structure/visual/util/polymer/gap-iterator.ts (100%) rename src/{mol-geo/representation => mol-repr}/structure/visual/util/polymer/trace-iterator.ts (100%) rename src/{mol-geo/representation => mol-repr}/util.ts (97%) create mode 100644 src/mol-repr/volume.ts rename src/{mol-geo/representation => mol-repr}/volume/direct-volume.ts (96%) rename src/{mol-geo/representation => mol-repr}/volume/index.ts (93%) rename src/{mol-geo/representation => mol-repr}/volume/isosurface-mesh.ts (91%) diff --git a/README.md b/README.md index 888aafbe9..4a7966fc3 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,10 @@ The core of Mol* currently consists of these modules: - `mol-model` Data structures and algorithms (such as querying) for representing molecular data (including coordinate, experimental/map, and annotation data). - `mol-model-props` Common "custom properties". - `mol-script` A scriting language for creating representations/scenes and querying (includes the [MolQL query language](https://molql.github.io)). -- `mol-geo` Creating molecular geometries. +- `mol-geo` Creating (molecular) geometries. - `mol-theme` Molecular representation themeing. -- `mol-gl` A lightweight wrapper around WebGL. +- `mol-repr` Molecular representations. +- `mol-gl` A wrapper around WebGL. - `mol-canvas3d` A low level 3d view component. Uses `mol-geo` to generate geometries. - `mol-state` State representation tree with state saving and automatic updates. - `mol-app` Components for builduing UIs. diff --git a/package.json b/package.json index c3d686a95..2a8e33f06 100644 --- a/package.json +++ b/package.json @@ -52,17 +52,18 @@ "mol-app($|/.*)": "<rootDir>/src/mol-app$1", "mol-data($|/.*)": "<rootDir>/src/mol-data$1", "mol-geo($|/.*)": "<rootDir>/src/mol-geo$1", - "mol-theme($|/.*)": "<rootDir>/src/mol-theme$1", "mol-gl($|/.*)": "<rootDir>/src/mol-gl$1", "mol-io($|/.*)": "<rootDir>/src/mol-io$1", "mol-math($|/.*)": "<rootDir>/src/mol-math$1", "mol-model($|/.*)": "<rootDir>/src/mol-model$1", "mol-model-props($|/.*)": "<rootDir>/src/mol-model-props$1", + "mol-plugin($|/.*)": "<rootDir>/src/mol-plugin$1", "mol-ql($|/.*)": "<rootDir>/src/mol-ql$1", + "mol-repr($|/.*)": "<rootDir>/src/mol-repr$1", "mol-script($|/.*)": "<rootDir>/src/mol-script$1", - "mol-task($|/.*)": "<rootDir>/src/mol-task$1", "mol-state($|/.*)": "<rootDir>/src/mol-state$1", - "mol-plugin($|/.*)": "<rootDir>/src/mol-plugin$1", + "mol-task($|/.*)": "<rootDir>/src/mol-task$1", + "mol-theme($|/.*)": "<rootDir>/src/mol-theme$1", "mol-util($|/.*)": "<rootDir>/src/mol-util$1", "mol-canvas3d($|/.*)": "<rootDir>/src/mol-canvas3d$1" }, diff --git a/src/apps/canvas/component/representation.tsx b/src/apps/canvas/component/representation.tsx index cca0ca103..02fcdea19 100644 --- a/src/apps/canvas/component/representation.tsx +++ b/src/apps/canvas/component/representation.tsx @@ -8,7 +8,7 @@ import * as React from 'react' import Canvas3D from 'mol-canvas3d/canvas3d'; import { App } from '../app'; import { Params } from 'mol-util/parameter'; -import { Representation } from 'mol-geo/representation'; +import { Representation } from 'mol-repr'; import { ParametersComponent } from 'mol-app/component/parameters'; import { ColorTheme } from 'mol-theme/color'; import { getColorThemeProps } from 'mol-geo/geometry/color-data'; diff --git a/src/apps/canvas/component/structure-view.tsx b/src/apps/canvas/component/structure-view.tsx index d987ec1fe..9b8fd7d78 100644 --- a/src/apps/canvas/component/structure-view.tsx +++ b/src/apps/canvas/component/structure-view.tsx @@ -6,9 +6,9 @@ import * as React from 'react' import { StructureView } from '../structure-view'; -import { StructureRepresentation } from 'mol-geo/representation/structure'; import { RepresentationComponent } from './representation'; -import { Representation } from 'mol-geo/representation'; +import { Representation } from 'mol-repr'; +import { StructureRepresentation } from 'mol-repr/structure/index'; export interface StructureViewComponentProps { structureView: StructureView diff --git a/src/apps/canvas/component/volume-view.tsx b/src/apps/canvas/component/volume-view.tsx index d7b596500..159a0d217 100644 --- a/src/apps/canvas/component/volume-view.tsx +++ b/src/apps/canvas/component/volume-view.tsx @@ -6,9 +6,9 @@ import * as React from 'react' import { RepresentationComponent } from './representation'; -import { Representation } from 'mol-geo/representation'; +import { Representation } from 'mol-repr'; import { VolumeView } from '../volume-view'; -import { VolumeRepresentation } from 'mol-geo/representation/volume'; +import { VolumeRepresentation } from 'mol-repr/volume/index'; export interface VolumeViewComponentProps { volumeView: VolumeView diff --git a/src/apps/canvas/structure-view.ts b/src/apps/canvas/structure-view.ts index 6d2313897..80bcac413 100644 --- a/src/apps/canvas/structure-view.ts +++ b/src/apps/canvas/structure-view.ts @@ -5,27 +5,27 @@ */ import { Model, Structure } from 'mol-model/structure'; -import { CartoonRepresentation } from 'mol-geo/representation/structure/representation/cartoon'; -import { BallAndStickRepresentation } from 'mol-geo/representation/structure/representation/ball-and-stick'; import { getStructureFromModel } from './util'; import { AssemblySymmetry } from 'mol-model-props/rcsb/symmetry'; -import { ShapeRepresentation, ShapeProps } from 'mol-geo/representation/shape'; import { getAxesShape } from './assembly-symmetry'; import Canvas3D from 'mol-canvas3d/canvas3d'; -import { CarbohydrateRepresentation } from 'mol-geo/representation/structure/representation/carbohydrate'; // import { MeshBuilder } from 'mol-geo/mesh/mesh-builder'; // import { addSphere } from 'mol-geo/mesh/builder/sphere'; // import { Shape } from 'mol-model/shape'; // import { Color } from 'mol-util/color'; // import { computeUnitBoundary } from 'mol-model/structure/structure/util/boundary'; // import { addBoundingBox } from 'mol-geo/mesh/builder/bounding-box'; -import { PointRepresentation } from 'mol-geo/representation/structure/representation/point'; -import { StructureRepresentation } from 'mol-geo/representation/structure'; import { BehaviorSubject } from 'rxjs'; -import { SpacefillRepresentation } from 'mol-geo/representation/structure/representation/spacefill'; -import { DistanceRestraintRepresentation } from 'mol-geo/representation/structure/representation/distance-restraint'; -import { MolecularSurfaceRepresentation } from 'mol-geo/representation/structure/representation/molecular-surface'; import { App } from './app'; +import { StructureRepresentation } from 'mol-repr/structure/index'; +import { ShapeRepresentation, ShapeProps } from 'mol-repr/shape/index'; +import { CartoonRepresentation } from 'mol-repr/structure/representation/cartoon'; +import { MolecularSurfaceRepresentation } from 'mol-repr/structure/representation/molecular-surface'; +import { PointRepresentation } from 'mol-repr/structure/representation/point'; +import { BallAndStickRepresentation } from 'mol-repr/structure/representation/ball-and-stick'; +import { CarbohydrateRepresentation } from 'mol-repr/structure/representation/carbohydrate'; +import { SpacefillRepresentation } from 'mol-repr/structure/representation/spacefill'; +import { DistanceRestraintRepresentation } from 'mol-repr/structure/representation/distance-restraint'; export interface StructureView { readonly app: App diff --git a/src/apps/canvas/volume-view.ts b/src/apps/canvas/volume-view.ts index 0f17a5c9d..bfe46d0e4 100644 --- a/src/apps/canvas/volume-view.ts +++ b/src/apps/canvas/volume-view.ts @@ -8,9 +8,9 @@ import Canvas3D from 'mol-canvas3d/canvas3d'; import { BehaviorSubject } from 'rxjs'; import { App } from './app'; import { VolumeData } from 'mol-model/volume'; -import { VolumeRepresentation } from 'mol-geo/representation/volume'; -import { IsosurfaceRepresentation } from 'mol-geo/representation/volume/isosurface-mesh'; -import { DirectVolumeRepresentation } from 'mol-geo/representation/volume/direct-volume'; +import { VolumeRepresentation } from 'mol-repr/volume/index'; +import { IsosurfaceRepresentation } from 'mol-repr/volume/isosurface-mesh'; +import { DirectVolumeRepresentation } from 'mol-repr/volume/direct-volume'; export interface VolumeView { readonly app: App diff --git a/src/apps/structure-info/volume.ts b/src/apps/structure-info/volume.ts index 790d4f8a9..cef34b843 100644 --- a/src/apps/structure-info/volume.ts +++ b/src/apps/structure-info/volume.ts @@ -13,9 +13,9 @@ import { downloadCif } from './helpers' import CIF from 'mol-io/reader/cif' import { DensityServer_Data_Database } from 'mol-io/reader/cif/schema/density-server'; import { Table } from 'mol-data/db'; -import { createVolumeSurface } from 'mol-geo/representation/volume/isosurface-mesh'; import { StringBuilder } from 'mol-util'; import { Task } from 'mol-task'; +import { createVolumeSurface } from 'mol-repr/volume/isosurface-mesh'; require('util.promisify').shim(); const writeFileAsync = util.promisify(fs.writeFile); diff --git a/src/mol-canvas3d/canvas3d.ts b/src/mol-canvas3d/canvas3d.ts index 78befa72d..0d21ff0be 100644 --- a/src/mol-canvas3d/canvas3d.ts +++ b/src/mol-canvas3d/canvas3d.ts @@ -16,7 +16,7 @@ import TrackballControls from './controls/trackball' import { Viewport } from './camera/util' import { resizeCanvas } from './util'; import { createContext, getGLContext, WebGLContext } from 'mol-gl/webgl/context'; -import { Representation } from 'mol-geo/representation'; +import { Representation } from 'mol-repr'; import { createRenderTarget } from 'mol-gl/webgl/render-target'; import Scene from 'mol-gl/scene'; import { RenderVariant } from 'mol-gl/webgl/render-item'; diff --git a/src/mol-plugin/state/objects.ts b/src/mol-plugin/state/objects.ts index 6550334a3..c5082458a 100644 --- a/src/mol-plugin/state/objects.ts +++ b/src/mol-plugin/state/objects.ts @@ -7,7 +7,7 @@ import { PluginStateObject } from './base'; import { CifFile } from 'mol-io/reader/cif'; import { Model as _Model, Structure as _Structure } from 'mol-model/structure' -import { StructureRepresentation } from 'mol-geo/representation/structure'; +import { StructureRepresentation } from 'mol-repr/structure/index'; const _create = PluginStateObject.Create diff --git a/src/mol-plugin/state/transforms/visuals.ts b/src/mol-plugin/state/transforms/visuals.ts index b1c521865..9da25b631 100644 --- a/src/mol-plugin/state/transforms/visuals.ts +++ b/src/mol-plugin/state/transforms/visuals.ts @@ -4,11 +4,11 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import { CartoonRepresentation, DefaultCartoonProps } from 'mol-geo/representation/structure/representation/cartoon'; import { Transformer } from 'mol-state'; import { Task } from 'mol-task'; import { PluginStateTransform } from '../base'; import { PluginStateObjects as SO } from '../objects'; +import { CartoonRepresentation, DefaultCartoonProps } from 'mol-repr/structure/representation/cartoon'; export const CreateStructureRepresentation = PluginStateTransform.Create<SO.Structure, SO.StructureRepresentation3D, { }>({ name: 'create-structure-representation', diff --git a/src/mol-geo/representation/index.ts b/src/mol-repr/index.ts similarity index 90% rename from src/mol-geo/representation/index.ts rename to src/mol-repr/index.ts index e9ca9e4c2..447aba546 100644 --- a/src/mol-geo/representation/index.ts +++ b/src/mol-repr/index.ts @@ -6,9 +6,9 @@ import { Task, RuntimeContext } from 'mol-task' import { RenderObject } from 'mol-gl/render-object' -import { PickingId } from '../geometry/picking'; +import { PickingId } from '../mol-geo/geometry/picking'; import { Loci } from 'mol-model/loci'; -import { MarkerAction } from '../geometry/marker-data'; +import { MarkerAction } from '../mol-geo/geometry/marker-data'; import { Params } from 'mol-util/parameter'; export interface RepresentationProps {} diff --git a/src/mol-geo/representation/structure/visual/polymer-backbone-sphere.ts b/src/mol-repr/shape.ts similarity index 100% rename from src/mol-geo/representation/structure/visual/polymer-backbone-sphere.ts rename to src/mol-repr/shape.ts diff --git a/src/mol-geo/representation/shape/index.ts b/src/mol-repr/shape/index.ts similarity index 91% rename from src/mol-geo/representation/shape/index.ts rename to src/mol-repr/shape/index.ts index 529b67b8d..a953f8ecc 100644 --- a/src/mol-geo/representation/shape/index.ts +++ b/src/mol-repr/shape/index.ts @@ -7,18 +7,18 @@ import { Task } from 'mol-task' import { RenderObject, createMeshRenderObject, MeshRenderObject } from 'mol-gl/render-object'; import { RepresentationProps, Representation } from '..'; -import { PickingId } from '../../geometry/picking'; import { Loci, EmptyLoci, isEveryLoci } from 'mol-model/loci'; -import { MarkerAction, applyMarkerAction } from '../../geometry/marker-data'; import { ValueCell } from 'mol-util'; import { ColorThemeName, ColorThemeOptions } from 'mol-theme/color'; import { Shape } from 'mol-model/shape'; -import { LocationIterator } from '../../util/location-iterator'; import { OrderedSet, Interval } from 'mol-data/int'; -import { createIdentityTransform } from '../../geometry/transform-data'; -import { createRenderableState } from '../../geometry/geometry'; -import { Mesh } from '../../geometry/mesh/mesh'; import { paramDefaultValues, SelectParam } from 'mol-util/parameter'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { createIdentityTransform } from 'mol-geo/geometry/transform-data'; +import { createRenderableState } from 'mol-geo/geometry/geometry'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { MarkerAction, applyMarkerAction } from 'mol-geo/geometry/marker-data'; +import { LocationIterator } from 'mol-geo/util/location-iterator'; export interface ShapeRepresentation<P extends RepresentationProps = {}> extends Representation<Shape, P> { } diff --git a/src/mol-repr/structure.ts b/src/mol-repr/structure.ts new file mode 100644 index 000000000..e69de29bb diff --git a/src/mol-geo/representation/structure/complex-representation.ts b/src/mol-repr/structure/complex-representation.ts similarity index 92% rename from src/mol-geo/representation/structure/complex-representation.ts rename to src/mol-repr/structure/complex-representation.ts index cf59bb872..77dc1ac95 100644 --- a/src/mol-geo/representation/structure/complex-representation.ts +++ b/src/mol-repr/structure/complex-representation.ts @@ -7,11 +7,11 @@ import { Structure } from 'mol-model/structure'; import { Task } from 'mol-task' -import { PickingId } from '../../geometry/picking'; import { Loci, EmptyLoci } from 'mol-model/loci'; -import { MarkerAction } from '../../geometry/marker-data'; -import { StructureProps, StructureRepresentation, StructureParams } from '.'; +import { StructureProps, StructureRepresentation, StructureParams } from './index'; import { ComplexVisual } from './complex-visual'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { MarkerAction } from 'mol-geo/geometry/marker-data'; export function ComplexRepresentation<P extends StructureProps>(label: string, visualCtor: () => ComplexVisual<P>): StructureRepresentation<P> { let visual: ComplexVisual<P> | undefined diff --git a/src/mol-geo/representation/structure/complex-visual.ts b/src/mol-repr/structure/complex-visual.ts similarity index 94% rename from src/mol-geo/representation/structure/complex-visual.ts rename to src/mol-repr/structure/complex-visual.ts index aac01779c..a07cc0ded 100644 --- a/src/mol-geo/representation/structure/complex-visual.ts +++ b/src/mol-repr/structure/complex-visual.ts @@ -7,21 +7,21 @@ import { Structure } from 'mol-model/structure'; import { Visual } from '..'; import { MeshRenderObject, LinesRenderObject, PointsRenderObject, DirectVolumeRenderObject } from 'mol-gl/render-object'; -import { Mesh } from '../../geometry/mesh/mesh'; import { RuntimeContext } from 'mol-task'; -import { LocationIterator } from '../../util/location-iterator'; import { createComplexMeshRenderObject, sizeChanged, colorChanged, UnitKind, UnitKindOptions } from './visual/util/common'; -import { StructureProps, VisualUpdateState, StructureMeshParams, StructureParams } from '.'; +import { StructureProps, VisualUpdateState, StructureMeshParams, StructureParams } from './index'; import { deepEqual, ValueCell } from 'mol-util'; -import { PickingId } from '../../geometry/picking'; import { Loci, isEveryLoci, EmptyLoci } from 'mol-model/loci'; -import { MarkerAction, applyMarkerAction } from '../../geometry/marker-data'; import { Interval } from 'mol-data/int'; -import { updateRenderableState, Geometry } from '../../geometry/geometry'; -import { createColors } from '../../geometry/color-data'; import { MultiSelectParam, paramDefaultValues } from 'mol-util/parameter'; import { RenderableValues } from 'mol-gl/renderable/schema'; import { createSizes } from 'mol-geo/geometry/size-data'; +import { Geometry, updateRenderableState } from 'mol-geo/geometry/geometry'; +import { LocationIterator } from 'mol-geo/util/location-iterator'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { createColors } from 'mol-geo/geometry/color-data'; +import { MarkerAction, applyMarkerAction } from 'mol-geo/geometry/marker-data'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; export interface ComplexVisual<P extends StructureProps> extends Visual<Structure, P> { } diff --git a/src/mol-geo/representation/structure/index.ts b/src/mol-repr/structure/index.ts similarity index 87% rename from src/mol-geo/representation/structure/index.ts rename to src/mol-repr/structure/index.ts index d58caef45..07692cf84 100644 --- a/src/mol-geo/representation/structure/index.ts +++ b/src/mol-repr/structure/index.ts @@ -9,15 +9,18 @@ import { Structure } from 'mol-model/structure'; import { ColorThemeName, ColorThemeOptions } from 'mol-theme/color'; import { SizeThemeName, SizeThemeOptions } from 'mol-theme/size'; import { Representation, RepresentationProps } from '..'; -import { Geometry } from '../../geometry/geometry'; -import { Mesh } from '../../geometry/mesh/mesh'; -import { Points } from '../../geometry/points/points'; -import { Lines } from '../../geometry/lines/lines'; import { SelectParam, paramDefaultValues } from 'mol-util/parameter'; -import { DirectVolume } from '../../geometry/direct-volume/direct-volume'; +import { Geometry } from 'mol-geo/geometry/geometry'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { Points } from 'mol-geo/geometry/points/points'; +import { Lines } from 'mol-geo/geometry/lines/lines'; +import { DirectVolume } from 'mol-geo/geometry/direct-volume/direct-volume'; export interface StructureRepresentation<P extends RepresentationProps = {}> extends Representation<Structure, P> { } +// export interface StructureVisual<P extends RepresentationProps = {}> extends Visual<Structure, P> { } + + export const StructureParams = { ...Geometry.Params, colorTheme: SelectParam<ColorThemeName>('Color Theme', '', 'polymer-index', ColorThemeOptions), diff --git a/src/mol-geo/representation/structure/representation/backbone.ts b/src/mol-repr/structure/representation/backbone.ts similarity index 89% rename from src/mol-geo/representation/structure/representation/backbone.ts rename to src/mol-repr/structure/representation/backbone.ts index ecfa4da04..8c82b6228 100644 --- a/src/mol-geo/representation/structure/representation/backbone.ts +++ b/src/mol-repr/structure/representation/backbone.ts @@ -4,15 +4,16 @@ * @author Alexander Rose <alexander.rose@weirdbyte.de> */ -import { StructureRepresentation, UnitsRepresentation } from '..'; -import { PickingId } from '../../../geometry/picking'; import { Structure } from 'mol-model/structure'; import { Task } from 'mol-task'; import { Loci } from 'mol-model/loci'; -import { MarkerAction } from '../../../geometry/marker-data'; import { PolymerBackboneVisual, PolymerBackboneParams } from '../visual/polymer-backbone-cylinder'; import { getQualityProps } from '../../util'; import { paramDefaultValues } from 'mol-util/parameter'; +import { UnitsRepresentation } from '../units-representation'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { MarkerAction } from 'mol-geo/geometry/marker-data'; +import { StructureRepresentation } from '../index'; export const BackboneParams = { ...PolymerBackboneParams diff --git a/src/mol-geo/representation/structure/representation/ball-and-stick.ts b/src/mol-repr/structure/representation/ball-and-stick.ts similarity index 92% rename from src/mol-geo/representation/structure/representation/ball-and-stick.ts rename to src/mol-repr/structure/representation/ball-and-stick.ts index c66376daf..493815b9c 100644 --- a/src/mol-geo/representation/structure/representation/ball-and-stick.ts +++ b/src/mol-repr/structure/representation/ball-and-stick.ts @@ -4,19 +4,21 @@ * @author Alexander Rose <alexander.rose@weirdbyte.de> */ -import { ComplexRepresentation, StructureRepresentation, UnitsRepresentation } from '..'; import { ElementSphereVisual, ElementSphereParams } from '../visual/element-sphere'; import { IntraUnitLinkVisual, IntraUnitLinkParams } from '../visual/intra-unit-link-cylinder'; -import { PickingId } from '../../../geometry/picking'; import { Structure } from 'mol-model/structure'; import { Task } from 'mol-task'; import { Loci, isEmptyLoci } from 'mol-model/loci'; -import { MarkerAction } from '../../../geometry/marker-data'; import { InterUnitLinkVisual } from '../visual/inter-unit-link-cylinder'; import { SizeThemeName, SizeThemeOptions } from 'mol-theme/size'; import { getQualityProps } from '../../util'; import { paramDefaultValues, SelectParam, NumberParam, MultiSelectParam } from 'mol-util/parameter'; import { UnitKind, UnitKindOptions } from '../visual/util/common'; +import { UnitsRepresentation } from '../units-representation'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { MarkerAction } from 'mol-geo/geometry/marker-data'; +import { ComplexRepresentation } from '../complex-representation'; +import { StructureRepresentation } from '../index'; export const BallAndStickParams = { ...ElementSphereParams, diff --git a/src/mol-geo/representation/structure/representation/carbohydrate.ts b/src/mol-repr/structure/representation/carbohydrate.ts similarity index 93% rename from src/mol-geo/representation/structure/representation/carbohydrate.ts rename to src/mol-repr/structure/representation/carbohydrate.ts index e9580f4e0..4fc4cb1cc 100644 --- a/src/mol-geo/representation/structure/representation/carbohydrate.ts +++ b/src/mol-repr/structure/representation/carbohydrate.ts @@ -4,17 +4,18 @@ * @author Alexander Rose <alexander.rose@weirdbyte.de> */ -import { ComplexRepresentation, StructureRepresentation } from '..'; -import { PickingId } from '../../../geometry/picking'; import { Structure } from 'mol-model/structure'; import { Task } from 'mol-task'; import { Loci, isEmptyLoci } from 'mol-model/loci'; -import { MarkerAction } from '../../../geometry/marker-data'; import { CarbohydrateSymbolVisual, CarbohydrateSymbolParams } from '../visual/carbohydrate-symbol-mesh'; import { CarbohydrateLinkVisual, CarbohydrateLinkParams } from '../visual/carbohydrate-link-cylinder'; import { SizeThemeName, SizeThemeOptions } from 'mol-theme/size'; import { getQualityProps } from '../../util'; import { paramDefaultValues, SelectParam, NumberParam } from 'mol-util/parameter'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { MarkerAction } from 'mol-geo/geometry/marker-data'; +import { ComplexRepresentation } from '../complex-representation'; +import { StructureRepresentation } from '../index'; export const CarbohydrateParams = { ...CarbohydrateSymbolParams, diff --git a/src/mol-geo/representation/structure/representation/cartoon.ts b/src/mol-repr/structure/representation/cartoon.ts similarity index 94% rename from src/mol-geo/representation/structure/representation/cartoon.ts rename to src/mol-repr/structure/representation/cartoon.ts index 6083f0233..b4c5fa657 100644 --- a/src/mol-geo/representation/structure/representation/cartoon.ts +++ b/src/mol-repr/structure/representation/cartoon.ts @@ -4,18 +4,19 @@ * @author Alexander Rose <alexander.rose@weirdbyte.de> */ -import { StructureRepresentation, UnitsRepresentation } from '..'; -import { PickingId } from '../../../geometry/picking'; import { Structure } from 'mol-model/structure'; import { Task } from 'mol-task'; import { Loci, isEmptyLoci } from 'mol-model/loci'; -import { MarkerAction } from '../../../geometry/marker-data'; import { PolymerTraceVisual, PolymerTraceParams } from '../visual/polymer-trace-mesh'; import { PolymerGapVisual, PolymerGapParams } from '../visual/polymer-gap-cylinder'; import { NucleotideBlockVisual, NucleotideBlockParams } from '../visual/nucleotide-block-mesh'; import { SizeThemeName, SizeThemeOptions } from 'mol-theme/size'; import { getQualityProps } from '../../util'; import { paramDefaultValues, SelectParam, NumberParam } from 'mol-util/parameter'; +import { UnitsRepresentation } from '../units-representation'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { MarkerAction } from 'mol-geo/geometry/marker-data'; +import { StructureRepresentation } from '../index'; // import { PolymerDirectionVisual, DefaultPolymerDirectionProps } from '../visual/polymer-direction-wedge'; export const CartoonParams = { diff --git a/src/mol-geo/representation/structure/representation/distance-restraint.ts b/src/mol-repr/structure/representation/distance-restraint.ts similarity index 91% rename from src/mol-geo/representation/structure/representation/distance-restraint.ts rename to src/mol-repr/structure/representation/distance-restraint.ts index d0f5ef74b..aec99db93 100644 --- a/src/mol-geo/representation/structure/representation/distance-restraint.ts +++ b/src/mol-repr/structure/representation/distance-restraint.ts @@ -4,16 +4,17 @@ * @author Alexander Rose <alexander.rose@weirdbyte.de> */ -import { ComplexRepresentation, StructureRepresentation } from '..'; -import { PickingId } from '../../../geometry/picking'; import { Structure } from 'mol-model/structure'; import { Task } from 'mol-task'; import { Loci } from 'mol-model/loci'; -import { MarkerAction } from '../../../geometry/marker-data'; import { CrossLinkRestraintVisual, CrossLinkRestraintParams } from '../visual/cross-link-restraint-cylinder'; import { SizeThemeName, SizeThemeOptions } from 'mol-theme/size'; import { getQualityProps } from '../../util'; import { paramDefaultValues, SelectParam, NumberParam } from 'mol-util/parameter'; +import { ComplexRepresentation } from '../complex-representation'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { MarkerAction } from 'mol-geo/geometry/marker-data'; +import { StructureRepresentation } from '../index'; export const DistanceRestraintParams = { ...CrossLinkRestraintParams, diff --git a/src/mol-geo/representation/structure/representation/molecular-surface.ts b/src/mol-repr/structure/representation/molecular-surface.ts similarity index 95% rename from src/mol-geo/representation/structure/representation/molecular-surface.ts rename to src/mol-repr/structure/representation/molecular-surface.ts index 355a95d6e..9d68f2e44 100644 --- a/src/mol-geo/representation/structure/representation/molecular-surface.ts +++ b/src/mol-repr/structure/representation/molecular-surface.ts @@ -4,19 +4,19 @@ * @author Alexander Rose <alexander.rose@weirdbyte.de> */ -import { UnitsRepresentation } from '..'; import { GaussianSurfaceVisual, GaussianSurfaceParams } from '../visual/gaussian-surface-mesh'; -import { StructureRepresentation } from '../units-representation'; +import { UnitsRepresentation } from '../units-representation'; import { Structure } from 'mol-model/structure'; -import { MarkerAction } from '../../../geometry/marker-data'; import { Loci, isEmptyLoci } from 'mol-model/loci'; -import { PickingId } from '../../../geometry/picking'; import { Task } from 'mol-task'; import { GaussianWireframeVisual, GaussianWireframeParams } from '../visual/gaussian-surface-wireframe'; import { getQualityProps } from '../../util'; import { paramDefaultValues, MultiSelectParam, SelectParam } from 'mol-util/parameter'; import { GaussianDensityVolumeParams, GaussianDensityVolumeVisual } from '../visual/gaussian-density-volume'; import { SizeThemeName, SizeThemeOptions } from 'mol-theme/size'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { MarkerAction } from 'mol-geo/geometry/marker-data'; +import { StructureRepresentation } from '../index'; const VisualOptions = [['surface', 'Surface'], ['wireframe', 'Wireframe'], ['volume', 'Volume']] as [string, string][] diff --git a/src/mol-geo/representation/structure/representation/point.ts b/src/mol-repr/structure/representation/point.ts similarity index 87% rename from src/mol-geo/representation/structure/representation/point.ts rename to src/mol-repr/structure/representation/point.ts index 2992e7503..f0c70da1d 100644 --- a/src/mol-geo/representation/structure/representation/point.ts +++ b/src/mol-repr/structure/representation/point.ts @@ -4,14 +4,14 @@ * @author Alexander Rose <alexander.rose@weirdbyte.de> */ -import { UnitsRepresentation } from '..'; import { ElementPointVisual, ElementPointParams } from '../visual/element-point'; -import { StructureRepresentation } from '../units-representation'; +import { UnitsRepresentation } from '../units-representation'; import { Structure } from 'mol-model/structure'; -import { MarkerAction } from '../../../geometry/marker-data'; import { Loci } from 'mol-model/loci'; -import { PickingId } from '../../../geometry/picking'; import { paramDefaultValues } from 'mol-util/parameter'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { MarkerAction } from 'mol-geo/geometry/marker-data'; +import { StructureRepresentation } from '../index'; export const PointParams = { ...ElementPointParams, diff --git a/src/mol-geo/representation/structure/representation/spacefill.ts b/src/mol-repr/structure/representation/spacefill.ts similarity index 88% rename from src/mol-geo/representation/structure/representation/spacefill.ts rename to src/mol-repr/structure/representation/spacefill.ts index c79ece3e0..2c5531f4a 100644 --- a/src/mol-geo/representation/structure/representation/spacefill.ts +++ b/src/mol-repr/structure/representation/spacefill.ts @@ -4,15 +4,15 @@ * @author Alexander Rose <alexander.rose@weirdbyte.de> */ -import { UnitsRepresentation } from '..'; import { ElementSphereVisual, ElementSphereParams } from '../visual/element-sphere'; -import { StructureRepresentation } from '../units-representation'; +import { UnitsRepresentation } from '../units-representation'; import { Structure } from 'mol-model/structure'; -import { PickingId } from '../../../geometry/picking'; -import { MarkerAction } from '../../../geometry/marker-data'; import { Loci } from 'mol-model/loci'; import { getQualityProps } from '../../util'; import { paramDefaultValues } from 'mol-util/parameter'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { MarkerAction } from 'mol-geo/geometry/marker-data'; +import { StructureRepresentation } from '../index'; export const SpacefillParams = { ...ElementSphereParams diff --git a/src/mol-geo/representation/structure/units-representation.ts b/src/mol-repr/structure/units-representation.ts similarity index 93% rename from src/mol-geo/representation/structure/units-representation.ts rename to src/mol-repr/structure/units-representation.ts index c2be322d7..d0694f68a 100644 --- a/src/mol-geo/representation/structure/units-representation.ts +++ b/src/mol-repr/structure/units-representation.ts @@ -8,17 +8,14 @@ import { Structure, Unit } from 'mol-model/structure'; import { Task } from 'mol-task' import { RenderObject } from 'mol-gl/render-object'; -import { Representation, RepresentationProps, Visual } from '..'; -import { PickingId } from '../../geometry/picking'; +import { RepresentationProps, Visual } from '..'; import { Loci, EmptyLoci, isEmptyLoci } from 'mol-model/loci'; -import { MarkerAction } from '../../geometry/marker-data'; -import { StructureProps, StructureParams } from '.'; import { StructureGroup } from './units-visual'; +import { StructureProps, StructureParams, StructureRepresentation } from './index'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { MarkerAction } from 'mol-geo/geometry/marker-data'; export interface UnitsVisual<P extends RepresentationProps = {}> extends Visual<StructureGroup, P> { } -export interface StructureVisual<P extends RepresentationProps = {}> extends Visual<Structure, P> { } - -export interface StructureRepresentation<P extends RepresentationProps = {}> extends Representation<Structure, P> { } export function UnitsRepresentation<P extends StructureProps>(label: string, visualCtor: () => UnitsVisual<P>): StructureRepresentation<P> { let visuals = new Map<number, { group: Unit.SymmetryGroup, visual: UnitsVisual<P> }>() diff --git a/src/mol-geo/representation/structure/units-visual.ts b/src/mol-repr/structure/units-visual.ts similarity index 94% rename from src/mol-geo/representation/structure/units-visual.ts rename to src/mol-repr/structure/units-visual.ts index bef61d533..b79db06aa 100644 --- a/src/mol-geo/representation/structure/units-visual.ts +++ b/src/mol-repr/structure/units-visual.ts @@ -6,25 +6,25 @@ import { Unit, Structure } from 'mol-model/structure'; import { RepresentationProps, Visual } from '../'; -import { VisualUpdateState, StructureMeshParams, StructurePointsParams, StructureLinesParams, StructureDirectVolumeParams, StructureParams } from '.'; +import { VisualUpdateState, StructureMeshParams, StructurePointsParams, StructureLinesParams, StructureDirectVolumeParams, StructureParams } from './index'; import { RuntimeContext } from 'mol-task'; -import { PickingId } from '../../geometry/picking'; -import { LocationIterator } from '../../util/location-iterator'; -import { Mesh } from '../../geometry/mesh/mesh'; -import { MarkerAction, applyMarkerAction, createMarkers } from '../../geometry/marker-data'; import { Loci, isEveryLoci, EmptyLoci } from 'mol-model/loci'; import { MeshRenderObject, PointsRenderObject, LinesRenderObject, DirectVolumeRenderObject } from 'mol-gl/render-object'; import { createUnitsMeshRenderObject, createUnitsPointsRenderObject, createUnitsTransform, createUnitsLinesRenderObject, createUnitsDirectVolumeRenderObject, UnitKind, UnitKindOptions, includesUnitKind, colorChanged, sizeChanged } from './visual/util/common'; import { deepEqual, ValueCell, UUID } from 'mol-util'; import { Interval } from 'mol-data/int'; -import { Points } from '../../geometry/points/points'; -import { updateRenderableState, Geometry } from '../../geometry/geometry'; -import { createColors } from '../../geometry/color-data'; -import { createSizes } from '../../geometry/size-data'; -import { Lines } from '../../geometry/lines/lines'; import { MultiSelectParam, paramDefaultValues } from 'mol-util/parameter'; -import { DirectVolume } from '../../geometry/direct-volume/direct-volume'; import { RenderableValues } from 'mol-gl/renderable/schema'; +import { Geometry, updateRenderableState } from 'mol-geo/geometry/geometry'; +import { LocationIterator } from 'mol-geo/util/location-iterator'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { createMarkers, MarkerAction, applyMarkerAction } from 'mol-geo/geometry/marker-data'; +import { createSizes } from 'mol-geo/geometry/size-data'; +import { createColors } from 'mol-geo/geometry/color-data'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { Points } from 'mol-geo/geometry/points/points'; +import { Lines } from 'mol-geo/geometry/lines/lines'; +import { DirectVolume } from 'mol-geo/geometry/direct-volume/direct-volume'; export type StructureGroup = { structure: Structure, group: Unit.SymmetryGroup } diff --git a/src/mol-geo/representation/structure/visual/carbohydrate-link-cylinder.ts b/src/mol-repr/structure/visual/carbohydrate-link-cylinder.ts similarity index 95% rename from src/mol-geo/representation/structure/visual/carbohydrate-link-cylinder.ts rename to src/mol-repr/structure/visual/carbohydrate-link-cylinder.ts index acfb00dc0..fd904a280 100644 --- a/src/mol-geo/representation/structure/visual/carbohydrate-link-cylinder.ts +++ b/src/mol-repr/structure/visual/carbohydrate-link-cylinder.ts @@ -5,21 +5,21 @@ */ import { Structure, Link, StructureElement } from 'mol-model/structure'; -import { ComplexVisual, VisualUpdateState } from '..'; import { RuntimeContext } from 'mol-task' -import { Mesh } from '../../../geometry/mesh/mesh'; -import { PickingId } from '../../../geometry/picking'; import { Loci, EmptyLoci } from 'mol-model/loci'; import { Vec3 } from 'mol-math/linear-algebra'; -import { LocationIterator } from '../../../util/location-iterator'; import { createLinkCylinderMesh, LinkCylinderProps, LinkCylinderParams } from './util/link'; import { OrderedSet, Interval } from 'mol-data/int'; -import { ComplexMeshVisual } from '../complex-visual'; +import { ComplexMeshVisual, ComplexVisual } from '../complex-visual'; import { SizeTheme, SizeThemeName, SizeThemeOptions } from 'mol-theme/size'; import { LinkType } from 'mol-model/structure/model/types'; import { BitFlags } from 'mol-util'; import { UnitsMeshParams } from '../units-visual'; import { SelectParam, NumberParam, paramDefaultValues } from 'mol-util/parameter'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { VisualUpdateState } from '../index'; +import { LocationIterator } from 'mol-geo/util/location-iterator'; +import { PickingId } from 'mol-geo/geometry/picking'; // TODO create seperate visual // for (let i = 0, il = carbohydrates.terminalLinks.length; i < il; ++i) { diff --git a/src/mol-geo/representation/structure/visual/carbohydrate-symbol-mesh.ts b/src/mol-repr/structure/visual/carbohydrate-symbol-mesh.ts similarity index 89% rename from src/mol-geo/representation/structure/visual/carbohydrate-symbol-mesh.ts rename to src/mol-repr/structure/visual/carbohydrate-symbol-mesh.ts index b6f6b0e29..2e760c9a5 100644 --- a/src/mol-geo/representation/structure/visual/carbohydrate-symbol-mesh.ts +++ b/src/mol-repr/structure/visual/carbohydrate-symbol-mesh.ts @@ -4,26 +4,26 @@ * @author Alexander Rose <alexander.rose@weirdbyte.de> */ +import { Mat4, Vec3 } from 'mol-math/linear-algebra'; +import { Box, PerforatedBox } from 'mol-geo/primitive/box'; +import { OctagonalPyramid, PerforatedOctagonalPyramid } from 'mol-geo/primitive/pyramid'; +import { Star } from 'mol-geo/primitive/star'; +import { Octahedron, PerforatedOctahedron } from 'mol-geo/primitive/octahedron'; +import { DiamondPrism, PentagonalPrism, HexagonalPrism } from 'mol-geo/primitive/prism'; +import { RuntimeContext } from 'mol-task'; import { Structure, StructureElement } from 'mol-model/structure'; -import { ComplexVisual, VisualUpdateState } from '..'; -import { RuntimeContext } from 'mol-task' -import { Mesh } from '../../../geometry/mesh/mesh'; -import { PickingId } from '../../../geometry/picking'; -import { Loci, EmptyLoci } from 'mol-model/loci'; -import { MeshBuilder } from '../../../geometry/mesh/mesh-builder'; -import { Vec3, Mat4 } from 'mol-math/linear-algebra'; -import { getSaccharideShape, SaccharideShapes } from 'mol-model/structure/structure/carbohydrates/constants'; -import { LocationIterator } from '../../../util/location-iterator'; -import { OrderedSet, Interval } from 'mol-data/int'; -import { ComplexMeshVisual, ComplexMeshParams } from '../complex-visual'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder'; import { SizeTheme, SizeThemeName, SizeThemeOptions } from 'mol-theme/size'; -import { addSphere } from '../../../geometry/mesh/builder/sphere'; -import { Box, PerforatedBox } from '../../../primitive/box'; -import { OctagonalPyramid, PerforatedOctagonalPyramid } from '../../../primitive/pyramid'; -import { Star } from '../../../primitive/star'; -import { Octahedron, PerforatedOctahedron } from '../../../primitive/octahedron'; -import { DiamondPrism, PentagonalPrism, HexagonalPrism } from '../../../primitive/prism'; +import { getSaccharideShape, SaccharideShapes } from 'mol-model/structure/structure/carbohydrates/constants'; +import { addSphere } from 'mol-geo/geometry/mesh/builder/sphere'; +import { ComplexMeshParams, ComplexMeshVisual } from '../complex-visual'; import { SelectParam, NumberParam, paramDefaultValues } from 'mol-util/parameter'; +import { ComplexVisual, VisualUpdateState } from '../index'; +import { LocationIterator } from 'mol-geo/util/location-iterator'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { OrderedSet, Interval } from 'mol-data/int'; +import { EmptyLoci, Loci } from 'mol-model/loci'; const t = Mat4.identity() const sVec = Vec3.zero() diff --git a/src/mol-geo/representation/structure/visual/cross-link-restraint-cylinder.ts b/src/mol-repr/structure/visual/cross-link-restraint-cylinder.ts similarity index 95% rename from src/mol-geo/representation/structure/visual/cross-link-restraint-cylinder.ts rename to src/mol-repr/structure/visual/cross-link-restraint-cylinder.ts index 21eb98795..c84541454 100644 --- a/src/mol-geo/representation/structure/visual/cross-link-restraint-cylinder.ts +++ b/src/mol-repr/structure/visual/cross-link-restraint-cylinder.ts @@ -5,20 +5,20 @@ */ import { Link, Structure, StructureElement } from 'mol-model/structure'; -import { ComplexVisual, VisualUpdateState } from '..'; +import { ComplexVisual, VisualUpdateState } from '../index'; import { RuntimeContext } from 'mol-task' import { LinkCylinderProps, createLinkCylinderMesh, LinkCylinderParams } from './util/link'; -import { Mesh } from '../../../geometry/mesh/mesh'; -import { PickingId } from '../../../geometry/picking'; import { Vec3 } from 'mol-math/linear-algebra'; import { Loci, EmptyLoci } from 'mol-model/loci'; import { ComplexMeshVisual, ComplexMeshParams } from '../complex-visual'; -import { LocationIterator } from '../../../util/location-iterator'; import { Interval } from 'mol-data/int'; import { SizeTheme, SizeThemeOptions, SizeThemeName } from 'mol-theme/size'; import { BitFlags } from 'mol-util'; import { LinkType } from 'mol-model/structure/model/types'; import { SelectParam, NumberParam, paramDefaultValues } from 'mol-util/parameter'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { LocationIterator } from 'mol-geo/util/location-iterator'; +import { PickingId } from 'mol-geo/geometry/picking'; async function createCrossLinkRestraintCylinderMesh(ctx: RuntimeContext, structure: Structure, props: LinkCylinderProps, mesh?: Mesh) { diff --git a/src/mol-geo/representation/structure/visual/element-point.ts b/src/mol-repr/structure/visual/element-point.ts similarity index 92% rename from src/mol-geo/representation/structure/visual/element-point.ts rename to src/mol-repr/structure/visual/element-point.ts index 5bbb7f4fe..09abfc3aa 100644 --- a/src/mol-geo/representation/structure/visual/element-point.ts +++ b/src/mol-repr/structure/visual/element-point.ts @@ -6,14 +6,14 @@ import { Unit, Structure } from 'mol-model/structure'; import { RuntimeContext } from 'mol-task' -import { UnitsVisual, VisualUpdateState } from '..'; +import { UnitsVisual, VisualUpdateState } from '../index'; import { getElementLoci, StructureElementIterator, markElement } from './util/element'; import { Vec3 } from 'mol-math/linear-algebra'; import { SizeThemeOptions, SizeThemeName } from 'mol-theme/size'; import { UnitsPointsVisual, UnitsPointsParams } from '../units-visual'; -import { Points } from '../../../geometry/points/points'; -import { PointsBuilder } from '../../../geometry/points/points-builder'; import { SelectParam, NumberParam, BooleanParam, paramDefaultValues } from 'mol-util/parameter'; +import { Points } from 'mol-geo/geometry/points/points'; +import { PointsBuilder } from 'mol-geo/geometry/points/points-builder'; export const ElementPointParams = { ...UnitsPointsParams, diff --git a/src/mol-geo/representation/structure/visual/element-sphere.ts b/src/mol-repr/structure/visual/element-sphere.ts similarity index 96% rename from src/mol-geo/representation/structure/visual/element-sphere.ts rename to src/mol-repr/structure/visual/element-sphere.ts index 5d8cbbb8b..8be9d0086 100644 --- a/src/mol-geo/representation/structure/visual/element-sphere.ts +++ b/src/mol-repr/structure/visual/element-sphere.ts @@ -5,7 +5,7 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import { UnitsVisual, VisualUpdateState } from '..'; +import { UnitsVisual, VisualUpdateState } from '../index'; import { createElementSphereMesh, markElement, getElementLoci, StructureElementIterator } from './util/element'; import { UnitsMeshVisual, UnitsMeshParams } from '../units-visual'; import { NumberParam, paramDefaultValues, SelectParam } from 'mol-util/parameter'; diff --git a/src/mol-geo/representation/structure/visual/gaussian-density-point.ts b/src/mol-repr/structure/visual/gaussian-density-point.ts similarity index 94% rename from src/mol-geo/representation/structure/visual/gaussian-density-point.ts rename to src/mol-repr/structure/visual/gaussian-density-point.ts index a6a1ec839..807469abc 100644 --- a/src/mol-geo/representation/structure/visual/gaussian-density-point.ts +++ b/src/mol-repr/structure/visual/gaussian-density-point.ts @@ -6,16 +6,16 @@ import { Unit, Structure } from 'mol-model/structure'; import { RuntimeContext } from 'mol-task' -import { UnitsVisual, VisualUpdateState } from '..'; +import { UnitsVisual, VisualUpdateState } from '../index'; import { StructureElementIterator } from './util/element'; import { EmptyLoci } from 'mol-model/loci'; import { Vec3 } from 'mol-math/linear-algebra'; import { UnitsPointsVisual, UnitsPointsParams } from '../units-visual'; -import { Points } from '../../../geometry/points/points'; -import { PointsBuilder } from '../../../geometry/points/points-builder'; import { SizeThemeOptions, SizeThemeName } from 'mol-theme/size'; import { GaussianDensityProps, GaussianDensityParams } from 'mol-model/structure/structure/unit/gaussian-density'; import { paramDefaultValues, SelectParam, NumberParam, BooleanParam } from 'mol-util/parameter'; +import { Points } from 'mol-geo/geometry/points/points'; +import { PointsBuilder } from 'mol-geo/geometry/points/points-builder'; export const GaussianDensityPointParams = { ...UnitsPointsParams, diff --git a/src/mol-geo/representation/structure/visual/gaussian-density-volume.ts b/src/mol-repr/structure/visual/gaussian-density-volume.ts similarity index 95% rename from src/mol-geo/representation/structure/visual/gaussian-density-volume.ts rename to src/mol-repr/structure/visual/gaussian-density-volume.ts index 912c07dff..00697e797 100644 --- a/src/mol-geo/representation/structure/visual/gaussian-density-volume.ts +++ b/src/mol-repr/structure/visual/gaussian-density-volume.ts @@ -5,13 +5,13 @@ */ import { Unit, Structure } from 'mol-model/structure'; -import { UnitsVisual, VisualUpdateState } from '..'; +import { UnitsVisual, VisualUpdateState } from '../index'; import { RuntimeContext } from 'mol-task' import { UnitsDirectVolumeVisual, UnitsDirectVolumeParams } from '../units-visual'; import { StructureElementIterator, getElementLoci, markElement } from './util/element'; import { GaussianDensityProps, GaussianDensityParams, computeUnitGaussianDensityTexture } from 'mol-model/structure/structure/unit/gaussian-density'; import { paramDefaultValues } from 'mol-util/parameter'; -import { DirectVolume } from '../../../geometry/direct-volume/direct-volume'; +import { DirectVolume } from 'mol-geo/geometry/direct-volume/direct-volume'; async function createGaussianDensityVolume(ctx: RuntimeContext, unit: Unit, structure: Structure, props: GaussianDensityProps, directVolume?: DirectVolume): Promise<DirectVolume> { const { webgl } = props diff --git a/src/mol-geo/representation/structure/visual/gaussian-surface-mesh.ts b/src/mol-repr/structure/visual/gaussian-surface-mesh.ts similarity index 92% rename from src/mol-geo/representation/structure/visual/gaussian-surface-mesh.ts rename to src/mol-repr/structure/visual/gaussian-surface-mesh.ts index 8faf356ab..ccbfab83e 100644 --- a/src/mol-geo/representation/structure/visual/gaussian-surface-mesh.ts +++ b/src/mol-repr/structure/visual/gaussian-surface-mesh.ts @@ -5,14 +5,14 @@ */ import { Unit, Structure } from 'mol-model/structure'; -import { UnitsVisual, VisualUpdateState } from '..'; +import { UnitsVisual, VisualUpdateState } from '../index'; import { RuntimeContext } from 'mol-task' -import { Mesh } from '../../../geometry/mesh/mesh'; import { UnitsMeshVisual, UnitsMeshParams } from '../units-visual'; import { StructureElementIterator, getElementLoci, markElement } from './util/element'; -import { computeMarchingCubesMesh } from '../../../util/marching-cubes/algorithm'; import { GaussianDensityProps, GaussianDensityParams } from 'mol-model/structure/structure/unit/gaussian-density'; import { paramDefaultValues } from 'mol-util/parameter'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { computeMarchingCubesMesh } from 'mol-geo/util/marching-cubes/algorithm'; async function createGaussianSurfaceMesh(ctx: RuntimeContext, unit: Unit, structure: Structure, props: GaussianDensityProps, mesh?: Mesh): Promise<Mesh> { const { smoothness } = props diff --git a/src/mol-geo/representation/structure/visual/gaussian-surface-wireframe.ts b/src/mol-repr/structure/visual/gaussian-surface-wireframe.ts similarity index 93% rename from src/mol-geo/representation/structure/visual/gaussian-surface-wireframe.ts rename to src/mol-repr/structure/visual/gaussian-surface-wireframe.ts index c59b4bcf2..56cc5b6cb 100644 --- a/src/mol-geo/representation/structure/visual/gaussian-surface-wireframe.ts +++ b/src/mol-repr/structure/visual/gaussian-surface-wireframe.ts @@ -5,15 +5,15 @@ */ import { Unit, Structure } from 'mol-model/structure'; -import { UnitsVisual, VisualUpdateState } from '..'; +import { UnitsVisual, VisualUpdateState } from '../index'; import { RuntimeContext } from 'mol-task' import { UnitsLinesVisual, UnitsLinesParams } from '../units-visual'; import { StructureElementIterator, getElementLoci, markElement } from './util/element'; -import { computeMarchingCubesLines } from '../../../util/marching-cubes/algorithm'; -import { Lines } from '../../../geometry/lines/lines'; import { GaussianDensityProps, GaussianDensityParams } from 'mol-model/structure/structure/unit/gaussian-density'; import { paramDefaultValues, SelectParam, NumberParam, BooleanParam } from 'mol-util/parameter'; import { SizeThemeName, SizeThemeOptions } from 'mol-theme/size'; +import { Lines } from 'mol-geo/geometry/lines/lines'; +import { computeMarchingCubesLines } from 'mol-geo/util/marching-cubes/algorithm'; async function createGaussianWireframe(ctx: RuntimeContext, unit: Unit, structure: Structure, props: GaussianDensityProps, lines?: Lines): Promise<Lines> { const { smoothness } = props diff --git a/src/mol-geo/representation/structure/visual/inter-unit-link-cylinder.ts b/src/mol-repr/structure/visual/inter-unit-link-cylinder.ts similarity index 95% rename from src/mol-geo/representation/structure/visual/inter-unit-link-cylinder.ts rename to src/mol-repr/structure/visual/inter-unit-link-cylinder.ts index bf4c66294..2f4abc282 100644 --- a/src/mol-geo/representation/structure/visual/inter-unit-link-cylinder.ts +++ b/src/mol-repr/structure/visual/inter-unit-link-cylinder.ts @@ -5,11 +5,9 @@ */ import { Link, Structure, StructureElement } from 'mol-model/structure'; -import { ComplexVisual, VisualUpdateState } from '..'; +import { ComplexVisual, VisualUpdateState } from '../index'; import { RuntimeContext } from 'mol-task' import { LinkCylinderProps, createLinkCylinderMesh, LinkIterator, LinkCylinderParams } from './util/link'; -import { Mesh } from '../../../geometry/mesh/mesh'; -import { PickingId } from '../../../geometry/picking'; import { Vec3 } from 'mol-math/linear-algebra'; import { Loci, EmptyLoci } from 'mol-model/loci'; import { ComplexMeshVisual, ComplexMeshParams } from '../complex-visual'; @@ -17,6 +15,8 @@ import { Interval } from 'mol-data/int'; import { SizeTheme, SizeThemeName, SizeThemeOptions } from 'mol-theme/size'; import { BitFlags } from 'mol-util'; import { SelectParam, NumberParam, paramDefaultValues } from 'mol-util/parameter'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { PickingId } from 'mol-geo/geometry/picking'; async function createInterUnitLinkCylinderMesh(ctx: RuntimeContext, structure: Structure, props: LinkCylinderProps, mesh?: Mesh) { const links = structure.links diff --git a/src/mol-geo/representation/structure/visual/intra-unit-link-cylinder.ts b/src/mol-repr/structure/visual/intra-unit-link-cylinder.ts similarity index 96% rename from src/mol-geo/representation/structure/visual/intra-unit-link-cylinder.ts rename to src/mol-repr/structure/visual/intra-unit-link-cylinder.ts index f3a19843a..bb3c4898e 100644 --- a/src/mol-geo/representation/structure/visual/intra-unit-link-cylinder.ts +++ b/src/mol-repr/structure/visual/intra-unit-link-cylinder.ts @@ -6,11 +6,9 @@ */ import { Unit, Link, StructureElement, Structure } from 'mol-model/structure'; -import { UnitsVisual, VisualUpdateState } from '..'; +import { UnitsVisual, VisualUpdateState } from '../index'; import { RuntimeContext } from 'mol-task' import { LinkCylinderProps, createLinkCylinderMesh, LinkIterator, LinkCylinderParams } from './util/link'; -import { Mesh } from '../../../geometry/mesh/mesh'; -import { PickingId } from '../../../geometry/picking'; import { Vec3 } from 'mol-math/linear-algebra'; import { Loci, EmptyLoci } from 'mol-model/loci'; import { UnitsMeshVisual, UnitsMeshParams } from '../units-visual'; @@ -18,6 +16,8 @@ import { Interval } from 'mol-data/int'; import { SizeTheme, SizeThemeName, SizeThemeOptions } from 'mol-theme/size'; import { BitFlags } from 'mol-util'; import { SelectParam, NumberParam, paramDefaultValues } from 'mol-util/parameter'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { PickingId } from 'mol-geo/geometry/picking'; async function createIntraUnitLinkCylinderMesh(ctx: RuntimeContext, unit: Unit, structure: Structure, props: LinkCylinderProps, mesh?: Mesh) { if (!Unit.isAtomic(unit)) return Mesh.createEmpty(mesh) diff --git a/src/mol-geo/representation/structure/visual/nucleotide-block-mesh.ts b/src/mol-repr/structure/visual/nucleotide-block-mesh.ts similarity index 95% rename from src/mol-geo/representation/structure/visual/nucleotide-block-mesh.ts rename to src/mol-repr/structure/visual/nucleotide-block-mesh.ts index 0f80fb268..f7c0aa0a3 100644 --- a/src/mol-geo/representation/structure/visual/nucleotide-block-mesh.ts +++ b/src/mol-repr/structure/visual/nucleotide-block-mesh.ts @@ -5,19 +5,19 @@ */ import { Unit, Structure } from 'mol-model/structure'; -import { UnitsVisual } from '..'; +import { UnitsVisual } from '../index'; import { RuntimeContext } from 'mol-task' -import { Mesh } from '../../../geometry/mesh/mesh'; -import { MeshBuilder } from '../../../geometry/mesh/mesh-builder'; import { Vec3, Mat4 } from 'mol-math/linear-algebra'; import { Segmentation } from 'mol-data/int'; import { MoleculeType, isNucleic, isPurinBase, isPyrimidineBase } from 'mol-model/structure/model/types'; import { getElementIndexForAtomRole } from 'mol-model/structure/util'; import { UnitsMeshVisual, UnitsMeshParams } from '../units-visual'; -import { addCylinder } from '../../../geometry/mesh/builder/cylinder'; -import { Box } from '../../../primitive/box'; import { NucleotideLocationIterator, markNucleotideElement, getNucleotideElementLoci } from './util/nucleotide'; import { paramDefaultValues } from 'mol-util/parameter'; +import { Box } from 'mol-geo/primitive/box'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder'; +import { addCylinder } from 'mol-geo/geometry/mesh/builder/cylinder'; const p1 = Vec3.zero() const p2 = Vec3.zero() diff --git a/src/mol-geo/representation/structure/visual/polymer-backbone-cylinder.ts b/src/mol-repr/structure/visual/polymer-backbone-cylinder.ts similarity index 92% rename from src/mol-geo/representation/structure/visual/polymer-backbone-cylinder.ts rename to src/mol-repr/structure/visual/polymer-backbone-cylinder.ts index 95ccb9311..ba556c24c 100644 --- a/src/mol-geo/representation/structure/visual/polymer-backbone-cylinder.ts +++ b/src/mol-repr/structure/visual/polymer-backbone-cylinder.ts @@ -5,19 +5,19 @@ */ import { Unit, Structure } from 'mol-model/structure'; -import { UnitsVisual, VisualUpdateState } from '..'; +import { UnitsVisual, VisualUpdateState } from '../index'; import { RuntimeContext } from 'mol-task' -import { Mesh } from '../../../geometry/mesh/mesh'; -import { MeshBuilder } from '../../../geometry/mesh/mesh-builder'; import { PolymerBackboneIterator } from './util/polymer'; import { getElementLoci, markElement, StructureElementIterator } from './util/element'; import { Vec3 } from 'mol-math/linear-algebra'; import { UnitsMeshVisual, UnitsMeshParams } from '../units-visual'; import { SizeTheme, SizeThemeOptions, SizeThemeName } from 'mol-theme/size'; -import { CylinderProps } from '../../../primitive/cylinder'; import { OrderedSet } from 'mol-data/int'; -import { addCylinder } from '../../../geometry/mesh/builder/cylinder'; import { paramDefaultValues, NumberParam, SelectParam } from 'mol-util/parameter'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder'; +import { CylinderProps } from 'mol-geo/primitive/cylinder'; +import { addCylinder } from 'mol-geo/geometry/mesh/builder/cylinder'; export const PolymerBackboneCylinderParams = { sizeTheme: SelectParam<SizeThemeName>('Size Theme', '', 'uniform', SizeThemeOptions), diff --git a/src/mol-repr/structure/visual/polymer-backbone-sphere.ts b/src/mol-repr/structure/visual/polymer-backbone-sphere.ts new file mode 100644 index 000000000..0ffdd02fc --- /dev/null +++ b/src/mol-repr/structure/visual/polymer-backbone-sphere.ts @@ -0,0 +1 @@ +// TODO \ No newline at end of file diff --git a/src/mol-geo/representation/structure/visual/polymer-direction-wedge.ts b/src/mol-repr/structure/visual/polymer-direction-wedge.ts similarity index 95% rename from src/mol-geo/representation/structure/visual/polymer-direction-wedge.ts rename to src/mol-repr/structure/visual/polymer-direction-wedge.ts index eb2a9f926..68049ec37 100644 --- a/src/mol-geo/representation/structure/visual/polymer-direction-wedge.ts +++ b/src/mol-repr/structure/visual/polymer-direction-wedge.ts @@ -5,17 +5,17 @@ */ import { Unit, Structure } from 'mol-model/structure'; -import { UnitsVisual } from '..'; +import { UnitsVisual } from '../index'; import { RuntimeContext } from 'mol-task' -import { Mesh } from '../../../geometry/mesh/mesh'; -import { MeshBuilder } from '../../../geometry/mesh/mesh-builder'; import { PolymerTraceIterator, createCurveSegmentState, interpolateCurveSegment, PolymerLocationIterator, getPolymerElementLoci, markPolymerElement } from './util/polymer'; import { Vec3, Mat4 } from 'mol-math/linear-algebra'; import { SecondaryStructureType, isNucleic } from 'mol-model/structure/model/types'; import { UnitsMeshVisual, UnitsMeshParams } from '../units-visual'; import { SizeTheme, SizeThemeName, SizeThemeOptions } from 'mol-theme/size'; -import { Wedge } from '../../../primitive/wedge'; import { SelectParam, NumberParam, paramDefaultValues } from 'mol-util/parameter'; +import { Wedge } from 'mol-geo/primitive/wedge'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder'; const t = Mat4.identity() const sVec = Vec3.zero() diff --git a/src/mol-geo/representation/structure/visual/polymer-gap-cylinder.ts b/src/mol-repr/structure/visual/polymer-gap-cylinder.ts similarity index 91% rename from src/mol-geo/representation/structure/visual/polymer-gap-cylinder.ts rename to src/mol-repr/structure/visual/polymer-gap-cylinder.ts index b4539c324..1e295ee14 100644 --- a/src/mol-geo/representation/structure/visual/polymer-gap-cylinder.ts +++ b/src/mol-repr/structure/visual/polymer-gap-cylinder.ts @@ -5,19 +5,19 @@ */ import { Unit, Structure } from 'mol-model/structure'; -import { UnitsVisual, VisualUpdateState } from '..'; +import { UnitsVisual, VisualUpdateState } from '../index'; import { RuntimeContext } from 'mol-task' -import { Mesh } from '../../../geometry/mesh/mesh'; -import { MeshBuilder } from '../../../geometry/mesh/mesh-builder'; import { PolymerGapIterator, PolymerGapLocationIterator, markPolymerGapElement, getPolymerGapElementLoci } from './util/polymer'; import { Vec3 } from 'mol-math/linear-algebra'; import { UnitsMeshVisual, UnitsMeshParams } from '../units-visual'; import { SizeTheme, SizeThemeOptions, SizeThemeName } from 'mol-theme/size'; -import { CylinderProps } from '../../../primitive/cylinder'; -import { addSphere } from '../../../geometry/mesh/builder/sphere'; -import { addFixedCountDashedCylinder } from '../../../geometry/mesh/builder/cylinder'; import { SelectParam, NumberParam, paramDefaultValues } from 'mol-util/parameter'; import { LinkCylinderParams } from './util/link'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder'; +import { CylinderProps } from 'mol-geo/primitive/cylinder'; +import { addSphere } from 'mol-geo/geometry/mesh/builder/sphere'; +import { addFixedCountDashedCylinder } from 'mol-geo/geometry/mesh/builder/cylinder'; const segmentCount = 10 diff --git a/src/mol-geo/representation/structure/visual/polymer-trace-mesh.ts b/src/mol-repr/structure/visual/polymer-trace-mesh.ts similarity index 94% rename from src/mol-geo/representation/structure/visual/polymer-trace-mesh.ts rename to src/mol-repr/structure/visual/polymer-trace-mesh.ts index 390a757fe..47d0ca82c 100644 --- a/src/mol-geo/representation/structure/visual/polymer-trace-mesh.ts +++ b/src/mol-repr/structure/visual/polymer-trace-mesh.ts @@ -5,17 +5,17 @@ */ import { Unit, Structure } from 'mol-model/structure'; -import { UnitsVisual, VisualUpdateState } from '..'; +import { UnitsVisual, VisualUpdateState } from '../index'; import { RuntimeContext } from 'mol-task' -import { Mesh } from '../../../geometry/mesh/mesh'; -import { MeshBuilder } from '../../../geometry/mesh/mesh-builder'; import { PolymerTraceIterator, createCurveSegmentState, interpolateCurveSegment, PolymerLocationIterator, getPolymerElementLoci, markPolymerElement } from './util/polymer'; import { SecondaryStructureType, isNucleic } from 'mol-model/structure/model/types'; import { UnitsMeshVisual, UnitsMeshParams } from '../units-visual'; import { SizeTheme, SizeThemeName, SizeThemeOptions } from 'mol-theme/size'; -import { addSheet } from '../../../geometry/mesh/builder/sheet'; -import { addTube } from '../../../geometry/mesh/builder/tube'; import { SelectParam, NumberParam, paramDefaultValues } from 'mol-util/parameter'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder'; +import { addSheet } from 'mol-geo/geometry/mesh/builder/sheet'; +import { addTube } from 'mol-geo/geometry/mesh/builder/tube'; export const PolymerTraceMeshParams = { sizeTheme: SelectParam<SizeThemeName>('Size Theme', '', 'physical', SizeThemeOptions), diff --git a/src/mol-geo/representation/structure/visual/util/common.ts b/src/mol-repr/structure/visual/util/common.ts similarity index 89% rename from src/mol-geo/representation/structure/visual/util/common.ts rename to src/mol-repr/structure/visual/util/common.ts index cadf7fef3..56e9f0e8e 100644 --- a/src/mol-geo/representation/structure/visual/util/common.ts +++ b/src/mol-repr/structure/visual/util/common.ts @@ -5,19 +5,19 @@ */ import { Unit, Structure } from 'mol-model/structure'; -import { LocationIterator } from '../../../../util/location-iterator'; -import { Mesh } from '../../../../geometry/mesh/mesh'; -import { StructureProps } from '../..'; +import { StructureProps } from '../../index'; import { createMeshRenderObject, createPointsRenderObject, createLinesRenderObject, createDirectVolumeRenderObject } from 'mol-gl/render-object'; import { RuntimeContext } from 'mol-task'; -import { TransformData, createIdentityTransform, createTransform } from '../../../../geometry/transform-data'; -import { Points } from '../../../../geometry/points/points'; -import { createRenderableState } from '../../../../geometry/geometry'; import { Mat4 } from 'mol-math/linear-algebra'; -import { Lines } from '../../../../geometry/lines/lines'; -import { DirectVolume } from '../../../../geometry/direct-volume/direct-volume'; import { SizeProps } from 'mol-geo/geometry/size-data'; import { ColorProps } from 'mol-geo/geometry/color-data'; +import { TransformData, createTransform, createIdentityTransform } from 'mol-geo/geometry/transform-data'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { LocationIterator } from 'mol-geo/util/location-iterator'; +import { createRenderableState } from 'mol-geo/geometry/geometry'; +import { Points } from 'mol-geo/geometry/points/points'; +import { Lines } from 'mol-geo/geometry/lines/lines'; +import { DirectVolume } from 'mol-geo/geometry/direct-volume/direct-volume'; export function createUnitsTransform({ units }: Unit.SymmetryGroup, transformData?: TransformData) { const unitCount = units.length diff --git a/src/mol-geo/representation/structure/visual/util/element.ts b/src/mol-repr/structure/visual/util/element.ts similarity index 90% rename from src/mol-geo/representation/structure/visual/util/element.ts rename to src/mol-repr/structure/visual/util/element.ts index dfd6cf68c..4c1362033 100644 --- a/src/mol-geo/representation/structure/visual/util/element.ts +++ b/src/mol-repr/structure/visual/util/element.ts @@ -7,15 +7,15 @@ import { Vec3 } from 'mol-math/linear-algebra'; import { Unit, StructureElement, Structure } from 'mol-model/structure'; import { RuntimeContext } from 'mol-task'; -import { sphereVertexCount } from '../../../../primitive/sphere'; -import { Mesh } from '../../../../geometry/mesh/mesh'; -import { MeshBuilder } from '../../../../geometry/mesh/mesh-builder'; import { Loci, EmptyLoci } from 'mol-model/loci'; import { Interval, OrderedSet } from 'mol-data/int'; -import { PickingId } from '../../../../geometry/picking'; import { SizeTheme, SizeThemeName } from 'mol-theme/size'; -import { LocationIterator } from '../../../../util/location-iterator'; -import { addSphere } from '../../../../geometry/mesh/builder/sphere'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { sphereVertexCount } from 'mol-geo/primitive/sphere'; +import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder'; +import { addSphere } from 'mol-geo/geometry/mesh/builder/sphere'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { LocationIterator } from 'mol-geo/util/location-iterator'; export interface ElementSphereMeshProps { sizeTheme: SizeThemeName, diff --git a/src/mol-geo/representation/structure/visual/util/gaussian.ts b/src/mol-repr/structure/visual/util/gaussian.ts similarity index 100% rename from src/mol-geo/representation/structure/visual/util/gaussian.ts rename to src/mol-repr/structure/visual/util/gaussian.ts diff --git a/src/mol-geo/representation/structure/visual/util/link.ts b/src/mol-repr/structure/visual/util/link.ts similarity index 95% rename from src/mol-geo/representation/structure/visual/util/link.ts rename to src/mol-repr/structure/visual/util/link.ts index a5aa87686..53d9688bc 100644 --- a/src/mol-geo/representation/structure/visual/util/link.ts +++ b/src/mol-repr/structure/visual/util/link.ts @@ -6,15 +6,15 @@ import { Vec3 } from 'mol-math/linear-algebra'; import { RuntimeContext } from 'mol-task'; -import { Mesh } from '../../../../geometry/mesh/mesh'; -import { MeshBuilder } from '../../../../geometry/mesh/mesh-builder'; import { LinkType } from 'mol-model/structure/model/types'; import { SizeThemeName, SizeThemeOptions } from 'mol-theme/size'; -import { CylinderProps } from '../../../../primitive/cylinder'; -import { LocationIterator } from '../../../../util/location-iterator'; import { Unit, StructureElement, Structure, Link } from 'mol-model/structure'; -import { addFixedCountDashedCylinder, addCylinder, addDoubleCylinder } from '../../../../geometry/mesh/builder/cylinder'; import { SelectParam, RangeParam, NumberParam, paramDefaultValues } from 'mol-util/parameter'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder'; +import { CylinderProps } from 'mol-geo/primitive/cylinder'; +import { addFixedCountDashedCylinder, addCylinder, addDoubleCylinder } from 'mol-geo/geometry/mesh/builder/cylinder'; +import { LocationIterator } from 'mol-geo/util/location-iterator'; export const LinkCylinderParams = { sizeTheme: SelectParam<SizeThemeName>('Size Theme', '', 'uniform', SizeThemeOptions), diff --git a/src/mol-geo/representation/structure/visual/util/nucleotide.ts b/src/mol-repr/structure/visual/util/nucleotide.ts similarity index 96% rename from src/mol-geo/representation/structure/visual/util/nucleotide.ts rename to src/mol-repr/structure/visual/util/nucleotide.ts index de9e17a15..2ce7b7cb9 100644 --- a/src/mol-geo/representation/structure/visual/util/nucleotide.ts +++ b/src/mol-repr/structure/visual/util/nucleotide.ts @@ -5,11 +5,11 @@ */ import { Unit, StructureElement } from 'mol-model/structure'; -import { LocationIterator } from '../../../../util/location-iterator'; import { getNucleotideElements } from 'mol-model/structure/structure/util/nucleotide'; -import { PickingId } from '../../../../geometry/picking'; import { Loci, EmptyLoci } from 'mol-model/loci'; import { OrderedSet, Interval } from 'mol-data/int'; +import { LocationIterator } from 'mol-geo/util/location-iterator'; +import { PickingId } from 'mol-geo/geometry/picking'; export namespace NucleotideLocationIterator { export function fromGroup(group: Unit.SymmetryGroup): LocationIterator { diff --git a/src/mol-geo/representation/structure/visual/util/polymer.ts b/src/mol-repr/structure/visual/util/polymer.ts similarity index 97% rename from src/mol-geo/representation/structure/visual/util/polymer.ts rename to src/mol-repr/structure/visual/util/polymer.ts index a2739dfa3..80ff883ab 100644 --- a/src/mol-geo/representation/structure/visual/util/polymer.ts +++ b/src/mol-repr/structure/visual/util/polymer.ts @@ -6,10 +6,10 @@ import { Unit, ElementIndex, StructureElement, Link } from 'mol-model/structure'; import SortedRanges from 'mol-data/int/sorted-ranges'; -import { LocationIterator } from '../../../../util/location-iterator'; -import { PickingId } from '../../../../geometry/picking'; import { OrderedSet, Interval } from 'mol-data/int'; import { EmptyLoci, Loci } from 'mol-model/loci'; +import { LocationIterator } from 'mol-geo/util/location-iterator'; +import { PickingId } from 'mol-geo/geometry/picking'; export * from './polymer/backbone-iterator' export * from './polymer/gap-iterator' diff --git a/src/mol-geo/representation/structure/visual/util/polymer/backbone-iterator.ts b/src/mol-repr/structure/visual/util/polymer/backbone-iterator.ts similarity index 100% rename from src/mol-geo/representation/structure/visual/util/polymer/backbone-iterator.ts rename to src/mol-repr/structure/visual/util/polymer/backbone-iterator.ts diff --git a/src/mol-geo/representation/structure/visual/util/polymer/curve-segment.ts b/src/mol-repr/structure/visual/util/polymer/curve-segment.ts similarity index 100% rename from src/mol-geo/representation/structure/visual/util/polymer/curve-segment.ts rename to src/mol-repr/structure/visual/util/polymer/curve-segment.ts diff --git a/src/mol-geo/representation/structure/visual/util/polymer/gap-iterator.ts b/src/mol-repr/structure/visual/util/polymer/gap-iterator.ts similarity index 100% rename from src/mol-geo/representation/structure/visual/util/polymer/gap-iterator.ts rename to src/mol-repr/structure/visual/util/polymer/gap-iterator.ts diff --git a/src/mol-geo/representation/structure/visual/util/polymer/trace-iterator.ts b/src/mol-repr/structure/visual/util/polymer/trace-iterator.ts similarity index 100% rename from src/mol-geo/representation/structure/visual/util/polymer/trace-iterator.ts rename to src/mol-repr/structure/visual/util/polymer/trace-iterator.ts diff --git a/src/mol-geo/representation/util.ts b/src/mol-repr/util.ts similarity index 97% rename from src/mol-geo/representation/util.ts rename to src/mol-repr/util.ts index c8a83cf50..e227c24f8 100644 --- a/src/mol-geo/representation/util.ts +++ b/src/mol-repr/util.ts @@ -6,7 +6,7 @@ import { defaults } from 'mol-util'; import { Structure } from 'mol-model/structure'; -import { VisualQuality } from '../geometry/geometry'; +import { VisualQuality } from '../mol-geo/geometry/geometry'; export interface QualityProps { quality: VisualQuality diff --git a/src/mol-repr/volume.ts b/src/mol-repr/volume.ts new file mode 100644 index 000000000..e69de29bb diff --git a/src/mol-geo/representation/volume/direct-volume.ts b/src/mol-repr/volume/direct-volume.ts similarity index 96% rename from src/mol-geo/representation/volume/direct-volume.ts rename to src/mol-repr/volume/direct-volume.ts index 0654ab530..5ec65ef71 100644 --- a/src/mol-geo/representation/volume/direct-volume.ts +++ b/src/mol-repr/volume/direct-volume.ts @@ -6,14 +6,10 @@ import { VolumeData } from 'mol-model/volume' import { RuntimeContext } from 'mol-task' -import { VolumeVisual, VolumeRepresentation } from '.'; +import { VolumeVisual, VolumeRepresentation } from './index'; import { DirectVolumeRenderObject, createDirectVolumeRenderObject } from 'mol-gl/render-object'; -import { PickingId } from '../../geometry/picking'; -import { MarkerAction } from '../../geometry/marker-data'; import { Loci, EmptyLoci } from 'mol-model/loci'; -import { createRenderableState, updateRenderableState, Geometry } from '../../geometry/geometry'; import { paramDefaultValues } from 'mol-util/parameter'; -import { DirectVolume } from '../../geometry/direct-volume/direct-volume'; import { Vec3, Mat4 } from 'mol-math/linear-algebra'; import { Box3D } from 'mol-math/geometry'; import { WebGLContext } from 'mol-gl/webgl/context'; @@ -21,6 +17,10 @@ import { createTexture } from 'mol-gl/webgl/texture'; import { LocationIterator } from 'mol-geo/util/location-iterator'; import { NullLocation } from 'mol-model/location'; import { createIdentityTransform } from 'mol-geo/geometry/transform-data'; +import { DirectVolume } from 'mol-geo/geometry/direct-volume/direct-volume'; +import { Geometry, createRenderableState, updateRenderableState } from 'mol-geo/geometry/geometry'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { MarkerAction } from 'mol-geo/geometry/marker-data'; function getBoundingBox(gridDimension: Vec3, transform: Mat4) { const bbox = Box3D.empty() diff --git a/src/mol-geo/representation/volume/index.ts b/src/mol-repr/volume/index.ts similarity index 93% rename from src/mol-geo/representation/volume/index.ts rename to src/mol-repr/volume/index.ts index dcb95d81a..16192970f 100644 --- a/src/mol-geo/representation/volume/index.ts +++ b/src/mol-repr/volume/index.ts @@ -7,11 +7,11 @@ import { Task } from 'mol-task' import { RepresentationProps, Representation, Visual } from '..'; import { VolumeData } from 'mol-model/volume'; -import { PickingId } from '../../geometry/picking'; import { Loci, EmptyLoci } from 'mol-model/loci'; -import { MarkerAction } from '../../geometry/marker-data'; -import { Geometry } from '../../geometry/geometry'; import { paramDefaultValues } from 'mol-util/parameter'; +import { Geometry } from 'mol-geo/geometry/geometry'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { MarkerAction } from 'mol-geo/geometry/marker-data'; export interface VolumeVisual<P extends RepresentationProps = {}> extends Visual<VolumeData, P> { } diff --git a/src/mol-geo/representation/volume/isosurface-mesh.ts b/src/mol-repr/volume/isosurface-mesh.ts similarity index 91% rename from src/mol-geo/representation/volume/isosurface-mesh.ts rename to src/mol-repr/volume/isosurface-mesh.ts index acff269e6..152cb3a8b 100644 --- a/src/mol-geo/representation/volume/isosurface-mesh.ts +++ b/src/mol-repr/volume/isosurface-mesh.ts @@ -7,19 +7,19 @@ import { VolumeData, VolumeIsoValue } from 'mol-model/volume' import { RuntimeContext } from 'mol-task' -import { computeMarchingCubesMesh } from '../../util/marching-cubes/algorithm'; -import { Mesh } from '../../geometry/mesh/mesh'; -import { VolumeVisual, VolumeRepresentation } from '.'; +import { VolumeVisual, VolumeRepresentation } from './index'; import { createMeshRenderObject, MeshRenderObject } from 'mol-gl/render-object'; -import { PickingId } from '../../geometry/picking'; -import { MarkerAction } from '../../geometry/marker-data'; import { Loci, EmptyLoci } from 'mol-model/loci'; -import { LocationIterator } from '../../util/location-iterator'; import { NullLocation } from 'mol-model/location'; -import { createIdentityTransform } from '../../geometry/transform-data'; -import { createRenderableState, updateRenderableState } from '../../geometry/geometry'; import { paramDefaultValues, RangeParam } from 'mol-util/parameter'; import { ValueCell } from 'mol-util'; +import { Mesh } from 'mol-geo/geometry/mesh/mesh'; +import { computeMarchingCubesMesh } from 'mol-geo/util/marching-cubes/algorithm'; +import { LocationIterator } from 'mol-geo/util/location-iterator'; +import { createIdentityTransform } from 'mol-geo/geometry/transform-data'; +import { createRenderableState, updateRenderableState } from 'mol-geo/geometry/geometry'; +import { PickingId } from 'mol-geo/geometry/picking'; +import { MarkerAction } from 'mol-geo/geometry/marker-data'; export async function createVolumeSurface(ctx: RuntimeContext, volume: VolumeData, isoValueAbsolute: number, mesh?: Mesh) { ctx.update({ message: 'Marching cubes...' }); diff --git a/tsconfig.json b/tsconfig.json index e82eb6af1..acb69eee3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -17,17 +17,18 @@ "mol-app": ["./mol-app"], "mol-data": ["./mol-data", "./mol-data/index.ts"], "mol-geo": ["./mol-geo"], - "mol-theme": ["./mol-theme"], "mol-gl": ["./mol-gl"], "mol-io": ["./mol-io"], "mol-math": ["./mol-math"], "mol-model": ["./mol-model"], "mol-model-props": ["./mol-model-props", "./mol-model-props/index.ts"], "mol-ql": ["./mol-ql"], + "mol-repr": ["./mol-repr"], "mol-script": ["./mol-script"], "mol-state": ["./mol-state", "./mol-state/index.ts"], "mol-plugin": ["./mol-plugin", "./mol-plugin/index.ts"], "mol-task": ["./mol-task", "./mol-task/index.ts"], + "mol-theme": ["./mol-theme"], "mol-util": ["./mol-util", "./mol-util/index.ts"], "mol-canvas3d": ["./mol-view"] } -- GitLab