|
@@ -13,6 +13,7 @@ import {
|
|
|
* dashed: <boolean>,
|
|
|
* dashScale: <float>,
|
|
|
* dashSize: <float>,
|
|
|
+ * dashOffset: <float>,
|
|
|
* gapSize: <float>,
|
|
|
* resolution: <Vector2>, // to be set by renderer
|
|
|
* }
|
|
@@ -24,6 +25,7 @@ UniformsLib.line = {
|
|
|
resolution: { value: new Vector2( 1, 1 ) },
|
|
|
dashScale: { value: 1 },
|
|
|
dashSize: { value: 1 },
|
|
|
+ dashOffset: { value: 0 },
|
|
|
gapSize: { value: 1 }, // todo FIX - maybe change to totalSize
|
|
|
opacity: { value: 1 }
|
|
|
|
|
@@ -192,6 +194,7 @@ ShaderLib[ 'line' ] = {
|
|
|
#ifdef USE_DASH
|
|
|
|
|
|
uniform float dashSize;
|
|
|
+ uniform float dashOffset;
|
|
|
uniform float gapSize;
|
|
|
|
|
|
#endif
|
|
@@ -214,7 +217,7 @@ ShaderLib[ 'line' ] = {
|
|
|
|
|
|
if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps
|
|
|
|
|
|
- if ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX
|
|
|
+ if ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX
|
|
|
|
|
|
#endif
|
|
|
|
|
@@ -335,6 +338,24 @@ var LineMaterial = function ( parameters ) {
|
|
|
|
|
|
},
|
|
|
|
|
|
+ dashOffset: {
|
|
|
+
|
|
|
+ enumerable: true,
|
|
|
+
|
|
|
+ get: function () {
|
|
|
+
|
|
|
+ return this.uniforms.dashOffset.value;
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ set: function ( value ) {
|
|
|
+
|
|
|
+ this.uniforms.dashOffset.value = value;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
gapSize: {
|
|
|
|
|
|
enumerable: true,
|