tscratch 0.7.3 → 0.8.0

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.
@@ -1,3 +1,13 @@
1
+ interface CameraOptions {
2
+ x: number;
3
+ y: number;
4
+ }
5
+ declare class Camera {
6
+ x: number;
7
+ y: number;
8
+ constructor(options?: CameraOptions);
9
+ }
10
+
1
11
  type Vec2<T = number> = [T, T];
2
12
  type Vec3<T = number> = [T, T, T];
3
13
  type Vec4<T = number> = [T, T, T, T];
@@ -71,56 +81,41 @@ type SceneMap = Map<string, {
71
81
  loop: GameLoop | null;
72
82
  }>;
73
83
  declare class Engine {
74
- private static instance;
75
- private loopRunning;
76
- private gameLoop;
77
- maxFPS: number;
78
- deltaTime: number;
79
- private lastFrame;
80
- private refreshScheduled;
81
- private animationFrameId;
82
- private sounds;
83
- mouseX: number;
84
- mouseY: number;
85
- mouseDown: boolean;
86
- mouseClicked: boolean;
87
- private keysPressed;
88
- private currentScene;
89
- sceneMap: SceneMap;
90
- private variableMap;
91
- static init(): Engine;
92
- setScene(scene: string): void;
93
- setLoop(scene: string, loop: GameLoop): void;
94
- pauseLoop(): void;
95
- resumeLoop(): void;
96
- addSprite(sprite: Sprite): void;
97
- removeSprite(sprite: Sprite): void;
98
- setMaxFPS(maxFPS: number): Promise<void>;
99
- refresh(): void;
100
- wait(ms: number): Promise<void>;
101
- waitUntil(conditionGetter: () => boolean): Promise<void>;
102
- setVariable<T = any>(key: string, value: T): void;
103
- getVariable<T = unknown>(key: string): T;
104
- hovering(sprite: Sprite): boolean;
105
- keyPressed(key: string): boolean;
106
- playSound(src: string): HTMLAudioElement;
107
- stopSound(sound: HTMLAudioElement): void;
108
- stopAllSounds(): void;
109
- pickRandom(min: number, max: number): number;
110
- dotProduct(...vectors: [Vec2, Vec2] | [Vec3, Vec3] | [Vec4, Vec4]): number;
111
- sin(deg: number): number;
112
- cos(deg: number): number;
113
- tan(deg: number): number;
114
- csc(deg: number): number;
115
- sec(deg: number): number;
116
- cot(deg: number): number;
117
- asin(val: number): number;
118
- acos(val: number): number;
119
- acsc(val: number): number;
120
- asec(val: number): number;
121
- toRadians(deg: number): number;
122
- toDegrees(rad: number): number;
123
- private constructor();
84
+ private static loopRunning;
85
+ private static gameLoop;
86
+ static maxFPS: number;
87
+ static deltaTime: number;
88
+ private static lastFrame;
89
+ private static refreshScheduled;
90
+ private static animationFrameId;
91
+ private static sounds;
92
+ static camera: Camera;
93
+ static mouseX: number;
94
+ static mouseY: number;
95
+ static mouseDown: boolean;
96
+ static mouseClicked: boolean;
97
+ private static keysPressed;
98
+ private static currentScene;
99
+ static sceneMap: SceneMap;
100
+ private static variableMap;
101
+ static init(): void;
102
+ static setScene(scene: string): void;
103
+ static setLoop(scene: string, loop: GameLoop): void;
104
+ static pauseLoop(): void;
105
+ static resumeLoop(): void;
106
+ static addSprite(sprite: Sprite): void;
107
+ static removeSprite(sprite: Sprite): void;
108
+ static setMaxFPS(maxFPS: number): Promise<void>;
109
+ static refresh(): void;
110
+ static wait(ms: number): Promise<void>;
111
+ static waitUntil(conditionGetter: () => boolean): Promise<void>;
112
+ static setVariable<T = any>(key: string, value: T): void;
113
+ static getVariable<T = unknown>(key: string): T;
114
+ static hovering(sprite: Sprite): boolean;
115
+ static keyPressed(key: string): boolean;
116
+ static playSound(src: string): HTMLAudioElement;
117
+ static stopSound(sound: HTMLAudioElement): void;
118
+ static stopAllSounds(): void;
124
119
  }
