roavatar-renderer 1.0.1 → 1.0.3

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/README.md CHANGED
@@ -8,6 +8,10 @@ Also available on npm: https://www.npmjs.com/package/roavatar-renderer
8
8
  IMPORTANT: Assets are NOT included in the npm module or this repository, you have to get them from the main RoAvatar repository
9
9
 
10
10
  Basic (not really) example on how to load an avatar, that is also untested:
11
+ ```html
12
+ <!--I know this is kind of terrible but... it has to be included-->
13
+ <script src="/draco_decoder.js"></script>
14
+ ```
11
15
  ```ts
12
16
  //setup instance wrappers and renderer
13
17
  RegisterWrappers()
package/dist/index.d.ts CHANGED
@@ -57,6 +57,8 @@ export declare const AccessoryType: {
57
57
 
58
58
  export declare const ActualBundleTypes: string[];
59
59
 
60
+ export declare function add(v0: Vec3, v1: Vec3): Vec3;
61
+
60
62
  export declare const AllAccessorySorts: ItemSort[];
61
63
 
62
64
  export declare const AllAnimations: AnimationProp[];
@@ -429,6 +431,8 @@ export declare const AvatarType: {
429
431
  [K in AvatarType]: AvatarType;
430
432
  };
431
433
 
434
+ export declare function barycentric(p: Vec3, triangle: Triangle): Vec3;
435
+
432
436
  export declare function base64ToArrayBuffer(base64: string): ArrayBuffer;
433
437
 
434
438
  declare class BaseKeyframe {
@@ -583,6 +587,8 @@ export declare interface BundleDetails_Result {
583
587
 
584
588
  export declare const BundleTypes: string[];
585
589
 
590
+ export declare function calculateMagnitude3D(x: number, y: number, z: number): number;
591
+
586
592
  export declare function calculateMotor6Doffset(motor: Instance, includeTransform?: boolean): CFrame;
587
593
 
588
594
  export declare const CatalogBundleTypes: string[];
@@ -609,10 +615,14 @@ export declare class CFrame {
609
615
  isSame(other: CFrame): boolean;
610
616
  }
611
617
 
618
+ export declare function clamp(v0: Vec3, lower: Vec3, higher: Vec3): Vec3;
619
+
612
620
  export declare function clonePrimitiveArray<T>(arr: T[]): T[];
613
621
 
614
622
  export declare function cloneSearch_Payload(data: Search_Payload): Search_Payload;
615
623
 
624
+ export declare function closestPointTriangle(p: Vec3, triangle: Triangle): Vec3;
625
+
616
626
  declare type ClothingDiffType = "Shirt" | "Pants" | "GraphicTShirt";
617
627
 
618
628
  export declare class Color3 {
@@ -680,6 +690,18 @@ declare class COREMESH {
680
690
  getTouchingVerts(index: number): number[];
681
691
  }
682
692
 
693
+ export declare function createMeshChunks(mesh: FileMesh, widthSplit: number, heightSplit: number, depthSplit: number): MeshChunk[];
694
+
695
+ /**THIS FUNCTION IS SO EXPENSIVE IT NEEDS TO BE ASYNC SO JS DOESNT CRASH, USE CHUNKED VERSION INSTEAD
696
+ */
697
+ export declare function createWeightsForMesh(mesh: FileMesh, ref_mesh: FileMesh): Promise<number[][]>;
698
+
699
+ export declare function createWeightsForMeshChunked(mesh: FileMesh, ref_mesh: FileMesh): WeightChunk[];
700
+
701
+ export declare function createWeightsForMeshChunkedOLD(mesh: FileMesh, ref_mesh: FileMesh): WeightChunk[];
702
+
703
+ export declare function cross(a: Vec3, b: Vec3): Vec3;
704
+
683
705
  export declare const DataType: {
684
706
  String: number;
685
707
  Bool: number;
@@ -736,6 +758,8 @@ export declare const defaultShirtAssetIds: number[];
736
758
 
737
759
  export declare const defaultShirtTemplateAssetIds: number[];
738
760
 
761
+ export declare function deformReferenceToBaseBodyParts(reference: FileMesh, targetCages: FileMesh[], targetSizes: Vector3[], targetCFrames: CFrame[]): number[];
762
+
739
763
  export declare function deg(radians: number): number;
740
764
 
741
765
  declare class DisposableDesc {
@@ -745,6 +769,12 @@ declare class DisposableDesc {
745
769
  dispose(_renderer: THREE.WebGLRenderer, _scene: THREE.Scene): void;
746
770
  }
747
771
 
772
+ export declare function distance(v0: Vec3, v1: Vec3): number;
773
+
774
+ export declare function divide(v0: Vec3, v1: Vec3): Vec3;
775
+
776
+ export declare function dot(v0: Vec3, v1: Vec3): number;
777
+
748
778
  export declare function download(filename: string, text: string): void;
749
779
 
750
780
  export declare const EmitterGroupDescClassTypes: string[];
@@ -794,7 +824,7 @@ declare class FACS {
794
824
  clone(): FACS;
795
825
  }
796
826
 
797
- declare class FileMesh {
827
+ export declare class FileMesh {
798
828
  version: string;
799
829
  facsDataFormat: number;
800
830
  sizeOfFacsData: number;
@@ -848,13 +878,13 @@ declare class FileMeshFace {
848
878
  clone(): FileMeshFace;
849
879
  }
850
880
 
851
- declare class FileMeshSkinning {
881
+ export declare class FileMeshSkinning {
852
882
  subsetIndices: Vec4;
853
883
  boneWeights: Vec4;
854
884
  clone(): FileMeshSkinning;
855
885
  }
856
886
 
857
- declare class FileMeshSubset {
887
+ export declare class FileMeshSubset {
858
888
  facesBegin: number;
859
889
  facesLength: number;
860
890
  vertsBegin: number;
@@ -864,7 +894,7 @@ declare class FileMeshSubset {
864
894
  clone(): FileMeshSubset;
865
895
  }
866
896
 
867
- declare class FileMeshVertex {
897
+ export declare class FileMeshVertex {
868
898
  position: Vec3;
869
899
  normal: Vec3;
870
900
  uv: Vec2;
@@ -916,12 +946,22 @@ declare class FloatCurveKey {
916
946
  rightTangent?: number;
917
947
  }
918
948
 
949
+ export declare function floor(v0: Vec3): Vec3;
950
+
919
951
  export declare const FullBodyColors: string[];
920
952
 
953
+ export declare function gaussian_rbf(v0: Vec3, v1: Vec3, sigma?: number): number;
954
+
921
955
  export declare function generateUUIDv4(): string;
922
956
 
923
957
  export declare function GetAttachedPart(accessory: Instance, rig: Instance): Instance | undefined;
924
958
 
959
+ export declare function getDistVertArray(ref: FileMesh, dist: FileMesh): (FileMeshVertex | undefined)[];
960
+
961
+ export declare function getOffsetArray(inner: FileMesh, outer: FileMesh): ([Vec3, THREE.Quaternion, number] | undefined)[];
962
+
963
+ export declare function getOffsetMap(inner: FileMesh, outer: FileMesh): Map<number, Vec3>;
964
+
925
965
  export declare function getOriginalSize(part: Instance): Vector3;
926
966
 
927
967
  export declare function getRandomBetweenInclusive(min: number, max: number): number;
@@ -955,6 +995,12 @@ export declare interface GetTopics_Result {
955
995
  }[];
956
996
  }
957
997
 
998
+ export declare function getUVtoVertMap(mesh: FileMesh): Map<number, FileMeshVertex[]>;
999
+
1000
+ export declare function hashVec2(x: number, y: number): number;
1001
+
1002
+ export declare function hashVec3(x: number, y: number, z: number, distance: number): number;
1003
+
958
1004
  export declare function hasSameVal(instance0: Instance, instance1: Instance, propertyName: string): boolean;
959
1005
 
960
1006
  export declare function hasSameValFloat(instance0: Instance, instance1: Instance, propertyName: string): boolean;
@@ -1042,6 +1088,10 @@ export declare const HumanoidRigType: {
1042
1088
 
1043
1089
  export declare function imageUrlToDataUrl(imageUrl: string): Promise<string>;
1044
1090
 
1091
+ export declare function inheritSkeleton(to: FileMesh, from: FileMesh): void;
1092
+
1093
+ export declare function inheritUV(to: FileMesh, from: FileMesh): void;
1094
+
1045
1095
  declare class INST {
1046
1096
  classID: number;
1047
1097
  className: string;
@@ -1188,6 +1238,23 @@ export declare class ItemSort {
1188
1238
 
1189
1239
  declare type ItemType = "Asset" | "Bundle" | "Outfit" | "Look" | "None";
1190
1240
 
1241
+ declare class KDNode {
1242
+ point: Vec3;
1243
+ index: number;
1244
+ axis: number;
1245
+ left: KDNode | null;
1246
+ right: KDNode | null;
1247
+ constructor(point: Vec3, index: number, axis: number);
1248
+ }
1249
+
1250
+ export declare function layerClothing(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh): Promise<void>;
1251
+
1252
+ export declare function layerClothingChunked(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh, cacheId?: string): void;
1253
+
1254
+ export declare function layerClothingChunkedNormals(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh, cacheId?: string): void;
1255
+
1256
+ export declare function layerClothingChunkedNormals2(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh, cacheId?: string): void;
1257
+
1191
1258
  export declare const LayeredAssetTypes: string[];
1192
1259
 
1193
1260
  export declare const LayeredClothingAssetOrder: {
@@ -1321,6 +1388,8 @@ export declare interface Look_Result {
1321
1388
 
1322
1389
  export declare const magic = "<roblox!";
1323
1390
 
1391
+ export declare function magnitude(v: Vec3): number;
1392
+
1324
1393
  export declare const MainToSubNames: {
1325
1394
  [K in string]: string[];
1326
1395
  };
@@ -1367,9 +1436,9 @@ export declare interface MarketplaceWidgets_Result {
1367
1436
  configuration: unknown;
1368
1437
  }
1369
1438
 
1370
- declare type Mat3x3 = [number, number, number, number, number, number, number, number, number];
1439
+ export declare type Mat3x3 = [number, number, number, number, number, number, number, number, number];
1371
1440
 
1372
- declare type Mat4x4 = [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number];
1441
+ export declare type Mat4x4 = [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number];
1373
1442
 
1374
1443
  export declare function mathRandom(min: number, max: number): number;
1375
1444
 
@@ -1382,6 +1451,13 @@ export declare const MaxPerAsset: {
1382
1451
  [K in string]: number;
1383
1452
  };
1384
1453
 
1454
+ export declare function mergeTargetWithReference(reference: FileMesh, target: FileMesh, targetSize: Vector3, targetCFrame: CFrame): number[];
1455
+
1456
+ export declare type MeshChunk = {
1457
+ pos: Vec3;
1458
+ indices: number[];
1459
+ };
1460
+
1385
1461
  export declare const MeshType: {
1386
1462
  Brick: number;
1387
1463
  Cylinder: number;
@@ -1394,6 +1470,8 @@ export declare const MeshType: {
1394
1470
 
1395
1471
  export declare const minimumDeltaEBodyColorDifference = 11.4;
1396
1472
 
1473
+ export declare function minus(v0: Vec3, v1: Vec3): Vec3;
1474
+
1397
1475
  export declare class ModelWrapper extends InstanceWrapper {
1398
1476
  static className: string;
1399
1477
  static requiredProperties: string[];
@@ -1404,6 +1482,8 @@ export declare class ModelWrapper extends InstanceWrapper {
1404
1482
 
1405
1483
  export declare function mount(container: HTMLDivElement): void;
1406
1484
 
1485
+ export declare function multiply(v0: Vec3, v1: Vec3): Vec3;
1486
+
1407
1487
  export declare interface NavigationMenuItems {
1408
1488
  categories: {
1409
1489
  category: string;
@@ -1489,6 +1569,8 @@ export declare const NormalId: {
1489
1569
  Front: number;
1490
1570
  };
1491
1571
 
1572
+ export declare function normalize(v: Vec3): Vec3;
1573
+
1492
1574
  export declare class NumberRange {
1493
1575
  Min: number;
1494
1576
  Max: number;
@@ -1516,6 +1598,12 @@ export declare class NumberSequenceKeypoint {
1516
1598
 
1517
1599
  export declare const ObjectDescClassTypes: string[];
1518
1600
 
1601
+ export declare function offsetMesh(mesh: FileMesh, cframe: CFrame): void;
1602
+
1603
+ export declare function offsetMeshWithRotation(mesh: FileMesh, cframe: CFrame): void;
1604
+
1605
+ export declare function offsetRefMeshLikeInnerAndOuter(ref_mesh: FileMesh, inner: FileMesh, outer: FileMesh): void;
1606
+
1519
1607
  export declare class Outfit {
1520
1608
  scale: Scale;
1521
1609
  bodyColors: BodyColors | BodyColor3s;
@@ -1627,6 +1715,12 @@ declare class PartKeyframeGroup extends BaseKeyframeGroup {
1627
1715
  getLowerKeyframe(time: number): PartKeyframe | null;
1628
1716
  }
1629
1717
 
1718
+ declare type Patch = {
1719
+ center: Vec3;
1720
+ neighborIndices: number[];
1721
+ weights?: Float32Array;
1722
+ };
1723
+
1630
1724
  declare class PRNT {
1631
1725
  instanceCount: number;
1632
1726
  childReferents: number[];
@@ -1698,6 +1792,44 @@ export declare class Ray {
1698
1792
  clone(): Ray;
1699
1793
  }
1700
1794
 
1795
+ export declare function ray_intersects_triangle(ray_origin: Vec3, ray_vector: Vec3, triangle: Triangle): Vec3 | null;
1796
+
1797
+ /**
1798
+ * This is a naive (think thats what its called) implementation of the RBF deformer, it is extremely slow
1799
+ * Use RBFDeformerPatch instead
1800
+ */
1801
+ export declare class RBFDeformer {
1802
+ refVerts: FileMeshVertex[];
1803
+ distVerts: FileMeshVertex[];
1804
+ weights: Vec3[] | undefined;
1805
+ constructor(refMesh: FileMesh, distMesh: FileMesh);
1806
+ solve(): void;
1807
+ deform(vec: Vec3): Vec3;
1808
+ deformMesh(mesh: FileMesh): void;
1809
+ }
1810
+
1811
+ export declare class RBFDeformerPatch {
1812
+ mesh: FileMesh;
1813
+ refVerts: FileMeshVertex[];
1814
+ distVerts: FileMeshVertex[];
1815
+ importantIndices: number[];
1816
+ controlKD: KDNode | null;
1817
+ patchKD: KDNode | null;
1818
+ patches: Patch[];
1819
+ patchCenters: Vec3[];
1820
+ patchCenterIndices: number[];
1821
+ nearestPatch: Uint16Array;
1822
+ K: number;
1823
+ patchCount: number;
1824
+ epsilon: number;
1825
+ affectBones: boolean;
1826
+ id: number;
1827
+ constructor(refMesh: FileMesh, distMesh: FileMesh, mesh: FileMesh, ignoredIndices?: number[], patchCount?: number, detailsCount?: 48, importantsCount?: 32);
1828
+ solveAsync(): Promise<void>;
1829
+ deform(i: number): Vec3;
1830
+ deformMesh(): void;
1831
+ }
1832
+
1701
1833
  export declare class RBX {
1702
1834
  classCount: number;
1703
1835
  instanceCount: number;
@@ -1926,6 +2058,8 @@ declare type ScaleJson = {
1926
2058
  bodyType?: number;
1927
2059
  };
1928
2060
 
2061
+ export declare function scaleMesh(mesh: FileMesh, scale: Vector3): void;
2062
+
1929
2063
  export declare type ScaleName = "height" | "width" | "head" | "depth" | "proportion" | "bodyType";
1930
2064
 
1931
2065
  export declare class ScriptWrapper extends InstanceWrapper {
@@ -2096,11 +2230,15 @@ export declare const ToRemoveBeforeBundleType: {
2096
2230
  Character: string[];
2097
2231
  };
2098
2232
 
2233
+ export declare function transferSkeleton(to: FileMesh, from: FileMesh): void;
2234
+
2099
2235
  export declare function traverseRigCFrame(instance: Instance): CFrame;
2100
2236
 
2101
2237
  export declare function traverseRigInstance(instance: Instance): Instance[];
2102
2238
 
2103
- declare type Triangle = [Vec3, Vec3, Vec3];
2239
+ export declare type Triangle = [Vec3, Vec3, Vec3];
2240
+
2241
+ export declare function triangleNormal(triangle: Triangle): Vec3;
2104
2242
 
2105
2243
  declare type TwoPoseCorrective = Vec2;
2106
2244
 
@@ -2156,11 +2294,11 @@ declare type ValidationIssue = {
2156
2294
 
2157
2295
  declare type ValidationIssueType = "AccessoryLimit" | "LayeredLimit" | "OneOfTypeLimit" | "DuplicateId" | "NotWearable" | "MissingLayeredMeta" | "InvalidAsset";
2158
2296
 
2159
- declare type Vec2 = [number, number];
2297
+ export declare type Vec2 = [number, number];
2160
2298
 
2161
- declare type Vec3 = [number, number, number];
2299
+ export declare type Vec3 = [number, number, number];
2162
2300
 
2163
- declare type Vec4 = [number, number, number, number];
2301
+ export declare type Vec4 = [number, number, number, number];
2164
2302
 
2165
2303
  export declare class Vector2 {
2166
2304
  X: number;
@@ -2202,10 +2340,21 @@ declare type Vecxyz = {
2202
2340
 
2203
2341
  export declare function versionToNumber(version: string): number;
2204
2342
 
2343
+ export declare function vertPosToChunkPos(pos: Vec3, meshSize: Vec3, widthSplit: number, heightSplit: number, depthSplit: number): Vec3;
2344
+
2205
2345
  export declare function Wait(time: number): Promise<unknown>;
2206
2346
 
2207
2347
  export declare const WearableAssetTypes: string[];
2208
2348
 
2349
+ export declare type WeightChunk = {
2350
+ meshChunk: MeshChunk;
2351
+ weights: number[];
2352
+ };
2353
+
2354
+ export declare type WeightChunk3 = WeightChunk & {
2355
+ weights: Vec3[];
2356
+ };
2357
+
2209
2358
  export declare const WrapLayerAutoSkin: {
2210
2359
  Disabled: number;
2211
2360
  EnabledPreserve: number;