diff --git a/src/mol-geo/geometry/lines/lines.ts b/src/mol-geo/geometry/lines/lines.ts index 9e0cba304a392e027395d8b48ba5fc0f4f98f5d7..84b565d1d1df3460e108c8a64303d190dfc4a384 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 1c5d4e091484a146873d033080dce45fca882d75..6ea66158d5fbe64a6a148effe5e7bd71e11c824c 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 5aae3b718d1360b205c0760009617d640a233931..854f103160515b2cbe1d3ea37c98bb5d674f0742 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;