Browse Source

Merge pull request #21095 from mcneel/wip/3DMLoader

3DMLoader
Mr.doob 4 years ago
parent
commit
77e27439ec
1 changed files with 16 additions and 6 deletions
  1. 16 6
      examples/jsm/loaders/3DMLoader.js

+ 16 - 6
examples/jsm/loaders/3DMLoader.js

@@ -428,13 +428,17 @@ Rhino3dmLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
 			case 'PointSet':
 
 				var geometry = loader.parse( obj.geometry );
-				var _color = attributes.drawColor;
-				var color = new Color( _color.r / 255.0, _color.g / 255.0, _color.b / 255.0 );
-				var material = new PointsMaterial( { color: color, sizeAttenuation: false, size: 2 } );
 
+				var material = null;
 				if ( geometry.attributes.hasOwnProperty( 'color' ) ) {
 
-					material.vertexColors = true;
+					material = new PointsMaterial( { vertexColors: true, sizeAttenuation: false, size: 2 } );
+
+				} else {
+
+					var _color = attributes.drawColor;
+					var color = new Color( _color.r / 255.0, _color.g / 255.0, _color.b / 255.0 );
+					material = new PointsMaterial( { color: color, sizeAttenuation: false, size: 2 } );
 
 				}
 
@@ -1349,12 +1353,18 @@ Rhino3dmLoader.Rhino3dmWorker = function () {
 
 		if ( curve instanceof rhino.NurbsCurve && curve.degree === 1 ) {
 
-			if ( curve.segmentCount === undefined || curve.segmentCount === 1 ) {
+			const pLine = curve.tryGetPolyline();
 
-				return [ curve.pointAtStart, curve.pointAtEnd ];
+			for ( var i = 0; i < pLine.count; i ++ ) {
+
+				rc.push( pLine.get( i ) );
 
 			}
 
+			pLine.delete();
+
+			return rc;
+
 		}
 
 		var domain = curve.domain;