|
@@ -160,6 +160,7 @@ var EdgeSplitModifier = function () {
|
|
|
|
|
|
this.modify = function ( geometry, cutOffAngle ) {
|
|
this.modify = function ( geometry, cutOffAngle ) {
|
|
|
|
|
|
|
|
+ const wasNotBufferGeometry = ! geometry.isBufferGeometry;
|
|
if ( ! geometry.isBufferGeometry ) {
|
|
if ( ! geometry.isBufferGeometry ) {
|
|
|
|
|
|
geometry = new BufferGeometry().fromGeometry( geometry );
|
|
geometry = new BufferGeometry().fromGeometry( geometry );
|
|
@@ -167,8 +168,14 @@ var EdgeSplitModifier = function () {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+ let hadNormals = false;
|
|
if ( geometry.attributes.normal ) {
|
|
if ( geometry.attributes.normal ) {
|
|
|
|
|
|
|
|
+ hadNormals = true;
|
|
|
|
+
|
|
|
|
+ if ( ! wasNotBufferGeometry )
|
|
|
|
+ geometry = geometry.clone();
|
|
|
|
+
|
|
geometry.deleteAttribute( 'normal' );
|
|
geometry.deleteAttribute( 'normal' );
|
|
|
|
|
|
}
|
|
}
|
|
@@ -246,6 +253,12 @@ var EdgeSplitModifier = function () {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if ( hadNormals ) {
|
|
|
|
+
|
|
|
|
+ geometry.computeVertexNormals();
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
return geometry;
|
|
return geometry;
|
|
|
|
|
|
};
|
|
};
|