@gui-chat-plugin/present3d 0.0.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.
@@ -0,0 +1,304 @@
1
+ export type Vector3 = [number, number, number];
2
+ export type Color = [number, number, number];
3
+ export type Expression = NumberLiteral | IdentifierExpr | BinaryExpr | UnaryExpr | FunctionCall | MemberAccess | SubscriptExpr | TupleExpr;
4
+ export interface NumberLiteral {
5
+ type: "number";
6
+ value: number;
7
+ }
8
+ export interface IdentifierExpr {
9
+ type: "identifier";
10
+ name: string;
11
+ }
12
+ export interface BinaryExpr {
13
+ type: "binary";
14
+ operator: string;
15
+ left: Expression;
16
+ right: Expression;
17
+ }
18
+ export interface UnaryExpr {
19
+ type: "unary";
20
+ operator: string;
21
+ operand: Expression;
22
+ }
23
+ export interface FunctionCall {
24
+ type: "call";
25
+ name: string;
26
+ args: Expression[];
27
+ }
28
+ export interface MemberAccess {
29
+ type: "member";
30
+ object: Expression;
31
+ member: string;
32
+ }
33
+ export interface SubscriptExpr {
34
+ type: "subscript";
35
+ object: Expression;
36
+ index: Expression;
37
+ }
38
+ export interface TupleExpr {
39
+ type: "tuple";
40
+ elements: Expression[];
41
+ }
42
+ export type SceneNode = ShapeNode | CSGNode | BlockNode | ForLoopNode | IfNode | SwitchNode | DefineNode | ExtrudeNode | LoftNode | LatheNode | FillNode | HullNode | GroupNode | DetailNode | PathNode | BackgroundNode | TextureNode | ColorNode | RotateNode | OrientationNode | TranslateNode | ScaleNode | CustomShapeNode;
43
+ export interface ShapeNode {
44
+ type: "shape";
45
+ primitive: "cube" | "sphere" | "cylinder" | "cone" | "torus" | "circle" | "square" | "polygon";
46
+ properties: ShapeProperties;
47
+ children?: SceneNode[];
48
+ }
49
+ export interface ShapeProperties {
50
+ position?: Vector3 | Expression;
51
+ rotation?: Vector3 | Expression;
52
+ orientation?: Vector3 | Expression;
53
+ size?: Vector3 | Expression;
54
+ color?: Color | Expression;
55
+ opacity?: number | Expression;
56
+ radiusTop?: number | Expression;
57
+ radiusBottom?: number | Expression;
58
+ height?: number | Expression;
59
+ innerRadius?: number | Expression;
60
+ outerRadius?: number | Expression;
61
+ }
62
+ export interface CSGNode {
63
+ type: "csg";
64
+ operation: "union" | "difference" | "intersection" | "xor" | "stencil";
65
+ children: SceneNode[];
66
+ }
67
+ export interface BlockNode {
68
+ type: "block";
69
+ children: SceneNode[];
70
+ }
71
+ export interface ForLoopNode {
72
+ type: "for";
73
+ variable: string;
74
+ from: Expression | number;
75
+ to: Expression | number;
76
+ step?: Expression | number;
77
+ iterableValues?: Expression;
78
+ body: SceneNode[];
79
+ transforms?: TransformNode[];
80
+ }
81
+ export interface IfNode {
82
+ type: "if";
83
+ condition: Expression;
84
+ thenBody: SceneNode[];
85
+ elseBody?: SceneNode[];
86
+ }
87
+ export interface SwitchNode {
88
+ type: "switch";
89
+ value: Expression;
90
+ cases: Array<{
91
+ values: Expression[];
92
+ body: SceneNode[];
93
+ }>;
94
+ defaultCase?: SceneNode[];
95
+ }
96
+ export interface TransformNode {
97
+ type: "rotate" | "translate" | "scale";
98
+ values: Vector3;
99
+ }
100
+ export interface DefineNode {
101
+ type: "define";
102
+ name: string;
103
+ value?: Expression;
104
+ options?: OptionNode[];
105
+ body?: SceneNode[];
106
+ }
107
+ export interface OptionNode {
108
+ type: "option";
109
+ name: string;
110
+ defaultValue: Expression;
111
+ }
112
+ export interface DetailNode {
113
+ type: "detail";
114
+ value: number | Expression;
115
+ }
116
+ export interface BackgroundNode {
117
+ type: "background";
118
+ value: Expression;
119
+ }
120
+ export interface TextureNode {
121
+ type: "texture";
122
+ value: Expression;
123
+ }
124
+ export interface ColorNode {
125
+ type: "color";
126
+ value: Expression;
127
+ }
128
+ export interface RotateNode {
129
+ type: "rotate";
130
+ value: Expression;
131
+ }
132
+ export interface OrientationNode {
133
+ type: "orientation";
134
+ value: Expression;
135
+ }
136
+ export interface TranslateNode {
137
+ type: "translate";
138
+ value: Expression;
139
+ }
140
+ export interface ScaleNode {
141
+ type: "scale";
142
+ value: Expression;
143
+ }
144
+ export interface CustomShapeNode {
145
+ type: "customShape";
146
+ name: string;
147
+ properties: Record<string, unknown>;
148
+ }
149
+ export interface ExtrudeNode {
150
+ type: "extrude";
151
+ path?: PathNode;
152
+ properties: ShapeProperties;
153
+ children?: SceneNode[];
154
+ }
155
+ export interface LoftNode {
156
+ type: "loft";
157
+ properties: ShapeProperties;
158
+ children: SceneNode[];
159
+ }
160
+ export interface LatheNode {
161
+ type: "lathe";
162
+ properties: ShapeProperties;
163
+ children: SceneNode[];
164
+ }
165
+ export interface FillNode {
166
+ type: "fill";
167
+ properties: ShapeProperties;
168
+ children: SceneNode[];
169
+ }
170
+ export interface HullNode {
171
+ type: "hull";
172
+ properties: ShapeProperties;
173
+ children: SceneNode[];
174
+ }
175
+ export interface GroupNode {
176
+ type: "group";
177
+ children: SceneNode[];
178
+ }
179
+ export interface PathNode {
180
+ type: "path";
181
+ commands: PathCommand[];
182
+ }
183
+ export type PathCommand = PointCommand | CurveCommand | RotateCommand | TranslateCommand | DetailPathCommand | ForLoopPathCommand;
184
+ export interface PointCommand {
185
+ type: "point";
186
+ x: number | Expression;
187
+ y: number | Expression;
188
+ }
189
+ export interface CurveCommand {
190
+ type: "curve";
191
+ x: number | Expression;
192
+ y: number | Expression;
193
+ controlX?: number | Expression;
194
+ controlY?: number | Expression;
195
+ }
196
+ export interface RotateCommand {
197
+ type: "rotate";
198
+ angle: number | Expression;
199
+ }
200
+ export interface TranslateCommand {
201
+ type: "translate";
202
+ x: number | Expression;
203
+ y: number | Expression;
204
+ }
205
+ export interface DetailPathCommand {
206
+ type: "detail";
207
+ value: number | Expression;
208
+ }
209
+ export interface ForLoopPathCommand {
210
+ type: "for";
211
+ variable: string;
212
+ from: number | Expression;
213
+ to: number | Expression;
214
+ step?: number | Expression;
215
+ commands: PathCommand[];
216
+ }
217
+ export declare enum TokenType {
218
+ CUBE = "CUBE",
219
+ SPHERE = "SPHERE",
220
+ CYLINDER = "CYLINDER",
221
+ CONE = "CONE",
222
+ TORUS = "TORUS",
223
+ CIRCLE = "CIRCLE",
224
+ SQUARE = "SQUARE",
225
+ POLYGON = "POLYGON",
226
+ EXTRUDE = "EXTRUDE",
227
+ LOFT = "LOFT",
228
+ LATHE = "LATHE",
229
+ FILL = "FILL",
230
+ HULL = "HULL",
231
+ GROUP = "GROUP",
232
+ PATH = "PATH",
233
+ POINT = "POINT",
234
+ CURVE = "CURVE",
235
+ DETAIL = "DETAIL",
236
+ BACKGROUND = "BACKGROUND",
237
+ TEXTURE = "TEXTURE",
238
+ UNION = "UNION",
239
+ DIFFERENCE = "DIFFERENCE",
240
+ INTERSECTION = "INTERSECTION",
241
+ XOR = "XOR",
242
+ STENCIL = "STENCIL",
243
+ FOR = "FOR",
244
+ IN = "IN",
245
+ TO = "TO",
246
+ STEP = "STEP",
247
+ IF = "IF",
248
+ ELSE = "ELSE",
249
+ SWITCH = "SWITCH",
250
+ CASE = "CASE",
251
+ DEFINE = "DEFINE",
252
+ OPTION = "OPTION",
253
+ POSITION = "POSITION",
254
+ ROTATION = "ROTATION",
255
+ ORIENTATION = "ORIENTATION",
256
+ SIZE = "SIZE",
257
+ COLOR = "COLOR",
258
+ OPACITY = "OPACITY",
259
+ ROTATE = "ROTATE",
260
+ TRANSLATE = "TRANSLATE",
261
+ SCALE = "SCALE",
262
+ NUMBER = "NUMBER",
263
+ IDENTIFIER = "IDENTIFIER",
264
+ STRING = "STRING",
265
+ PLUS = "PLUS",
266
+ MINUS = "MINUS",
267
+ STAR = "STAR",
268
+ DIVIDE = "DIVIDE",
269
+ PERCENT = "PERCENT",
270
+ LPAREN = "LPAREN",
271
+ RPAREN = "RPAREN",
272
+ LBRACKET = "LBRACKET",
273
+ RBRACKET = "RBRACKET",
274
+ DOT = "DOT",
275
+ EQUALS = "EQUALS",
276
+ NOT_EQUALS = "NOT_EQUALS",
277
+ LESS = "LESS",
278
+ LESS_EQUAL = "LESS_EQUAL",
279
+ GREATER = "GREATER",
280
+ GREATER_EQUAL = "GREATER_EQUAL",
281
+ AND = "AND",
282
+ OR = "OR",
283
+ NOT = "NOT",
284
+ LBRACE = "LBRACE",
285
+ RBRACE = "RBRACE",
286
+ COMMA = "COMMA",
287
+ SLASH = "SLASH",
288
+ NEWLINE = "NEWLINE",
289
+ EOF = "EOF",
290
+ COMMENT = "COMMENT"
291
+ }
292
+ export interface Token {
293
+ type: TokenType;
294
+ value: string | number;
295
+ line: number;
296
+ column: number;
297
+ precedingWhitespace?: boolean;
298
+ }
299
+ export declare class ParseError extends Error {
300
+ line?: number | undefined;
301
+ column?: number | undefined;
302
+ constructor(message: string, line?: number | undefined, column?: number | undefined);
303
+ }
304
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shapescript/types.ts"],"names":[],"mappings":"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"}