@snaptrude/plugin-core 0.1.3 → 0.3.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.
@@ -9,13 +9,13 @@ import { PluginUnitsApi } from "./units";
9
9
  *
10
10
  * - {@linkcode PluginApi.core} — Math and geometry primitives
11
11
  * - {@linkcode PluginApi.entity} — CRUD operations on Snaptrude entities (spaces, stories)
12
- * - {@linkcode PluginApi.tools} — Selection, transform and material tools
12
+ * - {@linkcode PluginApi.tools} — Copy, offset, selection, material and transform tools
13
13
  * - {@linkcode PluginApi.units} — Unit conversion utilities
14
14
  */
15
15
  export declare abstract class PluginApi {
16
16
  /** Core math and geometry primitives. See {@linkcode PluginCoreApi}. */
17
17
  abstract core: PluginCoreApi;
18
- /** Selection, transform and material tools. See {@linkcode PluginToolsApi}. */
18
+ /** Copy, offset, selection, material and transform tools. See {@linkcode PluginToolsApi}. */
19
19
  abstract tools: PluginToolsApi;
20
20
  /** CRUD operations on Snaptrude entities. See {@linkcode PluginEntityApi}. */
21
21
  abstract entity: PluginEntityApi;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAExC;;;;;;;;;GASG;AACH,8BAAsB,SAAS;IAC7B,wEAAwE;IACxE,SAAgB,IAAI,EAAE,aAAa,CAAA;IACnC,+EAA+E;IAC/E,SAAgB,KAAK,EAAE,cAAc,CAAA;IACrC,8EAA8E;IAC9E,SAAgB,MAAM,EAAE,eAAe,CAAA;IACvC,iEAAiE;IACjE,SAAgB,KAAK,EAAE,cAAc,CAAA;;CAGtC;AAED,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAExC;;;;;;;;;GASG;AACH,8BAAsB,SAAS;IAC7B,wEAAwE;IACxE,SAAgB,IAAI,EAAE,aAAa,CAAA;IACnC,6FAA6F;IAC7F,SAAgB,KAAK,EAAE,cAAc,CAAA;IACrC,8EAA8E;IAC9E,SAAgB,MAAM,EAAE,eAAe,CAAA;IACvC,iEAAiE;IACjE,SAAgB,KAAK,EAAE,cAAc,CAAA;;CAGtC;AAED,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
@@ -0,0 +1,59 @@
1
+ import * as z from "zod";
2
+ import type { ComponentId } from "../../types";
3
+ /**
4
+ * Copy mode for `snaptrude.tools.copy`.
5
+ *
6
+ * | Value | Description |
7
+ * |---|---|
8
+ * | `"instance"` | Create instanced copies where possible |
9
+ * | `"unique"` | Create independent geometry copies |
10
+ */
11
+ export declare const PluginCopyMode: z.ZodEnum<{
12
+ instance: "instance";
13
+ unique: "unique";
14
+ }>;
15
+ export type PluginCopyMode = z.infer<typeof PluginCopyMode>;
16
+ /**
17
+ * Arguments for `snaptrude.tools.copy`.
18
+ *
19
+ * Creates one or more copies for each component in `componentIds`. Copy `i` is
20
+ * offset by `displacement * i`, where `i` starts at `1`. Source positions are
21
+ * preserved. In `"instance"` mode, a unique source mesh can be replaced by an
22
+ * instance at the same position so the source and copied objects remain in the
23
+ * same instance family. The created copy stack becomes the active editor
24
+ * selection, matching the native paste workflow.
25
+ *
26
+ * | Property | Type | Description |
27
+ * |---|---|---|
28
+ * | `componentIds` | `string[]` | Component IDs to copy |
29
+ * | `displacement` | {@linkcode PVec3} | Offset applied to each copy in Babylon units |
30
+ * | `count` | `number` | Number of copies per component. Defaults to `1` |
31
+ * | `copyMode` | {@linkcode PluginCopyMode} | `"instance"` or `"unique"`. Defaults to `"instance"` |
32
+ */
33
+ export declare const PluginCopyArgs: z.ZodObject<{
34
+ componentIds: z.ZodArray<z.ZodString>;
35
+ displacement: z.ZodObject<{
36
+ x: z.ZodNumber;
37
+ y: z.ZodNumber;
38
+ z: z.ZodNumber;
39
+ }, z.core.$strip>;
40
+ count: z.ZodOptional<z.ZodNumber>;
41
+ copyMode: z.ZodOptional<z.ZodEnum<{
42
+ instance: "instance";
43
+ unique: "unique";
44
+ }>>;
45
+ }, z.core.$strip>;
46
+ export type PluginCopyArgs = z.infer<typeof PluginCopyArgs>;
47
+ /**
48
+ * Result of `snaptrude.tools.copy`.
49
+ *
50
+ * Returned IDs are Snaptrude component IDs for the newly created copies, not
51
+ * Babylon mesh IDs.
52
+ */
53
+ export declare const PluginCopyResult: z.ZodObject<{
54
+ copiedIds: z.ZodArray<z.ZodString>;
55
+ }, z.core.$strip>;
56
+ export type PluginCopyResult = {
57
+ copiedIds: ComponentId[];
58
+ };
59
+ //# sourceMappingURL=copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../../src/api/tools/copy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAG9C;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc;;;EAAiC,CAAA;AAE5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;iBAKzB,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;iBAE3B,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,WAAW,EAAE,CAAA;CACzB,CAAA"}
@@ -1,11 +1,16 @@
1
1
  import { PluginMaterialApi } from "./material";
2
2
  import { PluginSelectionApi } from "./selection";
3
3
  import { PluginTransformApi } from "./transform";
4
+ import type { PluginApiReturn } from "../../types";
5
+ import type { PluginCopyArgs, PluginCopyResult } from "./copy";
6
+ import type { PluginOffsetArgs, PluginOffsetResult } from "./offset";
4
7
  /**
5
8
  * Snaptrude editor tools for querying and manipulating scene components.
6
9
  *
7
10
  * - {@linkcode PluginToolsApi.selection} — Query the current user selection
8
11
  * - {@linkcode PluginToolsApi.transform} — Move and rotate components
12
+ * - {@linkcode PluginToolsApi.copy} — Copy components
13
+ * - {@linkcode PluginToolsApi.offset} — Offset or split component profiles
9
14
  */
10
15
  export declare abstract class PluginToolsApi {
11
16
  /** Query the current selection. See {@linkcode PluginSelectionApi}. */
@@ -14,8 +19,14 @@ export declare abstract class PluginToolsApi {
14
19
  abstract transform: PluginTransformApi;
15
20
  /** Apply materials to the current user selection in the Snaptrude editor or passed component ids if any. See {@linkcode PluginMaterialApi}. */
16
21
  abstract material: PluginMaterialApi;
22
+ /** Copy components by ID. See {@linkcode PluginCopyArgs}. */
23
+ abstract copy(args: PluginCopyArgs): PluginApiReturn<PluginCopyResult>;
24
+ /** Offset or split a component profile. See {@linkcode PluginOffsetArgs}. */
25
+ abstract offset(args: PluginOffsetArgs): PluginApiReturn<PluginOffsetResult>;
17
26
  constructor();
18
27
  }
28
+ export * from "./copy";
29
+ export * from "./offset";
19
30
  export * from "./selection";
20
31
  export * from "./transform";
21
32
  export * from "./material";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD;;;;;GAKG;AACH,8BAAsB,cAAc;IAClC,uEAAuE;IACvE,SAAgB,SAAS,EAAE,kBAAkB,CAAA;IAC7C,sEAAsE;IACtE,SAAgB,SAAS,EAAE,kBAAkB,CAAA;IAC7C,+IAA+I;IAC/I,SAAgB,QAAQ,EAAE,iBAAiB,CAAA;;CAG5C;AAED,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAEpE;;;;;;;GAOG;AACH,8BAAsB,cAAc;IAClC,uEAAuE;IACvE,SAAgB,SAAS,EAAE,kBAAkB,CAAA;IAC7C,sEAAsE;IACtE,SAAgB,SAAS,EAAE,kBAAkB,CAAA;IAC7C,+IAA+I;IAC/I,SAAgB,QAAQ,EAAE,iBAAiB,CAAA;IAE3C,6DAA6D;aAC7C,IAAI,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe,CAAC,gBAAgB,CAAC;IAE7E,6EAA6E;aAC7D,MAAM,CACpB,IAAI,EAAE,gBAAgB,GACrB,eAAe,CAAC,kBAAkB,CAAC;;CAGvC;AAED,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,43 @@
1
+ import * as z from "zod";
2
+ import type { ComponentId } from "../../types";
3
+ /**
4
+ * Arguments for `snaptrude.tools.offset`.
5
+ *
6
+ * Runs Snaptrude's offset/split operation on the top profile of a scene
7
+ * component. A positive distance offsets outward from the selected profile;
8
+ * a negative distance offsets inward. If `profilePickPoint` is omitted, the
9
+ * outer top profile is used. If `profilePickPoint` is provided, the nearest top
10
+ * contour profile to that point is used, matching the interactive offset tool's
11
+ * pick behavior.
12
+ *
13
+ * | Property | Type | Description |
14
+ * |---|---|---|
15
+ * | `componentId` | `string` | Component ID to offset |
16
+ * | `distance` | `number` | Signed offset distance in Snaptrude units |
17
+ * | `profilePickPoint` | {@linkcode PVec3} | Optional point used to choose a top contour profile |
18
+ */
19
+ export declare const PluginOffsetArgs: z.ZodObject<{
20
+ componentId: z.ZodString;
21
+ distance: z.ZodNumber;
22
+ profilePickPoint: z.ZodOptional<z.ZodObject<{
23
+ x: z.ZodNumber;
24
+ y: z.ZodNumber;
25
+ z: z.ZodNumber;
26
+ }, z.core.$strip>>;
27
+ }, z.core.$strip>;
28
+ export type PluginOffsetArgs = z.infer<typeof PluginOffsetArgs>;
29
+ /**
30
+ * Result of `snaptrude.tools.offset`.
31
+ *
32
+ * `createdIds` are the components created by the offset operation. `deletedIds`
33
+ * are components removed by split-style offsets.
34
+ */
35
+ export declare const PluginOffsetResult: z.ZodObject<{
36
+ createdIds: z.ZodArray<z.ZodString>;
37
+ deletedIds: z.ZodArray<z.ZodString>;
38
+ }, z.core.$strip>;
39
+ export type PluginOffsetResult = {
40
+ createdIds: ComponentId[];
41
+ deletedIds: ComponentId[];
42
+ };
43
+ //# sourceMappingURL=offset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offset.d.ts","sourceRoot":"","sources":["../../../src/api/tools/offset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAG9C;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;iBAI3B,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,WAAW,EAAE,CAAA;IACzB,UAAU,EAAE,WAAW,EAAE,CAAA;CAC1B,CAAA"}
package/dist/index.cjs CHANGED
@@ -39,6 +39,9 @@ __export(index_exports, {
39
39
  PVec3: () => PVec3,
40
40
  PluginApi: () => PluginApi,
41
41
  PluginArcApi: () => PluginArcApi,
42
+ PluginCopyArgs: () => PluginCopyArgs,
43
+ PluginCopyMode: () => PluginCopyMode,
44
+ PluginCopyResult: () => PluginCopyResult,
42
45
  PluginCoreApi: () => PluginCoreApi,
43
46
  PluginCurveApi: () => PluginCurveApi,
44
47
  PluginDepartmentApi: () => PluginDepartmentApi,
@@ -55,6 +58,8 @@ __export(index_exports, {
55
58
  PluginMaterialArgs: () => PluginMaterialArgs,
56
59
  PluginMathApi: () => PluginMathApi,
57
60
  PluginMoveArgs: () => PluginMoveArgs,
61
+ PluginOffsetArgs: () => PluginOffsetArgs,
62
+ PluginOffsetResult: () => PluginOffsetResult,
58
63
  PluginProfileApi: () => PluginProfileApi,
59
64
  PluginProfileFromLinePointsArgs: () => PluginProfileFromLinePointsArgs,
60
65
  PluginQuatApi: () => PluginQuatApi,
@@ -122,8 +127,8 @@ var PluginVec3Api = class {
122
127
  * // { x: 1, y: 2, z: 3 }
123
128
  * ```
124
129
  */
125
- new(x, y, z15) {
126
- return { x, y, z: z15 };
130
+ new(x, y, z17) {
131
+ return { x, y, z: z17 };
127
132
  }
128
133
  /**
129
134
  * Add two vectors component-wise.
@@ -301,8 +306,8 @@ var PluginQuatApi = class {
301
306
  * @param w - The W (scalar) component
302
307
  * @returns A new {@linkcode PQuat}
303
308
  */
304
- new(x, y, z15, w) {
305
- return { x, y, z: z15, w };
309
+ new(x, y, z17, w) {
310
+ return { x, y, z: z17, w };
306
311
  }
307
312
  /**
308
313
  * Create an identity quaternion representing no rotation.
@@ -346,13 +351,13 @@ var PluginQuatApi = class {
346
351
  * @param z - Rotation around Z axis in **radians**
347
352
  * @returns A new {@linkcode PQuat}
348
353
  */
349
- fromEuler(x, y, z15) {
354
+ fromEuler(x, y, z17) {
350
355
  const cx = Math.cos(x / 2);
351
356
  const sx = Math.sin(x / 2);
352
357
  const cy = Math.cos(y / 2);
353
358
  const sy = Math.sin(y / 2);
354
- const cz = Math.cos(z15 / 2);
355
- const sz = Math.sin(z15 / 2);
359
+ const cz = Math.cos(z17 / 2);
360
+ const sz = Math.sin(z17 / 2);
356
361
  return {
357
362
  x: sx * cy * cz + cx * sy * sz,
358
363
  y: cx * sy * cz - sx * cy * sz,
@@ -934,35 +939,60 @@ var PluginEntityApi = class {
934
939
  }
935
940
  };
936
941
 
937
- // src/api/tools/selection.ts
942
+ // src/api/tools/copy.ts
938
943
  var z11 = __toESM(require("zod"), 1);
944
+ var PluginCopyMode = z11.enum(["instance", "unique"]);
945
+ var PluginCopyArgs = z11.object({
946
+ componentIds: z11.array(z11.string()).min(1),
947
+ displacement: PVec3,
948
+ count: z11.number().int().positive().optional(),
949
+ copyMode: PluginCopyMode.optional()
950
+ });
951
+ var PluginCopyResult = z11.object({
952
+ copiedIds: z11.array(z11.string())
953
+ });
954
+
955
+ // src/api/tools/offset.ts
956
+ var z12 = __toESM(require("zod"), 1);
957
+ var PluginOffsetArgs = z12.object({
958
+ componentId: z12.string().min(1),
959
+ distance: z12.number(),
960
+ profilePickPoint: PVec3.optional()
961
+ });
962
+ var PluginOffsetResult = z12.object({
963
+ createdIds: z12.array(z12.string()),
964
+ deletedIds: z12.array(z12.string())
965
+ });
966
+
967
+ // src/api/tools/selection.ts
968
+ var z13 = __toESM(require("zod"), 1);
939
969
  var PluginSelectionApi = class {
940
970
  constructor() {
941
971
  }
942
972
  };
943
- var PluginSelectionGetResult = z11.object({
944
- selected: z11.array(z11.string())
973
+ var PluginSelectionGetResult = z13.object({
974
+ selected: z13.array(z13.string())
945
975
  });
946
976
 
947
977
  // src/api/tools/transform.ts
948
- var z12 = __toESM(require("zod"), 1);
978
+ var z14 = __toESM(require("zod"), 1);
949
979
  var PluginTransformApi = class {
950
980
  constructor() {
951
981
  }
952
982
  };
953
- var PluginMoveArgs = z12.object({
954
- componentIds: z12.array(z12.string()),
983
+ var PluginMoveArgs = z14.object({
984
+ componentIds: z14.array(z14.string()),
955
985
  displacement: PVec3
956
986
  });
957
- var PluginRotateArgs = z12.object({
958
- componentIds: z12.array(z12.string()),
959
- angle: z12.number(),
987
+ var PluginRotateArgs = z14.object({
988
+ componentIds: z14.array(z14.string()),
989
+ angle: z14.number(),
960
990
  axis: PVec3,
961
991
  pivot: PVec3
962
992
  });
963
993
 
964
994
  // src/api/tools/material.ts
965
- var z13 = __toESM(require("zod"), 1);
995
+ var z15 = __toESM(require("zod"), 1);
966
996
  var PluginMaterialApi = class {
967
997
  constructor() {
968
998
  }
@@ -977,9 +1007,9 @@ var DEFAULT_MATERIALS = /* @__PURE__ */ ((DEFAULT_MATERIALS2) => {
977
1007
  DEFAULT_MATERIALS2["BRICK"] = "brick";
978
1008
  return DEFAULT_MATERIALS2;
979
1009
  })(DEFAULT_MATERIALS || {});
980
- var PluginMaterialArgs = z13.object({
981
- materialName: z13.enum(Object.values(DEFAULT_MATERIALS)),
982
- componentIds: z13.array(z13.string())
1010
+ var PluginMaterialArgs = z15.object({
1011
+ materialName: z15.enum(Object.values(DEFAULT_MATERIALS)),
1012
+ componentIds: z15.array(z15.string())
983
1013
  });
984
1014
 
985
1015
  // src/api/tools/index.ts
@@ -989,12 +1019,12 @@ var PluginToolsApi = class {
989
1019
  };
990
1020
 
991
1021
  // src/api/units/index.ts
992
- var z14 = __toESM(require("zod"), 1);
1022
+ var z16 = __toESM(require("zod"), 1);
993
1023
  var PluginUnitsApi = class {
994
1024
  constructor() {
995
1025
  }
996
1026
  };
997
- var PUnitType = z14.enum([
1027
+ var PUnitType = z16.enum([
998
1028
  "meters",
999
1029
  "feet-inches",
1000
1030
  "inches",
@@ -1003,21 +1033,21 @@ var PUnitType = z14.enum([
1003
1033
  "kilometers",
1004
1034
  "miles"
1005
1035
  ]);
1006
- var PluginUnitsConvertFromArgs = z14.object({
1036
+ var PluginUnitsConvertFromArgs = z16.object({
1007
1037
  unit: PUnitType,
1008
- value: z14.number(),
1009
- degree: z14.number().int().min(1).max(3).optional()
1038
+ value: z16.number(),
1039
+ degree: z16.number().int().min(1).max(3).optional()
1010
1040
  });
1011
- var PluginUnitsConvertFromResult = z14.object({
1012
- value: z14.number()
1041
+ var PluginUnitsConvertFromResult = z16.object({
1042
+ value: z16.number()
1013
1043
  });
1014
- var PluginUnitsConvertToArgs = z14.object({
1044
+ var PluginUnitsConvertToArgs = z16.object({
1015
1045
  unit: PUnitType,
1016
- value: z14.number(),
1017
- degree: z14.number().int().min(1).max(3).optional()
1046
+ value: z16.number(),
1047
+ degree: z16.number().int().min(1).max(3).optional()
1018
1048
  });
1019
- var PluginUnitsConvertToResult = z14.object({
1020
- value: z14.number()
1049
+ var PluginUnitsConvertToResult = z16.object({
1050
+ value: z16.number()
1021
1051
  });
1022
1052
 
1023
1053
  // src/api/index.ts
@@ -1036,6 +1066,9 @@ var PluginApi = class {
1036
1066
  PVec3,
1037
1067
  PluginApi,
1038
1068
  PluginArcApi,
1069
+ PluginCopyArgs,
1070
+ PluginCopyMode,
1071
+ PluginCopyResult,
1039
1072
  PluginCoreApi,
1040
1073
  PluginCurveApi,
1041
1074
  PluginDepartmentApi,
@@ -1052,6 +1085,8 @@ var PluginApi = class {
1052
1085
  PluginMaterialArgs,
1053
1086
  PluginMathApi,
1054
1087
  PluginMoveArgs,
1088
+ PluginOffsetArgs,
1089
+ PluginOffsetResult,
1055
1090
  PluginProfileApi,
1056
1091
  PluginProfileFromLinePointsArgs,
1057
1092
  PluginQuatApi,