@layoutit/polycss-vue 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,20 +1,18 @@
1
1
  import * as vue from 'vue';
2
2
  import { PropType, Ref, InjectionKey, VNode, ComputedRef, MaybeRef } from 'vue';
3
- import { Vec3, CameraState, CameraHandle, Polygon, PolyDirectionalLight, PolyAmbientLight, PolyTextureLightingMode, LoadMeshOptions, PolyMaterial, Vec2, PolyAnimationTarget, PolyAnimationMixer, PolyAnimationClip, PolyAnimationAction, ParseAnimationController } from '@layoutit/polycss-core';
4
- export { ApproximateMergeOptions, ArrowPolygonsOptions, AutoRotateConfig, AutoRotateOption, AxesHelperOptions, BASE_TILE, BoxFace, BoxFaceOptions, BoxPolygonsOptions, CAMERA_BACKFACE_CULL_EPS, CameraCullNormalGroup, CameraCullRotation, CameraHandle, CameraState, CameraStyleInput, CoverPlanarPolygonsOptions, CullInteriorOptions, DEFAULT_CAMERA_STATE, DEFAULT_PROJECTION, GltfParseOptions, LoadMeshOptions, LoopMode, LoopOnce, LoopPingPong, LoopRepeat, MeshResolution, MtlParseResult, NormalizeResult, ObjParseOptions, OctahedronPolygonsOptions, OptimizeMeshPolygonsOptions, ParseAnimationClip, ParseAnimationController, ParseResult, ParsedColor, PolyAmbientLight, PolyAnimationAction, PolyAnimationClip, PolyAnimationMixer, PolyAnimationTarget, PolyDirectionalLight, PolyMaterial, PolyTextureLightingMode, Polygon, PolygonFace, RingPolygonsOptions, SceneBbox, SceneContext, SceneContextBuildArgs, SceneContextBuildResult, SolidTextureSampleOptions, TexturePaintMetrics, TexturePaintMetricsOptions, TextureTriangle, VOXEL_CAMERA_CULL_AXIS_EPS, VOXEL_CAMERA_CULL_NORMAL_LIMIT, Vec2, Vec3, VoxParseOptions, arrowPolygons, axesHelperPolygons, bakeSolidTextureSampledPolygons, bakeSolidTextureSamples, boxPolygons, buildSceneContext, cameraCullNormalGroups, cameraCullNormalGroupsFromPolygons, cameraCullNormalKey, cameraCullVisibleSignature, cameraFacingDepth, clampChannel, computeSceneBbox, computeShapeLighting, computeTexturePaintMetrics, coverPlanarPolygons, createIsometricCamera, createPolyAnimationMixer, cullInteriorPolygons, formatColor, inverseRotateVec3, isAxisAlignedSurfaceNormal, isVoxelCameraCullableNormalGroups, loadMesh, mergePolygons, normalFacesCamera, normalizeInvertMultiplier, normalizePolygons, octahedronPolygons, optimizeMeshPolygons, parseColor, parseGltf, parseHexColor, parseMtl, parseObj, parsePureColor, parseRgbColor, parseVox, polygonCssSurfaceNormal, polygonFaces, polygonFacesCamera, ringPolygons, rotateVec3, shadeColor } from '@layoutit/polycss-core';
3
+ import { Vec3, CameraState, CameraHandle, Polygon, PolyDirectionalLight, PolyAmbientLight, PolyTextureLightingMode, TextureQuality, PolySeamBleed, PolyRenderStrategiesOption, MeshResolution, LoadMeshOptions, ParseResult, PolyMaterial, Vec2, PolyAnimationTarget, PolyAnimationMixer, PolyAnimationClip, PolyAnimationAction, ParseAnimationController } from '@layoutit/polycss-core';
4
+ export { ArrowPolygonsOptions, AutoRotateConfig, AutoRotateOption, AxesHelperOptions, BASE_TILE, BoxFace, BoxFaceOptions, BoxPolygonsOptions, CAMERA_BACKFACE_CULL_EPS, CameraCullNormalGroup, CameraCullRotation, CameraHandle, CameraState, CameraStyleInput, ConePolygonsOptions, CoverPlanarPolygonsOptions, CullInteriorOptions, CylinderPolygonsOptions, DEFAULT_CAMERA_STATE, DEFAULT_PROJECTION, DEFAULT_SEAM_FACET_SPLIT_OPTIONS, DEFAULT_SEAM_OVERLAP_OPTIONS, DodecahedronPolygonsOptions, GltfParseOptions, IcosahedronPolygonsOptions, LoadMeshOptions, LoopMode, LoopOnce, LoopPingPong, LoopRepeat, MeshResolution, MtlParseResult, NormalizeResult, ObjParseOptions, OctahedronPolygonsOptions, OptimizeAnimatedMeshPolygonsOptions, OptimizeMeshPolygonsOptions, ParseAnimationClip, ParseAnimationController, ParseResult, ParsedColor, PlanePolygonsOptions, PolyAmbientLight, PolyAnimationAction, PolyAnimationClip, PolyAnimationMixer, PolyAnimationTarget, PolyDirectionalLight, PolyMaterial, PolyRenderStrategiesOption, PolyRenderStrategy, PolyTextureLightingMode, Polygon, PolygonFace, RingPolygonsOptions, SceneBbox, SceneContext, SceneContextBuildArgs, SceneContextBuildResult, SeamFacetSplitCandidate, SeamFacetSplitCandidateReason, SeamFacetSplitOptions, SeamFacetSplitReport, SeamOverlapCandidate, SeamOverlapCandidateKind, SeamOverlapDiagnostics, SeamOverlapOptions, SolidTextureSampleOptions, TetrahedronPolygonsOptions, TexturePaintMetrics, TexturePaintMetricsOptions, TextureTriangle, TorusPolygonsOptions, VOXEL_CAMERA_CULL_AXIS_EPS, VOXEL_CAMERA_CULL_NORMAL_LIMIT, Vec2, Vec3, VoxParseOptions, arrowPolygons, axesHelperPolygons, bakeSolidTextureSampledPolygons, bakeSolidTextureSamples, boxPolygons, buildSceneContext, cameraCullNormalGroups, cameraCullNormalGroupsFromPolygons, cameraCullNormalKey, cameraCullVisibleSignature, cameraFacingDepth, clampChannel, computeSceneBbox, computeShapeLighting, computeTexturePaintMetrics, conePolygons, coverPlanarPolygons, createIsometricCamera, createPolyAnimationMixer, cullInteriorPolygons, cylinderPolygons, dodecahedronPolygons, formatColor, icosahedronPolygons, inverseRotateVec3, isAxisAlignedSurfaceNormal, isVoxelCameraCullableNormalGroups, loadMesh, mergePolygons, normalFacesCamera, normalizeInvertMultiplier, normalizePolygons, octahedronPolygons, optimizeAnimatedMeshPolygons, optimizeMeshPolygons, parseColor, parseGltf, parseHexColor, parseMtl, parseObj, parsePureColor, parseRgbColor, parseVox, planePolygons, polygonCssSurfaceNormal, polygonFaces, polygonFacesCamera, repairMeshSeams, ringPolygons, rotateVec3, seamFacetSplitPolygons, seamFacetSplitReport, seamOverlapDiagnostics, seamOverlapPolygons, seamOverlapReport, shadeColor, tetrahedronPolygons, torusPolygons } from '@layoutit/polycss-core';
5
5
 
