diff --git a/packages/viewer-sandbox/src/main.ts b/packages/viewer-sandbox/src/main.ts index 875a381b4..2503955fe 100644 --- a/packages/viewer-sandbox/src/main.ts +++ b/packages/viewer-sandbox/src/main.ts @@ -624,6 +624,11 @@ const getStream = () => { // Text with color proxy // 'https://app.speckle.systems/projects/ebf93a561b/models/0a07bc3231' + + // 'https://latest.speckle.systems/projects/9f13b874cf/models/0575b5dcd2' + + // Circles of different sizes + // 'https://latest.speckle.systems/projects/4658eb53b9/models/bb726a3764' ) } diff --git a/packages/viewer/src/modules/loaders/Speckle/SpeckleGeometryConverter.ts b/packages/viewer/src/modules/loaders/Speckle/SpeckleGeometryConverter.ts index 01d6d75f9..7bfeb1e1d 100644 --- a/packages/viewer/src/modules/loaders/Speckle/SpeckleGeometryConverter.ts +++ b/packages/viewer/src/modules/loaders/Speckle/SpeckleGeometryConverter.ts @@ -683,13 +683,9 @@ export class SpeckleGeometryConverter extends GeometryConverter { */ protected CircleToGeometryData(node: NodeData): GeometryData | null { const conversionFactor = getConversionFactor(node.raw.units) - const curveSegmentLength = 0.1 * conversionFactor const points = this.getCircularCurvePoints( node.raw.plane, - node.raw.radius * conversionFactor, - undefined, - undefined, - curveSegmentLength + node.raw.radius * conversionFactor ) return { attributes: { @@ -891,7 +887,7 @@ export class SpeckleGeometryConverter extends GeometryConverter { radius: number, startAngle = 0, endAngle = 2 * Math.PI, - res = 0.1 + resolution = 128 ) { // Get alignment vectors const center = this.PointToVector3(plane.origin) @@ -903,8 +899,9 @@ export class SpeckleGeometryConverter extends GeometryConverter { yAxis.normalize() // Determine resolution - let resolution = ((endAngle - startAngle) * radius) / res - resolution = parseInt(resolution.toString()) + /** Alex 07.08.2025: This can blowup for very large circles, so we use a fixed number of sample points */ + // let resolution = ((endAngle - startAngle) * radius) / res + // resolution = parseInt(resolution.toString()) const points = []