@@ -6855,19 +6855,9 @@ THREE.Math = {
6855
6855
6856
6856
}(),
6857
6857
6858
- // Clamp value to range <a, b>
6858
+ clamp: function ( value, min, max ) {
6859
6859
6860
- clamp: function ( x, a, b ) {
6861
-
6862
- return ( x < a ) ? a : ( ( x > b ) ? b : x );
6863
-
6864
- },
6865
-
6866
- // Clamp value to range <a, inf)
6867
-
6868
- clampBottom: function ( x, a ) {
6869
-
6870
- return x < a ? a : x;
6860
+ return Math.max( min, Math.min( max, value ) );
6871
6861
6872
6862
},
6873
6863
@@ -29783,7 +29773,6 @@ THREE.Curve.create = function ( constructor, getPointFunc ) {
29783
29773
THREE.CurvePath = function () {
29784
29774
29785
29775
this.curves = [];
29786
- this.bends = [];
29787
29776
29788
29777
this.autoClose = false; // Automatically closes the path
29789
29778
@@ -29911,63 +29900,6 @@ THREE.CurvePath.prototype.getCurveLengths = function() {
29911
29900
29912
29901
29913
29902
29914
- // Returns min and max coordinates
29915
-
29916
- THREE.CurvePath.prototype.getBoundingBox = function () {
29917
-
29918
- var points = this.getPoints();
29919
-
29920
- var maxX, maxY, maxZ;
29921
- var minX, minY, minZ;
29922
-
29923
- maxX = maxY = Number.NEGATIVE_INFINITY;
29924
- minX = minY = Number.POSITIVE_INFINITY;
29925
-
29926
- var v3 = points[ 0 ] instanceof THREE.Vector3;
29927
-
29928
- var sum = v3 ? new THREE.Vector3() : new THREE.Vector2();
29929
-
29930
- for ( var i = 0, l = points.length; i < l; i ++ ) {
29931
-
29932
- var p = points[ i ];
29933
-
29934
- if ( p.x > maxX ) maxX = p.x;
29935
- else if ( p.x < minX ) minX = p.x;
29936
-
29937
- if ( p.y > maxY ) maxY = p.y;
29938
- else if ( p.y < minY ) minY = p.y;
29939
-
29940
- if ( v3 ) {
29941
-
29942
- if ( p.z > maxZ ) maxZ = p.z;
29943
- else if ( p.z < minZ ) minZ = p.z;
29944
-
29945
- }
29946
-
29947
- sum.add( p );
29948
-
29949
- }
29950
-
29951
- var ret = {
29952
-
29953
- minX: minX,
29954
- minY: minY,
29955
- maxX: maxX,
29956
- maxY: maxY
29957
-
29958
- };
29959
-
29960
- if ( v3 ) {
29961
-
29962
- ret.maxZ = maxZ;
29963
- ret.minZ = minZ;
29964
-
29965
- }
29966
-
29967
- return ret;
29968
-
29969
- };
29970
-
29971
29903
/**************************************************************
29972
29904
* Create Geometries Helpers
29973
29905
**************************************************************/
@@ -30005,95 +29937,6 @@ THREE.CurvePath.prototype.createGeometry = function( points ) {
30005
29937
30006
29938
};
30007
29939
30008
-
30009
- /**************************************************************
30010
- * Bend / Wrap Helper Methods
30011
- **************************************************************/
30012
-
30013
- // Wrap path / Bend modifiers?
30014
-
30015
- THREE.CurvePath.prototype.addWrapPath = function ( bendpath ) {
30016
-
30017
- this.bends.push( bendpath );
30018
-
30019
- };
30020
-
30021
- THREE.CurvePath.prototype.getTransformedPoints = function( segments, bends ) {
30022
-
30023
- var oldPts = this.getPoints( segments ); // getPoints getSpacedPoints
30024
-
30025
- if ( ! bends ) {
30026
-
30027
- bends = this.bends;
30028
-
30029
- }
30030
-
30031
- for ( var i = 0, l = bends.length; i < l; i ++ ) {
30032
-
30033
- oldPts = this.getWrapPoints( oldPts, bends[ i ] );
30034
-
30035
- }
30036
-
30037
- return oldPts;
30038
-
30039
- };
30040
-
30041
- THREE.CurvePath.prototype.getTransformedSpacedPoints = function( segments, bends ) {
30042
-
30043
- var oldPts = this.getSpacedPoints( segments );
30044
-
30045
- if ( ! bends ) {
30046
-
30047
- bends = this.bends;
30048
-
30049
- }
30050
-
30051
- for ( var i = 0, l = bends.length; i < l; i ++ ) {
30052
-
30053
- oldPts = this.getWrapPoints( oldPts, bends[ i ] );
30054
-
30055
- }
30056
-
30057
- return oldPts;
30058
-
30059
- };
30060
-
30061
- // This returns getPoints() bend/wrapped around the contour of a path.
30062
- // Read http://www.planetclegg.com/projects/WarpingTextToSplines.html
30063
-
30064
- THREE.CurvePath.prototype.getWrapPoints = function ( oldPts, path ) {
30065
-
30066
- var bounds = this.getBoundingBox();
30067
-
30068
- for ( var i = 0, l = oldPts.length; i < l; i ++ ) {
30069
-
30070
- var p = oldPts[ i ];
30071
-
30072
- var oldX = p.x;
30073
- var oldY = p.y;
30074
-
30075
- var xNorm = oldX / bounds.maxX;
30076
-
30077
- // If using actual distance, for length > path, requires line extrusions
30078
- //xNorm = path.getUtoTmapping(xNorm, oldX); // 3 styles. 1) wrap stretched. 2) wrap stretch by arc length 3) warp by actual distance
30079
-
30080
- xNorm = path.getUtoTmapping( xNorm, oldX );
30081
-
30082
- // check for out of bounds?
30083
-
30084
- var pathPt = path.getPoint( xNorm );
30085
- var normal = path.getTangent( xNorm );
30086
- normal.set( - normal.y, normal.x ).multiplyScalar( oldY );
30087
-
30088
- p.x = pathPt.x + normal.x;
30089
- p.y = pathPt.y + normal.y;
30090
-
30091
- }
30092
-
30093
- return oldPts;
30094
-
30095
- };
30096
-
30097
29940
// File:src/extras/core/Path.js
30098
29941
30099
29942
/**
@@ -30311,12 +30154,6 @@ THREE.Path.prototype.getSpacedPoints = function ( divisions, closedPath ) {
30311
30154
30312
30155
THREE.Path.prototype.getPoints = function( divisions, closedPath ) {
30313
30156
30314
- if ( this.useSpacedPoints ) {
30315
-
30316
- return this.getSpacedPoints( divisions, closedPath );
30317
-
30318
- }
30319
-
30320
30157
divisions = divisions || 12;
30321
30158
30322
30159
var points = [];
@@ -30890,23 +30727,7 @@ THREE.Shape.prototype.getPointsHoles = function ( divisions ) {
30890
30727
30891
30728
for ( var i = 0, l = this.holes.length; i < l; i ++ ) {
30892
30729
30893
- holesPts[ i ] = this.holes[ i ].getTransformedPoints( divisions, this.bends );
30894
-
30895
- }
30896
-
30897
- return holesPts;
30898
-
30899
- };
30900
-
30901
- // Get points of holes (spaced by regular distance)
30902
-
30903
- THREE.Shape.prototype.getSpacedPointsHoles = function ( divisions ) {
30904
-
30905
- var holesPts = [];
30906
-
30907
- for ( var i = 0, l = this.holes.length; i < l; i ++ ) {
30908
-
30909
- holesPts[ i ] = this.holes[ i ].getTransformedSpacedPoints( divisions, this.bends );
30730
+ holesPts[ i ] = this.holes[ i ].getPoints( divisions );
30910
30731
30911
30732
}
30912
30733
@@ -30921,7 +30742,7 @@ THREE.Shape.prototype.extractAllPoints = function ( divisions ) {
30921
30742
30922
30743
return {
30923
30744
30924
- shape: this.getTransformedPoints ( divisions ),
30745
+ shape: this.getPoints ( divisions ),
30925
30746
holes: this.getPointsHoles( divisions )
30926
30747
30927
30748
};
@@ -30930,42 +30751,10 @@ THREE.Shape.prototype.extractAllPoints = function ( divisions ) {
30930
30751
30931
30752
THREE.Shape.prototype.extractPoints = function ( divisions ) {
30932
30753
30933
- if ( this.useSpacedPoints ) {
30934
-
30935
- return this.extractAllSpacedPoints( divisions );
30936
-
30937
- }
30938
-
30939
30754
return this.extractAllPoints( divisions );
30940
30755
30941
30756
};
30942
30757
30943
- /*
30944
- THREE.Shape.prototype.extractAllPointsWithBend = function ( divisions, bend ) {
30945
-
30946
- return {
30947
-
30948
- shape: this.transform( bend, divisions ),
30949
- holes: this.getPointsHoles( divisions, bend )
30950
-
30951
- };
30952
-
30953
- };
30954
- */
30955
-
30956
- // Get points of shape and holes (spaced by regular distance)
30957
-
30958
- THREE.Shape.prototype.extractAllSpacedPoints = function ( divisions ) {
30959
-
30960
- return {
30961
-
30962
- shape: this.getTransformedSpacedPoints( divisions ),
30963
- holes: this.getSpacedPointsHoles( divisions )
30964
-
30965
- };
30966
-
30967
- };
30968
-
30969
30758
/**************************************************************
30970
30759
* Utils
30971
30760
**************************************************************/
@@ -32773,6 +32562,9 @@ THREE.ExtrudeGeometry.prototype.addShape = function ( shape, options ) {
32773
32562
var extrudePath = options.extrudePath;
32774
32563
var extrudePts, extrudeByPath = false;
32775
32564
32565
+ var material = options.material;
32566
+ var extrudeMaterial = options.extrudeMaterial;
32567
+
32776
32568
// Use default WorldUVGenerator if no UV generators are specified.
32777
32569
var uvgen = options.UVGenerator !== undefined ? options.UVGenerator : THREE.ExtrudeGeometry.WorldUVGenerator;
32778
32570
@@ -33317,7 +33109,7 @@ THREE.ExtrudeGeometry.prototype.addShape = function ( shape, options ) {
33317
33109
b += shapesOffset;
33318
33110
c += shapesOffset;
33319
33111
33320
- scope.faces.push( new THREE.Face3( a, b, c ) );
33112
+ scope.faces.push( new THREE.Face3( a, b, c, null, null, material ) );
33321
33113
33322
33114
var uvs = uvgen.generateTopUV( scope, a, b, c );
33323
33115
@@ -33332,8 +33124,8 @@ THREE.ExtrudeGeometry.prototype.addShape = function ( shape, options ) {
33332
33124
c += shapesOffset;
33333
33125
d += shapesOffset;
33334
33126
33335
- scope.faces.push( new THREE.Face3( a, b, d ) );
33336
- scope.faces.push( new THREE.Face3( b, c, d ) );
33127
+ scope.faces.push( new THREE.Face3( a, b, d, null, null, extrudeMaterial ) );
33128
+ scope.faces.push( new THREE.Face3( b, c, d, null, null, extrudeMaterial ) );
33337
33129
33338
33130
var uvs = uvgen.generateSideWallUV( scope, a, b, c, d );
33339
33131
0 commit comments