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