|
@@ -6229,47 +6229,8 @@ THREE.Face4.prototype = {
|
|
|
|
|
|
THREE.UV = function ( u, v ) {
|
|
|
|
|
|
- this.u = u || 0;
|
|
|
- this.v = v || 0;
|
|
|
-
|
|
|
-};
|
|
|
-
|
|
|
-THREE.UV.prototype = {
|
|
|
-
|
|
|
- constructor: THREE.UV,
|
|
|
-
|
|
|
- set: function ( u, v ) {
|
|
|
-
|
|
|
- this.u = u;
|
|
|
- this.v = v;
|
|
|
-
|
|
|
- return this;
|
|
|
-
|
|
|
- },
|
|
|
-
|
|
|
- copy: function ( uv ) {
|
|
|
-
|
|
|
- this.u = uv.u;
|
|
|
- this.v = uv.v;
|
|
|
-
|
|
|
- return this;
|
|
|
-
|
|
|
- },
|
|
|
-
|
|
|
- lerpSelf: function ( uv, alpha ) {
|
|
|
-
|
|
|
- this.u += ( uv.u - this.u ) * alpha;
|
|
|
- this.v += ( uv.v - this.v ) * alpha;
|
|
|
-
|
|
|
- return this;
|
|
|
-
|
|
|
- },
|
|
|
-
|
|
|
- clone: function () {
|
|
|
-
|
|
|
- return new THREE.UV( this.u, this.v );
|
|
|
-
|
|
|
- }
|
|
|
+ console.warn( 'THREE.UV has been DEPRECATED. Use THREE.Vector2 instead.')
|
|
|
+ return new THREE.Vector2( u, v );
|
|
|
|
|
|
};
|
|
|
/**
|
|
@@ -6754,10 +6715,10 @@ THREE.Geometry.prototype = {
|
|
|
z1 = vB.z - vA.z;
|
|
|
z2 = vC.z - vA.z;
|
|
|
|
|
|
- s1 = uvB.u - uvA.u;
|
|
|
- s2 = uvC.u - uvA.u;
|
|
|
- t1 = uvB.v - uvA.v;
|
|
|
- t2 = uvC.v - uvA.v;
|
|
|
+ s1 = uvB.x - uvA.x;
|
|
|
+ s2 = uvC.x - uvA.x;
|
|
|
+ t1 = uvB.y - uvA.y;
|
|
|
+ t2 = uvC.y - uvA.y;
|
|
|
|
|
|
r = 1.0 / ( s1 * t2 - s2 * t1 );
|
|
|
sdir.set( ( t2 * x1 - t1 * x2 ) * r,
|
|
@@ -6984,7 +6945,7 @@ THREE.Geometry.prototype = {
|
|
|
|
|
|
for ( var j = 0, jl = uv.length; j < jl; j ++ ) {
|
|
|
|
|
|
- uvCopy.push( new THREE.UV( uv[ j ].u, uv[ j ].v ) );
|
|
|
+ uvCopy.push( new THREE.Vector2( uv[ j ].x, uv[ j ].y ) );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -9251,9 +9212,9 @@ THREE.BinaryLoader.prototype.createBinModel = function ( data, callback, texture
|
|
|
function uv3 ( where, u1, v1, u2, v2, u3, v3 ) {
|
|
|
|
|
|
where.push( [
|
|
|
- new THREE.UV( u1, v1 ),
|
|
|
- new THREE.UV( u2, v2 ),
|
|
|
- new THREE.UV( u3, v3 )
|
|
|
+ new THREE.Vector2( u1, v1 ),
|
|
|
+ new THREE.Vector2( u2, v2 ),
|
|
|
+ new THREE.Vector2( u3, v3 )
|
|
|
] );
|
|
|
|
|
|
};
|
|
@@ -9261,10 +9222,10 @@ THREE.BinaryLoader.prototype.createBinModel = function ( data, callback, texture
|
|
|
function uv4 ( where, u1, v1, u2, v2, u3, v3, u4, v4 ) {
|
|
|
|
|
|
where.push( [
|
|
|
- new THREE.UV( u1, v1 ),
|
|
|
- new THREE.UV( u2, v2 ),
|
|
|
- new THREE.UV( u3, v3 ),
|
|
|
- new THREE.UV( u4, v4 )
|
|
|
+ new THREE.Vector2( u1, v1 ),
|
|
|
+ new THREE.Vector2( u2, v2 ),
|
|
|
+ new THREE.Vector2( u3, v3 ),
|
|
|
+ new THREE.Vector2( u4, v4 )
|
|
|
] );
|
|
|
};
|
|
|
|
|
@@ -9551,7 +9512,7 @@ THREE.JSONLoader.prototype.createModel = function ( json, callback, texturePath
|
|
|
u = uvLayer[ uvIndex * 2 ];
|
|
|
v = uvLayer[ uvIndex * 2 + 1 ];
|
|
|
|
|
|
- geometry.faceUvs[ i ][ fi ] = new THREE.UV( u, v );
|
|
|
+ geometry.faceUvs[ i ][ fi ] = new THREE.Vector2( u, v );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -9572,7 +9533,7 @@ THREE.JSONLoader.prototype.createModel = function ( json, callback, texturePath
|
|
|
u = uvLayer[ uvIndex * 2 ];
|
|
|
v = uvLayer[ uvIndex * 2 + 1 ];
|
|
|
|
|
|
- uvs[ j ] = new THREE.UV( u, v );
|
|
|
+ uvs[ j ] = new THREE.Vector2( u, v );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -19217,8 +19178,8 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
uvi = uv[ i ];
|
|
|
|
|
|
- uvArray[ offset_uv ] = uvi.u;
|
|
|
- uvArray[ offset_uv + 1 ] = uvi.v;
|
|
|
+ uvArray[ offset_uv ] = uvi.x;
|
|
|
+ uvArray[ offset_uv + 1 ] = uvi.y;
|
|
|
|
|
|
offset_uv += 2;
|
|
|
|
|
@@ -19238,8 +19199,8 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
uvi = uv[ i ];
|
|
|
|
|
|
- uvArray[ offset_uv ] = uvi.u;
|
|
|
- uvArray[ offset_uv + 1 ] = uvi.v;
|
|
|
+ uvArray[ offset_uv ] = uvi.x;
|
|
|
+ uvArray[ offset_uv + 1 ] = uvi.y;
|
|
|
|
|
|
offset_uv += 2;
|
|
|
|
|
@@ -19270,8 +19231,8 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
uv2i = uv2[ i ];
|
|
|
|
|
|
- uv2Array[ offset_uv2 ] = uv2i.u;
|
|
|
- uv2Array[ offset_uv2 + 1 ] = uv2i.v;
|
|
|
+ uv2Array[ offset_uv2 ] = uv2i.x;
|
|
|
+ uv2Array[ offset_uv2 + 1 ] = uv2i.y;
|
|
|
|
|
|
offset_uv2 += 2;
|
|
|
|
|
@@ -19291,8 +19252,8 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
uv2i = uv2[ i ];
|
|
|
|
|
|
- uv2Array[ offset_uv2 ] = uv2i.u;
|
|
|
- uv2Array[ offset_uv2 + 1 ] = uv2i.v;
|
|
|
+ uv2Array[ offset_uv2 ] = uv2i.x;
|
|
|
+ uv2Array[ offset_uv2 + 1 ] = uv2i.y;
|
|
|
|
|
|
offset_uv2 += 2;
|
|
|
|
|
@@ -24407,7 +24368,7 @@ THREE.GeometryUtils = {
|
|
|
|
|
|
for ( var j = 0, jl = uv.length; j < jl; j ++ ) {
|
|
|
|
|
|
- uvCopy.push( new THREE.UV( uv[ j ].u, uv[ j ].v ) );
|
|
|
+ uvCopy.push( new THREE.Vector2( uv[ j ].x, uv[ j ].y ) );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -24710,8 +24671,8 @@ THREE.GeometryUtils = {
|
|
|
|
|
|
// texture repeat
|
|
|
|
|
|
- if( uvs[ j ].u !== 1.0 ) uvs[ j ].u = uvs[ j ].u - Math.floor( uvs[ j ].u );
|
|
|
- if( uvs[ j ].v !== 1.0 ) uvs[ j ].v = uvs[ j ].v - Math.floor( uvs[ j ].v );
|
|
|
+ if( uvs[ j ].x !== 1.0 ) uvs[ j ].x = uvs[ j ].x - Math.floor( uvs[ j ].x );
|
|
|
+ if( uvs[ j ].y !== 1.0 ) uvs[ j ].y = uvs[ j ].y - Math.floor( uvs[ j ].y );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -30852,7 +30813,7 @@ THREE.CircleGeometry = function ( radius, segments, thetaStart, thetaLength ) {
|
|
|
segments = segments !== undefined ? Math.max( 3, segments ) : 8;
|
|
|
|
|
|
var i, uvs = [],
|
|
|
- center = new THREE.Vector3(), centerUV = new THREE.UV( 0.5, 0.5 );
|
|
|
+ center = new THREE.Vector3(), centerUV = new THREE.Vector2( 0.5, 0.5 );
|
|
|
|
|
|
this.vertices.push(center);
|
|
|
uvs.push( centerUV );
|
|
@@ -30865,7 +30826,7 @@ THREE.CircleGeometry = function ( radius, segments, thetaStart, thetaLength ) {
|
|
|
vertex.y = radius * Math.sin( thetaStart + i / segments * thetaLength );
|
|
|
|
|
|
this.vertices.push( vertex );
|
|
|
- uvs.push( new THREE.UV( ( vertex.x / radius + 1 ) / 2, - ( vertex.y / radius + 1 ) / 2 + 1 ) );
|
|
|
+ uvs.push( new THREE.Vector2( ( vertex.x / radius + 1 ) / 2, - ( vertex.y / radius + 1 ) / 2 + 1 ) );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -30984,10 +30945,10 @@ THREE.CubeGeometry = function ( width, height, depth, widthSegments, heightSegme
|
|
|
|
|
|
scope.faces.push( face );
|
|
|
scope.faceVertexUvs[ 0 ].push( [
|
|
|
- new THREE.UV( ix / gridX, 1 - iy / gridY ),
|
|
|
- new THREE.UV( ix / gridX, 1 - ( iy + 1 ) / gridY ),
|
|
|
- new THREE.UV( ( ix + 1 ) / gridX, 1- ( iy + 1 ) / gridY ),
|
|
|
- new THREE.UV( ( ix + 1 ) / gridX, 1 - iy / gridY )
|
|
|
+ new THREE.Vector2( ix / gridX, 1 - iy / gridY ),
|
|
|
+ new THREE.Vector2( ix / gridX, 1 - ( iy + 1 ) / gridY ),
|
|
|
+ new THREE.Vector2( ( ix + 1 ) / gridX, 1- ( iy + 1 ) / gridY ),
|
|
|
+ new THREE.Vector2( ( ix + 1 ) / gridX, 1 - iy / gridY )
|
|
|
] );
|
|
|
|
|
|
}
|
|
@@ -31040,7 +31001,7 @@ THREE.CylinderGeometry = function ( radiusTop, radiusBottom, height, radiusSegme
|
|
|
this.vertices.push( vertex );
|
|
|
|
|
|
verticesRow.push( this.vertices.length - 1 );
|
|
|
- uvsRow.push( new THREE.UV( u, 1 - v ) );
|
|
|
+ uvsRow.push( new THREE.Vector2( u, 1 - v ) );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -31111,7 +31072,7 @@ THREE.CylinderGeometry = function ( radiusTop, radiusBottom, height, radiusSegme
|
|
|
|
|
|
var uv1 = uvs[ 0 ][ x ].clone();
|
|
|
var uv2 = uvs[ 0 ][ x + 1 ].clone();
|
|
|
- var uv3 = new THREE.UV( uv2.u, 0 );
|
|
|
+ var uv3 = new THREE.Vector2( uv2.u, 0 );
|
|
|
|
|
|
this.faces.push( new THREE.Face3( v1, v2, v3, [ n1, n2, n3 ] ) );
|
|
|
this.faceVertexUvs[ 0 ].push( [ uv1, uv2, uv3 ] );
|
|
@@ -31138,7 +31099,7 @@ THREE.CylinderGeometry = function ( radiusTop, radiusBottom, height, radiusSegme
|
|
|
|
|
|
var uv1 = uvs[ y ][ x + 1 ].clone();
|
|
|
var uv2 = uvs[ y ][ x ].clone();
|
|
|
- var uv3 = new THREE.UV( uv2.u, 1 );
|
|
|
+ var uv3 = new THREE.Vector2( uv2.u, 1 );
|
|
|
|
|
|
this.faces.push( new THREE.Face3( v1, v2, v3, [ n1, n2, n3 ] ) );
|
|
|
this.faceVertexUvs[ 0 ].push( [ uv1, uv2, uv3 ] );
|
|
@@ -31829,9 +31790,9 @@ THREE.ExtrudeGeometry.WorldUVGenerator = {
|
|
|
cy = geometry.vertices[ indexC ].y;
|
|
|
|
|
|
return [
|
|
|
- new THREE.UV( ax, ay ),
|
|
|
- new THREE.UV( bx, by ),
|
|
|
- new THREE.UV( cx, cy )
|
|
|
+ new THREE.Vector2( ax, ay ),
|
|
|
+ new THREE.Vector2( bx, by ),
|
|
|
+ new THREE.Vector2( cx, cy )
|
|
|
];
|
|
|
|
|
|
},
|
|
@@ -31864,17 +31825,17 @@ THREE.ExtrudeGeometry.WorldUVGenerator = {
|
|
|
|
|
|
if ( Math.abs( ay - by ) < 0.01 ) {
|
|
|
return [
|
|
|
- new THREE.UV( ax, 1 - az ),
|
|
|
- new THREE.UV( bx, 1 - bz ),
|
|
|
- new THREE.UV( cx, 1 - cz ),
|
|
|
- new THREE.UV( dx, 1 - dz )
|
|
|
+ new THREE.Vector2( ax, 1 - az ),
|
|
|
+ new THREE.Vector2( bx, 1 - bz ),
|
|
|
+ new THREE.Vector2( cx, 1 - cz ),
|
|
|
+ new THREE.Vector2( dx, 1 - dz )
|
|
|
];
|
|
|
} else {
|
|
|
return [
|
|
|
- new THREE.UV( ay, 1 - az ),
|
|
|
- new THREE.UV( by, 1 - bz ),
|
|
|
- new THREE.UV( cy, 1 - cz ),
|
|
|
- new THREE.UV( dy, 1 - dz )
|
|
|
+ new THREE.Vector2( ay, 1 - az ),
|
|
|
+ new THREE.Vector2( by, 1 - bz ),
|
|
|
+ new THREE.Vector2( cy, 1 - cz ),
|
|
|
+ new THREE.Vector2( dy, 1 - dz )
|
|
|
];
|
|
|
}
|
|
|
}
|
|
@@ -32070,11 +32031,11 @@ THREE.LatheGeometry = function ( points, steps, angle ) {
|
|
|
|
|
|
this.faceVertexUvs[ 0 ].push( [
|
|
|
|
|
|
- new THREE.UV( 1 - i / _steps, k / kl ),
|
|
|
- new THREE.UV( 1 - ( i + 1 ) / _steps, k / kl ),
|
|
|
- new THREE.UV( 1 - ( i + 1 ) / _steps, ( k + 1 ) / kl ),
|
|
|
- new THREE.UV( 1 - i / _steps, ( k + 1 ) / kl )
|
|
|
-
|
|
|
+ new THREE.Vector2( 1 - i / _steps, k / kl ),
|
|
|
+ new THREE.Vector2( 1 - ( i + 1 ) / _steps, k / kl ),
|
|
|
+ new THREE.Vector2( 1 - ( i + 1 ) / _steps, ( k + 1 ) / kl ),
|
|
|
+ new THREE.Vector2( 1 - i / _steps, ( k + 1 ) / kl )
|
|
|
+
|
|
|
] );
|
|
|
|
|
|
}
|
|
@@ -32146,10 +32107,10 @@ THREE.PlaneGeometry = function ( width, height, widthSegments, heightSegments )
|
|
|
|
|
|
this.faces.push( face );
|
|
|
this.faceVertexUvs[ 0 ].push( [
|
|
|
- new THREE.UV( ix / gridX, 1 - iz / gridZ ),
|
|
|
- new THREE.UV( ix / gridX, 1 - ( iz + 1 ) / gridZ ),
|
|
|
- new THREE.UV( ( ix + 1 ) / gridX, 1 - ( iz + 1 ) / gridZ ),
|
|
|
- new THREE.UV( ( ix + 1 ) / gridX, 1 - iz / gridZ )
|
|
|
+ new THREE.Vector2( ix / gridX, 1 - iz / gridZ ),
|
|
|
+ new THREE.Vector2( ix / gridX, 1 - ( iz + 1 ) / gridZ ),
|
|
|
+ new THREE.Vector2( ( ix + 1 ) / gridX, 1 - ( iz + 1 ) / gridZ ),
|
|
|
+ new THREE.Vector2( ( ix + 1 ) / gridX, 1 - iz / gridZ )
|
|
|
] );
|
|
|
|
|
|
}
|
|
@@ -32200,7 +32161,7 @@ THREE.SphereGeometry = function ( radius, widthSegments, heightSegments, phiStar
|
|
|
this.vertices.push( vertex );
|
|
|
|
|
|
verticesRow.push( this.vertices.length - 1 );
|
|
|
- uvsRow.push( new THREE.UV( u, 1 - v ) );
|
|
|
+ uvsRow.push( new THREE.Vector2( u, 1 - v ) );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -32351,7 +32312,7 @@ THREE.TorusGeometry = function ( radius, tube, radialSegments, tubularSegments,
|
|
|
|
|
|
this.vertices.push( vertex );
|
|
|
|
|
|
- uvs.push( new THREE.UV( i / this.tubularSegments, j / this.radialSegments ) );
|
|
|
+ uvs.push( new THREE.Vector2( i / this.tubularSegments, j / this.radialSegments ) );
|
|
|
normals.push( vertex.clone().subSelf( center ).normalize() );
|
|
|
|
|
|
}
|
|
@@ -32455,10 +32416,10 @@ THREE.TorusKnotGeometry = function ( radius, tube, radialSegments, tubularSegmen
|
|
|
var c = this.grid[ ip ][ jp ];
|
|
|
var d = this.grid[ i ][ jp ];
|
|
|
|
|
|
- var uva = new THREE.UV( i / this.radialSegments, j / this.tubularSegments );
|
|
|
- var uvb = new THREE.UV( ( i + 1 ) / this.radialSegments, j / this.tubularSegments );
|
|
|
- var uvc = new THREE.UV( ( i + 1 ) / this.radialSegments, ( j + 1 ) / this.tubularSegments );
|
|
|
- var uvd = new THREE.UV( i / this.radialSegments, ( j + 1 ) / this.tubularSegments );
|
|
|
+ var uva = new THREE.Vector2( i / this.radialSegments, j / this.tubularSegments );
|
|
|
+ var uvb = new THREE.Vector2( ( i + 1 ) / this.radialSegments, j / this.tubularSegments );
|
|
|
+ var uvc = new THREE.Vector2( ( i + 1 ) / this.radialSegments, ( j + 1 ) / this.tubularSegments );
|
|
|
+ var uvd = new THREE.Vector2( i / this.radialSegments, ( j + 1 ) / this.tubularSegments );
|
|
|
|
|
|
this.faces.push( new THREE.Face4( a, b, c, d ) );
|
|
|
this.faceVertexUvs[ 0 ].push( [ uva,uvb,uvc, uvd ] );
|
|
@@ -32612,10 +32573,10 @@ THREE.TubeGeometry = function( path, segments, radius, radiusSegments, closed, d
|
|
|
c = this.grid[ ip ][ jp ];
|
|
|
d = this.grid[ i ][ jp ];
|
|
|
|
|
|
- uva = new THREE.UV( i / this.segments, j / this.radiusSegments );
|
|
|
- uvb = new THREE.UV( ( i + 1 ) / this.segments, j / this.radiusSegments );
|
|
|
- uvc = new THREE.UV( ( i + 1 ) / this.segments, ( j + 1 ) / this.radiusSegments );
|
|
|
- uvd = new THREE.UV( i / this.segments, ( j + 1 ) / this.radiusSegments );
|
|
|
+ uva = new THREE.Vector2( i / this.segments, j / this.radiusSegments );
|
|
|
+ uvb = new THREE.Vector2( ( i + 1 ) / this.segments, j / this.radiusSegments );
|
|
|
+ uvc = new THREE.Vector2( ( i + 1 ) / this.segments, ( j + 1 ) / this.radiusSegments );
|
|
|
+ uvd = new THREE.Vector2( i / this.segments, ( j + 1 ) / this.radiusSegments );
|
|
|
|
|
|
this.faces.push( new THREE.Face4( a, b, c, d ) );
|
|
|
this.faceVertexUvs[ 0 ].push( [ uva, uvb, uvc, uvd ] );
|
|
@@ -32825,7 +32786,7 @@ THREE.PolyhedronGeometry = function ( vertices, faces, radius, detail ) {
|
|
|
|
|
|
var u = azimuth( vector ) / 2 / Math.PI + 0.5;
|
|
|
var v = inclination( vector ) / Math.PI + 0.5;
|
|
|
- vertex.uv = new THREE.UV( u, 1 - v );
|
|
|
+ vertex.uv = new THREE.Vector2( u, 1 - v );
|
|
|
|
|
|
return vertex;
|
|
|
|
|
@@ -32908,8 +32869,8 @@ THREE.PolyhedronGeometry = function ( vertices, faces, radius, detail ) {
|
|
|
|
|
|
function correctUV( uv, vector, azimuth ) {
|
|
|
|
|
|
- if ( ( azimuth < 0 ) && ( uv.u === 1 ) ) uv = new THREE.UV( uv.u - 1, uv.v );
|
|
|
- if ( ( vector.x === 0 ) && ( vector.z === 0 ) ) uv = new THREE.UV( azimuth / 2 / Math.PI + 0.5, uv.v );
|
|
|
+ if ( ( azimuth < 0 ) && ( uv.x === 1 ) ) uv = new THREE.Vector2( uv.x - 1, uv.y );
|
|
|
+ if ( ( vector.x === 0 ) && ( vector.z === 0 ) ) uv = new THREE.Vector2( azimuth / 2 / Math.PI + 0.5, uv.y );
|
|
|
return uv;
|
|
|
|
|
|
}
|
|
@@ -33035,10 +32996,10 @@ THREE.ParametricGeometry = function ( func, slices, stacks, useTris ) {
|
|
|
c = (i + 1) * sliceCount + j;
|
|
|
d = (i + 1) * sliceCount + j + 1;
|
|
|
|
|
|
- uva = new THREE.UV( j / slices, i / stacks );
|
|
|
- uvb = new THREE.UV( ( j + 1 ) / slices, i / stacks );
|
|
|
- uvc = new THREE.UV( j / slices, ( i + 1 ) / stacks );
|
|
|
- uvd = new THREE.UV( ( j + 1 ) / slices, ( i + 1 ) / stacks );
|
|
|
+ uva = new THREE.Vector2( j / slices, i / stacks );
|
|
|
+ uvb = new THREE.Vector2( ( j + 1 ) / slices, i / stacks );
|
|
|
+ uvc = new THREE.Vector2( j / slices, ( i + 1 ) / stacks );
|
|
|
+ uvd = new THREE.Vector2( ( j + 1 ) / slices, ( i + 1 ) / stacks );
|
|
|
|
|
|
if ( useTris ) {
|
|
|
|
|
@@ -33236,7 +33197,7 @@ THREE.ConvexGeometry = function( vertices ) {
|
|
|
function vertexUv( vertex ) {
|
|
|
|
|
|
var mag = vertex.length();
|
|
|
- return new THREE.UV( vertex.x / mag, vertex.y / mag );
|
|
|
+ return new THREE.Vector2( vertex.x / mag, vertex.y / mag );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -34417,21 +34378,21 @@ THREE.SubdivisionModifier.prototype.smooth = function ( oldGeometry ) {
|
|
|
|
|
|
// Prepare subdivided uv
|
|
|
|
|
|
- avgUv = new THREE.UV();
|
|
|
+ avgUv = new THREE.Vector2();
|
|
|
|
|
|
if ( face instanceof THREE.Face3 ) {
|
|
|
|
|
|
- avgUv.u = getUV( face.a, i ).u + getUV( face.b, i ).u + getUV( face.c, i ).u;
|
|
|
- avgUv.v = getUV( face.a, i ).v + getUV( face.b, i ).v + getUV( face.c, i ).v;
|
|
|
- avgUv.u /= 3;
|
|
|
- avgUv.v /= 3;
|
|
|
+ avgUv.x = getUV( face.a, i ).x + getUV( face.b, i ).x + getUV( face.c, i ).x;
|
|
|
+ avgUv.y = getUV( face.a, i ).y + getUV( face.b, i ).y + getUV( face.c, i ).y;
|
|
|
+ avgUv.x /= 3;
|
|
|
+ avgUv.y /= 3;
|
|
|
|
|
|
} else if ( face instanceof THREE.Face4 ) {
|
|
|
|
|
|
- avgUv.u = getUV( face.a, i ).u + getUV( face.b, i ).u + getUV( face.c, i ).u + getUV( face.d, i ).u;
|
|
|
- avgUv.v = getUV( face.a, i ).v + getUV( face.b, i ).v + getUV( face.c, i ).v + getUV( face.d, i ).v;
|
|
|
- avgUv.u /= 4;
|
|
|
- avgUv.v /= 4;
|
|
|
+ avgUv.x = getUV( face.a, i ).x + getUV( face.b, i ).x + getUV( face.c, i ).x + getUV( face.d, i ).x;
|
|
|
+ avgUv.y = getUV( face.a, i ).y + getUV( face.b, i ).y + getUV( face.c, i ).y + getUV( face.d, i ).y;
|
|
|
+ avgUv.x /= 4;
|
|
|
+ avgUv.y /= 4;
|
|
|
|
|
|
}
|
|
|
|
|
@@ -34563,23 +34524,23 @@ THREE.SubdivisionModifier.prototype.smooth = function ( oldGeometry ) {
|
|
|
|
|
|
// Prepare subdivided uv
|
|
|
|
|
|
- avgUv = new THREE.UV();
|
|
|
+ avgUv = new THREE.Vector2();
|
|
|
|
|
|
- avgUv.u = getUV(edgeVertexA, faceIndexA).u + getUV(edgeVertexB, faceIndexA).u;
|
|
|
- avgUv.v = getUV(edgeVertexA, faceIndexA).v + getUV(edgeVertexB, faceIndexA).v;
|
|
|
- avgUv.u /= 2;
|
|
|
- avgUv.v /= 2;
|
|
|
+ avgUv.x = getUV(edgeVertexA, faceIndexA).x + getUV(edgeVertexB, faceIndexA).x;
|
|
|
+ avgUv.y = getUV(edgeVertexA, faceIndexA).y + getUV(edgeVertexB, faceIndexA).y;
|
|
|
+ avgUv.x /= 2;
|
|
|
+ avgUv.y /= 2;
|
|
|
|
|
|
addUV(edgePoints[i], faceIndexA, avgUv);
|
|
|
|
|
|
if (edge.length>=2) {
|
|
|
assert(edge.length == 2, 'did we plan for more than 2 edges?');
|
|
|
- avgUv = new THREE.UV();
|
|
|
+ avgUv = new THREE.Vector2();
|
|
|
|
|
|
- avgUv.u = getUV(edgeVertexA, faceIndexB).u + getUV(edgeVertexB, faceIndexB).u;
|
|
|
- avgUv.v = getUV(edgeVertexA, faceIndexB).v + getUV(edgeVertexB, faceIndexB).v;
|
|
|
- avgUv.u /= 2;
|
|
|
- avgUv.v /= 2;
|
|
|
+ avgUv.x = getUV(edgeVertexA, faceIndexB).x + getUV(edgeVertexB, faceIndexB).x;
|
|
|
+ avgUv.y = getUV(edgeVertexA, faceIndexB).y + getUV(edgeVertexB, faceIndexB).y;
|
|
|
+ avgUv.x /= 2;
|
|
|
+ avgUv.y /= 2;
|
|
|
|
|
|
addUV(edgePoints[i], faceIndexB, avgUv);
|
|
|
}
|