|
@@ -27,10 +27,23 @@ interface QualityProps {
|
|
|
}
|
|
|
|
|
|
function getQualityProps(props: Partial<QualityProps>, structure: Structure) {
|
|
|
- const quality = defaults(props.quality, 'auto' as VisualQuality)
|
|
|
+ let quality = defaults(props.quality, 'auto' as VisualQuality)
|
|
|
let detail = 1
|
|
|
let radialSegments = 12
|
|
|
|
|
|
+ if (quality === 'auto') {
|
|
|
+ const score = structure.elementCount
|
|
|
+ if (score > 500_000) {
|
|
|
+ quality = 'lowest'
|
|
|
+ } else if (score > 100_000) {
|
|
|
+ quality = 'low'
|
|
|
+ } else if (score > 30_000) {
|
|
|
+ quality = 'medium'
|
|
|
+ } else {
|
|
|
+ quality = 'high'
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
switch (quality) {
|
|
|
case 'highest':
|
|
|
detail = 3
|
|
@@ -52,9 +65,6 @@ function getQualityProps(props: Partial<QualityProps>, structure: Structure) {
|
|
|
detail = 0
|
|
|
radialSegments = 3
|
|
|
break
|
|
|
- case 'auto':
|
|
|
- // TODO
|
|
|
- break
|
|
|
case 'custom':
|
|
|
detail = defaults(props.detail, 1)
|
|
|
radialSegments = defaults(props.radialSegments, 12)
|