125
120
 
126
121
  declare const canvas: HTMLCanvasElement;
@@ -130,6 +125,39 @@ declare let scale: number;
130
125
  declare function setScale(newScale: number): void;
131
126
  declare function setAspectRatio(newAspectRatio: number): void;
132
127
 
128
+ declare class TSCMath {
129
+ private constructor();
130
+ static pickRandom(min: number, max: number): number;
131
+ static magnitude(v: Vec2): number;
132
+ static magnitude(v: Vec3): number;
133
+ static magnitude(v: Vec4): number;
134
+ static normalize(v: Vec2): Vec2;
135
+ static normalize(v: Vec3): Vec3;
136
+ static normalize(v: Vec4): Vec4;
137
+ static add(a: Vec2, b: Vec2): Vec2;
138
+ static add(a: Vec3, b: Vec3): Vec3;
139
+ static add(a: Vec4, b: Vec4): Vec4;
140
+ static subtract(a: Vec2, b: Vec2): Vec2;
141
+ static subtract(a: Vec3, b: Vec3): Vec3;
142
+ static subtract(a: Vec4, b: Vec4): Vec4;
143
+ static dot(a: Vec2, b: Vec2): number;
144
+ static dot(a: Vec3, b: Vec3): number;
145
+ static dot(a: Vec4, b: Vec4): number;
146
+ static cross(a: Vec3, b: Vec3): Vec3;
147
+ static toRadians(deg: number): number;
148
+ static toDegrees(rad: number): number;
149
+ static sin(deg: number): number;
150
+ static cos(deg: number): number;
151
+ static tan(deg: number): number;
152
+ static csc(deg: number): number;
153
+ static sec(deg: number): number;
154
+ static cot(deg: number): number;
155
+ static asin(val: number): number;
156
+ static acos(val: number): number;
157
+ static acsc(val: number): number;
158
+ static asec(val: number): number;
159
+ }
160
+
133
161
  declare class Multiplayer {
134
162
  private static instance;
135
163
  private socket;
@@ -621,27 +649,45 @@ declare class RigidCircle extends Circle implements RigidBodyOptions {
621
649
  constructor(options?: RigidCircleOptions);
622
650
  }
623
651
 
652
+ interface Camera3DOptions {
653
+ x: number;
654
+ y: number;
655
+ z: number;
656
+ dirX: number;
657
+ dirY: number;
658
+ dirZ: number;
659
+ }
660
+ declare class Camera3D {
661
+ x: number;
662
+ y: number;
663
+ z: number;
664
+ dirX: number;
665
+ dirY: number;
666
+ dirZ: number;
667
+ constructor(options?: Camera3DOptions);
668
+ }
669
+
624
670
  interface Object3DOptions {
625
671
  vertices: Vec3[];
626
672
  faces: [number, number, ...number[]][];
627
673
  x?: number;
628
674
  y?: number;
629
675
  z?: number;
630
- rotX?: number;
631
- rotY?: number;
632
- rotZ?: number;
676
+ dirX?: number;
677
+ dirY?: number;
678
+ dirZ?: number;
633
679
  color?: string;
634
- scale?: number;
680
+ size?: number;
635
681
  }
636
682
  declare class Object3D {
637
683
  x: number;
638
684
  y: number;
639
685
  z: number;
640
- rotX: number;
641
- rotY: number;
642
- rotZ: number;
686
+ dirX: number;
687
+ dirY: number;
688
+ dirZ: number;
643
689
  color: string;
644
- scale: number;
690
+ size: number;
645
691
  vertices: Vec3[];
646
692
  faces: [number, number, ...number[]][];
647
693
  constructor(options: Object3DOptions);
@@ -657,28 +703,40 @@ declare class Object3D {
657
703
  };
658
704
  }
659
705
 
660
- interface WireframeRenderer3DOptions extends PenOptions {
706
+ interface Renderer3DOptions extends PenOptions {
661
707
  objects: Object3D[];
708
+ camera: Camera3D;
662
709
  }
663
- declare class WireframeRenderer3D extends Pen {
710
+ declare abstract class Renderer3D extends Pen {
664
711
  FOV: number;
665
712
  ASPECT: number;
666
713
  Z_NEAR: number;
667
714
  SPEED: number;
668
715
  SENSITIVITY: number;
669
- camX: number;
670
- camY: number;
671
- camZ: number;
672
- camDirX: number;
673
- camDirY: number;
674
- camDirZ: number;
716
+ camera: Camera3D;
675
717
  objects: Object3D[];
676
- constructor(options: WireframeRenderer3DOptions);
718
+ constructor(options: Renderer3DOptions);
719
+ abstract render(): void;
677
720
  registerControls(): void;
678
- private project;
721
+ protected project(vertices: Vec3[]): Vec2[];
722
+ }
723
+
724
+ declare class WireframeRenderer3D extends Renderer3D {
679
725
  render(): void;
680
726
  }
681
727
 
728
+ declare class SolidRenderer3D extends Renderer3D {
729
+ AMBIENT_LIGHT_INTENSITY: number;
730
+ DIRECTED_LIGHT_INTENSITY: number;
731
+ DIRECTED_LIGHT_DIR: Vec3;
732
+ render(): void;
733
+ static stringToHSL(color: string): {
734
+ h: number;
735
+ s: number;
736
+ l: number;
737
+ };
738
+ }
739
+
682
740
  declare class Tetrahedron extends Object3D {
683
741
  constructor(options?: Partial<Object3DOptions>);
684
742
  }
@@ -703,6 +761,22 @@ declare class Monkey extends Object3D {
703
761
  constructor(options?: Partial<Object3DOptions>);
704
762
  }
705
763
 
764
+ interface CuboidOptions extends Object3DOptions {
765
+ width: number;
766
+ height: number;
767
+ length: number;
768
+ }
769
+ declare class Cuboid extends Object3D {
770
+ width: number;
771
+ height: number;
772
+ length: number;
773
+ constructor(options?: Partial<CuboidOptions>);
774
+ private computeVertices;
775
+ setWidth(width: number): void;
776
+ setHeight(height: number): void;
777
+ setLength(length: number): void;
778
+ }
779
+
706
780
  type Mat2<T = number> = [
707
781
  [
708
782
  T,
@@ -759,7 +833,9 @@ type Mat4<T = number> = [
759
833
 
760
834
  declare const TScratch: {
761
835
  Engine: typeof Engine;
836
+ Camera: typeof Camera;
762
837
  Sprite: typeof Sprite;
838
+ TSCMath: typeof TSCMath;
763
839
  Multiplayer: typeof Multiplayer;
764
840
  Rectangle: typeof Rectangle;
765
841
  Square: typeof Square;
@@ -774,7 +850,10 @@ declare const TScratch: {
774
850
  Watermark: typeof Watermark;
775
851
  ImageSprite: typeof ImageSprite;
776
852
  RigidCircle: typeof RigidCircle;
853
+ Camera3D: typeof Camera3D;
854
+ Renderer3D: typeof Renderer3D;
777
855
  WireframeRenderer3D: typeof WireframeRenderer3D;
856
+ SolidRenderer3D: typeof SolidRenderer3D;
778
857
  Object3D: typeof Object3D;
779
858
  Tetrahedron: typeof Tetrahedron;
780
859
  Cube: typeof Cube;
@@ -782,6 +861,7 @@ declare const TScratch: {
782
861
  Icosahedron: typeof Icosahedron;
783
862
  Icosphere: typeof Icosphere;
784
863
  Monkey: typeof Monkey;
864
+ Cuboid: typeof Cuboid;
785
865
  scale: number;
786
866
  aspectRatio: number;
787
867
  setScale: typeof setScale;
@@ -790,4 +870,4 @@ declare const TScratch: {
790
870
  ctx: CanvasRenderingContext2D;
791
871
  };
792
872
 
793
- export { Arc, type ArcOptions, Button, type ButtonOptions, Circle, type CircleOptions, Cube, CustomPolygon, type CustomPolygonOptions, Engine, Icosahedron, Icosphere, ImageSprite, type ImageSpriteOptions, type Mat2, type Mat3, type Mat4, Monkey, Multiplayer, Object3D, type Object3DOptions, Octahedron, Oval, type OvalOptions, Pen, type PenOptions, Rectangle, type RectangleOptions, RegularPolygon, type RegularPolygonOptions, type RigidBodyOptions, RigidCircle, type RigidCircleOptions, Sprite, type SpriteOptions, Square, type SquareOptions, Tetrahedron, Text, type TextOptions, type Vec2, type Vec3, type Vec4, Watermark, type TextOptions as WatermarkOptions, WireframeRenderer3D, type WireframeRenderer3DOptions, aspectRatio, canvas, ctx, TScratch as default, scale, setAspectRatio, setScale };
873
+ export { Arc, type ArcOptions, Button, type ButtonOptions, Camera, Camera3D, type Camera3DOptions, type CameraOptions, Circle, type CircleOptions, Cube, Cuboid, type CuboidOptions, CustomPolygon, type CustomPolygonOptions, Engine, Icosahedron, Icosphere, ImageSprite, type ImageSpriteOptions, type Mat2, type Mat3, type Mat4, Monkey, Multiplayer, Object3D, type Object3DOptions, Octahedron, Oval, type OvalOptions, Pen, type PenOptions, Rectangle, type RectangleOptions, RegularPolygon, type RegularPolygonOptions, Renderer3D, type Renderer3DOptions, type RigidBodyOptions, RigidCircle, type RigidCircleOptions, SolidRenderer3D, Sprite, type SpriteOptions, Square, type SquareOptions, TSCMath, Tetrahedron, Text, type TextOptions, type Vec2, type Vec3, type Vec4, Watermark, type TextOptions as WatermarkOptions, WireframeRenderer3D, aspectRatio, canvas, ctx, TScratch as default, scale, setAspectRatio, setScale };
@@ -1,3 +1,13 @@
1
+ interface CameraOptions {
2
+ x: number;
3
+ y: number;
4
+ }
5
+ declare class Camera {
6
+ x: number;
7
+ y: number;
8
+ constructor(options?: CameraOptions);
9
+ }
10
+
1
11
  type Vec2<T = number> = [T, T];
2
12
  type Vec3<T = number> = [T, T, T];
3
13
  type Vec4<T = number> = [T, T, T, T];
@@ -71,56 +81,41 @@ type SceneMap = Map<string, {
71
81
  loop: GameLoop | null;
72
82
  }>;
73
83
  declare class Engine {
74
- private static instance;
75
- private loopRunning;
76
- private gameLoop;
77
- maxFPS: number;
78
- deltaTime: number;
79
- private lastFrame;
80
- private refreshScheduled;
81
- private animationFrameId;
82
- private sounds;
83
- mouseX: number;
84
- mouseY: number;
85
- mouseDown: boolean;
86
- mouseClicked: boolean;
87
- private keysPressed;
88
- private currentScene;
89
- sceneMap: SceneMap;
90
- private variableMap;
91
- static init(): Engine;
92
- setScene(scene: string): void;
93
- setLoop(scene: string, loop: GameLoop): void;
94
- pauseLoop(): void;
95
- resumeLoop(): void;
96
- addSprite(sprite: Sprite): void;
97
- removeSprite(sprite: Sprite): void;
98
- setMaxFPS(maxFPS: number): Promise<void>;
99
- refresh(): void;
100
- wait(ms: number): Promise<void>;
101
- waitUntil(conditionGetter: () => boolean): Promise<void>;
102
- setVariable<T = any>(key: string, value: T): void;
103
- getVariable<T = unknown>(key: string): T;
104
- hovering(sprite: Sprite): boolean;
105
- keyPressed(key: string): boolean;
106
- playSound(src: string): HTMLAudioElement;
107
- stopSound(sound: HTMLAudioElement): void;
108
- stopAllSounds(): void;
109
- pickRandom(min: number, max: number): number;
110
- dotProduct(...vectors: [Vec2, Vec2] | [Vec3, Vec3] | [Vec4, Vec4]): number;
111
- sin(deg: number): number;
112
- cos(deg: number): number;
113
- tan(deg: number): number;
114
- csc(deg: number): number;
115
- sec(deg: number): number;
116
- cot(deg: number): number;
117
- asin(val: number): number;
118
- acos(val: number): number;
119
- acsc(val: number): number;
120
- asec(val: number): number;
121
- toRadians(deg: number): number;
122
- toDegrees(rad: number): number;
123
- private constructor();
84
+ private static loopRunning;
85
+ private static gameLoop;
86
+ static maxFPS: number;
87
+ static deltaTime: number;
88
+ private static lastFrame;
89
+ private static refreshScheduled;
90
+ private static animationFrameId;
91
+ private static sounds;
92
+ static camera: Camera;
93
+ static mouseX: number;
94
+ static mouseY: number;
95
+ static mouseDown: boolean;
96
+ static mouseClicked: boolean;
97
+ private static keysPressed;
98
+ private static currentScene;
99
+ static sceneMap: SceneMap;
100
+ private static variableMap;
101
+ static init(): void;
102
+ static setScene(scene: string): void;
103
+ static setLoop(scene: string, loop: GameLoop): void;
104
+ static pauseLoop(): void;
105
+ static resumeLoop(): void;
106
+ static addSprite(sprite: Sprite): void;
107
+ static removeSprite(sprite: Sprite): void;
108
+ static setMaxFPS(maxFPS: number): Promise<void>;
109
+ static refresh(): void;
110
+ static wait(ms: number): Promise<void>;
111
+ static waitUntil(conditionGetter: () => boolean): Promise<void>;
112
+ static setVariable<T = any>(key: string, value: T): void;
113
+ static getVariable<T = unknown>(key: string): T;
114
+ static hovering(sprite: Sprite): boolean;
115
+ static keyPressed(key: string): boolean;
116
+ static playSound(src: string): HTMLAudioElement;
117
+ static stopSound(sound: HTMLAudioElement): void;
118
+ static stopAllSounds(): void;
124
119
  }
125
120
 
126
121
  declare const canvas: HTMLCanvasElement;
@@ -130,6 +125,39 @@ declare let scale: number;
130
125
  declare function setScale(newScale: number): void;
131
126
  declare function setAspectRatio(newAspectRatio: number): void;
132
127
 
128
+ declare class TSCMath {
129
+ private constructor();
130
+ static pickRandom(min: number, max: number): number;
131
+ static magnitude(v: Vec2): number;
132
+ static magnitude(v: Vec3): number;
133
+ static magnitude(v: Vec4): number;
134
+ static normalize(v: Vec2): Vec2;
135
+ static normalize(v: Vec3): Vec3;
136
+ static normalize(v: Vec4): Vec4;
137
+ static add(a: Vec2, b: Vec2): Vec2;
138
+ static add(a: Vec3, b: Vec3): Vec3;
139
+ static add(a: Vec4, b: Vec4): Vec4;
140
+ static subtract(a: Vec2, b: Vec2): Vec2;
141
+ static subtract(a: Vec3, b: Vec3): Vec3;
142
+ static subtract(a: Vec4, b: Vec4): Vec4;
143
+ static dot(a: Vec2, b: Vec2): number;
144
+ static dot(a: Vec3, b: Vec3): number;
145
+ static dot(a: Vec4, b: Vec4): number;
146
+ static cross(a: Vec3, b: Vec3): Vec3;
147
+ static toRadians(deg: number): number;
148
+ static toDegrees(rad: number): number;
149
+ static sin(deg: number): number;
150
+ static cos(deg: number): number;
151
+ static tan(deg: number): number;
152
+ static csc(deg: number): number;
153
+ static sec(deg: number): number;
154
+ static cot(deg: number): number;
155
+ static asin(val: number): number;
156
+ static acos(val: number): number;
157
+ static acsc(val: number): number;
158
+ static asec(val: number): number;
159
+ }
160
+
133
161
  declare class Multiplayer {
134
162
  private static instance;
135
163
  private socket;
@@ -621,27 +649,45 @@ declare class RigidCircle extends Circle implements RigidBodyOptions {
621
649
  constructor(options?: RigidCircleOptions);
622
650
  }
623
651
 
652
+ interface Camera3DOptions {
653
+ x: number;
654
+ y: number;
655
+ z: number;
656
+ dirX: number;
657
+ dirY: number;
658
+ dirZ: number;
659
+ }
660
+ declare class Camera3D {
661
+ x: number;
662
+ y: number;
663
+ z: number;
664
+ dirX: number;
665
+ dirY: number;
666
+ dirZ: number;
667
+ constructor(options?: Camera3DOptions);
668
+ }
669
+
624
670
  interface Object3DOptions {
625
671
  vertices: Vec3[];
626
672
  faces: [number, number, ...number[]][];
627
673
  x?: number;
628
674
  y?: number;
629
675
  z?: number;
630
- rotX?: number;
631
- rotY?: number;
632
- rotZ?: number;
676
+ dirX?: number;
677
+ dirY?: number;
678
+ dirZ?: number;
633
679
  color?: string;
634
- scale?: number;
680
+ size?: number;
635
681
  }
636
682
  declare class Object3D {
637
683
  x: number;
638
684
  y: number;
639
685
  z: number;
640
- rotX: number;
641
- rotY: number;
642
- rotZ: number;
686
+ dirX: number;
687
+ dirY: number;
688
+ dirZ: number;
643
689
  color: string;
644
- scale: number;
690
+ size: number;
645
691
  vertices: Vec3[];
646
692
  faces: [number, number, ...number[]][];
647
693
  constructor(options: Object3DOptions);
@@ -657,28 +703,40 @@ declare class Object3D {
657
703
  };
658
704
  }
659
705
 
660
- interface WireframeRenderer3DOptions extends PenOptions {
706
+ interface Renderer3DOptions extends PenOptions {
661
707
  objects: Object3D[];
708
+ camera: Camera3D;
662
709
  }
663
- declare class WireframeRenderer3D extends Pen {
710
+ declare abstract class Renderer3D extends Pen {
664
711
  FOV: number;
665
712
  ASPECT: number;
666
713
  Z_NEAR: number;
667
714
  SPEED: number;
668
715
  SENSITIVITY: number;
669
- camX: number;
670
- camY: number;
671
- camZ: number;
672
- camDirX: number;
673
- camDirY: number;
674
- camDirZ: number;
716
+ camera: Camera3D;
675
717
  objects: Object3D[];
676
- constructor(options: WireframeRenderer3DOptions);
718
+ constructor(options: Renderer3DOptions);
719
+ abstract render(): void;
677
720
  registerControls(): void;
678
- private project;
721
+ protected project(vertices: Vec3[]): Vec2[];
722
+ }
723
+
724
+ declare class WireframeRenderer3D extends Renderer3D {
679
725
  render(): void;
680
726
  }
681
727
 
728
+ declare class SolidRenderer3D extends Renderer3D {
729
+ AMBIENT_LIGHT_INTENSITY: number;
730
+ DIRECTED_LIGHT_INTENSITY: number;
731
+ DIRECTED_LIGHT_DIR: Vec3;
732
+ render(): void;
733
+ static stringToHSL(color: string): {
734
+ h: number;
735
+ s: number;
736
+ l: number;
737
+ };
738
+ }
739
+
682
740
  declare class Tetrahedron extends Object3D {
683
741
  constructor(options?: Partial<Object3DOptions>);
684
742
  }
@@ -703,6 +761,22 @@ declare class Monkey extends Object3D {
703
761
  constructor(options?: Partial<Object3DOptions>);
704
762
  }
705
763
 
764
+ interface CuboidOptions extends Object3DOptions {
765
+ width: number;
766
+ height: number;
767
+ length: number;
768
+ }
769
+ declare class Cuboid extends Object3D {
770
+ width: number;
771
+ height: number;
772
+ length: number;
773
+ constructor(options?: Partial<CuboidOptions>);
774
+ private computeVertices;
775
+ setWidth(width: number): void;
776
+ setHeight(height: number): void;
777
+ setLength(length: number): void;
778
+ }
779
+
706
780
  type Mat2<T = number> = [
707
781
  [
708
782
  T,
@@ -759,7 +833,9 @@ type Mat4<T = number> = [
759
833
 
760
834
  declare const TScratch: {
761
835
  Engine: typeof Engine;
836
+ Camera: typeof Camera;
762
837
  Sprite: typeof Sprite;
838
+ TSCMath: typeof TSCMath;
763
839
  Multiplayer: typeof Multiplayer;
764
840
  Rectangle: typeof Rectangle;
765
841
  Square: typeof Square;
@@ -774,7 +850,10 @@ declare const TScratch: {
774
850
  Watermark: typeof Watermark;
775
851
  ImageSprite: typeof ImageSprite;
776
852
  RigidCircle: typeof RigidCircle;
853
+ Camera3D: typeof Camera3D;
854
+ Renderer3D: typeof Renderer3D;
777
855
  WireframeRenderer3D: typeof WireframeRenderer3D;
856
+ SolidRenderer3D: typeof SolidRenderer3D;
778
857
  Object3D: typeof Object3D;
779
858
  Tetrahedron: typeof Tetrahedron;
780
859
  Cube: typeof Cube;
@@ -782,6 +861,7 @@ declare const TScratch: {
782
861
  Icosahedron: typeof Icosahedron;
783
862
  Icosphere: typeof Icosphere;
784
863
  Monkey: typeof Monkey;
864
+ Cuboid: typeof Cuboid;
785
865
  scale: number;
786
866
  aspectRatio: number;
787
867
  setScale: typeof setScale;
@@ -790,4 +870,4 @@ declare const TScratch: {
790
870
  ctx: CanvasRenderingContext2D;
791
871
  };
792
872
 
793
- export { Arc, type ArcOptions, Button, type ButtonOptions, Circle, type CircleOptions, Cube, CustomPolygon, type CustomPolygonOptions, Engine, Icosahedron, Icosphere, ImageSprite, type ImageSpriteOptions, type Mat2, type Mat3, type Mat4, Monkey, Multiplayer, Object3D, type Object3DOptions, Octahedron, Oval, type OvalOptions, Pen, type PenOptions, Rectangle, type RectangleOptions, RegularPolygon, type RegularPolygonOptions, type RigidBodyOptions, RigidCircle, type RigidCircleOptions, Sprite, type SpriteOptions, Square, type SquareOptions, Tetrahedron, Text, type TextOptions, type Vec2, type Vec3, type Vec4, Watermark, type TextOptions as WatermarkOptions, WireframeRenderer3D, type WireframeRenderer3DOptions, aspectRatio, canvas, ctx, TScratch as default, scale, setAspectRatio, setScale };
873
+ export { Arc, type ArcOptions, Button, type ButtonOptions, Camera, Camera3D, type Camera3DOptions, type CameraOptions, Circle, type CircleOptions, Cube, Cuboid, type CuboidOptions, CustomPolygon, type CustomPolygonOptions, Engine, Icosahedron, Icosphere, ImageSprite, type ImageSpriteOptions, type Mat2, type Mat3, type Mat4, Monkey, Multiplayer, Object3D, type Object3DOptions, Octahedron, Oval, type OvalOptions, Pen, type PenOptions, Rectangle, type RectangleOptions, RegularPolygon, type RegularPolygonOptions, Renderer3D, type Renderer3DOptions, type RigidBodyOptions, RigidCircle, type RigidCircleOptions, SolidRenderer3D, Sprite, type SpriteOptions, Square, type SquareOptions, TSCMath, Tetrahedron, Text, type TextOptions, type Vec2, type Vec3, type Vec4, Watermark, type TextOptions as WatermarkOptions, WireframeRenderer3D, aspectRatio, canvas, ctx, TScratch as default, scale, setAspectRatio, setScale };