@bitbybit-dev/base 0.20.1 → 0.20.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.
Files changed (47) hide show
  1. package/LICENSE +1 -1
  2. package/lib/api/inputs/base-inputs.d.ts +8 -0
  3. package/lib/api/inputs/index.d.ts +3 -0
  4. package/lib/api/inputs/index.js +3 -0
  5. package/lib/api/inputs/inputs.d.ts +3 -0
  6. package/lib/api/inputs/inputs.js +3 -0
  7. package/lib/api/inputs/line-inputs.d.ts +240 -0
  8. package/lib/api/inputs/line-inputs.js +247 -0
  9. package/lib/api/inputs/mesh-inputs.d.ts +82 -0
  10. package/lib/api/inputs/mesh-inputs.js +83 -0
  11. package/lib/api/inputs/point-inputs.d.ts +153 -0
  12. package/lib/api/inputs/point-inputs.js +188 -0
  13. package/lib/api/inputs/polyline-inputs.d.ts +206 -0
  14. package/lib/api/inputs/polyline-inputs.js +229 -0
  15. package/lib/api/inputs/text-inputs.d.ts +1 -1
  16. package/lib/api/inputs/transforms-inputs.d.ts +18 -0
  17. package/lib/api/inputs/transforms-inputs.js +29 -0
  18. package/lib/api/inputs/vector-inputs.d.ts +8 -0
  19. package/lib/api/inputs/vector-inputs.js +8 -0
  20. package/lib/api/models/index.d.ts +1 -0
  21. package/lib/api/models/index.js +1 -0
  22. package/lib/api/models/point/bucket.d.ts +1 -0
  23. package/lib/api/models/point/bucket.js +1 -0
  24. package/lib/api/models/point/hex-grid-data.d.ts +8 -0
  25. package/lib/api/models/point/hex-grid-data.js +2 -0
  26. package/lib/api/models/point/index.d.ts +1 -0
  27. package/lib/api/models/point/index.js +1 -0
  28. package/lib/api/services/dates.js +45 -15
  29. package/lib/api/services/index.d.ts +3 -0
  30. package/lib/api/services/index.js +3 -0
  31. package/lib/api/services/line.d.ts +149 -0
  32. package/lib/api/services/line.js +320 -0
  33. package/lib/api/services/lists.d.ts +1 -1
  34. package/lib/api/services/lists.js +1 -2
  35. package/lib/api/services/mesh.d.ts +66 -0
  36. package/lib/api/services/mesh.js +235 -0
  37. package/lib/api/services/point.d.ts +96 -1
  38. package/lib/api/services/point.js +540 -1
  39. package/lib/api/services/polyline.d.ts +149 -0
  40. package/lib/api/services/polyline.js +444 -0
  41. package/lib/api/services/transforms.d.ts +26 -1
  42. package/lib/api/services/transforms.js +66 -3
  43. package/lib/api/services/vector.d.ts +18 -0
  44. package/lib/api/services/vector.js +27 -0
  45. package/lib/api/unit-test-helper.d.ts +20 -0
  46. package/lib/api/unit-test-helper.js +130 -0
  47. package/package.json +2 -2
@@ -252,6 +252,32 @@ export declare namespace Point {
252
252
  */
253
253
  scaleXyz: Base.Vector3;
254
254
  }
255
+ class StretchPointsDirFromCenterDto {
256
+ constructor(points?: Base.Point3[], center?: Base.Point3, direction?: Base.Vector3, scale?: number);
257
+ /**
258
+ * Points to transform
259
+ * @default undefined
260
+ */
261
+ points?: Base.Point3[];
262
+ /**
263
+ * The center from which the scaling is applied
264
+ * @default [0, 0, 0]
265
+ */
266
+ center?: Base.Point3;
267
+ /**
268
+ * Stretch direction vector
269
+ * @default [0, 0, 1]
270
+ */
271
+ direction?: Base.Vector3;
272
+ /**
273
+ * The scale factor to apply along the direction vector. 1.0 means no change.
274
+ * @default 2
275
+ * @minimum -Infinity
276
+ * @maximum Infinity
277
+ * @step 0.1
278
+ */
279
+ scale?: number;
280
+ }
255
281
  class RotatePointsCenterAxisDto {
256
282
  constructor(points?: Base.Point3[], angle?: number, axis?: Base.Vector3, center?: Base.Point3);
257
283
  /**
@@ -314,6 +340,53 @@ export declare namespace Point {
314
340
  */
315
341
  reverseNormal: boolean;
316
342
  }
