File tree Expand file tree Collapse file tree 3 files changed +46
-2
lines changed Expand file tree Collapse file tree 3 files changed +46
-2
lines changed Original file line number Diff line number Diff line change 55 * dashed: <boolean>,
66 * dashScale: <float>,
77 * dashSize: <float>,
8+ * dashOffset: <float>,
89 * gapSize: <float>,
910 * resolution: <Vector2>, // to be set by renderer
1011 * }
@@ -16,6 +17,7 @@ THREE.UniformsLib.line = {
1617 resolution : { value : new THREE . Vector2 ( 1 , 1 ) } ,
1718 dashScale : { value : 1 } ,
1819 dashSize : { value : 1 } ,
20+ dashOffset : { value : 0 } ,
1921 gapSize : { value : 1 } , // todo FIX - maybe change to totalSize
2022 opacity : { value : 1 }
2123
@@ -184,6 +186,7 @@ THREE.ShaderLib[ 'line' ] = {
184186 #ifdef USE_DASH
185187
186188 uniform float dashSize;
189+ uniform float dashOffset;
187190 uniform float gapSize;
188191
189192 #endif
@@ -206,7 +209,7 @@ THREE.ShaderLib[ 'line' ] = {
206209
207210 if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps
208211
209- if ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX
212+ if ( mod( vLineDistance + dashOffset , dashSize + gapSize ) > dashSize ) discard; // todo - FIX
210213
211214 #endif
212215
@@ -327,6 +330,24 @@ THREE.LineMaterial = function ( parameters ) {
327330
328331 } ,
329332
333+ dashOffset : {
334+
335+ enumerable : true ,
336+
337+ get : function ( ) {
338+
339+ return this . uniforms . dashOffset . value ;
340+
341+ } ,
342+
343+ set : function ( value ) {
344+
345+ this . uniforms . dashOffset . value = value ;
346+
347+ }
348+
349+ } ,
350+
330351 gapSize : {
331352
332353 enumerable : true ,
Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ export interface LineMaterialParameters extends MaterialParameters {
1010 dashed ?: boolean ;
1111 dashScale ?: number ;
1212 dashSize ?: number ;
13+ dashOffset ?: number ;
1314 gapSize ?: number ;
1415 linewidth ?: number ;
1516 resolution ?: Vector2 ;
@@ -22,6 +23,7 @@ export class LineMaterial extends ShaderMaterial {
2223 dashed : boolean ;
2324 dashScale : number ;
2425 dashSize : number ;
26+ dashOffset : number ;
2527 gapSize : number ;
2628 opacity : number ;
2729 readonly isLineMaterial : true ;
Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ import {
1313 * dashed: <boolean>,
1414 * dashScale: <float>,
1515 * dashSize: <float>,
16+ * dashOffset: <float>,
1617 * gapSize: <float>,
1718 * resolution: <Vector2>, // to be set by renderer
1819 * }
@@ -24,6 +25,7 @@ UniformsLib.line = {
2425 resolution : { value : new Vector2 ( 1 , 1 ) } ,
2526 dashScale : { value : 1 } ,
2627 dashSize : { value : 1 } ,
28+ dashOffset : { value : 0 } ,
2729 gapSize : { value : 1 } , // todo FIX - maybe change to totalSize
2830 opacity : { value : 1 }
2931
@@ -192,6 +194,7 @@ ShaderLib[ 'line' ] = {
192194 #ifdef USE_DASH
193195
194196 uniform float dashSize;
197+ uniform float dashOffset;
195198 uniform float gapSize;
196199
197200 #endif
@@ -214,7 +217,7 @@ ShaderLib[ 'line' ] = {
214217
215218 if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps
216219
217- if ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX
220+ if ( mod( vLineDistance + dashOffset , dashSize + gapSize ) > dashSize ) discard; // todo - FIX
218221
219222 #endif
220223
@@ -335,6 +338,24 @@ var LineMaterial = function ( parameters ) {
335338
336339 } ,
337340
341+ dashOffset : {
342+
343+ enumerable : true ,
344+
345+ get : function ( ) {
346+
347+ return this . uniforms . dashOffset . value ;
348+
349+ } ,
350+
351+ set : function ( value ) {
352+
353+ this . uniforms . dashOffset . value = value ;
354+
355+ }
356+
357+ } ,
358+
338359 gapSize : {
339360
340361 enumerable : true ,
You can’t perform that action at this time.
0 commit comments