kt-forpro-tools 1.0.16 → 1.0.18

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kt-forpro-tools",
3
- "version": "1.0.16",
3
+ "version": "1.0.18",
4
4
  "description": "",
5
5
  "author": "Miguel de Mendoza",
6
6
  "main": "src/index.ts",
@@ -12,8 +12,10 @@ describe("KtForproTools Tests", () => {
12
12
  // KT_ForproTools.utils.cleanNamePrecomp();
13
13
  // KT_ForproTools.utils.sendCleanupToMediaEncoder(["esp", "cat"]);
14
14
  // KT_ForproTools.utils.sendLanguagesToMediaEncoder();
15
- // KT_ForproTools.utils.sendCleanupToMediaEncoder();
15
+ KT_ForproTools.utils.sendCleanupToMediaEncoder();
16
16
  // KT_ForproTools.utils.autoPrecompAndKeyOut();
17
+ // KT_ForproTools.utils.copyMarkersToComp(app.project.activeItem as CompItem);
18
+ // KT_ForproTools.utils.copyMasksFromMasterToLayer();
17
19
  // const folder = Folder.selectDialog("Select a folder with language subfolders");
18
20
  // $.writeln("Selected folder: " + folder?.fsName);
19
21
  // KT_ForproTools.utils.precompAndKeyOut("cat");
@@ -32,7 +34,7 @@ describe("KtForproTools Tests", () => {
32
34
  // slides.import();
33
35
  // slides.splitSlides();
34
36
  // const startTime = new Date().getTime();
35
- slides.batchSplitSlides();
37
+ // slides.batchSplitSlides();
36
38
  // // slides.splitSlides();
37
39
 
38
40
  // const endTime = new Date().getTime();
@@ -43,6 +45,34 @@ describe("KtForproTools Tests", () => {
43
45
  // .concat(Math.floor(timeTaken / 60000).toFixed(0), ":")
44
46
  // .concat(((timeTaken % 60000) / 1000).toFixed(0), "s")
45
47
  // );
48
+
49
+ // const comp = app.project.activeItem as CompItem;
50
+ // const layer = comp.layers[1];
51
+ // const masks = layer.mask;
52
+ // const mask1 = masks.property(1);
53
+ // const maskShape = mask1.property("Mask Path").value;
54
+
55
+ // const layer2 = comp.layers[2];
56
+ // const masks2 = layer2.Masks.addProperty("Mask");
57
+
58
+ // var newMask = masks2.property("maskShape");
59
+ // var theShape = newMask.value;
60
+ // var inspectProps = [];
61
+ // for (let i = 1; i <= mask1.numProperties; i++) {
62
+ // inspectProps.push(mask1.property(i));
63
+ // }
64
+
65
+ // const newShape = new Shape();
66
+ // newShape.vertices = maskShape.vertices;
67
+ // newShape.inTangents = maskShape.inTangents;
68
+ // newShape.outTangents = maskShape.outTangents;
69
+ // newShape.isClosed = maskShape.isClosed;
70
+ // newMask.setValue(newShape);
71
+ // masks2.inverted = mask1.inverted;
72
+ // masks2.maskMode = mask1.maskMode;
73
+ // expect(maskShape).toBeGreaterThan(0);
74
+
75
+ // expect(maskShape).toBeGreaterThan(0);
46
76
  });
47
77
  });
48
78
 
package/src/utils.ts CHANGED
@@ -59,6 +59,7 @@ class __KT_FP_Utils {
59
59
  const parentFolder = item.parentFolder;
60
60
  const comp = KT_Project.add.compFromFootage(item, { name: itemName, parentFolder: parentFolder });
61
61
  if (comp) {
62
+ this.copyMarkersToComp(comp);
62
63
  createdComps.push(comp);
63
64
  }
64
65
  }
@@ -72,6 +73,57 @@ class __KT_FP_Utils {
72
73
  return createdComps;
73
74
  };
74
75
 
76
+ copyMasksFromMasterToLayer = (comp: CompItem = app.project.activeItem as CompItem) => {
77
+ if (!is.comp(comp)) {
78
+ return;
79
+ }
80
+ const sourceLayer = comp.layers[1];
81
+ const rootFolder = KT_Project.find.folders({ path: "//outputs" });
82
+ const targetFolders = KT_Project.find.folders({ root: rootFolder[0] as FolderItem });
83
+ //@ts-ignore
84
+
85
+ for (let i = 0; i < targetFolders.length; i++) {
86
+ const folder = targetFolders[i];
87
+ const comps = KT_Project.find.comps({ root: folder });
88
+ for (const targetComp of comps) {
89
+ if (!is.comp(targetComp) || targetComp.id === comp.id) {
90
+ continue;
91
+ }
92
+ const targetLayer = targetComp.layers[1];
93
+ this.copyMask(sourceLayer as AVLayer, targetLayer as AVLayer);
94
+ }
95
+ }
96
+ };
97
+ copyMask = (sourceLayer: AVLayer, targetLayer: AVLayer) => {
98
+ //@ts-ignore
99
+ const sourceMasks = sourceLayer.Masks;
100
+ //@ts-ignore
101
+ const targetMasks = targetLayer.Masks;
102
+ for (let i = 1; i <= sourceMasks.numProperties; i++) {
103
+ const sourceMask = sourceMasks.property(i);
104
+ const sourceMaskShape = sourceMask.property("maskShape").value;
105
+ const newMask = targetMasks.addProperty("Mask");
106
+ const newMaskShape = newMask.property("maskShape");
107
+ newMaskShape.setValue(sourceMaskShape);
108
+ newMask.maskMode = sourceMask.maskMode;
109
+ newMask.inverted = sourceMask.inverted;
110
+ }
111
+ };
112
+
113
+ copyMarkersToComp = (comp: CompItem) => {
114
+ if (!is.comp(comp)) {
115
+ return;
116
+ }
117
+ const layer = comp.layer(1);
118
+ const markers = layer.marker;
119
+ const compMarkers = comp.markerProperty;
120
+ for (let i = 1; i <= markers.numKeys; i++) {
121
+ const markerValue = markers.keyValue(i);
122
+ const markerTime = markers.keyTime(i);
123
+ compMarkers.setValueAtTime(markerTime, markerValue);
124
+ }
125
+ };
126
+
75
127
  autoPrecompAndKeyOut = () => {
76
128
  const root = KT_Project.find.folders("src");
77
129
  const folders = KT_Project.find.folders({ root: root[0] as FolderItem });
@@ -146,16 +198,11 @@ class __KT_FP_Utils {
146
198
  }
147
199
  for (const lang in items) {
148
200
  const langPath = IO.path.join(outputPath.fsName, lang);
149
- const folderCreated = IO.fs.createDirectory(langPath);
150
- const rqItems = KT_Project.render.sendToAME({
201
+ KT_Project.render.sendToAME({
151
202
  comps: items[lang],
152
203
  path: langPath,
153
204
  });
154
- if (rqItems && rqItems.length > 0) {
155
- allRQItems.push(...rqItems);
156
- }
157
205
  }
158
- return allRQItems;
159
206
  };
160
207
  }
161
208