343
+ class ThreePointsToleranceDto {
344
+ constructor(start?: Base.Point3, center?: Base.Point3, end?: Base.Point3, tolerance?: number);
345
+ /**
346
+ * Start point
347
+ * @default undefined
348
+ */
349
+ start?: Base.Point3;
350
+ /**
351
+ * Center point
352
+ * @default undefined
353
+ */
354
+ center?: Base.Point3;
355
+ /**
356
+ * End point
357
+ * @default undefined
358
+ */
359
+ end?: Base.Point3;
360
+ /**
361
+ * Tolerance for the calculation
362
+ * @default 1e-7
363
+ * @minimum -Infinity
364
+ * @maximum Infinity
365
+ * @step 1e-7
366
+ */
367
+ tolerance: number;
368
+ }
369
+ class PointsMaxFilletsHalfLineDto {
370
+ constructor(points?: Base.Point3[], checkLastWithFirst?: boolean, tolerance?: number);
371
+ /**
372
+ * Points to transform
373
+ * @default undefined
374
+ */
375
+ points?: Base.Point3[];
376
+ /**
377
+ * Check first and last point for duplicates
378
+ * @default false
379
+ */
380
+ checkLastWithFirst?: boolean;
381
+ /**
382
+ * Tolerance for the calculation
383
+ * @default 1e-7
384
+ * @minimum -Infinity
385
+ * @maximum Infinity
386
+ * @step 1e-7
387
+ */
388
+ tolerance?: number;
389
+ }
317
390
  class RemoveConsecutiveDuplicatesDto {
318
391
  constructor(points?: Base.Point3[], tolerance?: number, checkFirstAndLast?: boolean);
319
392
  /**
@@ -347,6 +420,27 @@ export declare namespace Point {
347
420
  */
348
421
  point: Base.Point3;
349
422
  }
423
+ class TwoPointsToleranceDto {
424
+ constructor(point1?: Base.Point3, point2?: Base.Point3, tolerance?: number);
425
+ /**
426
+ * First point to compare
427
+ * @default undefined
428
+ */
429
+ point1?: Base.Point3;
430
+ /**
431
+ * Second point to compare
432
+ * @default undefined
433
+ */
434
+ point2?: Base.Point3;
435
+ /**
436
+ * Tolerance for the calculation
437
+ * @default 1e-7
438
+ * @minimum -Infinity
439
+ * @maximum Infinity
440
+ * @step 1e-7
441
+ */
442
+ tolerance?: number;
443
+ }
350
444
  class StartEndPointsDto {
351
445
  constructor(startPoint?: Base.Point3, endPoint?: Base.Point3);
352
446
  /**
@@ -429,6 +523,65 @@ export declare namespace Point {
429
523
  */
430
524
  factor: number;
431
525
  }
