From b20b80f9379c57d8a7cd1764e0817ec225bdd046 Mon Sep 17 00:00:00 2001 From: Alexander Rose <alexander.rose@weirdbyte.de> Date: Sat, 29 Sep 2018 18:27:00 -0700 Subject: [PATCH] wip, lines --- src/mol-geo/geometry/lines/lines.ts | 2 +- .../structure/visual/gaussian-surface-wireframe.ts | 6 +++++- src/mol-gl/shader/lines.vert | 10 ++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/mol-geo/geometry/lines/lines.ts b/src/mol-geo/geometry/lines/lines.ts index 9e0cba304..84b565d1d 100644 --- a/src/mol-geo/geometry/lines/lines.ts +++ b/src/mol-geo/geometry/lines/lines.ts @@ -95,7 +95,7 @@ export namespace Lines { ...Geometry.Params, lineSizeAttenuation: BooleanParam('Line Size Attenuation', '', false), sizeTheme: SelectParam<SizeThemeName>('Size Theme', '', 'uniform', SizeThemeOptions), - sizeValue: NumberParam('Size Value', '', 1, 0, 0.1, 20), + sizeValue: NumberParam('Size Value', '', 1, 0, 10, 0.1), sizeFactor: NumberParam('Size Factor', '', 1, 0, 10, 0.1), } export const DefaultProps = paramDefaultValues(Params) diff --git a/src/mol-geo/representation/structure/visual/gaussian-surface-wireframe.ts b/src/mol-geo/representation/structure/visual/gaussian-surface-wireframe.ts index 1c5d4e091..6ea66158d 100644 --- a/src/mol-geo/representation/structure/visual/gaussian-surface-wireframe.ts +++ b/src/mol-geo/representation/structure/visual/gaussian-surface-wireframe.ts @@ -12,7 +12,8 @@ import { StructureElementIterator, getElementLoci, markElement } from './util/el 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 } from 'mol-view/parameter'; +import { paramDefaultValues, SelectParam, NumberParam, BooleanParam } from 'mol-view/parameter'; +import { SizeThemeName, SizeThemeOptions } from 'mol-view/theme/size'; async function createGaussianWireframe(ctx: RuntimeContext, unit: Unit, structure: Structure, props: GaussianDensityProps, lines?: Lines): Promise<Lines> { const { smoothness } = props @@ -33,6 +34,9 @@ async function createGaussianWireframe(ctx: RuntimeContext, unit: Unit, structur export const GaussianWireframeParams = { ...UnitsLinesParams, ...GaussianDensityParams, + sizeTheme: SelectParam<SizeThemeName>('Size Theme', '', 'uniform', SizeThemeOptions), + sizeValue: NumberParam('Size Value', '', 2, 0, 10, 0.1), + lineSizeAttenuation: BooleanParam('Line Size Attenuation', '', false), } export const DefaultGaussianWireframeProps = paramDefaultValues(GaussianWireframeParams) export type GaussianWireframeProps = typeof DefaultGaussianWireframeProps diff --git a/src/mol-gl/shader/lines.vert b/src/mol-gl/shader/lines.vert index 5aae3b718..854f10316 100644 --- a/src/mol-gl/shader/lines.vert +++ b/src/mol-gl/shader/lines.vert @@ -60,8 +60,6 @@ void main(){ float size = readFromTexture(tSize, aInstance * float(uGroupCount) + aGroup, uSizeTexDim).r; #endif - float linewidth = 3.0; // size; - mat4 modelView = uView * uModel * aTransform; // camera space @@ -106,6 +104,14 @@ void main(){ // sign flip if (aMapping.x < 0.0) offset *= -1.0; + // calculate linewidth + float linewidth; + #ifdef dLineSizeAttenuation + linewidth = size * uPixelRatio * ((uViewportHeight / 2.0) / -start.z) * 5.0; + #else + linewidth = size * uPixelRatio; + #endif + // adjust for linewidth offset *= linewidth; -- GitLab