|
@@ -15040,7 +15040,7 @@ var equirect_vert = "varying vec3 vWorldDirection;\n#include <common>\nvoid main
|
|
|
|
|
|
var linedashed_frag = "uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}";
|
|
|
|
|
|
-var linedashed_vert = "uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}";
|
|
|
+var linedashed_vert = "uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}";
|
|
|
|
|
|
var meshbasic_frag = "uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}";
|
|
|
|
|
@@ -27543,6 +27543,8 @@ function LineBasicMaterial( parameters ) {
|
|
|
this.linecap = 'round';
|
|
|
this.linejoin = 'round';
|
|
|
|
|
|
+ this.morphTargets = false;
|
|
|
+
|
|
|
this.setValues( parameters );
|
|
|
|
|
|
}
|
|
@@ -27562,6 +27564,8 @@ LineBasicMaterial.prototype.copy = function ( source ) {
|
|
|
this.linecap = source.linecap;
|
|
|
this.linejoin = source.linejoin;
|
|
|
|
|
|
+ this.morphTargets = source.morphTargets;
|
|
|
+
|
|
|
return this;
|
|
|
|
|
|
};
|
|
@@ -27591,6 +27595,8 @@ function Line( geometry, material, mode ) {
|
|
|
this.geometry = geometry !== undefined ? geometry : new BufferGeometry();
|
|
|
this.material = material !== undefined ? material : new LineBasicMaterial();
|
|
|
|
|
|
+ this.updateMorphTargets();
|
|
|
+
|
|
|
}
|
|
|
|
|
|
Line.prototype = Object.assign( Object.create( Object3D.prototype ), {
|
|
@@ -27793,6 +27799,52 @@ Line.prototype = Object.assign( Object.create( Object3D.prototype ), {
|
|
|
|
|
|
},
|
|
|
|
|
|
+ updateMorphTargets: function () {
|
|
|
+
|
|
|
+ var geometry = this.geometry;
|
|
|
+ var m, ml, name;
|
|
|
+
|
|
|
+ if ( geometry.isBufferGeometry ) {
|
|
|
+
|
|
|
+ var morphAttributes = geometry.morphAttributes;
|
|
|
+ var keys = Object.keys( morphAttributes );
|
|
|
+
|
|
|
+ if ( keys.length > 0 ) {
|
|
|
+
|
|
|
+ var morphAttribute = morphAttributes[ keys[ 0 ] ];
|
|
|
+
|
|
|
+ if ( morphAttribute !== undefined ) {
|
|
|
+
|
|
|
+ this.morphTargetInfluences = [];
|
|
|
+ this.morphTargetDictionary = {};
|
|
|
+
|
|
|
+ for ( m = 0, ml = morphAttribute.length; m < ml; m ++ ) {
|
|
|
+
|
|
|
+ name = morphAttribute[ m ].name || String( m );
|
|
|
+
|
|
|
+ this.morphTargetInfluences.push( 0 );
|
|
|
+ this.morphTargetDictionary[ name ] = m;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ var morphTargets = geometry.morphTargets;
|
|
|
+
|
|
|
+ if ( morphTargets !== undefined && morphTargets.length > 0 ) {
|
|
|
+
|
|
|
+ console.error( 'THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.' );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
clone: function () {
|
|
|
|
|
|
return new this.constructor( this.geometry, this.material ).copy( this );
|