526
+ class HexGridScaledToFitDto {
527
+ constructor(wdith?: number, height?: number, nrHexagonsU?: number, nrHexagonsV?: number, centerGrid?: boolean, pointsOnGround?: boolean);
528
+ /** Total desired width for the grid area. The hexagon size will be derived from this and nrHexagonsU.
529
+ * @default 10
530
+ * @minimum 0
531
+ * @maximum Infinity
532
+ * @step 0.1
533
+ */
534
+ width?: number;
535
+ /** Total desired height for the grid area. Note: due to hexagon geometry, the actual grid height might differ slightly if maintaining regular hexagons based on width.
536
+ * @default 10
537
+ * @minimum 0
538
+ * @maximum Infinity
539
+ * @step 0.1
540
+ */
541
+ height?: number;
542
+ /** Number of hexagons desired in width.
543
+ * @default 10
544
+ * @minimum 0
545
+ * @maximum Infinity
546
+ * @step 1
547
+ */
548
+ nrHexagonsInWidth?: number;
549
+ /** Number of hexagons desired in height.
550
+ * @default 10
551
+ * @minimum 0
552
+ * @maximum Infinity
553
+ * @step 1
554
+ */
555
+ nrHexagonsInHeight?: number;
556
+ /** If true, the hexagons will be oriented with their flat sides facing up and down.
557
+ * @default false
558
+ */
559
+ flatTop?: boolean;
560
+ /** If true, shift the entire grid up by half hex height.
561
+ * @default false
562
+ */
563
+ extendTop?: boolean;
564
+ /** If true, shift the entire grid down by half hex height.
565
+ * @default false
566
+ */
567
+ extendBottom?: boolean;
568
+ /** If true, shift the entire grid left by half hex width.
569
+ * @default false
570
+ */
571
+ extendLeft?: boolean;
572
+ /** If true, shift the entire grid right by half hex width.
573
+ * @default false
574
+ */
575
+ extendRight?: boolean;
576
+ /** If true, the grid center (based on totalWidth/totalHeight) will be at [0,0,0].
577
+ * @default false
578
+ */
579
+ centerGrid?: boolean;
580
+ /** If true, swaps Y and Z coordinates and sets Y to 0, placing points on the XZ ground plane.
581
+ * @default false
582
+ */
583
+ pointsOnGround?: boolean;
584
+ }
432
585
  class HexGridCentersDto {
433
586
  constructor(nrHexagonsX?: number, nrHexagonsY?: number, radiusHexagon?: number, orientOnCenter?: boolean, pointsOnGround?: boolean);
434
587
  /**
@@ -296,6 +296,41 @@ export var Point;
296
296
  }
297
297
  }
298
298
  Point.ScalePointsCenterXYZDto = ScalePointsCenterXYZDto;
299
+ class StretchPointsDirFromCenterDto {
300
+ constructor(points, center, direction, scale) {
301
+ /**
302
+ * The center from which the scaling is applied
303
+ * @default [0, 0, 0]
304
+ */
305
+ this.center = [0, 0, 0];
306
+ /**
307
+ * Stretch direction vector
308
+ * @default [0, 0, 1]
309
+ */
310
+ this.direction = [0, 0, 1];
311
+ /**
312
+ * The scale factor to apply along the direction vector. 1.0 means no change.
313
+ * @default 2
314
+ * @minimum -Infinity
315
+ * @maximum Infinity
316
+ * @step 0.1
317
+ */
318
+ this.scale = 2;
319
+ if (points !== undefined) {
320
+ this.points = points;
321
+ }
322
+ if (center !== undefined) {
323
+ this.center = center;
324
+ }
325
+ if (direction !== undefined) {
326
+ this.direction = direction;
327
+ }
328
+ if (scale !== undefined) {
329
+ this.scale = scale;
330
+ }
331
+ }
332
+ }
333
+ Point.StretchPointsDirFromCenterDto = StretchPointsDirFromCenterDto;
299
334
  class RotatePointsCenterAxisDto {
300
335
  constructor(points, angle, axis, center) {
301
336
  /**
@@ -364,6 +399,58 @@ export var Point;
364
399
  }
365
400
  }
366
401
  Point.ThreePointsNormalDto = ThreePointsNormalDto;
402
+ class ThreePointsToleranceDto {
403
+ constructor(start, center, end, tolerance) {
404
+ /**
405
+ * Tolerance for the calculation
406
+ * @default 1e-7
407
+ * @minimum -Infinity
408
+ * @maximum Infinity
409
+ * @step 1e-7
410
+ */
411
+ this.tolerance = 1e-7;
412
+ if (start !== undefined) {
413
+ this.start = start;
414
+ }
415
+ if (center !== undefined) {
416
+ this.center = center;
417
+ }
418
+ if (end !== undefined) {
419
+ this.end = end;
420
+ }
421
+ if (tolerance !== undefined) {
422
+ this.tolerance = tolerance;
423
+ }
424
+ }
425
+ }
426
+ Point.ThreePointsToleranceDto = ThreePointsToleranceDto;
427
+ class PointsMaxFilletsHalfLineDto {
428
+ constructor(points, checkLastWithFirst, tolerance) {
429
+ /**
430
+ * Check first and last point for duplicates
431
+ * @default false
432
+ */
433
+ this.checkLastWithFirst = false;
434
+ /**
435
+ * Tolerance for the calculation
436
+ * @default 1e-7
437
+ * @minimum -Infinity
438
+ * @maximum Infinity
439
+ * @step 1e-7
440
+ */
441
+ this.tolerance = 1e-7;
442
+ if (points !== undefined) {
443
+ this.points = points;
444
+ }
445
+ if (checkLastWithFirst !== undefined) {
446
+ this.checkLastWithFirst = checkLastWithFirst;
447
+ }
448
+ if (tolerance !== undefined) {
449
+ this.tolerance = tolerance;
450
+ }
451
+ }
452
+ }
453
+ Point.PointsMaxFilletsHalfLineDto = PointsMaxFilletsHalfLineDto;
367
454
  class RemoveConsecutiveDuplicatesDto {
368
455
  constructor(points, tolerance, checkFirstAndLast) {
369
456
  /**
@@ -401,6 +488,28 @@ export var Point;
401
488
  }
402
489
  }
403
490
  Point.ClosestPointFromPointsDto = ClosestPointFromPointsDto;
491
+ class TwoPointsToleranceDto {
492
+ constructor(point1, point2, tolerance) {
493
+ /**
494
+ * Tolerance for the calculation
495
+ * @default 1e-7
496
+ * @minimum -Infinity
497
+ * @maximum Infinity
498
+ * @step 1e-7
499
+ */
500
+ this.tolerance = 1e-7;
501
+ if (point1 !== undefined) {
502
+ this.point1 = point1;
503
+ }
504
+ if (point2 !== undefined) {
505
+ this.point2 = point2;
506
+ }
507
+ if (tolerance !== undefined) {
508
+ this.tolerance = tolerance;
509
+ }
510
+ }
511
+ }
512
+ Point.TwoPointsToleranceDto = TwoPointsToleranceDto;
404
513
  class StartEndPointsDto {
405
514
  constructor(startPoint, endPoint) {
406
515
  if (startPoint !== undefined) {
@@ -494,6 +603,85 @@ export var Point;
494
603
  }
495
604
  }
496
605
  Point.SpiralDto = SpiralDto;
606
+ class HexGridScaledToFitDto {
607
+ constructor(wdith, height, nrHexagonsU, nrHexagonsV, centerGrid, pointsOnGround) {
608
+ /** Total desired width for the grid area. The hexagon size will be derived from this and nrHexagonsU.
609
+ * @default 10
610
+ * @minimum 0
611
+ * @maximum Infinity
612
+ * @step 0.1
613
+ */
614
+ this.width = 10;
615
+ /** Total desired height for the grid area. Note: due to hexagon geometry, the actual grid height might differ slightly if maintaining regular hexagons based on width.
616
+ * @default 10
617
+ * @minimum 0
618
+ * @maximum Infinity
619
+ * @step 0.1
620
+ */
621
+ this.height = 10;
622
+ /** Number of hexagons desired in width.
623
+ * @default 10
624
+ * @minimum 0
625
+ * @maximum Infinity
626
+ * @step 1
627
+ */
628
+ this.nrHexagonsInWidth = 10;
629
+ /** Number of hexagons desired in height.
630
+ * @default 10
631
+ * @minimum 0
632
+ * @maximum Infinity
633
+ * @step 1
634
+ */
635
+ this.nrHexagonsInHeight = 10;
636
+ /** If true, the hexagons will be oriented with their flat sides facing up and down.
637
+ * @default false
638
+ */
639
+ this.flatTop = false;
640
+ /** If true, shift the entire grid up by half hex height.
641
+ * @default false
642
+ */
643
+ this.extendTop = false;
644
+ /** If true, shift the entire grid down by half hex height.
645
+ * @default false
646
+ */
647
+ this.extendBottom = false;
648
+ /** If true, shift the entire grid left by half hex width.
649
+ * @default false
650
+ */
651
+ this.extendLeft = false;
652
+ /** If true, shift the entire grid right by half hex width.
653
+ * @default false
654
+ */
655
+ this.extendRight = false;
656
+ /** If true, the grid center (based on totalWidth/totalHeight) will be at [0,0,0].
657
+ * @default false
658
+ */
659
+ this.centerGrid = false;
660
+ /** If true, swaps Y and Z coordinates and sets Y to 0, placing points on the XZ ground plane.
661
+ * @default false
662
+ */
663
+ this.pointsOnGround = false;
664
+ if (wdith !== undefined) {
665
+ this.width = wdith;
666
+ }
667
+ if (height !== undefined) {
668
+ this.height = height;
669
+ }
670
+ if (nrHexagonsU !== undefined) {
671
+ this.nrHexagonsInHeight = nrHexagonsU;
672
+ }
673
+ if (nrHexagonsV !== undefined) {
674
+ this.nrHexagonsInWidth = nrHexagonsV;
675
+ }
676
+ if (centerGrid !== undefined) {
677
+ this.centerGrid = centerGrid;
678
+ }
679
+ if (pointsOnGround !== undefined) {
680
+ this.pointsOnGround = pointsOnGround;
681
+ }
682
+ }
683
+ }
684
+ Point.HexGridScaledToFitDto = HexGridScaledToFitDto;
497
685
  class HexGridCentersDto {
498
686
  constructor(nrHexagonsX, nrHexagonsY, radiusHexagon, orientOnCenter, pointsOnGround) {
499
687
  /**
@@ -0,0 +1,206 @@
1
+ import { Base } from "./base-inputs";
2
+ export declare namespace Polyline {
3
+ class PolylineCreateDto {
4
+ /**
5
+ * Provide options without default values
6
+ */
7
+ constructor(points?: Base.Point3[], isClosed?: boolean);
8
+ /**
9
+ * Points of the polyline
10
+ * @default undefined
11
+ */
12
+ points?: Base.Point3[];
13
+ /**
14
+ * Can contain is closed information
15
+ * @default false
16
+ */
17
+ isClosed?: boolean;
18
+ }
19
+ class PolylinePropertiesDto {
20
+ /**
21
+ * Provide options without default values
22
+ */
23
+ constructor(points?: Base.Point3[], isClosed?: boolean);
24
+ /**
25
+ * Points of the polyline
26
+ * @default undefined
27
+ */
28
+ points?: Base.Point3[];
29
+ /**
30
+ * Can contain is closed information
31
+ * @default false
32
+ */
33
+ isClosed?: boolean;
34
+ /**
35
+ * Optional polyline color
36
+ * @default #444444
37
+ */
38
+ color?: string | number[];
39
+ }
40
+ class PolylineDto {
41
+ constructor(polyline?: PolylinePropertiesDto);
42
+ /**
43
+ * Polyline with points
44
+ * @default undefined
45
+ */
46
+ polyline?: PolylinePropertiesDto;
47
+ }
48
+ class PolylinesDto {
49
+ constructor(polylines?: PolylinePropertiesDto[]);
50
+ /**
51
+ * Polylines array
52
+ * @default undefined
53
+ */
54
+ polylines?: PolylinePropertiesDto[];
55
+ }
56
+ class TransformPolylineDto {
57
+ constructor(polyline?: PolylinePropertiesDto, transformation?: Base.TransformMatrixes);
58
+ /**
59
+ * Polyline to transform
60
+ * @default undefined
61
+ */
62
+ polyline?: PolylinePropertiesDto;
63
+ /**
64
+ * Transformation matrix or a list of transformation matrixes
65
+ * @default undefined
66
+ */
67
+ transformation?: Base.TransformMatrixes;
68
+ }
69
+ class DrawPolylineDto<T> {
70
+ /**
71
+ * Provide options without default values
72
+ */
73
+ constructor(polyline?: PolylinePropertiesDto, opacity?: number, colours?: string | string[], size?: number, updatable?: boolean, polylineMesh?: T);
74
+ /**
75
+ * Polyline
76
+ * @default undefined
77
+ */
78
+ polyline?: PolylinePropertiesDto;
79
+ /**
80
+ * Value between 0 and 1
81
+ * @default 1
82
+ * @minimum 0
83
+ * @maximum 1
84
+ * @step 0.1
85
+ */
86
+ opacity?: number;
87
+ /**
88
+ * Hex colour string
89
+ * @default #444444
90
+ */
91
+ colours?: string | string[];
92
+ /**
93
+ * Width of the polyline
94
+ * @default 3
95
+ * @minimum 0
96
+ * @maximum Infinity
97
+ * @step 0.1
98
+ */
99
+ size?: number;
100
+ /**
101
+ * Indicates wether the position of this polyline will change in time
102
+ * @default false
103
+ */
104
+ updatable?: boolean;
105
+ /**
106
+ * Line mesh variable in case it already exists and needs updating
107
+ * @default undefined
108
+ */
109
+ polylineMesh?: T;
110
+ }
111
+ class DrawPolylinesDto<T> {
112
+ /**
113
+ * Provide options without default values
114
+ */
115
+ constructor(polylines?: PolylinePropertiesDto[], opacity?: number, colours?: string | string[], size?: number, updatable?: boolean, polylinesMesh?: T);
116
+ /**
117
+ * Polylines
118
+ * @default undefined
119
+ */
120
+ polylines?: PolylinePropertiesDto[];
121
+ /**
122
+ * Value between 0 and 1
123
+ * @default 1
124
+ * @minimum 0
125
+ * @maximum 1
126
+ * @step 0.1
127
+ */
128
+ opacity?: number;
129
+ /**
130
+ * Hex colour string
131
+ * @default #444444
132
+ */
133
+ colours?: string | string[];
134
+ /**
135
+ * Width of the polyline
136
+ * @default 3
137
+ * @minimum 0
138
+ * @maximum Infinity
139
+ * @step 0.1
140
+ */
141
+ size?: number;
142
+ /**
143
+ * Indicates wether the position of this polyline will change in time
144
+ * @default false
145
+ */
146
+ updatable?: boolean;
147
+ /**
148
+ * Polyline mesh variable in case it already exists and needs updating
149
+ * @default undefined
150
+ */
151
+ polylinesMesh?: T;
152
+ }
153
+ class SegmentsToleranceDto {
154
+ constructor(segments?: Base.Segment3[]);
155
+ /**
156
+ * Segments array
157
+ * @default undefined
158
+ */
159
+ segments?: Base.Segment3[];
160
+ /**
161
+ * Tolerance for the calculation
162
+ * @default 1e-5
163
+ * @minimum -Infinity
164
+ * @maximum Infinity
165
+ * @step 1e-5
166
+ */
167
+ tolerance?: number;
168
+ }
169
+ class PolylineToleranceDto {
170
+ constructor(polyline?: PolylinePropertiesDto, tolerance?: number);
171
+ /**
172
+ * Polyline to check
173
+ * @default undefined
174
+ */
175
+ polyline?: PolylinePropertiesDto;
176
+ /**
177
+ * Tolerance for the calculation
178
+ * @default 1e-5
179
+ * @minimum -Infinity
180
+ * @maximum Infinity
181
+ * @step 1e-5
182
+ */
183
+ tolerance?: number;
184
+ }
185
+ class TwoPolylinesToleranceDto {
186
+ constructor(polyline1?: PolylinePropertiesDto, polyline2?: PolylinePropertiesDto, tolerance?: number);
187
+ /**
188
+ * First polyline to check
189
+ * @default undefined
190
+ */
191
+ polyline1?: PolylinePropertiesDto;
192
+ /**
193
+ * Second polyline to check
194
+ * @default undefined
195
+ */
196
+ polyline2?: PolylinePropertiesDto;
197
+ /**
198
+ * Tolerance for the calculation
199
+ * @default 1e-5
200
+ * @minimum -Infinity
201
+ * @maximum Infinity
202
+ * @step 1e-5
203
+ */
204
+ tolerance?: number;
205
+ }
206
+ }