6
- interface PolyPerspectiveCameraProps {
6
+ interface PolyOrthographicCameraProps {
7
7
  zoom?: number;
8
8
  target?: Vec3;
9
9
  rotX?: number;
10
10
  rotY?: number;
11
11
  /** Camera pull-back in CSS pixels (dolly). Default 0. */
12
12
  distance?: number;
13
- /** CSS perspective distance in pixels. Defaults to 8000. */
14
- perspective?: number;
15
13
  class?: string;
16
14
  }
17
- declare const PolyPerspectiveCamera: vue.DefineComponent<vue.ExtractPropTypes<{
15
+ declare const PolyOrthographicCamera: vue.DefineComponent<vue.ExtractPropTypes<{
18
16
  zoom: {
19
17
  type: NumberConstructor;
20
18
  };
@@ -30,10 +28,6 @@ declare const PolyPerspectiveCamera: vue.DefineComponent<vue.ExtractPropTypes<{
30
28
  distance: {
31
29
  type: NumberConstructor;
32
30
  };
33
- perspective: {
34
- type: NumberConstructor;
35
- default: undefined;
36
- };
37
31
  class: {
38
32
  type: StringConstructor;
39
33
  };
@@ -55,27 +49,23 @@ declare const PolyPerspectiveCamera: vue.DefineComponent<vue.ExtractPropTypes<{
55
49
  distance: {
56
50
  type: NumberConstructor;
57
51
  };
58
- perspective: {
59
- type: NumberConstructor;
60
- default: undefined;
61
- };
62
52
  class: {
63
53
  type: StringConstructor;
64
54
  };
65
- }>> & Readonly<{}>, {
66
- perspective: number;
67
- }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
55
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
68
56
 
69
- interface PolyOrthographicCameraProps {
57
+ interface PolyPerspectiveCameraProps {
70
58
  zoom?: number;
71
59
  target?: Vec3;
72
60
  rotX?: number;
73
61
  rotY?: number;
74
62
  /** Camera pull-back in CSS pixels (dolly). Default 0. */
75
63
  distance?: number;
64
+ /** CSS perspective distance in pixels. Defaults to 8000. */
65
+ perspective?: number;
76
66
  class?: string;
77
67
  }
78
- declare const PolyOrthographicCamera: vue.DefineComponent<vue.ExtractPropTypes<{
68
+ declare const PolyPerspectiveCamera: vue.DefineComponent<vue.ExtractPropTypes<{
79
69
  zoom: {
80
70
  type: NumberConstructor;
81
71
  };
@@ -91,6 +81,10 @@ declare const PolyOrthographicCamera: vue.DefineComponent<vue.ExtractPropTypes<{
91
81
  distance: {
92
82
  type: NumberConstructor;
93
83
  };
84
+ perspective: {
85
+ type: NumberConstructor;
86
+ default: undefined;
87
+ };
94
88
  class: {
95
89
  type: StringConstructor;
96
90
  };
@@ -112,13 +106,19 @@ declare const PolyOrthographicCamera: vue.DefineComponent<vue.ExtractPropTypes<{
112
106
  distance: {
113
107
  type: NumberConstructor;
114
108
  };
109
+ perspective: {
110
+ type: NumberConstructor;
111
+ default: undefined;
112
+ };
115
113
  class: {
116
114
  type: StringConstructor;
117
115
  };
118
- }>> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
116
+ }>> & Readonly<{}>, {
117
+ perspective: number;
118
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
119
119
 
120
120
  /**
121
- * Lightweight reactive store for polycss scene state.
121
+ * Lightweight reactive store for PolyCSS scene state.
122
122
  * Components subscribe to specific slices via selectors,
123
123
  * so only the components that care about a changed value re-render.
124
124
  */
@@ -207,15 +207,13 @@ interface PolyShadowOptions {
207
207
  color?: string;
208
208
  opacity?: number;
209
209
  lift?: number;
210
- }
211
-
212
- type TextureQuality = number | "auto";
213
- type PolyRenderStrategy = "b" | "i" | "u";
214
- interface PolyRenderStrategiesOption {
215
- /** Strategies to skip; polygons that would normally use them fall through
216
- * the chain (b → i → s, u → i → s, i → s). `<s>` is the universal
217
- * fallback and cannot be disabled — textured polys have no other path. */
218
- disable?: readonly PolyRenderStrategy[];
210
+ /**
211
+ * Maximum CSS pixels the shadow may extend beyond the mesh's
212
+ * footprint. Caps the SVG backing store at low light elevations to
213
+ * prevent repaint flicker. Default: `2000`. Pass `Infinity` to
214
+ * disable the cap entirely.
215
+ */
216
+ maxExtend?: number;
219
217
  }
220
218
 
221
219
  interface PolySceneProps {
@@ -232,6 +230,8 @@ interface PolySceneProps {
232
230
  * desktop/mobile sprite sizing. Numeric values 0.1..1 force an explicit
233
231
  * raster scale and the 64px sprite. */
234
232
  textureQuality?: TextureQuality;
233
+ /** Solid seam overscan. `"auto"` computes a fitted per-edge amount from the polygon plan. */
234
+ seamBleed?: PolySeamBleed;
235
235
  /** Opt out of specific render strategies. Disabled strategies fall through the chain (b→i→s, u→i→s, i→s). `<s>` cannot be disabled. */
236
236
  strategies?: PolyRenderStrategiesOption;
237
237
  /**
@@ -242,9 +242,11 @@ interface PolySceneProps {
242
242
  */
243
243
  autoCenter?: boolean;
244
244
  /**
245
- * Shadow appearance for meshes with `castShadow: true`. Only applies in
246
- * dynamic lighting modebaked mode does not emit shadow leaves.
247
- * Defaults: `{ color: "#000000", opacity: 0.25, lift: 0.05 }`.
245
+ * Shadow appearance for meshes with `castShadow: true`. Works in both
246
+ * lighting modesdynamic mode projects via CSS vars so shadows
247
+ * follow a moving light, baked mode CPU-bakes the projection into
248
+ * each leaf's inline `matrix3d` and drops back-facing polys from the
249
+ * DOM entirely. Defaults: `{ color: "#000000", opacity: 0.25, lift: 0.05, maxExtend: 2000 }`.
248
250
  */
249
251
  shadow?: PolyShadowOptions;
250
252
  class?: string;
@@ -287,6 +289,10 @@ declare const PolyScene: vue.DefineComponent<vue.ExtractPropTypes<{
287
289
  type: PropType<TextureQuality>;
288
290
  default: undefined;
289
291
  };
292
+ seamBleed: {
293
+ type: PropType<PolySeamBleed>;
294
+ default: undefined;
295
+ };
290
296
  strategies: {
291
297
  type: PropType<PolyRenderStrategiesOption>;
292
298
  default: undefined;
@@ -355,6 +361,10 @@ declare const PolyScene: vue.DefineComponent<vue.ExtractPropTypes<{
355
361
  type: PropType<TextureQuality>;
356
362
  default: undefined;
357
363
  };
364
+ seamBleed: {
365
+ type: PropType<PolySeamBleed>;
366
+ default: undefined;
367
+ };
358
368
  strategies: {
359
369
  type: PropType<PolyRenderStrategiesOption>;
360
370
  default: undefined;
@@ -396,6 +406,7 @@ declare const PolyScene: vue.DefineComponent<vue.ExtractPropTypes<{
396
406
  polygons: Polygon[];
397
407
  ambientLight: PolyAmbientLight;
398
408
  textureQuality: TextureQuality;
409
+ seamBleed: PolySeamBleed;
399
410
  strategies: PolyRenderStrategiesOption;
400
411
  autoCenter: boolean;
401
412
  shadow: PolyShadowOptions;
@@ -407,7 +418,7 @@ declare const PolyScene: vue.DefineComponent<vue.ExtractPropTypes<{
407
418
  /**
408
419
  * Pointer event API for `<PolyMesh>` (Vue). Mirrors @react-three/fiber's
409
420
  * mesh event surface (handler names + payload shape) so devs migrating
410
- * from three.js use the same mental model. polycss is DOM-native so
421
+ * from three.js use the same mental model. PolyCSS is DOM-native so
411
422
  * we get native pointer events for free — no raycaster, no canvas
412
423
  * event synthesis.
413
424
  *
@@ -429,6 +440,12 @@ interface PolyMeshHandle {
429
440
  getRotation(): Vec3 | undefined;
430
441
  getScale(): number | Vec3 | undefined;
431
442
  getPolygons(): Polygon[];
443
+ /**
444
+ * Replace the mesh polygons imperatively. Animated solid-triangle meshes use
445
+ * a stable DOM update path that mutates mounted leaves directly; unsupported
446
+ * topology falls back to the normal framework render path.
447
+ */
448
+ setPolygons(polygons: Polygon[]): void;
432
449
  /**
433
450
  * Update a single polygon in place. `target` is either a polygon
434
451
  * reference (as returned by `getPolygons()`) or its index. `partial`
@@ -514,6 +531,8 @@ interface PolyMeshProps extends InteractionProps {
514
531
  * desktop/mobile sprite sizing. Numeric values 0.1..1 force an explicit
515
532
  * raster scale and the 64px sprite. */
516
533
  textureQuality?: TextureQuality;
534
+ /** Solid seam overscan. `"auto"` computes a fitted per-edge amount from the polygon plan. */
535
+ seamBleed?: PolySeamBleed;
517
536
  /**
518
537
  * When `true` and the scene is in dynamic lighting mode, the renderer emits
519
538
  * a flat shadow leaf sibling for each non-duplicate polygon. The shadow is
@@ -521,6 +540,10 @@ interface PolyMeshProps extends InteractionProps {
521
540
  * Defaults to `false`.
522
541
  */
523
542
  castShadow?: boolean;
543
+ /** Mesh optimization intent. Defaults to "lossy"; set "lossless" to keep
544
+ * authored surface fidelity. Top-level prop wins over any meshResolution
545
+ * that might be set inside parseOptions. */
546
+ meshResolution?: MeshResolution;
524
547
  class?: string;
525
548
  position?: Vec3;
526
549
  scale?: number | Vec3;
@@ -555,10 +578,18 @@ declare const PolyMesh: vue.DefineComponent<vue.ExtractPropTypes<{
555
578
  type: PropType<TextureQuality>;
556
579
  default: undefined;
557
580
  };
581
+ seamBleed: {
582
+ type: PropType<PolySeamBleed>;
583
+ default: undefined;
584
+ };
558
585
  castShadow: {
559
586
  type: PropType<boolean>;
560
587
  default: boolean;
561
588
  };
589
+ meshResolution: {
590
+ type: PropType<MeshResolution>;
591
+ default: undefined;
592
+ };
562
593
  class: {
563
594
  type: StringConstructor;
564
595
  };
@@ -653,10 +684,18 @@ declare const PolyMesh: vue.DefineComponent<vue.ExtractPropTypes<{
653
684
  type: PropType<TextureQuality>;
654
685
  default: undefined;
655
686
  };
687
+ seamBleed: {
688
+ type: PropType<PolySeamBleed>;
689
+ default: undefined;
690
+ };
656
691
  castShadow: {
657
692
  type: PropType<boolean>;
658
693
  default: boolean;
659
694
  };
695
+ meshResolution: {
696
+ type: PropType<MeshResolution>;
697
+ default: undefined;
698
+ };
660
699
  class: {
661
700
  type: StringConstructor;
662
701
  };
@@ -728,12 +767,14 @@ declare const PolyMesh: vue.DefineComponent<vue.ExtractPropTypes<{
728
767
  scale: number | Vec3;
729
768
  polygons: Polygon[];
730
769
  textureQuality: TextureQuality;
770
+ seamBleed: PolySeamBleed;
731
771
  autoCenter: boolean;
732
772
  rotation: Vec3;
733
773
  id: string;
734
774
  src: string;
735
775
  mtl: string;
736
776
  castShadow: boolean;
777
+ meshResolution: MeshResolution;
737
778
  onContextMenu: PolyEventHandler<MouseEvent>;
738
779
  onDoubleClick: PolyEventHandler<MouseEvent>;
739
780
  onPointerDown: PolyEventHandler<PointerEvent>;
@@ -821,7 +862,7 @@ interface UseSceneContextResult {
821
862
  };
822
863
  }
823
864
  /**
824
- * Vue 3 composable that runs the polycss scene-context pipeline:
865
+ * Vue 3 composable that runs the PolyCSS scene-context pipeline:
825
866
  * normalizePolygons → mergePolygons by default → bbox compute.
826
867
  *
827
868
  * Returns a Ref to the processed polygons + the scene-wide axis-aligned bbox.
@@ -832,6 +873,7 @@ declare function usePolySceneContext(polygons: Ref<Polygon[]>, options: Ref<UseS
832
873
  type UseMeshOptions = LoadMeshOptions;
833
874
  interface UseMeshResult {
834
875
  polygons: Ref<Polygon[]>;
876
+ voxelSource: Ref<ParseResult["voxelSource"]>;
835
877
  loading: Ref<boolean>;
836
878
  error: Ref<Error | null>;
837
879
  warnings: Ref<string[]>;
@@ -999,123 +1041,1049 @@ declare const Poly: vue.DefineComponent<vue.ExtractPropTypes<{
999
1041
  }>> & Readonly<{}>, {
1000
1042
  data: Record<string, string | number | boolean>;
1001
1043
  pointerEvents: "none" | "auto";
1002
- uvs: Vec2[];
1003
1044
  textureLighting: PolyTextureLightingMode;
1004
1045
  position: Vec3;
1005
1046
  scale: number | Vec3;
1006
1047
  textureQuality: TextureQuality;
1007
1048
  rotation: Vec3;
1008
1049
  material: PolyMaterial;
1050
+ uvs: Vec2[];
1009
1051
  context: PolyContext;
1010
1052
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
1011
1053
 
1012
- interface PolyControlsAnimateOptions {
1013
- speed?: number;
1014
- axis?: "x" | "y";
1015
- pauseOnInteraction?: boolean;
1016
- }
1017
- interface PolyOrbitControlsCamera {
1018
- rotX: number;
1019
- rotY: number;
1020
- zoom: number;
1021
- target: Vec3;
1022
- distance: number;
1023
- }
1024
- interface PolyOrbitControlsProps {
1025
- drag?: boolean;
1026
- wheel?: boolean;
1027
- /** When true, wheel changes camera pull-back (distance) instead of zoom scale. */
1028
- dolly?: boolean;
1029
- invert?: boolean | number;
1030
- /** Minimum zoom multiplier (zoom mode). Default 0.1. */
1031
- minZoom?: number;
1032
- /** Maximum zoom multiplier (zoom mode). Default 10. */
1033
- maxZoom?: number;
1034
- /** Minimum camera pull-back in CSS pixels when dolly=true. Default 0. */
1035
- minDistance?: number;
1036
- /** Maximum camera pull-back in CSS pixels when dolly=true. Default 5000. */
1037
- maxDistance?: number;
1038
- animate?: false | PolyControlsAnimateOptions;
1039
- }
1040
- declare const PolyOrbitControls: vue.DefineComponent<vue.ExtractPropTypes<{
1041
- drag: {
1042
- type: BooleanConstructor;
1043
- default: boolean;
1054
+ declare const PolyBox: vue.DefineComponent<vue.ExtractPropTypes<{
1055
+ size: {
1056
+ type: PropType<number | Vec3>;
1057
+ default: undefined;
1044
1058
  };
1045
- wheel: {
1059
+ center: {
1060
+ type: PropType<Vec3>;
1061
+ default: undefined;
1062
+ };
1063
+ min: {
1064
+ type: PropType<Vec3>;
1065
+ default: undefined;
1066
+ };
1067
+ max: {
1068
+ type: PropType<Vec3>;
1069
+ default: undefined;
1070
+ };
1071
+ color: {
1072
+ type: StringConstructor;
1073
+ default: undefined;
1074
+ };
1075
+ texture: {
1076
+ type: StringConstructor;
1077
+ default: undefined;
1078
+ };
1079
+ position: {
1080
+ type: PropType<Vec3>;
1081
+ default: undefined;
1082
+ };
1083
+ scale: {
1084
+ type: PropType<number | Vec3>;
1085
+ default: undefined;
1086
+ };
1087
+ rotation: {
1088
+ type: PropType<Vec3>;
1089
+ default: undefined;
1090
+ };
1091
+ autoCenter: {
1046
1092
  type: BooleanConstructor;
1047
1093
  default: boolean;
1048
1094
  };
1049
- dolly: {
1095
+ id: {
1096
+ type: StringConstructor;
1097
+ default: undefined;
1098
+ };
1099
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
1100
+ [key: string]: any;
1101
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
1102
+ size: {
1103
+ type: PropType<number | Vec3>;
1104
+ default: undefined;
1105
+ };
1106
+ center: {
1107
+ type: PropType<Vec3>;
1108
+ default: undefined;
1109
+ };
1110
+ min: {
1111
+ type: PropType<Vec3>;
1112
+ default: undefined;
1113
+ };
1114
+ max: {
1115
+ type: PropType<Vec3>;
1116
+ default: undefined;
1117
+ };
1118
+ color: {
1119
+ type: StringConstructor;
1120
+ default: undefined;
1121
+ };
1122
+ texture: {
1123
+ type: StringConstructor;
1124
+ default: undefined;
1125
+ };
1126
+ position: {
1127
+ type: PropType<Vec3>;
1128
+ default: undefined;
1129
+ };
1130
+ scale: {
1131
+ type: PropType<number | Vec3>;
1132
+ default: undefined;
1133
+ };
1134
+ rotation: {
1135
+ type: PropType<Vec3>;
1136
+ default: undefined;
1137
+ };
1138
+ autoCenter: {
1050
1139
  type: BooleanConstructor;
1051
1140
  default: boolean;
1052
1141
  };
1053
- invert: {
1054
- type: PropType<boolean | number>;
1055
- default: boolean;
1142
+ id: {
1143
+ type: StringConstructor;
1144
+ default: undefined;
1056
1145
  };
1057
- minZoom: {
1058
- type: NumberConstructor;
1059
- default: number;
1146
+ }>> & Readonly<{}>, {
1147
+ color: string;
1148
+ size: number | Vec3;
1149
+ center: Vec3;
1150
+ position: Vec3;
1151
+ scale: number | Vec3;
1152
+ autoCenter: boolean;
1153
+ rotation: Vec3;
1154
+ texture: string;
1155
+ id: string;
1156
+ min: Vec3;
1157
+ max: Vec3;
1158
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
1159
+ declare const PolyPlane: vue.DefineComponent<vue.ExtractPropTypes<{
1160
+ axis: {
1161
+ type: PropType<0 | 1 | 2>;
1162
+ required: true;
1060
1163
  };
1061
- maxZoom: {
1164
+ size: {
1062
1165
  type: NumberConstructor;
1063
- default: number;
1166
+ default: undefined;
1064
1167
  };
1065
- minDistance: {
1168
+ along: {
1066
1169
  type: NumberConstructor;
1067
- default: number;
1170
+ default: undefined;
1068
1171
  };
1069
- maxDistance: {
1070
- type: NumberConstructor;
1071
- default: number;
1172
+ color: {
1173
+ type: StringConstructor;
1174
+ default: undefined;
1072
1175
  };
1073
- animate: {
1074
- type: PropType<false | PolyControlsAnimateOptions>;
1075
- default: boolean;
1176
+ position: {
1177
+ type: PropType<Vec3>;
1178
+ default: undefined;
1076
1179
  };
1077
- }>, () => null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1078
- change: (_camera: PolyOrbitControlsCamera) => true;
1079
- "interaction-start": (_camera: PolyOrbitControlsCamera) => true;
1080
- "interaction-end": (_camera: PolyOrbitControlsCamera) => true;
1081
- }, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
1082
- drag: {
1083
- type: BooleanConstructor;
1084
- default: boolean;
1180
+ scale: {
1181
+ type: PropType<number | Vec3>;
1182
+ default: undefined;
1085
1183
  };
1086
- wheel: {
1087
- type: BooleanConstructor;
1088
- default: boolean;
1184
+ rotation: {
1185
+ type: PropType<Vec3>;
1186
+ default: undefined;
1089
1187
  };
1090
- dolly: {
1188
+ autoCenter: {
1091
1189
  type: BooleanConstructor;
1092
1190
  default: boolean;
1093
1191
  };
1094
- invert: {
1095
- type: PropType<boolean | number>;
1096
- default: boolean;
1192
+ id: {
1193
+ type: StringConstructor;
1194
+ default: undefined;
1097
1195
  };
1098
- minZoom: {
1099
- type: NumberConstructor;
1100
- default: number;
1196
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
1197
+ [key: string]: any;
1198
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
1199
+ axis: {
1200
+ type: PropType<0 | 1 | 2>;
1201
+ required: true;
1101
1202
  };
1102
- maxZoom: {
1203
+ size: {
1103
1204
  type: NumberConstructor;
1104
- default: number;
1205
+ default: undefined;
1105
1206
  };
1106
- minDistance: {
1207
+ along: {
1107
1208
  type: NumberConstructor;
1108
- default: number;
1209
+ default: undefined;
1109
1210
  };
1110
- maxDistance: {
1111
- type: NumberConstructor;
1112
- default: number;
1211
+ color: {
1212
+ type: StringConstructor;
1213
+ default: undefined;
1113
1214
  };
1114
- animate: {
1115
- type: PropType<false | PolyControlsAnimateOptions>;
1116
- default: boolean;
1215
+ position: {
1216
+ type: PropType<Vec3>;
1217
+ default: undefined;
1117
1218
  };
1118
- }>> & Readonly<{
1219
+ scale: {
1220
+ type: PropType<number | Vec3>;
1221
+ default: undefined;
1222
+ };
1223
+ rotation: {
1224
+ type: PropType<Vec3>;
1225
+ default: undefined;
1226
+ };
1227
+ autoCenter: {
1228
+ type: BooleanConstructor;
1229
+ default: boolean;
1230
+ };
1231
+ id: {
1232
+ type: StringConstructor;
1233
+ default: undefined;
1234
+ };
1235
+ }>> & Readonly<{}>, {
1236
+ color: string;
1237
+ size: number;
1238
+ position: Vec3;
1239
+ scale: number | Vec3;
1240
+ autoCenter: boolean;
1241
+ rotation: Vec3;
1242
+ id: string;
1243
+ along: number;
1244
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
1245
+ declare const PolyRing: vue.DefineComponent<vue.ExtractPropTypes<{
1246
+ axis: {
1247
+ type: PropType<0 | 1 | 2>;
1248
+ required: true;
1249
+ };
1250
+ radius: {
1251
+ type: NumberConstructor;
1252
+ required: true;
1253
+ };
1254
+ halfThickness: {
1255
+ type: NumberConstructor;
1256
+ default: undefined;
1257
+ };
1258
+ segments: {
1259
+ type: NumberConstructor;
1260
+ default: undefined;
1261
+ };
1262
+ color: {
1263
+ type: StringConstructor;
1264
+ default: undefined;
1265
+ };
1266
+ position: {
1267
+ type: PropType<Vec3>;
1268
+ default: undefined;
1269
+ };
1270
+ scale: {
1271
+ type: PropType<number | Vec3>;
1272
+ default: undefined;
1273
+ };
1274
+ rotation: {
1275
+ type: PropType<Vec3>;
1276
+ default: undefined;
1277
+ };
1278
+ autoCenter: {
1279
+ type: BooleanConstructor;
1280
+ default: boolean;
1281
+ };
1282
+ id: {
1283
+ type: StringConstructor;
1284
+ default: undefined;
1285
+ };
1286
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
1287
+ [key: string]: any;
1288
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
1289
+ axis: {
1290
+ type: PropType<0 | 1 | 2>;
1291
+ required: true;
1292
+ };
1293
+ radius: {
1294
+ type: NumberConstructor;
1295
+ required: true;
1296
+ };
1297
+ halfThickness: {
1298
+ type: NumberConstructor;
1299
+ default: undefined;
1300
+ };
1301
+ segments: {
1302
+ type: NumberConstructor;
1303
+ default: undefined;
1304
+ };
1305
+ color: {
1306
+ type: StringConstructor;
1307
+ default: undefined;
1308
+ };
1309
+ position: {
1310
+ type: PropType<Vec3>;
1311
+ default: undefined;
1312
+ };
1313
+ scale: {
1314
+ type: PropType<number | Vec3>;
1315
+ default: undefined;
1316
+ };
1317
+ rotation: {
1318
+ type: PropType<Vec3>;
1319
+ default: undefined;
1320
+ };
1321
+ autoCenter: {
1322
+ type: BooleanConstructor;
1323
+ default: boolean;
1324
+ };
1325
+ id: {
1326
+ type: StringConstructor;
1327
+ default: undefined;
1328
+ };
1329
+ }>> & Readonly<{}>, {
1330
+ color: string;
1331
+ position: Vec3;
1332
+ scale: number | Vec3;
1333
+ autoCenter: boolean;
1334
+ rotation: Vec3;
1335
+ id: string;
1336
+ halfThickness: number;
1337
+ segments: number;
1338
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
1339
+ declare const PolyOctahedron: vue.DefineComponent<vue.ExtractPropTypes<{
1340
+ center: {
1341
+ type: PropType<Vec3>;
1342
+ required: true;
1343
+ };
1344
+ size: {
1345
+ type: NumberConstructor;
1346
+ required: true;
1347
+ };
1348
+ color: {
1349
+ type: StringConstructor;
1350
+ default: undefined;
1351
+ };
1352
+ position: {
1353
+ type: PropType<Vec3>;
1354
+ default: undefined;
1355
+ };
1356
+ scale: {
1357
+ type: PropType<number | Vec3>;
1358
+ default: undefined;
1359
+ };
1360
+ rotation: {
1361
+ type: PropType<Vec3>;
1362
+ default: undefined;
1363
+ };
1364
+ autoCenter: {
1365
+ type: BooleanConstructor;
1366
+ default: boolean;
1367
+ };
1368
+ id: {
1369
+ type: StringConstructor;
1370
+ default: undefined;
1371
+ };
1372
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
1373
+ [key: string]: any;
1374
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
1375
+ center: {
1376
+ type: PropType<Vec3>;
1377
+ required: true;
1378
+ };
1379
+ size: {
1380
+ type: NumberConstructor;
1381
+ required: true;
1382
+ };
1383
+ color: {
1384
+ type: StringConstructor;
1385
+ default: undefined;
1386
+ };
1387
+ position: {
1388
+ type: PropType<Vec3>;
1389
+ default: undefined;
1390
+ };
1391
+ scale: {
1392
+ type: PropType<number | Vec3>;
1393
+ default: undefined;
1394
+ };
1395
+ rotation: {
1396
+ type: PropType<Vec3>;
1397
+ default: undefined;
1398
+ };
1399
+ autoCenter: {
1400
+ type: BooleanConstructor;
1401
+ default: boolean;
1402
+ };
1403
+ id: {
1404
+ type: StringConstructor;
1405
+ default: undefined;
1406
+ };
1407
+ }>> & Readonly<{}>, {
1408
+ color: string;
1409
+ position: Vec3;
1410
+ scale: number | Vec3;
1411
+ autoCenter: boolean;
1412
+ rotation: Vec3;
1413
+ id: string;
1414
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
1415
+ declare const PolyTetrahedron: vue.DefineComponent<vue.ExtractPropTypes<{
1416
+ size: {
1417
+ type: NumberConstructor;
1418
+ default: undefined;
1419
+ };
1420
+ color: {
1421
+ type: StringConstructor;
1422
+ default: undefined;
1423
+ };
1424
+ position: {
1425
+ type: PropType<Vec3>;
1426
+ default: undefined;
1427
+ };
1428
+ scale: {
1429
+ type: PropType<number | Vec3>;
1430
+ default: undefined;
1431
+ };
1432
+ rotation: {
1433
+ type: PropType<Vec3>;
1434
+ default: undefined;
1435
+ };
1436
+ autoCenter: {
1437
+ type: BooleanConstructor;
1438
+ default: boolean;
1439
+ };
1440
+ id: {
1441
+ type: StringConstructor;
1442
+ default: undefined;
1443
+ };
1444
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
1445
+ [key: string]: any;
1446
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
1447
+ size: {
1448
+ type: NumberConstructor;
1449
+ default: undefined;
1450
+ };
1451
+ color: {
1452
+ type: StringConstructor;
1453
+ default: undefined;
1454
+ };
1455
+ position: {
1456
+ type: PropType<Vec3>;
1457
+ default: undefined;
1458
+ };
1459
+ scale: {
1460
+ type: PropType<number | Vec3>;
1461
+ default: undefined;
1462
+ };
1463
+ rotation: {
1464
+ type: PropType<Vec3>;
1465
+ default: undefined;
1466
+ };
1467
+ autoCenter: {
1468
+ type: BooleanConstructor;
1469
+ default: boolean;
1470
+ };
1471
+ id: {
1472
+ type: StringConstructor;
1473
+ default: undefined;
1474
+ };
1475
+ }>> & Readonly<{}>, {
1476
+ color: string;
1477
+ size: number;
1478
+ position: Vec3;
1479
+ scale: number | Vec3;
1480
+ autoCenter: boolean;
1481
+ rotation: Vec3;
1482
+ id: string;
1483
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
1484
+ declare const PolyIcosahedron: vue.DefineComponent<vue.ExtractPropTypes<{
1485
+ size: {
1486
+ type: NumberConstructor;
1487
+ default: undefined;
1488
+ };
1489
+ color: {
1490
+ type: StringConstructor;
1491
+ default: undefined;
1492
+ };
1493
+ position: {
1494
+ type: PropType<Vec3>;
1495
+ default: undefined;
1496
+ };
1497
+ scale: {
1498
+ type: PropType<number | Vec3>;
1499
+ default: undefined;
1500
+ };
1501
+ rotation: {
1502
+ type: PropType<Vec3>;
1503
+ default: undefined;
1504
+ };
1505
+ autoCenter: {
1506
+ type: BooleanConstructor;
1507
+ default: boolean;
1508
+ };
1509
+ id: {
1510
+ type: StringConstructor;
1511
+ default: undefined;
1512
+ };
1513
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
1514
+ [key: string]: any;
1515
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
1516
+ size: {
1517
+ type: NumberConstructor;
1518
+ default: undefined;
1519
+ };
1520
+ color: {
1521
+ type: StringConstructor;
1522
+ default: undefined;
1523
+ };
1524
+ position: {
1525
+ type: PropType<Vec3>;
1526
+ default: undefined;
1527
+ };
1528
+ scale: {
1529
+ type: PropType<number | Vec3>;
1530
+ default: undefined;
1531
+ };
1532
+ rotation: {
1533
+ type: PropType<Vec3>;
1534
+ default: undefined;
1535
+ };
1536
+ autoCenter: {
1537
+ type: BooleanConstructor;
1538
+ default: boolean;
1539
+ };
1540
+ id: {
1541
+ type: StringConstructor;
1542
+ default: undefined;
1543
+ };
1544
+ }>> & Readonly<{}>, {
1545
+ color: string;
1546
+ size: number;
1547
+ position: Vec3;
1548
+ scale: number | Vec3;
1549
+ autoCenter: boolean;
1550
+ rotation: Vec3;
1551
+ id: string;
1552
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
1553
+ declare const PolyDodecahedron: vue.DefineComponent<vue.ExtractPropTypes<{
1554
+ size: {
1555
+ type: NumberConstructor;
1556
+ default: undefined;
1557
+ };
1558
+ color: {
1559
+ type: StringConstructor;
1560
+ default: undefined;
1561
+ };
1562
+ position: {
1563
+ type: PropType<Vec3>;
1564
+ default: undefined;
1565
+ };
1566
+ scale: {
1567
+ type: PropType<number | Vec3>;
1568
+ default: undefined;
1569
+ };
1570
+ rotation: {
1571
+ type: PropType<Vec3>;
1572
+ default: undefined;
1573
+ };
1574
+ autoCenter: {
1575
+ type: BooleanConstructor;
1576
+ default: boolean;
1577
+ };
1578
+ id: {
1579
+ type: StringConstructor;
1580
+ default: undefined;
1581
+ };
1582
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
1583
+ [key: string]: any;
1584
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
1585
+ size: {
1586
+ type: NumberConstructor;
1587
+ default: undefined;
1588
+ };
1589
+ color: {
1590
+ type: StringConstructor;
1591
+ default: undefined;
1592
+ };
1593
+ position: {
1594
+ type: PropType<Vec3>;
1595
+ default: undefined;
1596
+ };
1597
+ scale: {
1598
+ type: PropType<number | Vec3>;
1599
+ default: undefined;
1600
+ };
1601
+ rotation: {
1602
+ type: PropType<Vec3>;
1603
+ default: undefined;
1604
+ };
1605
+ autoCenter: {
1606
+ type: BooleanConstructor;
1607
+ default: boolean;
1608
+ };
1609
+ id: {
1610
+ type: StringConstructor;
1611
+ default: undefined;
1612
+ };
1613
+ }>> & Readonly<{}>, {
1614
+ color: string;
1615
+ size: number;
1616
+ position: Vec3;
1617
+ scale: number | Vec3;
1618
+ autoCenter: boolean;
1619
+ rotation: Vec3;
1620
+ id: string;
1621
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
1622
+ declare const PolySphere: vue.DefineComponent<vue.ExtractPropTypes<{
1623
+ radius: {
1624
+ type: NumberConstructor;
1625
+ default: undefined;
1626
+ };
1627
+ subdivisions: {
1628
+ type: NumberConstructor;
1629
+ default: undefined;
1630
+ };
1631
+ color: {
1632
+ type: StringConstructor;
1633
+ default: undefined;
1634
+ };
1635
+ position: {
1636
+ type: PropType<Vec3>;
1637
+ default: undefined;
1638
+ };
1639
+ scale: {
1640
+ type: PropType<number | Vec3>;
1641
+ default: undefined;
1642
+ };
1643
+ rotation: {
1644
+ type: PropType<Vec3>;
1645
+ default: undefined;
1646
+ };
1647
+ autoCenter: {
1648
+ type: BooleanConstructor;
1649
+ default: boolean;
1650
+ };
1651
+ id: {
1652
+ type: StringConstructor;
1653
+ default: undefined;
1654
+ };
1655
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
1656
+ [key: string]: any;
1657
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
1658
+ radius: {
1659
+ type: NumberConstructor;
1660
+ default: undefined;
1661
+ };
1662
+ subdivisions: {
1663
+ type: NumberConstructor;
1664
+ default: undefined;
1665
+ };
1666
+ color: {
1667
+ type: StringConstructor;
1668
+ default: undefined;
1669
+ };
1670
+ position: {
1671
+ type: PropType<Vec3>;
1672
+ default: undefined;
1673
+ };
1674
+ scale: {
1675
+ type: PropType<number | Vec3>;
1676
+ default: undefined;
1677
+ };
1678
+ rotation: {
1679
+ type: PropType<Vec3>;
1680
+ default: undefined;
1681
+ };
1682
+ autoCenter: {
1683
+ type: BooleanConstructor;
1684
+ default: boolean;
1685
+ };
1686
+ id: {
1687
+ type: StringConstructor;
1688
+ default: undefined;
1689
+ };
1690
+ }>> & Readonly<{}>, {
1691
+ color: string;
1692
+ position: Vec3;
1693
+ scale: number | Vec3;
1694
+ autoCenter: boolean;
1695
+ rotation: Vec3;
1696
+ id: string;
1697
+ radius: number;
1698
+ subdivisions: number;
1699
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
1700
+ declare const PolyCylinder: vue.DefineComponent<vue.ExtractPropTypes<{
1701
+ radius: {
1702
+ type: NumberConstructor;
1703
+ default: undefined;
1704
+ };
1705
+ radiusTop: {
1706
+ type: NumberConstructor;
1707
+ default: undefined;
1708
+ };
1709
+ height: {
1710
+ type: NumberConstructor;
1711
+ default: undefined;
1712
+ };
1713
+ radialSegments: {
1714
+ type: NumberConstructor;
1715
+ default: undefined;
1716
+ };
1717
+ color: {
1718
+ type: StringConstructor;
1719
+ default: undefined;
1720
+ };
1721
+ position: {
1722
+ type: PropType<Vec3>;
1723
+ default: undefined;
1724
+ };
1725
+ scale: {
1726
+ type: PropType<number | Vec3>;
1727
+ default: undefined;
1728
+ };
1729
+ rotation: {
1730
+ type: PropType<Vec3>;
1731
+ default: undefined;
1732
+ };
1733
+ autoCenter: {
1734
+ type: BooleanConstructor;
1735
+ default: boolean;
1736
+ };
1737
+ id: {
1738
+ type: StringConstructor;
1739
+ default: undefined;
1740
+ };
1741
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
1742
+ [key: string]: any;
1743
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
1744
+ radius: {
1745
+ type: NumberConstructor;
1746
+ default: undefined;
1747
+ };
1748
+ radiusTop: {
1749
+ type: NumberConstructor;
1750
+ default: undefined;
1751
+ };
1752
+ height: {
1753
+ type: NumberConstructor;
1754
+ default: undefined;
1755
+ };
1756
+ radialSegments: {
1757
+ type: NumberConstructor;
1758
+ default: undefined;
1759
+ };
1760
+ color: {
1761
+ type: StringConstructor;
1762
+ default: undefined;
1763
+ };
1764
+ position: {
1765
+ type: PropType<Vec3>;
1766
+ default: undefined;
1767
+ };
1768
+ scale: {
1769
+ type: PropType<number | Vec3>;
1770
+ default: undefined;
1771
+ };
1772
+ rotation: {
1773
+ type: PropType<Vec3>;
1774
+ default: undefined;
1775
+ };
1776
+ autoCenter: {
1777
+ type: BooleanConstructor;
1778
+ default: boolean;
1779
+ };
1780
+ id: {
1781
+ type: StringConstructor;
1782
+ default: undefined;
1783
+ };
1784
+ }>> & Readonly<{}>, {
1785
+ color: string;
1786
+ height: number;
1787
+ position: Vec3;
1788
+ scale: number | Vec3;
1789
+ autoCenter: boolean;
1790
+ rotation: Vec3;
1791
+ id: string;
1792
+ radius: number;
1793
+ radiusTop: number;
1794
+ radialSegments: number;
1795
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
1796
+ declare const PolyCone: vue.DefineComponent<vue.ExtractPropTypes<{
1797
+ radius: {
1798
+ type: NumberConstructor;
1799
+ default: undefined;
1800
+ };
1801
+ height: {
1802
+ type: NumberConstructor;
1803
+ default: undefined;
1804
+ };
1805
+ radialSegments: {
1806
+ type: NumberConstructor;
1807
+ default: undefined;
1808
+ };
1809
+ color: {
1810
+ type: StringConstructor;
1811
+ default: undefined;
1812
+ };
1813
+ position: {
1814
+ type: PropType<Vec3>;
1815
+ default: undefined;
1816
+ };
1817
+ scale: {
1818
+ type: PropType<number | Vec3>;
1819
+ default: undefined;
1820
+ };
1821
+ rotation: {
1822
+ type: PropType<Vec3>;
1823
+ default: undefined;
1824
+ };
1825
+ autoCenter: {
1826
+ type: BooleanConstructor;
1827
+ default: boolean;
1828
+ };
1829
+ id: {
1830
+ type: StringConstructor;
1831
+ default: undefined;
1832
+ };
1833
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
1834
+ [key: string]: any;
1835
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
1836
+ radius: {
1837
+ type: NumberConstructor;
1838
+ default: undefined;
1839
+ };
1840
+ height: {
1841
+ type: NumberConstructor;
1842
+ default: undefined;
1843
+ };
1844
+ radialSegments: {
1845
+ type: NumberConstructor;
1846
+ default: undefined;
1847
+ };
1848
+ color: {
1849
+ type: StringConstructor;
1850
+ default: undefined;
1851
+ };
1852
+ position: {
1853
+ type: PropType<Vec3>;
1854
+ default: undefined;
1855
+ };
1856
+ scale: {
1857
+ type: PropType<number | Vec3>;
1858
+ default: undefined;
1859
+ };
1860
+ rotation: {
1861
+ type: PropType<Vec3>;
1862
+ default: undefined;
1863
+ };
1864
+ autoCenter: {
1865
+ type: BooleanConstructor;
1866
+ default: boolean;
1867
+ };
1868
+ id: {
1869
+ type: StringConstructor;
1870
+ default: undefined;
1871
+ };
1872
+ }>> & Readonly<{}>, {
1873
+ color: string;
1874
+ height: number;
1875
+ position: Vec3;
1876
+ scale: number | Vec3;
1877
+ autoCenter: boolean;
1878
+ rotation: Vec3;
1879
+ id: string;
1880
+ radius: number;
1881
+ radialSegments: number;
1882
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
1883
+ declare const PolyTorus: vue.DefineComponent<vue.ExtractPropTypes<{
1884
+ radius: {
1885
+ type: NumberConstructor;
1886
+ default: undefined;
1887
+ };
1888
+ tube: {
1889
+ type: NumberConstructor;
1890
+ default: undefined;
1891
+ };
1892
+ radialSegments: {
1893
+ type: NumberConstructor;
1894
+ default: undefined;
1895
+ };
1896
+ tubularSegments: {
1897
+ type: NumberConstructor;
1898
+ default: undefined;
1899
+ };
1900
+ color: {
1901
+ type: StringConstructor;
1902
+ default: undefined;
1903
+ };
1904
+ position: {
1905
+ type: PropType<Vec3>;
1906
+ default: undefined;
1907
+ };
1908
+ scale: {
1909
+ type: PropType<number | Vec3>;
1910
+ default: undefined;
1911
+ };
1912
+ rotation: {
1913
+ type: PropType<Vec3>;
1914
+ default: undefined;
1915
+ };
1916
+ autoCenter: {
1917
+ type: BooleanConstructor;
1918
+ default: boolean;
1919
+ };
1920
+ id: {
1921
+ type: StringConstructor;
1922
+ default: undefined;
1923
+ };
1924
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
1925
+ [key: string]: any;
1926
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
1927
+ radius: {
1928
+ type: NumberConstructor;
1929
+ default: undefined;
1930
+ };
1931
+ tube: {
1932
+ type: NumberConstructor;
1933
+ default: undefined;
1934
+ };
1935
+ radialSegments: {
1936
+ type: NumberConstructor;
1937
+ default: undefined;
1938
+ };
1939
+ tubularSegments: {
1940
+ type: NumberConstructor;
1941
+ default: undefined;
1942
+ };
1943
+ color: {
1944
+ type: StringConstructor;
1945
+ default: undefined;
1946
+ };
1947
+ position: {
1948
+ type: PropType<Vec3>;
1949
+ default: undefined;
1950
+ };
1951
+ scale: {
1952
+ type: PropType<number | Vec3>;
1953
+ default: undefined;
1954
+ };
1955
+ rotation: {
1956
+ type: PropType<Vec3>;
1957
+ default: undefined;
1958
+ };
1959
+ autoCenter: {
1960
+ type: BooleanConstructor;
1961
+ default: boolean;
1962
+ };
1963
+ id: {
1964
+ type: StringConstructor;
1965
+ default: undefined;
1966
+ };
1967
+ }>> & Readonly<{}>, {
1968
+ color: string;
1969
+ position: Vec3;
1970
+ scale: number | Vec3;
1971
+ autoCenter: boolean;
1972
+ rotation: Vec3;
1973
+ id: string;
1974
+ radius: number;
1975
+ radialSegments: number;
1976
+ tube: number;
1977
+ tubularSegments: number;
1978
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
1979
+
1980
+ interface PolyControlsAnimateOptions {
1981
+ speed?: number;
1982
+ axis?: "x" | "y";
1983
+ pauseOnInteraction?: boolean;
1984
+ }
1985
+ interface PolyOrbitControlsCamera {
1986
+ rotX: number;
1987
+ rotY: number;
1988
+ zoom: number;
1989
+ target: Vec3;
1990
+ distance: number;
1991
+ }
1992
+ interface PolyOrbitControlsProps {
1993
+ drag?: boolean;
1994
+ wheel?: boolean;
1995
+ /** When true, wheel changes camera pull-back (distance) instead of zoom scale. */
1996
+ dolly?: boolean;
1997
+ invert?: boolean | number;
1998
+ /** Minimum zoom multiplier (zoom mode). Default 0.1. */
1999
+ minZoom?: number;
2000
+ /** Maximum zoom multiplier (zoom mode). Default 10. */
2001
+ maxZoom?: number;
2002
+ /** Minimum camera pull-back in CSS pixels when dolly=true. Default 0. */
2003
+ minDistance?: number;
2004
+ /** Maximum camera pull-back in CSS pixels when dolly=true. Default 5000. */
2005
+ maxDistance?: number;
2006
+ animate?: false | PolyControlsAnimateOptions;
2007
+ }
2008
+ declare const PolyOrbitControls: vue.DefineComponent<vue.ExtractPropTypes<{
2009
+ drag: {
2010
+ type: BooleanConstructor;
2011
+ default: boolean;
2012
+ };
2013
+ wheel: {
2014
+ type: BooleanConstructor;
2015
+ default: boolean;
2016
+ };
2017
+ dolly: {
2018
+ type: BooleanConstructor;
2019
+ default: boolean;
2020
+ };
2021
+ invert: {
2022
+ type: PropType<boolean | number>;
2023
+ default: boolean;
2024
+ };
2025
+ minZoom: {
2026
+ type: NumberConstructor;
2027
+ default: number;
2028
+ };
2029
+ maxZoom: {
2030
+ type: NumberConstructor;
2031
+ default: number;
2032
+ };
2033
+ minDistance: {
2034
+ type: NumberConstructor;
2035
+ default: number;
2036
+ };
2037
+ maxDistance: {
2038
+ type: NumberConstructor;
2039
+ default: number;
2040
+ };
2041
+ animate: {
2042
+ type: PropType<false | PolyControlsAnimateOptions>;
2043
+ default: boolean;
2044
+ };
2045
+ }>, () => null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
2046
+ change: (_camera: PolyOrbitControlsCamera) => true;
2047
+ "interaction-start": (_camera: PolyOrbitControlsCamera) => true;
2048
+ "interaction-end": (_camera: PolyOrbitControlsCamera) => true;
2049
+ }, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
2050
+ drag: {
2051
+ type: BooleanConstructor;
2052
+ default: boolean;
2053
+ };
2054
+ wheel: {
2055
+ type: BooleanConstructor;
2056
+ default: boolean;
2057
+ };
2058
+ dolly: {
2059
+ type: BooleanConstructor;
2060
+ default: boolean;
2061
+ };
2062
+ invert: {
2063
+ type: PropType<boolean | number>;
2064
+ default: boolean;
2065
+ };
2066
+ minZoom: {
2067
+ type: NumberConstructor;
2068
+ default: number;
2069
+ };
2070
+ maxZoom: {
2071
+ type: NumberConstructor;
2072
+ default: number;
2073
+ };
2074
+ minDistance: {
2075
+ type: NumberConstructor;
2076
+ default: number;
2077
+ };
2078
+ maxDistance: {
2079
+ type: NumberConstructor;
2080
+ default: number;
2081
+ };
2082
+ animate: {
2083
+ type: PropType<false | PolyControlsAnimateOptions>;
2084
+ default: boolean;
2085
+ };
2086
+ }>> & Readonly<{
1119
2087
  onChange?: ((_camera: PolyOrbitControlsCamera) => any) | undefined;
1120
2088
  "onInteraction-start"?: ((_camera: PolyOrbitControlsCamera) => any) | undefined;
1121
2089
  "onInteraction-end"?: ((_camera: PolyOrbitControlsCamera) => any) | undefined;
@@ -1781,6 +2749,29 @@ declare const PolyDirectionalLightHelper: vue.DefineComponent<vue.ExtractPropTyp
1781
2749
 
1782
2750
  declare function injectPolyBaseStyles(doc?: Document): void;
1783
2751
 
2752
+ interface PolyRenderSurfaceLeafCounts {
2753
+ quad: number;
2754
+ clippedSolid: number;
2755
+ atlas: number;
2756
+ stableTriangle: number;
2757
+ }
2758
+ interface PolyRenderStats {
2759
+ polygonCount: number;
2760
+ mountedPolygonLeafCount: number;
2761
+ shadowLeafCount: number;
2762
+ surfaceLeafCounts: PolyRenderSurfaceLeafCounts;
2763
+ bucketCount: number;
2764
+ }
2765
+ interface PolyRenderStatsOptions {
2766
+ polygonCount?: number;
2767
+ /**
2768
+ * Optional subtree selector for diagnostics that only want model leaves and
2769
+ * not helpers/floors/gizmos sharing the same scene root.
2770
+ */
2771
+ scopeSelector?: string;
2772
+ }
2773
+ declare function collectPolyRenderStats(root: ParentNode | null | undefined, optionsOrPolygonCount?: number | PolyRenderStatsOptions): PolyRenderStats;
2774
+
1784
2775
  interface UsePolyAnimationResultVue {
1785
2776
  /** Attach to a mesh handle when not passing `root` directly. */
1786
2777
  ref: Ref<PolyAnimationTarget | null>;
@@ -1798,4 +2789,4 @@ interface UsePolyAnimationResultVue {
1798
2789
  }
1799
2790
  declare function usePolyAnimation(clips: MaybeRef<PolyAnimationClip[] | undefined>, controller: MaybeRef<ParseAnimationController | undefined>, root?: MaybeRef<PolyAnimationTarget | null | undefined>): UsePolyAnimationResultVue;
1800
2791
 
1801
- export { type InteractionProps, Poly, PolyAxesHelper, type PolyAxesHelperProps, PolyPerspectiveCamera as PolyCamera, PolyCameraContextKey, type PolyCameraContextValue, type PolyPerspectiveCameraProps as PolyCameraProps, type PolyContext, type PolyControlsAnimateOptions, PolyDirectionalLightHelper, type PolyDirectionalLightHelperProps, type PolyEventHandler, PolyFirstPersonControls, type PolyFirstPersonControlsHandle, type PolyFirstPersonControlsOptions, PolyGround, type PolyGroundProps, PolyMapControls, type PolyMapControlsCamera, type PolyMapControlsProps, PolyMesh, type PolyMeshHandle, type PolyMeshProps, type PolyMouseEvent, PolyOrbitControls, type PolyOrbitControlsCamera, type PolyOrbitControlsProps, PolyOrthographicCamera, type PolyOrthographicCameraProps, PolyPerspectiveCamera, type PolyPerspectiveCameraProps, type PolyPointerEvent, type PolyProps, type PolyRenderStrategiesOption, type PolyRenderStrategy, PolyScene, type PolySceneProps, PolySelect, type PolySelectProps, type PolySelectionApi, PolySelectionContextKey, PolyTransformControls, type PolyTransformControlsObject, type PolyTransformControlsObjectChangeEvent, type PolyTransformControlsProps, type PolyWheelEvent, type UseCameraOptions, type UseCameraResult, type UseMeshOptions, type UseMeshResult, type UsePolyAnimationResultVue, type UseSceneContextOptions, type UseSceneContextResult, findMeshUnderPoint, findPolyMeshHandle, injectPolyBaseStyles, pointInMeshElement, usePolyAnimation, usePolyCamera, usePolyMaterial, usePolyMesh, usePolySceneContext, usePolySelect, usePolySelectionApi };
2792
+ export { type InteractionProps, Poly, PolyAxesHelper, type PolyAxesHelperProps, PolyBox, PolyOrthographicCamera as PolyCamera, PolyCameraContextKey, type PolyCameraContextValue, type PolyOrthographicCameraProps as PolyCameraProps, PolyCone, type PolyContext, type PolyControlsAnimateOptions, PolyCylinder, PolyDirectionalLightHelper, type PolyDirectionalLightHelperProps, PolyDodecahedron, type PolyEventHandler, PolyFirstPersonControls, type PolyFirstPersonControlsHandle, type PolyFirstPersonControlsOptions, PolyGround, type PolyGroundProps, PolyIcosahedron, PolyMapControls, type PolyMapControlsCamera, type PolyMapControlsProps, PolyMesh, type PolyMeshHandle, type PolyMeshProps, type PolyMouseEvent, PolyOctahedron, PolyOrbitControls, type PolyOrbitControlsCamera, type PolyOrbitControlsProps, PolyOrthographicCamera, type PolyOrthographicCameraProps, PolyPerspectiveCamera, type PolyPerspectiveCameraProps, PolyPlane, type PolyPointerEvent, type PolyProps, type PolyRenderStats, type PolyRenderStatsOptions, type PolyRenderSurfaceLeafCounts, PolyRing, PolyScene, type PolySceneProps, PolySelect, type PolySelectProps, type PolySelectionApi, PolySelectionContextKey, PolySphere, PolyTetrahedron, PolyTorus, PolyTransformControls, type PolyTransformControlsObject, type PolyTransformControlsObjectChangeEvent, type PolyTransformControlsProps, type PolyWheelEvent, type UseCameraOptions, type UseCameraResult, type UseMeshOptions, type UseMeshResult, type UsePolyAnimationResultVue, type UseSceneContextOptions, type UseSceneContextResult, collectPolyRenderStats, findMeshUnderPoint, findPolyMeshHandle, injectPolyBaseStyles, pointInMeshElement, usePolyAnimation, usePolyCamera, usePolyMaterial, usePolyMesh, usePolySceneContext, usePolySelect, usePolySelectionApi };