roavatar-renderer 1.3.6 → 1.4.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
@@ -6,14 +6,19 @@ export declare const AbbreviationToFaceControlProperty: {
6
6
  [K in string]: string;
7
7
  };
8
8
 
9
+ /** @category Outfit */
9
10
  export declare const AccessoryAssetTypes: string[];
10
11
 
12
+ /**
13
+ * @category InstanceWrapper
14
+ */
11
15
  export declare class AccessoryDescriptionWrapper extends InstanceWrapper {
12
16
  static className: string;
13
17
  static requiredProperties: string[];
14
18
  setup(): void;
15
19
  }
16
20
 
21
+ /** @category Outfit */
17
22
  export declare const accessoryRefinementLowerBounds: {
18
23
  [K in string]: {
19
24
  "position": {
@@ -28,8 +33,10 @@ export declare const accessoryRefinementLowerBounds: {
28
33
  };
29
34
  };
30
35
 
36
+ /** @category Outfit */
31
37
  export declare const accessoryRefinementTypes: number[];
32
38
 
39
+ /** @category Outfit */
33
40
  export declare const accessoryRefinementUpperBounds: typeof accessoryRefinementLowerBounds;
34
41
 
35
42
  export declare const AccessoryType: {
@@ -55,6 +62,9 @@ export declare const AccessoryType: {
55
62
  Eyelash: number;
56
63
  };
57
64
 
65
+ /**
66
+ * @category InstanceWrapper
67
+ */
58
68
  export declare class AccessoryWrapper extends InstanceWrapper {
59
69
  static className: string;
60
70
  static requiredProperties: string[];
@@ -63,8 +73,12 @@ export declare class AccessoryWrapper extends InstanceWrapper {
63
73
  AccessoryBuildWeld(): void;
64
74
  }
65
75
 
76
+ /** @category Outfit */
66
77
  export declare const ActualBundleTypes: string[];
67
78
 
79
+ /**
80
+ * @category Mesh
81
+ */
68
82
  export declare function add(v0: Vec3, v1: Vec3): Vec3;
69
83
 
70
84
  export declare const AllAccessorySorts: ItemSort[];
@@ -81,8 +95,12 @@ export declare const AllCharacterSorts: ItemSort[];
81
95
 
82
96
  export declare const AllClothingSorts: ItemSort[];
83
97
 
98
+ /** @category Outfit */
84
99
  export declare const AllHeadShapes: string[];
85
100
 
101
+ /**
102
+ * @category DataModel
103
+ */
86
104
  export declare const AllInstances: Instance[];
87
105
 
88
106
  export declare const AlphaMode: {
@@ -91,13 +109,16 @@ export declare const AlphaMode: {
91
109
  TintMask: number;
92
110
  };
93
111
 
112
+ /**
113
+ * @category InstanceWrapper
114
+ */
94
115
  export declare class AnimationConstraintWrapper extends InstanceWrapper {
95
116
  static className: string;
96
117
  static requiredProperties: string[];
97
118
  setup(): void;
98
119
  }
99
120
 
100
- export declare type AnimationProp = "ClimbAnimation" | "FallAnimation" | "IdleAnimation" | "JumpAnimation" | "MoodAnimation" | "RunAnimation" | "SwimAnimation" | "WalkAnimation" | "dance1" | "dance2" | "dance3" | "toolnone";
121
+ export declare type AnimationProp = "ClimbAnimation" | "FallAnimation" | "IdleAnimation" | "JumpAnimation" | "MoodAnimation" | "RunAnimation" | "SwimAnimation" | "WalkAnimation" | "dance1" | "dance2" | "dance3" | "toolnone" | "pose";
101
122
 
102
123
  export declare const AnimationPropToName: {
103
124
  [K in AnimationProp]: string;
@@ -172,6 +193,9 @@ export declare class AnimationTrack {
172
193
 
173
194
  declare type AnimationTrackType = "Sequence" | "Curve";
174
195
 
196
+ /**
197
+ * @category InstanceWrapper
198
+ */
175
199
  export declare class AnimatorWrapper extends InstanceWrapper {
176
200
  static className: string;
177
201
  static requiredProperties: string[];
@@ -180,15 +204,15 @@ export declare class AnimatorWrapper extends InstanceWrapper {
180
204
  get data(): AnimatorWrapperData;
181
205
  updateToolAnimation(rig: Instance): void;
182
206
  updateToolConnections(): void;
183
- _pickRandom(entries: AnimationSetEntry[]): AnimationSetEntry;
184
- _getTrack(id: string): AnimationTrack | undefined;
185
- _switchAnimation(name: string): boolean;
207
+ private _pickRandom;
208
+ private _getTrack;
209
+ private _switchAnimation;
186
210
  stopMoodAnimation(): void;
187
- _switchMoodAnimation(name: string): boolean;
211
+ private _switchMoodAnimation;
188
212
  stopToolAnimation(): void;
189
- _switchToolAnimation(name: string): boolean;
213
+ private _switchToolAnimation;
190
214
  isValidTrackForSet(track: AnimationTrack, name: string): boolean;
191
- _fixUnloaded(): void;
215
+ private _fixUnloaded;
192
216
  restPose(includeMotors?: boolean, includeFACS?: boolean): void;
193
217
  renderAnimation(addTime?: number, forceTime?: number, forceKeyframe?: number): void;
194
218
  getCurrentAnimationTrack(): AnimationTrack | undefined;
@@ -216,6 +240,10 @@ export declare const animNamesR15: AnimationSet;
216
240
 
217
241
  export declare const animNamesR6: AnimationSet;
218
242
 
243
+ /**
244
+ * Contains all API methods
245
+ * @category API
246
+ */
219
247
  export declare const API: {
220
248
  Misc: {
221
249
  startCurrentlyLoadingAssets: () => void;
@@ -309,6 +337,9 @@ export declare const API: {
309
337
  PremiumFeatures: {
310
338
  GetSubscription: (userId: number) => Promise<Response | GetSubscription_Result>;
311
339
  };
340
+ Subscriptions: {
341
+ HasPlus: () => Promise<Response | boolean>;
342
+ };
312
343
  RBLXGet: typeof RBLXGet;
313
344
  RBLXPost: typeof RBLXPost;
314
345
  RBLXDelete: typeof RBLXDelete;
@@ -317,6 +348,7 @@ export declare const API: {
317
348
 
318
349
  export declare function arrayBufferToBase64(buffer: ArrayBuffer): string;
319
350
 
351
+ /** @category Outfit */
320
352
  export declare class Asset {
321
353
  id: number;
322
354
  name: string;
@@ -332,6 +364,7 @@ export declare class Asset {
332
364
  setOrder(order: number): void;
333
365
  }
334
366
 
367
+ /** @category Outfit */
335
368
  export declare type AssetJson = {
336
369
  id?: number;
337
370
  name?: string;
@@ -341,6 +374,7 @@ export declare type AssetJson = {
341
374
  supportsHeadShapes?: boolean;
342
375
  };
343
376
 
377
+ /** @category Outfit */
344
378
  export declare class AssetMeta {
345
379
  version: number;
346
380
  order?: number;
@@ -356,6 +390,7 @@ export declare class AssetMeta {
356
390
  fromJson(assetMetaJson: AssetMetaJson): void;
357
391
  }
358
392
 
393
+ /** @category Outfit */
359
394
  export declare type AssetMetaJson = {
360
395
  version?: number;
361
396
  position?: VecXYZ | Vecxyz | null;
@@ -367,6 +402,7 @@ export declare type AssetMetaJson = {
367
402
  staticFacialAnimation?: boolean;
368
403
  };
369
404
 
405
+ /** @category Outfit */
370
406
  export declare class AssetType {
371
407
  _id: number;
372
408
  name: string;
@@ -381,13 +417,16 @@ export declare class AssetType {
381
417
  get id(): number;
382
418
  }
383
419
 
420
+ /** @category Outfit */
384
421
  export declare type AssetTypeJson = {
385
422
  id?: number;
386
423
  name?: string;
387
424
  };
388
425
 
426
+ /** @category Outfit */
389
427
  export declare const AssetTypeNameToId: Map<string, number>;
390
428
 
429
+ /** @category Outfit */
391
430
  export declare const AssetTypes: string[];
392
431
 
393
432
  export declare const AssetTypeToAccessoryType: {
@@ -418,6 +457,17 @@ export declare const AssetTypeToMakeupType: {
418
457
  EyeMakeup: number;
419
458
  };
420
459
 
460
+ /**
461
+ * @category InstanceWrapper
462
+ */
463
+ export declare class AttachmentWrapper extends InstanceWrapper {
464
+ static className: string;
465
+ static requiredProperties: string[];
466
+ setup(): void;
467
+ getWorldCFrame(): CFrame;
468
+ }
469
+
470
+ /** @category API */
421
471
  export declare class Authentication {
422
472
  TOKEN?: string;
423
473
  SessionUUID?: string;
@@ -476,14 +526,22 @@ export declare interface AvatarInventory_Result {
476
526
  nextPageToken: string | null;
477
527
  }
478
528
 
529
+ /** @category Outfit */
479
530
  export declare type AvatarType = "R6" | "R15";
480
531
 
532
+ /** @category Outfit */
481
533
  export declare const AvatarType: {
482
534
  [K in AvatarType]: AvatarType;
483
535
  };
484
536
 
537
+ /**
538
+ * @category Mesh
539
+ */
485
540
  export declare function averageVec3(vecs: Vec3[]): Vec3;
486
541
 
542
+ /**
543
+ * @category Mesh
544
+ */
487
545
  export declare function barycentric(p: Vec3, triangle: Triangle): Vec3;
488
546
 
489
547
  export declare function base64ToArrayBuffer(base64: string): ArrayBuffer;
@@ -501,6 +559,14 @@ declare class BaseKeyframeGroup {
501
559
  getHigherKeyframe(time: number): BaseKeyframe | null;
502
560
  }
503
561
 
562
+ /**
563
+ * @category Outfit
564
+ */
565
+ export declare type BodyColor3Name = "headColor3" | "torsoColor3" | "rightArmColor3" | "leftArmColor3" | "rightLegColor3" | "leftLegColor3";
566
+
567
+ /**
568
+ * @category Outfit
569
+ */
504
570
  export declare class BodyColor3s {
505
571
  colorType: ColorType;
506
572
  headColor3: string;
@@ -533,6 +599,9 @@ declare type BodyColor3sJson = {
533
599
  leftLegColor3?: string;
534
600
  };
535
601
 
602
+ /**
603
+ * @category Outfit
604
+ */
536
605
  export declare class BodyColors {
537
606
  colorType: ColorType;
538
607
  headColorId: number;
@@ -566,6 +635,9 @@ declare type BodyColorsJson = {
566
635
  leftLegColorId?: number;
567
636
  };
568
637
 
638
+ /**
639
+ * @category InstanceWrapper
640
+ */
569
641
  export declare class BodyColorsWrapper extends InstanceWrapper {
570
642
  static className: string;
571
643
  static requiredProperties: string[];
@@ -583,6 +655,9 @@ export declare const BodyPart: {
583
655
  RightLeg: number;
584
656
  };
585
657
 
658
+ /**
659
+ * @category InstanceWrapper
660
+ */
586
661
  export declare class BodyPartDescriptionWrapper extends InstanceWrapper {
587
662
  static className: string;
588
663
  static requiredProperties: string[];
@@ -597,8 +672,12 @@ export declare const BodyPartNameToEnum: {
597
672
  [K in string]: number;
598
673
  };
599
674
 
675
+ /**
676
+ * @category Mesh
677
+ */
600
678
  declare type Bounds = [Vec3, Vec3];
601
679
 
680
+ /** @category Outfit */
602
681
  export declare const BrickColors: {
603
682
  [K in number]: string;
604
683
  };
@@ -609,10 +688,16 @@ export declare function browserSendMessage(data: {
609
688
  [K in string]: string;
610
689
  }): Promise<any>;
611
690
 
691
+ /**
692
+ * @category Mesh
693
+ */
612
694
  export declare function buildFaceKD(mesh: FileMesh): KDNode | null;
613
695
 
614
696
  export declare function BuildJoints(self: RigData): void;
615
697
 
698
+ /**
699
+ * @category Mesh
700
+ */
616
701
  export declare function buildVertKD(mesh: FileMesh): KDNode | null;
617
702
 
618
703
  export declare interface BundleDetails_Result {
@@ -653,6 +738,7 @@ export declare interface BundleDetails_Result {
653
738
  unitsAvailableForConsumption: number;
654
739
  }
655
740
 
741
+ /** @category Outfit */
656
742
  export declare const BundleTypes: string[];
657
743
 
658
744
  export declare const CACHE: {
@@ -668,10 +754,14 @@ export declare const CACHE: {
668
754
  UserInfo: undefined;
669
755
  };
670
756
 
757
+ /**
758
+ * @category Mesh
759
+ */
671
760
  export declare function calculateMagnitude3D(x: number, y: number, z: number): number;
672
761
 
673
762
  export declare function calculateMotor6Doffset(motor: Instance, includeTransform?: boolean): CFrame;
674
763
 
764
+ /** @category Outfit */
675
765
  export declare const CatalogBundleTypes: string[];
676
766
 
677
767
  export declare const CategoryDictionary: {
@@ -682,6 +772,9 @@ export declare const CategoryDictionary: {
682
772
  };
683
773
  };
684
774
 
775
+ /**
776
+ * @category DataModelProperty
777
+ */
685
778
  export declare class CFrame {
686
779
  Position: Vec3;
687
780
  Orientation: Vec3;
@@ -699,6 +792,9 @@ export declare class CFrame {
699
792
  isSame(other: CFrame): boolean;
700
793
  }
701
794
 
795
+ /**
796
+ * @category Mesh
797
+ */
702
798
  export declare function clamp(v0: Vec3, lower: Vec3, higher: Vec3): Vec3;
703
799
 
704
800
  export declare function cleanString(inputString: string): string;
@@ -707,16 +803,21 @@ export declare function clonePrimitiveArray<T>(arr: T[]): any[];
707
803
 
708
804
  export declare function cloneSearch_Payload(data: Search_Payload): Search_Payload;
709
805
 
806
+ /**
807
+ * @category Mesh
808
+ */
710
809
  export declare function closestPointTriangle(p: Vec3, triangle: Triangle): Vec3;
711
810
 
712
- declare type ClothingDiffType = "Shirt" | "Pants" | "GraphicTShirt";
713
-
811
+ /**
812
+ * @category DataModelProperty
813
+ */
714
814
  export declare class Color3 {
715
815
  R: number;
716
816
  G: number;
717
817
  B: number;
718
818
  constructor(R?: number, G?: number, B?: number);
719
819
  clone(): Color3;
820
+ isSame(other: Color3): boolean;
720
821
  toColor3uint8(): Color3uint8;
721
822
  multiply(vec3: Color3): Color3;
722
823
  divide(vec3: Color3): Color3;
@@ -724,6 +825,9 @@ export declare class Color3 {
724
825
  minus(vec3: Color3): Color3;
725
826
  }
726
827
 
828
+ /**
829
+ * @category DataModelProperty
830
+ */
727
831
  export declare class Color3uint8 {
728
832
  R: number;
729
833
  G: number;
@@ -733,24 +837,38 @@ export declare class Color3uint8 {
733
837
  toColor3(): Color3;
734
838
  }
735
839
 
840
+ /**
841
+ * @category DataModelProperty
842
+ */
736
843
  export declare class ColorSequence {
737
844
  keypoints: ColorSequenceKeypoint[];
738
845
  static fromColor(color: Color3): ColorSequence;
739
846
  clone(): ColorSequence;
847
+ isSame(other: ColorSequence): boolean;
740
848
  getLowerKey(time: number): ColorSequenceKeypoint | null;
741
849
  getHigherKey(time: number): ColorSequenceKeypoint | null;
742
850
  getValue(time: number): Color3;
743
851
  }
744
852
 
853
+ /**
854
+ * @category DataModelProperty
855
+ */
745
856
  export declare class ColorSequenceKeypoint {
746
857
  time: number;
747
858
  value: Color3;
748
859
  constructor(time: number, r: number, g: number, b: number);
749
860
  clone(): ColorSequenceKeypoint;
861
+ isSame(other: ColorSequenceKeypoint): boolean;
750
862
  }
751
863
 
864
+ /**
865
+ * @category Outfit
866
+ */
752
867
  export declare type ColorType = "BrickColor" | "Color3";
753
868
 
869
+ /**
870
+ * @category DataModel
871
+ */
754
872
  export declare class Connection {
755
873
  Connected: boolean;
756
874
  _callback: (...args: unknown[]) => unknown;
@@ -759,6 +877,9 @@ export declare class Connection {
759
877
  Disconnect(): void;
760
878
  }
761
879
 
880
+ /**
881
+ * @category DataModelProperty
882
+ */
762
883
  export declare class Content {
763
884
  sourceType: number;
764
885
  uri?: string;
@@ -810,12 +931,21 @@ declare class COREMESH {
810
931
  getColors(): Uint8Array;
811
932
  getIndices(): Uint16Array;
812
933
  getTouchingVerts(index: number): number[];
934
+ getEdgeId(v0: number, v1: number): bigint;
935
+ getFaceEdges(i: number): [bigint, bigint, bigint];
936
+ getEdgeCounts(): Map<bigint, number>;
813
937
  }
814
938
 
815
939
  export declare function createContentMap(): void;
816
940
 
941
+ /**
942
+ * @category Mesh
943
+ */
817
944
  export declare function createWeightsForMeshChunked(mesh: FileMesh, ref_mesh: FileMesh): WeightChunk[];
818
945
 
946
+ /**
947
+ * @category Mesh
948
+ */
819
949
  export declare function cross(a: Vec3, b: Vec3): Vec3;
820
950
 
821
951
  export declare const DataType: {
@@ -848,6 +978,9 @@ export declare const DataType: {
848
978
  NonSerializable: number;
849
979
  };
850
980
 
981
+ /**
982
+ * @category InstanceWrapper
983
+ */
851
984
  export declare class DecalWrapper extends InstanceWrapper {
852
985
  static className: string;
853
986
  static requiredProperties: string[];
@@ -868,8 +1001,10 @@ export declare const DefaultAnimationsR6: typeof DefaultAnimations;
868
1001
 
869
1002
  export declare function DefaultGetWorkerFunc(): Worker;
870
1003
 
1004
+ /** @category Outfit */
871
1005
  export declare const defaultPantAssetIds: number[];
872
1006
 
1007
+ /** @category Outfit */
873
1008
  export declare const defaultPantTemplateAssetIds: number[];
874
1009
 
875
1010
  export declare const DefaultSearchData: {
@@ -878,10 +1013,15 @@ export declare const DefaultSearchData: {
878
1013
  };
879
1014
  };
880
1015
 
1016
+ /** @category Outfit */
881
1017
  export declare const defaultShirtAssetIds: number[];
882
1018
 
1019
+ /** @category Outfit */
883
1020
  export declare const defaultShirtTemplateAssetIds: number[];
884
1021
 
1022
+ /**
1023
+ * @category Mesh
1024
+ */
885
1025
  export declare function deformReferenceToBaseBodyParts(reference: FileMesh, targetCages: FileMesh[], targetSizes: Vector3[], targetCFrames: CFrame[]): number[];
886
1026
 
887
1027
  export declare function deg(radians: number): number;
@@ -893,16 +1033,30 @@ declare class DisposableDesc {
893
1033
  dispose(_renderer: THREE.WebGLRenderer, _scene: THREE.Scene): void;
894
1034
  }
895
1035
 
1036
+ export declare function disposeMesh(scene: THREE.Scene, mesh: THREE.Mesh): void;
1037
+
1038
+ /**
1039
+ * @category Mesh
1040
+ */
896
1041
  export declare function distance(v0: Vec3, v1: Vec3): number;
897
1042
 
1043
+ /**
1044
+ * @category Mesh
1045
+ */
898
1046
  export declare function divide(v0: Vec3, v1: Vec3): Vec3;
899
1047
 
1048
+ /**
1049
+ * @category Mesh
1050
+ */
900
1051
  export declare function dot(v0: Vec3, v1: Vec3): number;
901
1052
 
902
1053
  export declare function download(filename: string, text: string): void;
903
1054
 
904
1055
  export declare const EmitterGroupDescClassTypes: string[];
905
1056
 
1057
+ /**
1058
+ * @category DataModel
1059
+ */
906
1060
  declare class Event_2 {
907
1061
  _callbacks: ((...args: unknown[]) => unknown)[];
908
1062
  Connect(callback: (...args: unknown[]) => unknown): Connection;
@@ -912,12 +1066,31 @@ declare class Event_2 {
912
1066
  }
913
1067
  export { Event_2 as Event }
914
1068
 
1069
+ /**
1070
+ * @category Exposer
1071
+ */
915
1072
  export declare function exposeAPI(): void;
916
1073
 
1074
+ /**
1075
+ * @category Exposer
1076
+ */
1077
+ export declare function exposeFLAGS(): void;
1078
+
1079
+ /**
1080
+ * @category Exposer
1081
+ */
917
1082
  export declare function exposeMesh(): void;
918
1083
 
1084
+ /**
1085
+ * @category Exposer
1086
+ */
1087
+ export declare function exposeThumbnailGenerator(): void;
1088
+
919
1089
  export declare const FaceControlNames: string[];
920
1090
 
1091
+ /**
1092
+ * @category InstanceWrapper
1093
+ */
921
1094
  export declare class FaceControlsWrapper extends InstanceWrapper {
922
1095
  static className: string;
923
1096
  static requiredProperties: string[];
@@ -952,6 +1125,10 @@ declare class FACS {
952
1125
  clone(): FACS;
953
1126
  }
954
1127
 
1128
+ /**
1129
+ * Obtained from a call to API.Asset.GetMesh()
1130
+ * @category Mesh
1131
+ */
955
1132
  export declare class FileMesh {
956
1133
  version: string;
957
1134
  facsDataFormat: number;
@@ -1010,8 +1187,14 @@ export declare class FileMeshSubset {
1010
1187
  clone(): FileMeshSubset;
1011
1188
  }
1012
1189
 
1190
+ /** @category Mesh */
1013
1191
  export declare function fileMeshToTHREEGeometry(mesh: FileMesh, canIncludeSkinning?: boolean, forceVertexColor?: Vector3): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>;
1014
1192
 
1193
+ export declare function FindFirstMatchingAttachment(attachmentName: string, rig: Instance): Instance | null;
1194
+
1195
+ /**
1196
+ * @category FLAGS
1197
+ */
1015
1198
  export declare const FLAGS: {
1016
1199
  HAIR_IS_BODYPART: boolean;
1017
1200
  AVATAR_JOINT_UPGRADE: boolean;
@@ -1045,6 +1228,8 @@ export declare const FLAGS: {
1045
1228
  LEGACY_WELD_BEHAVIOR: boolean;
1046
1229
  USE_RENDERTARGET: boolean;
1047
1230
  AUTO_RESTORE_CONTEXT: boolean;
1231
+ RENDERTARGET_TO_CANVASTEXTURE: boolean;
1232
+ THUMBNAIL_TIMEOUT: number;
1048
1233
  SHOW_SKELETON_HELPER: boolean;
1049
1234
  UPDATE_SKELETON: boolean;
1050
1235
  ANIMATE_SKELETON: boolean;
@@ -1079,22 +1264,101 @@ declare class FloatCurveKey {
1079
1264
  rightTangent?: number;
1080
1265
  }
1081
1266
 
1267
+ /**
1268
+ * @category Mesh
1269
+ */
1082
1270
  export declare function floor(v0: Vec3): Vec3;
1083
1271
 
1272
+ /** @category Outfit */
1084
1273
  export declare const FullBodyColors: string[];
1085
1274
 
1275
+ /**
1276
+ * @category Mesh
1277
+ */
1086
1278
  export declare function gaussian_rbf(v0: Vec3, v1: Vec3, sigma?: number): number;
1087
1279
 
1280
+ /**
1281
+ * Generates a 2d or 3d thumbnail of a model/similar instance
1282
+ * @param auth Authentication
1283
+ * @param renderScene Scene to render inside, do note the scene appearance is not populated automaticall, use setupThumbnailScene()
1284
+ * @param model Model to render
1285
+ * @param size Size of the resulting image, ignored for 3d thumbnails
1286
+ * @param type Type of thumbnail, "png" | "webp" | "gltf"
1287
+ * @param quality Quality of image, with 1 being max-
1288
+ * @param gltfAutoDownload Automatically download gltf file
1289
+ * @returns ThumbnailResult, always a string for 2d thumbnails, 3d can be ArrayBuffer (glb, binary) or {[key: string]: unknown} (gltf, json)
1290
+ *
1291
+ * @category ThumbnailGenerator
1292
+ *
1293
+ * @example
1294
+ * **Example of generating thumbnail of accessory**
1295
+ * ```ts
1296
+ * //config
1297
+ * const ASSETID = 1039433
1298
+ *
1299
+ * //code
1300
+ * FLAGS.ANIMATE_SKELETON = false
1301
+ * FLAGS.UPDATE_SKELETON = true
1302
+ *
1303
+ * const rScene = RBXRenderer.addScene()
1304
+ * setupThumbnailScene(rScene)
1305
+ *
1306
+ * const accessoryrbx = await API.Asset.GetRBX(`rbxassetid://${ASSETID}`, {"Roblox-AssetFormat":"avatar_meshpart_accessory"})
1307
+ * const accessory = accessoryrbx.generateTree().GetChildren()[0]
1308
+ * const handle = accessory.FindFirstChildOfClass("MeshPart")
1309
+ * const cf = handle.Prop("CFrame")
1310
+ * if (!accessory.FindFirstChildOfClass("Camera")) cf.Position = [0,0,0]
1311
+ *
1312
+ * const result = await generateModelThumbnail(new Authentication(), rScene, accessory, [1000,1000], "webp", 0.99)
1313
+ * console.log(result)
1314
+ * console.log(result.length)
1315
+ * ```
1316
+ */
1317
+ export declare function generateModelThumbnail(auth: Authentication, renderScene: RBXRendererScene, model: Instance, size?: Vec2, type?: ThumbnailType, quality?: number, gltfAutoDownload?: boolean): Promise<ThumbnailResult>;
1318
+
1319
+ /**
1320
+ * Generates a 2d or 3d thumbnail of an outfit
1321
+ * @param auth Authentication
1322
+ * @param outfit Outfit to render
1323
+ * @param size Size of the resulting image, ignored for 3d thumbnails
1324
+ * @param type Type of thumbnail, "png" | "webp" | "gltf"
1325
+ * @param quality Quality of image, with 1 being max
1326
+ * @param gltfAutoDownload Automatically download gltf file
1327
+ * @returns ThumbnailResult, always a string for 2d thumbnails, 3d can be ArrayBuffer (glb, binary) or {[key: string]: unknown} (gltf, json)
1328
+ *
1329
+ * @category ThumbnailGenerator
1330
+ *
1331
+ * @example
1332
+ * **Example on generating 1000x1000 webp thumbnail for blank outfit**
1333
+ * ```ts
1334
+ * const outfit = new Outfit()
1335
+ * FLAGS.RENDERTARGET_TO_CANVASTEXTURE = true //required for gltf export
1336
+ * const result = await generateOutfitThumbnail(new Authentication(), outfit, [1000,1000], "webp", 0.99)
1337
+ * FLAGS.RENDERTARGET_TO_CANVASTEXTURE = false
1338
+ * console.log(result)
1339
+ * ```
1340
+ */
1341
+ export declare function generateOutfitThumbnail(auth: Authentication, outfit: Outfit, size?: Vec2, type?: ThumbnailType, quality?: number, gltfAutoDownload?: boolean): Promise<ThumbnailResult>;
1342
+
1088
1343
  export declare function generateUUIDv4(): string;
1089
1344
 
1090
1345
  export declare function GetAttachedPart(accessory: Instance, rig: Instance): Instance | undefined;
1091
1346
 
1347
+ export declare function getCameraCFrameForAvatarNonCustomized(rig: Instance): CFrame | undefined;
1348
+
1092
1349
  export declare function getCameraCFrameForHeadshotCustomized(rig: Instance, fov: number, yRot: number, distance: number): CFrame | undefined;
1093
1350
 
1351
+ export declare function getCameraOffset(fov: number, extentsSize: Vector3): number;
1352
+
1353
+ /**
1354
+ * @category Mesh
1355
+ */
1094
1356
  export declare function getDistIndexArray(ref: FileMesh, dist: FileMesh): (number | undefined)[];
1095
1357
 
1096
1358
  export declare function getExtents(cframe: CFrame, parts: Instance[]): [Vector3, Vector3];
1097
1359
 
1360
+ export declare function getExtentsCenter(extents: [Vector3, Vector3]): Vector3;
1361
+
1098
1362
  /**@deprecated this is SO broken */
1099
1363
  export declare function getExtentsForParts(parts: Instance[], includeTransform?: boolean): [Vector3, Vector3];
1100
1364
 
@@ -1111,12 +1375,21 @@ export declare interface GetInfoForId_Result {
1111
1375
  "displayName": string;
1112
1376
  }
1113
1377
 
1378
+ /**
1379
+ * @category Mesh
1380
+ */
1114
1381
  export declare function getOffsetArray(inner: FileMesh, outer: FileMesh): ([Vec3, THREE.Quaternion, number] | undefined)[];
1115
1382
 
1383
+ export declare function getOriginalAttachmentOrientation(attachment: Instance): Vector3;
1384
+
1385
+ export declare function getOriginalAttachmentPosition(attachment: Instance): Vector3;
1386
+
1116
1387
  export declare function getOriginalSize(part: Instance): Vector3;
1117
1388
 
1118
1389
  export declare function getRandomBetweenInclusive(min: number, max: number): number;
1119
1390
 
1391
+ export declare function getRigExtentsWorld(rig: Instance): [Vector3, Vector3];
1392
+
1120
1393
  export declare interface GetSubscription_Result {
1121
1394
  "subscriptionProductModel": {
1122
1395
  "premiumFeatureId": number;
@@ -1155,16 +1428,36 @@ export declare interface GetUserOutfits_Result {
1155
1428
  }[];
1156
1429
  }
1157
1430
 
1431
+ /**
1432
+ * @category Mesh
1433
+ */
1158
1434
  export declare function getUVtoIndexMap(mesh: FileMesh): Map<number, number>;
1159
1435
 
1436
+ /**
1437
+ * @category Mesh
1438
+ */
1160
1439
  export declare function getUVtoIndicesMap(mesh: FileMesh): Map<number, number[]>;
1161
1440
 
1162
1441
  export declare function getWorkerOnMessage(): (event: MessageEvent) => void;
1163
1442
 
1443
+ /**
1444
+ * @category InstanceWrapper
1445
+ */
1446
+ export declare function GetWrapperForInstance(instance: Instance): InstanceWrapper | undefined;
1447
+
1448
+ /**
1449
+ * @category Mesh
1450
+ */
1164
1451
  export declare function hashVec2(x: number, y: number): number;
1165
1452
 
1453
+ /**
1454
+ * @category Mesh
1455
+ */
1166
1456
  export declare function hashVec3(x: number, y: number, z: number, distance: number): number;
1167
1457
 
1458
+ /**
1459
+ * @category Mesh
1460
+ */
1168
1461
  export declare function hashVec3Safe(a: number | bigint, b: number | bigint, c: number | bigint): bigint;
1169
1462
 
1170
1463
  export declare function hasSameVal(instance0: Instance, instance1: Instance, propertyName: string): boolean;
@@ -1179,6 +1472,9 @@ export declare function hexToRgb(hex: string): {
1179
1472
  b: number;
1180
1473
  } | null;
1181
1474
 
1475
+ /**
1476
+ * @category Mesh
1477
+ */
1182
1478
  export declare class HSR {
1183
1479
  rayCount: number;
1184
1480
  rayLength: number;
@@ -1204,6 +1500,9 @@ declare class HSRAVIS {
1204
1500
 
1205
1501
  declare type HumanoidDescriptionDiff = "scale" | "bodyColor" | "animation" | "bodyPart" | "clothing" | "face" | "accessory" | "makeup" | "gear" | "staticFacialAnimation";
1206
1502
 
1503
+ /**
1504
+ * @category InstanceWrapper
1505
+ */
1207
1506
  export declare class HumanoidDescriptionWrapper extends InstanceWrapper {
1208
1507
  static className: string;
1209
1508
  static requiredProperties: string[];
@@ -1227,40 +1526,45 @@ export declare class HumanoidDescriptionWrapper extends InstanceWrapper {
1227
1526
  getBodyPartId(bodyPart: number): bigint;
1228
1527
  getBodyPartHeadShape(bodyPart: number): string;
1229
1528
  createRigData(): RigData | undefined;
1529
+ /**
1530
+ * Update the data of the HumanoidDescription to match that inside an Outfit
1531
+ * @param outfit
1532
+ * @returns HumanoidDescription or Response if it fails
1533
+ */
1230
1534
  fromOutfit(outfit: Outfit): Promise<Instance | Response>;
1231
- _applyScale(humanoid: Instance): void;
1232
- _applyBodyColors(humanoid: Instance): void;
1535
+ private _applyScale;
1536
+ private _applyBodyColors;
1233
1537
  /**
1234
1538
  * @returns undefined on success
1235
1539
  */
1236
- _applyBodyParts(humanoid: Instance, toChange?: number[]): Promise<Response | undefined>;
1540
+ private _applyBodyParts;
1237
1541
  /**
1238
1542
  * @returns undefined on success
1239
1543
  */
1240
- _applyClothing(humanoid: Instance, toChange?: ClothingDiffType[]): Promise<undefined | Response>;
1544
+ private _applyClothing;
1241
1545
  /**
1242
1546
  * @returns undefined on success
1243
1547
  */
1244
- _applyFace(humanoid: Instance): Promise<undefined | Response>;
1548
+ private _applyFace;
1245
1549
  /**
1246
1550
  * @returns undefined on success
1247
1551
  */
1248
- _applyGear(humanoid: Instance): Promise<undefined | Response>;
1249
- _inheritAccessoryReferences(originalW: HumanoidDescriptionWrapper): void;
1250
- _inheritMakeupReferences(originalW: HumanoidDescriptionWrapper): void;
1552
+ private _applyGear;
1553
+ private _inheritAccessoryReferences;
1554
+ private _inheritMakeupReferences;
1251
1555
  /**
1252
1556
  * @returns undefined on success
1253
1557
  */
1254
- _applyAccessories(humanoid: Instance, originalW?: HumanoidDescriptionWrapper, addedIds?: bigint[], removedIds?: bigint[]): Promise<undefined | Response>;
1255
- _applyMakeup(humanoid: Instance, originalW?: HumanoidDescriptionWrapper, addedIds?: bigint[], removedIds?: bigint[]): Promise<undefined | Response>;
1558
+ private _applyAccessories;
1559
+ private _applyMakeup;
1256
1560
  /**
1257
1561
  * @returns undefined on success
1258
1562
  */
1259
- _applyAnimations(humanoid: Instance, toChange?: AnimationProp[]): Promise<undefined | Response>;
1563
+ private _applyAnimations;
1260
1564
  /**
1261
1565
  * @returns undefined on success
1262
1566
  */
1263
- _applyAll(humanoid: Instance): Promise<undefined | Response>;
1567
+ private _applyAll;
1264
1568
  /**
1265
1569
  * @returns Instance on success
1266
1570
  */
@@ -1274,8 +1578,14 @@ export declare const HumanoidRigType: {
1274
1578
 
1275
1579
  export declare function imageUrlToDataUrl(imageUrl: string): Promise<string>;
1276
1580
 
1581
+ /**
1582
+ * @category Mesh
1583
+ */
1277
1584
  export declare function inheritSkeleton(to: FileMesh, from: FileMesh): void;
1278
1585
 
1586
+ /**
1587
+ * @category Mesh
1588
+ */
1279
1589
  export declare function inheritUV(to: FileMesh, from: FileMesh): void;
1280
1590
 
1281
1591
  declare class INST {
@@ -1287,18 +1597,26 @@ declare class INST {
1287
1597
  clone(): INST;
1288
1598
  }
1289
1599
 
1600
+ /**
1601
+ * @category DataModel
1602
+ */
1290
1603
  export declare class Instance {
1291
- _id: number;
1604
+ private _id;
1605
+ /**
1606
+ * @deprecated Use .Prop("Name") instead
1607
+ */
1292
1608
  _name?: string;
1293
1609
  className: string;
1610
+ /**
1611
+ * @deprecated Do not use this directly
1612
+ */
1294
1613
  _properties: Map<string, Property>;
1295
- _referencedBy: Instance[];
1296
- _connectionReferences: Connection[];
1297
- children: Instance[];
1614
+ private _referencedBy;
1615
+ private _connectionReferences;
1616
+ private _children;
1298
1617
  parent?: Instance;
1299
1618
  destroyed: boolean;
1300
- hasWrappered: boolean;
1301
- canGC: boolean;
1619
+ private _hasWrappered;
1302
1620
  classID?: number;
1303
1621
  objectFormat?: number;
1304
1622
  ChildAdded: Event_2;
@@ -1319,7 +1637,21 @@ export declare class Instance {
1319
1637
  fixPropertyName(name: string): string;
1320
1638
  setProperty(name: string, value: unknown, supressEvents?: boolean): void;
1321
1639
  HasProperty(name: string): boolean;
1640
+ /**
1641
+ * Returns the value of a property
1642
+ * @param name Name of property
1643
+ * @returns Property's value
1644
+ *
1645
+ * @throws When property doesn't exist, PropOrDefault is a safer alternative
1646
+ */
1322
1647
  Property(name: string): unknown;
1648
+ /**
1649
+ * Returns the value of a property
1650
+ * @param name Name of property
1651
+ * @returns Property's value
1652
+ *
1653
+ * @throws When property doesn't exist, PropOrDefault is a safer alternative
1654
+ */
1323
1655
  Prop(name: string): unknown;
1324
1656
  PropOrDefault(name: string, def: unknown): unknown;
1325
1657
  PropertyType(name: string): number | undefined;
@@ -1337,7 +1669,13 @@ export declare class Instance {
1337
1669
  preRender(): void;
1338
1670
  }
1339
1671
 
1340
- declare class InstanceWrapper {
1672
+ /**
1673
+ * Virtual class for all instance wrapper's
1674
+ *
1675
+ * @category InstanceWrapper
1676
+ * @virtual
1677
+ */
1678
+ export declare class InstanceWrapper {
1341
1679
  static className: string;
1342
1680
  static requiredProperties: string[];
1343
1681
  instance: Instance;
@@ -1345,8 +1683,17 @@ declare class InstanceWrapper {
1345
1683
  setup(): void;
1346
1684
  static(): typeof InstanceWrapper;
1347
1685
  static register(): void;
1686
+ /**
1687
+ * @virtual
1688
+ */
1348
1689
  created(): void;
1690
+ /**
1691
+ * @virtual
1692
+ */
1349
1693
  destroy(): void;
1694
+ /**
1695
+ * @virtual
1696
+ */
1350
1697
  preRender(): void;
1351
1698
  }
1352
1699
 
@@ -1408,6 +1755,7 @@ export declare interface ItemDetails_Result {
1408
1755
  data: ItemDetail_Result[];
1409
1756
  }
1410
1757
 
1758
+ /** @category Outfit */
1411
1759
  export declare class ItemInfo {
1412
1760
  itemType: ItemType;
1413
1761
  type: string;
@@ -1442,14 +1790,28 @@ declare class KDNode {
1442
1790
  constructor(point: Vec3, index: number, axis: number);
1443
1791
  }
1444
1792
 
1793
+ /**
1794
+ * @deprecated Superseded by RBFDeformerPatch
1795
+ * @category Mesh
1796
+ */
1445
1797
  export declare function layerClothingChunked(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh, cacheId?: string): void;
1446
1798
 
1799
+ /**
1800
+ * @deprecated Superseded by RBFDeformerPatch
1801
+ * @category Mesh
1802
+ */
1447
1803
  export declare function layerClothingChunkedNormals(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh, cacheId?: string): void;
1448
1804
 
1805
+ /**
1806
+ * @deprecated Superseded by RBFDeformerPatch
1807
+ * @category Mesh
1808
+ */
1449
1809
  export declare function layerClothingChunkedNormals2(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh, cacheId?: string): void;
1450
1810
 
1811
+ /** @category Outfit */
1451
1812
  export declare const LayeredAssetTypes: string[];
1452
1813
 
1814
+ /** @category Outfit */
1453
1815
  export declare const LayeredClothingAssetOrder: {
1454
1816
  [K in number]: number;
1455
1817
  };
@@ -1584,10 +1946,17 @@ export declare interface Look_Result {
1584
1946
 
1585
1947
  export declare const magic = "<roblox!";
1586
1948
 
1949
+ /**
1950
+ * @category Mesh
1951
+ */
1587
1952
  export declare function magnitude(v: Vec3): number;
1588
1953
 
1954
+ /** @category Outfit */
1589
1955
  export declare const MakeupAssetTypes: string[];
1590
1956
 
1957
+ /**
1958
+ * @category InstanceWrapper
1959
+ */
1591
1960
  export declare class MakeupDescriptionWrapper extends InstanceWrapper {
1592
1961
  static className: string;
1593
1962
  static requiredProperties: string[];
@@ -1600,6 +1969,9 @@ export declare const MakeupType: {
1600
1969
  Eye: number;
1601
1970
  };
1602
1971
 
1972
+ /**
1973
+ * @category InstanceWrapper
1974
+ */
1603
1975
  export declare class ManualWeldWrapper extends WeldWrapper {
1604
1976
  static className: string;
1605
1977
  }
@@ -1634,28 +2006,41 @@ export declare interface MarketplaceWidgets_Result {
1634
2006
  configuration: unknown;
1635
2007
  }
1636
2008
 
2009
+ /** @category Mesh */
1637
2010
  export declare type Mat3x3 = [number, number, number, number, number, number, number, number, number];
1638
2011
 
2012
+ /** @category Mesh */
1639
2013
  export declare type Mat4x4 = [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number];
1640
2014
 
1641
2015
  export declare function mathRandom(min: number, max: number): number;
1642
2016
 
2017
+ /** @category Outfit */
1643
2018
  export declare const MaxOneOfAssetTypes: string[];
1644
2019
 
1645
2020
  /**
1646
2021
  * @deprecated This is incorrect
2022
+ * @category Outfit
1647
2023
  */
1648
2024
  export declare const MaxPerAsset: {
1649
2025
  [K in string]: number;
1650
2026
  };
1651
2027
 
2028
+ /**
2029
+ * @category Mesh
2030
+ */
1652
2031
  export declare function mergeTargetWithReference(reference: FileMesh, target: FileMesh, targetSize: Vector3, targetCFrame: CFrame, ignoredIndices?: number[]): number[];
1653
2032
 
2033
+ /**
2034
+ * @category Mesh
2035
+ */
1654
2036
  export declare type MeshChunk = {
1655
2037
  pos: Vec3;
1656
2038
  indices: number[];
1657
2039
  };
1658
2040
 
2041
+ /**
2042
+ * @category Mesh
2043
+ */
1659
2044
  declare class MeshCollider {
1660
2045
  mesh: FileMesh;
1661
2046
  octree: OctreeNode<number>;
@@ -1675,10 +2060,17 @@ export declare const MeshType: {
1675
2060
  Wedge: number;
1676
2061
  };
1677
2062
 
2063
+ /** @category Outfit */
1678
2064
  export declare const minimumDeltaEBodyColorDifference = 11.4;
1679
2065
 
2066
+ /**
2067
+ * @category Mesh
2068
+ */
1680
2069
  export declare function minus(v0: Vec3, v1: Vec3): Vec3;
1681
2070
 
2071
+ /**
2072
+ * @category InstanceWrapper
2073
+ */
1682
2074
  export declare class ModelWrapper extends InstanceWrapper {
1683
2075
  static className: string;
1684
2076
  static requiredProperties: string[];
@@ -1686,6 +2078,9 @@ export declare class ModelWrapper extends InstanceWrapper {
1686
2078
  GetModelCFrame(): CFrame;
1687
2079
  }
1688
2080
 
2081
+ /**
2082
+ * @category InstanceWrapper
2083
+ */
1689
2084
  export declare class Motor6DWrapper extends WeldWrapper {
1690
2085
  static className: string;
1691
2086
  static requiredProperties: string[];
@@ -1695,13 +2090,25 @@ export declare class Motor6DWrapper extends WeldWrapper {
1695
2090
  /**
1696
2091
  * @deprecated Use mountElement instead
1697
2092
  * @param container
2093
+ * @category Renderer
1698
2094
  */
1699
2095
  export declare function mount(container: HTMLDivElement): void;
1700
2096
 
2097
+ /**
2098
+ * Mounting function for use with React
2099
+ * @param container Container to mount inside
2100
+ * @category Renderer
2101
+ */
1701
2102
  export declare function mountElement(container: HTMLDivElement): void;
1702
2103
 
2104
+ /**
2105
+ * @category Mesh
2106
+ */
1703
2107
  export declare function multiply(v0: Vec3, v1: Vec3): Vec3;
1704
2108
 
2109
+ /**
2110
+ * @category Mesh
2111
+ */
1705
2112
  export declare function multiplyMatrixVector(m: Mat3x3, v: Vec3): Vec3;
1706
2113
 
1707
2114
  export declare interface NavigationMenuItems {
@@ -1789,8 +2196,14 @@ export declare const NormalId: {
1789
2196
  Front: number;
1790
2197
  };
1791
2198
 
2199
+ /**
2200
+ * @category Mesh
2201
+ */
1792
2202
  export declare function normalize(v: Vec3): Vec3;
1793
2203
 
2204
+ /**
2205
+ * @category DataModelProperty
2206
+ */
1794
2207
  export declare class NumberRange {
1795
2208
  Min: number;
1796
2209
  Max: number;
@@ -1799,21 +2212,29 @@ export declare class NumberRange {
1799
2212
  isSame(other: NumberRange): boolean;
1800
2213
  }
1801
2214
 
2215
+ /**
2216
+ * @category DataModelProperty
2217
+ */
1802
2218
  export declare class NumberSequence {
1803
2219
  keypoints: NumberSequenceKeypoint[];
1804
2220
  constructor(keypoints?: NumberSequenceKeypoint[]);
1805
2221
  clone(): NumberSequence;
2222
+ isSame(other: NumberSequence): boolean;
1806
2223
  getLowerKey(time: number): NumberSequenceKeypoint | null;
1807
2224
  getHigherKey(time: number): NumberSequenceKeypoint | null;
1808
2225
  getValue(time: number, seed: number): number;
1809
2226
  }
1810
2227
 
2228
+ /**
2229
+ * @category DataModelProperty
2230
+ */
1811
2231
  export declare class NumberSequenceKeypoint {
1812
2232
  time: number;
1813
2233
  value: number;
1814
2234
  envelope: number;
1815
2235
  constructor(time: number, value: number, envelope?: number);
1816
2236
  clone(): NumberSequenceKeypoint;
2237
+ isSame(other: NumberSequenceKeypoint): boolean;
1817
2238
  }
1818
2239
 
1819
2240
  export declare const ObjectDescClassTypes: string[];
@@ -1843,10 +2264,20 @@ declare class OctreeNode<T> {
1843
2264
  collideRay(ray: Ray_2): OctreeNode<T>[];
1844
2265
  }
1845
2266
 
2267
+ /**
2268
+ * @category Mesh
2269
+ */
1846
2270
  export declare function offsetMesh(mesh: FileMesh, cframe: CFrame): void;
1847
2271
 
2272
+ /**
2273
+ * @category Mesh
2274
+ */
1848
2275
  export declare function offsetMeshWithRotation(mesh: FileMesh, cframe: CFrame): void;
1849
2276
 
2277
+ /**
2278
+ * Usually obtained from API
2279
+ * @category Outfit
2280
+ */
1850
2281
  export declare class Outfit {
1851
2282
  scale: Scale;
1852
2283
  bodyColors: BodyColors | BodyColor3s;
@@ -1882,7 +2313,9 @@ export declare class Outfit {
1882
2313
  isValid(): boolean;
1883
2314
  getValidationIssues(): ValidationIssue[];
1884
2315
  toHumanoidDescription(): Promise<Document | null>;
2316
+ /** @deprecated */
1885
2317
  fromHumanoidDescription(rootDocument: Document): Promise<void>;
2318
+ /** @deprecated */
1886
2319
  downloadHumanoidDescription(): Promise<void>;
1887
2320
  getAssetsJson(removeNotOwnedAssets?: boolean): AssetJson[];
1888
2321
  containsAsset(assetId: number): boolean;
@@ -1920,12 +2353,17 @@ declare type OutfitJson = {
1920
2353
  scales?: ScaleJson;
1921
2354
  };
1922
2355
 
2356
+ /** @category Outfit */
1923
2357
  export declare type OutfitOrigin = "WebAvatar" | "WebOutfit" | "Other" | "Look";
1924
2358
 
2359
+ /** @category Outfit */
1925
2360
  export declare const OutfitOrigin: {
1926
2361
  [K in OutfitOrigin]: OutfitOrigin;
1927
2362
  };
1928
2363
 
2364
+ /**
2365
+ * @category Renderer
2366
+ */
1929
2367
  export declare class OutfitRenderer {
1930
2368
  auth: Authentication;
1931
2369
  outfit: Outfit;
@@ -2028,6 +2466,9 @@ declare class PROP {
2028
2466
  clone(): PROP;
2029
2467
  }
2030
2468
 
2469
+ /**
2470
+ * @category DataModel
2471
+ */
2031
2472
  export declare class Property {
2032
2473
  name?: string;
2033
2474
  typeID?: number;
@@ -2078,18 +2519,27 @@ declare class QuantizedTransform {
2078
2519
 
2079
2520
  export declare function rad(degrees: number): number;
2080
2521
 
2522
+ /**
2523
+ * @category DataModelProperty
2524
+ */
2081
2525
  export declare class Ray {
2082
2526
  Origin: Vec3;
2083
2527
  Direction: Vec3;
2084
2528
  clone(): Ray;
2085
2529
  }
2086
2530
 
2531
+ /**
2532
+ * @category Mesh
2533
+ */
2087
2534
  declare class Ray_2 {
2088
2535
  origin: Vec3;
2089
2536
  end: Vec3;
2090
2537
  constructor(origin: Vec3, end: Vec3);
2091
2538
  }
2092
2539
 
2540
+ /**
2541
+ * @category Mesh
2542
+ */
2093
2543
  export declare class RBFDeformerPatch {
2094
2544
  mesh: FileMesh;
2095
2545
  refVerts: Float32Array;
@@ -2121,6 +2571,10 @@ declare function RBLXPatch(url: string, auth: Authentication, body: any, attempt
2121
2571
 
2122
2572
  declare function RBLXPost(url: string, auth: Authentication | undefined, body: any, attempt?: number, method?: string): Promise<Response>;
2123
2573
 
2574
+ /**
2575
+ * Obtained from a call to API.Asset.GetRBX()
2576
+ * @category DataModel
2577
+ */
2124
2578
  export declare class RBX {
2125
2579
  classCount: number;
2126
2580
  instanceCount: number;
@@ -2148,9 +2602,18 @@ export declare class RBX {
2148
2602
  fromXML(xml: Document): void;
2149
2603
  fromBuffer(buffer: ArrayBuffer): void;
2150
2604
  fromInstance(root: Instance): ArrayBuffer;
2605
+ /**
2606
+ * Generates if needed hierarchy and returns root instance
2607
+ * @returns Root instance
2608
+ */
2151
2609
  generateTree(): Instance;
2152
2610
  }
2153
2611
 
2612
+ /**
2613
+ * A singleton, intialized by calling RBXRenderer.fullSetup()
2614
+ *
2615
+ * @category Renderer
2616
+ */
2154
2617
  export declare class RBXRenderer {
2155
2618
  static orbitControlsTarget: Vec3;
2156
2619
  static scenes: RBXRendererScene[];
@@ -2250,10 +2713,16 @@ export declare class RBXRenderer {
2250
2713
  static exportScene(renderScene?: RBXRendererScene): void;
2251
2714
  }
2252
2715
 
2716
+ /**
2717
+ * Created by calling RBXRenderer.addScene()
2718
+ * @category Renderer
2719
+ */
2253
2720
  export declare class RBXRendererScene {
2254
2721
  scene: THREE.Scene;
2255
2722
  camera: THREE.PerspectiveCamera;
2256
2723
  controls: OrbitControls | undefined;
2724
+ shouldAnimate: boolean;
2725
+ destroyed: boolean;
2257
2726
  effectComposer: EffectComposer | undefined;
2258
2727
  scissor?: [number, number, number, number];
2259
2728
  viewport?: [number, number, number, number];
@@ -2272,8 +2741,14 @@ export declare class RBXRendererScene {
2272
2741
  ambientLight?: THREE.AmbientLight;
2273
2742
  directionalLight?: THREE.DirectionalLight;
2274
2743
  directionalLight2?: THREE.DirectionalLight;
2744
+ /** Forces viewport to be within bounds */
2275
2745
  setRect(bounds: DOMRect): void;
2746
+ /** Makes viewport size 0x0, invisible */
2276
2747
  noRect(): void;
2748
+ destroy(): void;
2749
+ exportGLTF(name?: string, autoDownload?: boolean): Promise<ArrayBuffer | {
2750
+ [key: string]: unknown;
2751
+ }>;
2277
2752
  }
2278
2753
 
2279
2754
  declare class RBXSimpleView {
@@ -2313,6 +2788,7 @@ declare class RBXSimpleView {
2313
2788
 
2314
2789
  export declare function RegisterWrappers(): void;
2315
2790
 
2791
+ /** @category Outfit */
2316
2792
  export declare const RegularBodyColors: string[];
2317
2793
 
2318
2794
  /**
@@ -2326,6 +2802,8 @@ declare class RenderDesc extends DisposableDesc {
2326
2802
  isSame(_other: RenderDesc): boolean;
2327
2803
  needsRegeneration(_other: RenderDesc): boolean;
2328
2804
  fromRenderDesc(other: RenderDesc): void;
2805
+ transferFrom(other: RenderDesc): void;
2806
+ virtualTransferFrom(_other: RenderDesc): void;
2329
2807
  virtualFromRenderDesc(_other: RenderDesc): void;
2330
2808
  fromInstance(_child: Instance): void;
2331
2809
  compileResults(_renderer: THREE.WebGLRenderer, _scene: THREE.Scene): Promise<THREE.Mesh[] | Response | undefined>;
@@ -2397,6 +2875,9 @@ export declare type SaleLocationType = "ShopOnly" | "ShopAndAllExperiences" | "E
2397
2875
 
2398
2876
  export declare function saveByteArray(data: BlobPart[] | undefined, name: string): void;
2399
2877
 
2878
+ /**
2879
+ * @category Outfit
2880
+ */
2400
2881
  export declare class Scale {
2401
2882
  height: number;
2402
2883
  width: number;
@@ -2433,10 +2914,19 @@ declare type ScaleJson = {
2433
2914
  bodyType?: number;
2434
2915
  };
2435
2916
 
2917
+ /**
2918
+ * @category Mesh
2919
+ */
2436
2920
  export declare function scaleMesh(mesh: FileMesh, scale: Vector3): void;
2437
2921
 
2922
+ /**
2923
+ * @category Outfit
2924
+ */
2438
2925
  export declare type ScaleName = "height" | "width" | "head" | "depth" | "proportion" | "bodyType";
2439
2926
 
2927
+ /**
2928
+ * @category InstanceWrapper
2929
+ */
2440
2930
  export declare class ScriptWrapper extends InstanceWrapper {
2441
2931
  static className: string;
2442
2932
  static requiredProperties: string[];
@@ -2503,6 +2993,14 @@ export declare interface Search_Result {
2503
2993
  }[];
2504
2994
  }
2505
2995
 
2996
+ /**
2997
+ * Gives a scene the default appearance for thumbnails
2998
+ * @param renderScene RBXRenderScene to setup
2999
+ *
3000
+ * @category ThumbnailGenerator
3001
+ */
3002
+ export declare function setupThumbnailScene(renderScene: RBXRendererScene): void;
3003
+
2506
3004
  declare class SimpleView {
2507
3005
  view: DataView;
2508
3006
  viewOffset: number;
@@ -2562,6 +3060,9 @@ export declare const SortTypes: {
2562
3060
  [K in string]: number | undefined;
2563
3061
  };
2564
3062
 
3063
+ /**
3064
+ * @category InstanceWrapper
3065
+ */
2565
3066
  export declare class SoundWrapper extends InstanceWrapper {
2566
3067
  static className: string;
2567
3068
  static requiredProperties: string[];
@@ -2588,6 +3089,7 @@ export declare class SpecialInfo {
2588
3089
  constructor(type: string);
2589
3090
  }
2590
3091
 
3092
+ /** @category Outfit */
2591
3093
  export declare const SpecialLayeredAssetTypes: string[];
2592
3094
 
2593
3095
  export declare const StringBufferProperties: string[];
@@ -2606,6 +3108,10 @@ export declare interface ThumbnailCustomizations_Result {
2606
3108
  }[];
2607
3109
  }
2608
3110
 
3111
+ export declare type ThumbnailResult = ArrayBuffer | {
3112
+ [key: string]: unknown;
3113
+ } | string | undefined;
3114
+
2609
3115
  export declare interface ThumbnailsCustomization_Payload {
2610
3116
  thumbnailType: number;
2611
3117
  emoteAssetId: number;
@@ -2616,6 +3122,11 @@ export declare interface ThumbnailsCustomization_Payload {
2616
3122
  };
2617
3123
  }
2618
3124
 
3125
+ export declare type ThumbnailType = "png" | "webp" | "gltf";
3126
+
3127
+ /**
3128
+ * @category InstanceWrapper
3129
+ */
2619
3130
  export declare class ToolWrapper extends InstanceWrapper {
2620
3131
  static className: string;
2621
3132
  static requiredProperties: string[];
@@ -2624,6 +3135,7 @@ export declare class ToolWrapper extends InstanceWrapper {
2624
3135
  createWeld(): void;
2625
3136
  }
2626
3137
 
3138
+ /** @category Outfit */
2627
3139
  export declare const ToRemoveBeforeBundleType: {
2628
3140
  DynamicHead: string[];
2629
3141
  Shoes: string[];
@@ -2632,18 +3144,28 @@ export declare const ToRemoveBeforeBundleType: {
2632
3144
  MakeupLook: string[];
2633
3145
  };
2634
3146
 
3147
+ /**
3148
+ * @category Mesh
3149
+ */
2635
3150
  export declare function transferSkeleton(to: FileMesh, from: FileMesh): void;
2636
3151
 
2637
3152
  export declare function traverseRigCFrame(instance: Instance, includeTransform?: boolean, applyRoot?: boolean): CFrame;
2638
3153
 
2639
3154
  export declare function traverseRigInstance(instance: Instance): Instance[];
2640
3155
 
3156
+ /** @category Mesh */
2641
3157
  export declare type Triangle = [Vec3, Vec3, Vec3];
2642
3158
 
3159
+ /**
3160
+ * @category Mesh
3161
+ */
2643
3162
  export declare function triangleNormal(triangle: Triangle): Vec3;
2644
3163
 
2645
3164
  declare type TwoPoseCorrective = Vec2;
2646
3165
 
3166
+ /**
3167
+ * @category DataModelProperty
3168
+ */
2647
3169
  export declare class UDim {
2648
3170
  Scale: number;
2649
3171
  Offset: number;
@@ -2651,6 +3173,9 @@ export declare class UDim {
2651
3173
  clone(): UDim;
2652
3174
  }
2653
3175
 
3176
+ /**
3177
+ * @category DataModelProperty
3178
+ */
2654
3179
  export declare class UDim2 {
2655
3180
  X: UDim;
2656
3181
  Y: UDim;
@@ -2712,12 +3237,18 @@ declare type ValidationIssue = {
2712
3237
 
2713
3238
  declare type ValidationIssueType = "AccessoryLimit" | "LayeredLimit" | "OneOfTypeLimit" | "DuplicateId" | "NotWearable" | "MissingLayeredMeta" | "InvalidAsset" | "MakeupLimit";
2714
3239
 
3240
+ /** @category Mesh */
2715
3241
  export declare type Vec2 = [number, number];
2716
3242
 
3243
+ /** @category Mesh */
2717
3244
  export declare type Vec3 = [number, number, number];
2718
3245
 
3246
+ /** @category Mesh */
2719
3247
  export declare type Vec4 = [number, number, number, number];
2720
3248
 
3249
+ /**
3250
+ * @category DataModelProperty
3251
+ */
2721
3252
  export declare class Vector2 {
2722
3253
  X: number;
2723
3254
  Y: number;
@@ -2726,6 +3257,9 @@ export declare class Vector2 {
2726
3257
  isSame(other: Vector2): boolean;
2727
3258
  }
2728
3259
 
3260
+ /**
3261
+ * @category DataModelProperty
3262
+ */
2729
3263
  export declare class Vector3 {
2730
3264
  X: number;
2731
3265
  Y: number;
@@ -2758,21 +3292,34 @@ declare type Vecxyz = {
2758
3292
 
2759
3293
  export declare function versionToNumber(version: string): number;
2760
3294
 
3295
+ /**
3296
+ * @category Mesh
3297
+ */
2761
3298
  export declare function vertPosToChunkPos(pos: Vec3, meshSize: Vec3, widthSplit: number, heightSplit: number, depthSplit: number): Vec3;
2762
3299
 
2763
3300
  export declare function Wait(time: number): Promise<unknown>;
2764
3301
 
3302
+ /** @category Outfit */
2765
3303
  export declare const WearableAssetTypes: string[];
2766
3304
 
3305
+ /**
3306
+ * @category Mesh
3307
+ */
2767
3308
  export declare type WeightChunk = {
2768
3309
  meshChunk: MeshChunk;
2769
3310
  weights: number[];
2770
3311
  };
2771
3312
 
3313
+ /**
3314
+ * @category Mesh
3315
+ */
2772
3316
  export declare type WeightChunk3 = WeightChunk & {
2773
3317
  weights: Vec3[];
2774
3318
  };
2775
3319
 
3320
+ /**
3321
+ * @category InstanceWrapper
3322
+ */
2776
3323
  export declare class WeldWrapper extends InstanceWrapper {
2777
3324
  static className: string;
2778
3325
  static requiredProperties: string[];
@@ -2803,4 +3350,6 @@ export declare const xmlMagic = "<roblox ";
2803
3350
 
2804
3351
  export declare function zoomExtents(cameraCFrame: CFrame, modelCFrame: CFrame, modelSize: Vector3, targetFOV: number, distanceScale: number): void;
2805
3352
 
3353
+ export declare function zoomToExtents(cameraCFrame: CFrame, modelCFrame: CFrame, modelSize: Vector3, fov?: number): void;
3354
+
2806
3355
  export { }