|
@@ -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;
|