three-low-poly 0.9.15 → 0.9.16

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
@@ -294,7 +294,12 @@ export declare class BoneGeometry extends BufferGeometry {
294
294
  constructor(radiusTop?: number, radiusBottom?: number, height?: number, radialSegments?: number);
295
295
  }
296
296
 
297
- export declare class Book extends Mesh {
297
+ /**
298
+ * Material Order:
299
+ * 1. Cover
300
+ * 2. Page
301
+ */
302
+ export declare class Book extends Mesh<BookGeometry, MeshStandardMaterial[]> {
298
303
  constructor({ width, height, depth, coverThickness, pageIndent, coverColor, pageColor, }?: {
299
304
  width?: number | undefined;
300
305
  height?: number | undefined;
@@ -377,6 +382,18 @@ export declare class BurstShape extends Shape {
377
382
  constructor(sides?: number, innerRadius?: number, outerRadius?: number);
378
383
  }
379
384
 
385
+ /**
386
+ * Calculate the sum of absolute differences for each channel
387
+ * difference = |r1 - r2| + |g1 - g2| + |b1 - b2|
388
+ */
389
+ export declare function calculateChannelDifference(color1: [number, number, number], color2: [number, number, number]): number;
390
+
391
+ /**
392
+ * Calculate the Euclidean distance between two colors in RGB space
393
+ * distance = sqrt((r1 - r2)^2 + (g1 - g2)^2 + (b1 - b2)^2)
394
+ */
395
+ export declare function calculateDistance(color1: [number, number, number], color2: [number, number, number]): number;
396
+
380
397
  /**
381
398
  * Compute normal based on the quad’s vertices (using the cross product of two edges).
382
399
  */
@@ -462,6 +479,60 @@ export declare const circularEaseInOut: (t: number) => number;
462
479
 
463
480
  export declare const circularEaseOut: (t: number) => number;
464
481
 
482
+ export declare const ColorPalette: {
483
+ CARDINAL_RED: number;
484
+ CHERRY_RED: number;
485
+ CRIMSON: number;
486
+ RUST: number;
487
+ DARK_RED: number;
488
+ TANGERINE: number;
489
+ ORANGE_PEEL: number;
490
+ ORANGE: number;
491
+ AMBER: number;
492
+ GOLD: number;
493
+ YELLOW: number;
494
+ LIME_GREEN: number;
495
+ SPRING_GREEN: number;
496
+ MOSS_GREEN: number;
497
+ FERN_GREEN: number;
498
+ FOREST_GREEN: number;
499
+ OLIVE_DRAB: number;
500
+ MINT_GREEN: number;
501
+ AQUAMARINE: number;
502
+ SKY_BLUE: number;
503
+ CERULEAN_BLUE: number;
504
+ AZURE: number;
505
+ OCEAN_BLUE: number;
506
+ ROYAL_BLUE: number;
507
+ MIDNIGHT_BLUE: number;
508
+ CORAL_PINK: number;
509
+ VIVID_MAGENTA: number;
510
+ MAGENTA: number;
511
+ HOT_PINK: number;
512
+ PINK_SHERBET: number;
513
+ SOFT_PINK: number;
514
+ DEEP_VIOLET: number;
515
+ TAUPE: number;
516
+ SIENNA: number;
517
+ SADDLE_BROWN: number;
518
+ COFFEE_BROWN: number;
519
+ DARK_UMBER: number;
520
+ ONYX: number;
521
+ CARBON: number;
522
+ CHARCOAL: number;
523
+ SLATE_GRAY: number;
524
+ ASH_GRAY: number;
525
+ STEEL_GRAY: number;
526
+ COOL_GRAY: number;
527
+ IRON: number;
528
+ GRAY: number;
529
+ STONE: number;
530
+ SILVER: number;
531
+ PALE_GRAY: number;
532
+ WHITE_SMOKE: number;
533
+ WHITE: number;
534
+ };
535
+
465
536
  export declare const concave: (t: number) => number;
466
537
 
467
538
  export declare const convex: (t: number) => number;
@@ -642,8 +713,8 @@ export declare const createQuadraticCurvePoints: (start: Vector2, control: Vecto
642
713
  */
643
714
  export declare const createSigmoidCurvePoints: (start: Vector2, end: Vector2, a: number, segments?: number) => Vector2[];
644
715
 
645
- export declare class CrossHeadstone extends Mesh {
646
- constructor({ width, height, depth, material, }?: CrossHeadstoneOptions);
716
+ export declare class CrossHeadstone extends Mesh<CrossHeadstoneGeometry, MeshStandardMaterial> {
717
+ constructor({ width, height, depth, }?: CrossHeadstoneOptions);
647
718
  }
648
719
 
649
720
  export declare class CrossHeadstoneGeometry extends BufferGeometry {
@@ -654,7 +725,6 @@ declare interface CrossHeadstoneOptions {
654
725
  width?: number;
655
726
  height?: number;
656
727
  depth?: number;
657
- material?: Material;
658
728
  }
659
729
 
660
730
  export declare const cubicCurve: (t: number, p0: number, p1: number, p2: number, p3: number) => number;
@@ -989,7 +1059,7 @@ export declare const Falloff: {
989
1059
  SMOOTHSTEP: (distance: number, radius: number) => number;
990
1060
  };
991
1061
 
992
- export declare class FenceColumn extends Mesh {
1062
+ export declare class FenceColumn extends Mesh<FenceColumnGeometry, MeshStandardMaterial> {
993
1063
  constructor({ height }?: {
994
1064
  height?: number | undefined;
995
1065
  });
@@ -1004,6 +1074,10 @@ export declare class FenceColumnGeometry extends BufferGeometry {
1004
1074
  });
1005
1075
  }
1006
1076
 
1077
+ export declare function findClosestColor(inputColor: number, dataset: number[]): number | null;
1078
+
1079
+ export declare function findClosestColorChannelWise(inputColor: number, dataset: number[]): number | null;
1080
+
1007
1081
  export declare class Flask extends Group {
1008
1082
  constructor();
1009
1083
  }
@@ -1054,6 +1128,16 @@ export declare class GearShape extends Shape {
1054
1128
  constructor(sides?: number, innerRadius?: number, outerRadius?: number, holeSides?: number, holeRadius?: number);
1055
1129
  }
1056
1130
 
1131
+ /**
1132
+ * Example usage:
1133
+ * ```
1134
+ * const baseHue = Math.floor(Math.random() * 360);
1135
+ * const color1 = getAnalogousColors(baseHue);
1136
+ * const color2 = getAnalogousColors(baseHue);
1137
+ * ```
1138
+ */
1139
+ export declare function getAnalogousColors(baseHue: number): [number, number, number];
1140
+
1057
1141
  export declare class Heart extends Mesh {
1058
1142
  constructor(size?: number, width?: number, height?: number, tipDepth?: number, depth?: number);
1059
1143
  }
@@ -1062,6 +1146,14 @@ export declare class HeartShape extends Shape {
1062
1146
  constructor(size?: number, width?: number, height?: number, tipDepth?: number);
1063
1147
  }
1064
1148
 
1149
+ export declare function hexToHsl(hex: number): [number, number, number];
1150
+
1151
+ /**
1152
+ * Convert hexadecimal literal numeric color value to RGB array
1153
+ * @param hex
1154
+ */
1155
+ export declare function hexToRgb(hex: number): [number, number, number];
1156
+
1065
1157
  export declare class Hill extends Mesh {
1066
1158
  constructor({ radius, //
1067
1159
  height, widthSegments, heightSegments, phiStart, phiLength, }?: {
@@ -1086,6 +1178,20 @@ export declare class HillGeometry extends BufferGeometry {
1086
1178
  });
1087
1179
  }
1088
1180
 
1181
+ /**
1182
+ * Example usage:
1183
+ * ```
1184
+ * const h = 200; // Hue
1185
+ * const s = 75; // Saturation
1186
+ * const l = 50; // Lightness
1187
+ *
1188
+ * const [ r, g, b ] = hslToHex(h, s, l);
1189
+ * ```
1190
+ */
1191
+ export declare function hslToHex(h: number, s: number, l: number): [number, number, number];
1192
+
1193
+ export declare function hslToRgb(h: number, s: number, l: number): [number, number, number];
1194
+
1089
1195
  /**
1090
1196
  * Generates an array of interpolated 2D points using an easing function.
1091
1197
  * @param curveFunction - The easing function to apply to the normalized value.
@@ -1206,10 +1312,24 @@ export declare class Microscope extends Group {
1206
1312
  constructor();
1207
1313
  }
1208
1314
 
1209
- export declare class Moon extends Group {
1315
+ export declare class Moon extends Mesh<SphereGeometry, ShaderMaterial> {
1210
1316
  constructor();
1211
1317
  }
1212
1318
 
1319
+ /**
1320
+ * Moon shader
1321
+ * Simple moon effect with noise
1322
+ */
1323
+ export declare const moonShader: {
1324
+ uniforms: {
1325
+ time: {
1326
+ value: number;
1327
+ };
1328
+ };
1329
+ vertexShader: string;
1330
+ fragmentShader: string;
1331
+ };
1332
+
1213
1333
  export declare class MortarAndPestle extends Group {
1214
1334
  constructor();
1215
1335
  }
@@ -1339,6 +1459,8 @@ declare interface NoiseDisplacementOptions {
1339
1459
  scale?: number;
1340
1460
  }
1341
1461
 
1462
+ export declare function normalizeRgb(r: number, g: number, b: number): [number, number, number];
1463
+
1342
1464
  /**
1343
1465
  * Generic Normalization Function
1344
1466
  * This function will normalize 2D UV coordinates based on given bounds.
@@ -1364,7 +1486,7 @@ export declare function normalizeUV(uv: [number, number], minU: number, maxU: nu
1364
1486
  */
1365
1487
  export declare function normalizeUVBatch(uvs: [number, number][], minBounds: [number, number], maxBounds: [number, number]): [number, number][];
1366
1488
 
1367
- export declare class ObeliskHeadstone extends Mesh {
1489
+ export declare class ObeliskHeadstone extends Mesh<ObeliskHeadstoneGeometry, MeshStandardMaterial> {
1368
1490
  constructor({ totalHeight, baseWidth }?: ObeliskHeadstoneOptions);
1369
1491
  }
1370
1492
 
@@ -1446,6 +1568,11 @@ export declare const ParametricCurveUtils: {
1446
1568
  createSigmoidCurvePoints: (start: Vector2, end: Vector2, a: number, segments?: number) => Vector2[];
1447
1569
  };
1448
1570
 
1571
+ /**
1572
+ * Convert hex color code color string to RGB array
1573
+ */
1574
+ export declare function parseHexCode(hex: string): [number, number, number];
1575
+
1449
1576
  /**
1450
1577
  * The camera swings back and forth like a pendulum.
1451
1578
  *
@@ -1536,6 +1663,20 @@ export declare function randomInteger(min?: number, max?: number): number;
1536
1663
 
1537
1664
  export declare function randomTransformVertices<T extends BufferGeometry>(geometry: T, axis?: Vector3, minScale?: number, maxScale?: number): T;
1538
1665
 
1666
+ export declare function rgbToHex(r: number, g: number, b: number): number;
1667
+
1668
+ /**
1669
+ * Converts an RGB color to HSL.
1670
+ *
1671
+ * Example usage:
1672
+ * ```
1673
+ * const rgbColor = { r: 255, g: 0, b: 0 }; // Red
1674
+ * const hslColor = rgbToHsl(rgbColor.r, rgbColor.g, rgbColor.b);
1675
+ * console.log(hslColor); // Output: { h: 0, s: 100, l: 50 }
1676
+ * ```
1677
+ */
1678
+ export declare function rgbToHsl(r: number, g: number, b: number): [number, number, number];
1679
+
1539
1680
  export declare class Rock extends Mesh {
1540
1681
  constructor(radius?: number, widthSegments?: number, heightSegments?: number);
1541
1682
  }
@@ -1548,7 +1689,7 @@ export declare class Rocks extends Group {
1548
1689
  constructor();
1549
1690
  }
1550
1691
 
1551
- export declare class RoundedHeadstone extends Mesh {
1692
+ export declare class RoundedHeadstone extends Mesh<RoundedHeadstoneGeometry, MeshStandardMaterial> {
1552
1693
  constructor(width?: number, height?: number, depth?: number, radius?: number);
1553
1694
  }
1554
1695
 
@@ -1684,7 +1825,7 @@ export declare class SpiralTube extends Group {
1684
1825
  constructor();
1685
1826
  }
1686
1827
 
1687
- export declare class SquareHeadstone extends Mesh {
1828
+ export declare class SquareHeadstone extends Mesh<SquareHeadstoneGeometry, MeshStandardMaterial> {
1688
1829
  constructor(width?: number, height?: number, depth?: number);
1689
1830
  }
1690
1831
 
@@ -1841,7 +1982,7 @@ export declare class WineBottleGeometry extends BufferGeometry {
1841
1982
  */
1842
1983
  export declare function wobbleAnimation(camera: Camera, intensity: number, duration: number, onComplete?: () => void): void;
1843
1984
 
1844
- export declare class WroughtIronBar extends Mesh {
1985
+ export declare class WroughtIronBar extends Mesh<WroughtIronBarGeometry, MeshStandardMaterial> {
1845
1986
  constructor({ barHeight, //
1846
1987
  barRadius, spikeHeight, spikeRadius, spikeScaleZ, radialSegments, }?: {
1847
1988
  barHeight?: number | undefined;
@@ -1868,7 +2009,7 @@ export declare class WroughtIronBarGeometry extends BufferGeometry {
1868
2009
  });
1869
2010
  }
1870
2011
 
1871
- export declare class WroughtIronFence extends Mesh {
2012
+ export declare class WroughtIronFence extends Mesh<WroughtIronFenceGeometry, MeshStandardMaterial> {
1872
2013
  constructor({ count, //
1873
2014
  spacing, barHeight, barRadius, spikeHeight, spikeRadius, spikeScaleZ, railHeight, railDepth, railOffset, radialSegments, }?: {
1874
2015
  count?: number | undefined;