-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
145 additions
and
53 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
function consLog(r){configs.log&&$.writeln(r)}function listMatchNames(r){for(var e=1;e<=r.numProperties;e++){var o=r.property(e);consLog(o.matchName+"("+o.name+")")}}function explodeLayer(r){consLog("==============\n==============");var e=r.property("Contents"),o=[];if(!(e.numProperties>configs.itemAmountWarning)||confirm("You have more than "+configs.itemAmountWarning+" elements. Execution time might be long, are you sure you want to continue ?")){_progressBar.make(1,e.numProperties,1),_progressBar.showBar();for(a=e.numProperties;a>0;a--){var t=e.property(a);if(_progressBar.setCurrent(e.numProperties-a),t.enabled){var p=emptyDuplicateLayer(r);p.name=r.name+" - "+t.name,p.enabled=!1,o.push(p),p.property("Contents").canAddProperty(t.matchName)&©Properties(t,p.property("Contents").addProperty(t.matchName),"")}}_progressBar.hideBar();for(var a=0;a<o.length;a++)o[a].enabled=!0}}function explode(){if(app.project.activeItem.selectedLayers.length>1)alert("Select a single shape layer");else{var r=app.project.activeItem.selectedLayers[0];void 0!=r&&"ADBE Vector Layer"===r.matchName?explodeLayer(r):alert("Select a shape layer")}}function emptyDuplicateLayer(r){var e=r.containingComp.layers.addShape();return copyProperty("anchorPoint",r,e),copyProperty("position",r,e),copyProperty("scale",r,e),copyProperty("rotation",r,e),copyProperty("opacity",r,e),e}function copyProperties(r,e,o){for(var t=1;t<=r.numProperties;t++){var p=r.property(t);if(!p.enabled||!e.canAddProperty(p.matchName))return;consLog(o+p.matchName);var a=e.addProperty(p.matchName);switch(p.matchName){case"ADBE Vector Filter - Merge":copyProperty("mode",p,a);break;case"ADBE Vector Materials Group":consLog(o+"-- skipped");break;case"ADBE Vector Graphic - Stroke":copyPropertyStroke(p,a);break;case"ADBE Vector Graphic - Fill":copyPropertyFill(p,a);break;case"ADBE Vector Transform Group":copyPropertyTransform(p,a);break;case"ADBE Vector Shape - Rect":copyPropertyRect(p,a);break;case"ADBE Vector Shape - Ellipse":copyPropertyEllipse(p,a);break;case"ADBE Vector Shape - Star":copyPropertyStar(p,a);break;case"ADBE Root Vectors Group":case"ADBE Vectors Group":case"ADBE Vector Group":copyProperties(p,a,o+=" ");break;case"ADBE Vector Shape - Group":copyPropertyShape(p,a);break;case"ADBE Vector Blend Mode":a.setValue(p.value)}}}function copyProperty(r,e,o){o[r].setValue(e[r].value)}function copyPropertyShape(r,e){e.property("ADBE Vector Shape").setValue(r.property("ADBE Vector Shape").value)}function copyPropertyStroke(r,e){copyProperty("composite",r,e),copyProperty("color",r,e),copyProperty("strokeWidth",r,e),copyProperty("lineCap",r,e),copyProperty("lineJoin",r,e),copyProperty("miterLimit",r,e)}function copyPropertyFill(r,e){copyProperty("composite",r,e),copyProperty("fillRule",r,e),copyProperty("color",r,e)}function copyPropertyTransform(r,e){copyProperty("anchorPoint",r,e),copyProperty("position",r,e),copyProperty("scale",r,e),copyProperty("skew",r,e),copyProperty("skewAxis",r,e),copyProperty("rotation",r,e),copyProperty("opacity",r,e)}function copyPropertyRect(r,e){copyProperty("shapeDirection",r,e),copyProperty("size",r,e),copyProperty("position",r,e),copyProperty("roundness",r,e)}function copyPropertyEllipse(r,e){copyProperty("shapeDirection",r,e),copyProperty("size",r,e),copyProperty("position",r,e)}function copyPropertyStar(r,e){copyProperty("shapeDirection",r,e),copyProperty("type",r,e),copyProperty("points",r,e),copyProperty("position",r,e),copyProperty("rotation",r,e),copyProperty("innerRadius",r,e),copyProperty("outerRadius",r,e),copyProperty("innerRoundness",r,e),copyProperty("outerRoundness",r,e)}function createUI(r){if(r instanceof Panel);else{var e=new Window("palette",configs.title,void 0,{resizeable:!0});e.show()}var o=e.add("button",[10,10,100,30],"Explode layer");return e.text=configs.title,e.bounds.width=120,e.bounds.height=40,o.onClick=function(){var r=(new Date).getTime();explode();var e=(new Date).getTime()-r;consLog("Execution time : "+Math.floor(e/1e3)+"s "+e%1e3+"ms")},e}var configs={title:"Explode layer tool",log:!0,itemAmountWarning:50};_progressBar=new Window("palette",configs.title,void 0,{resizeable:!1,borderless:"not quite true"}),_progressBar.preferredSize=[420,40],_progressBar.bar=_progressBar.add("progressbar",void 0,0,100),_progressBar.bar.value=0,_progressBar.bar.preferredSize.width=400,_progressBar.bar.show(),_progressBar.barInfos=_progressBar.add("statictext",void 0,"Loading, please wait",{justify:"center"}),_progressBar.barInfos.preferredSize=[400,17],_progressBar.make=function(r,e,o){this.barProps={min:r,max:e,current:o},this.barProps.total=this.barProps.max-this.barProps.min+1,this.barProps.step=this.barProps.current-this.barProps.min+1},_progressBar.updateBar=function(){this.bar.value=Math.round(100*this.barProps.step/this.barProps.max),consLog("Processing element "+(this.barProps.step+1)+" on "+this.barProps.total),this.barInfos.text="Processing element "+(this.barProps.step+1)+" on "+this.barProps.total},_progressBar.showBar=function(){this.show()},_progressBar.hideBar=function(){this.hide()},_progressBar.setCurrent=function(r,e){this.barProps.current=r,this.barProps.step=this.barProps.current-this.barProps.min+1,this.updateBar(),this.update()};var _panel=createUI(this); | ||
function cLog(e){configs.log&&$.writeln(e)}function cDebug(e){configs.debug&&$.writeln(e)}function listMatchNames(e){for(var r=1;r<=e.numProperties;r++){var o=e.property(r);consLog(o.matchName+"("+o.name+")")}}function ExecutionTime(){var e,r,o;this.constructor=function(){},this.start=function(){e=(new Date).getTime()},this.stop=function(){r=(new Date).getTime(),o=r-e},this.time=function(){return"Execution time : "+Math.floor(o/1e3)+"s "+o%1e3+"ms"}}function ProgressBar(e,r,o){function t(){s&&n.update()}var n,p,c,i,a,s;return this.testInfos="Processing element :current on :max",this.constructor=function(e,r,o){return _this=this,s=!1,i={min:e,max:r,current:o},a={min:0,max:100,current:0},a.max=i.max-i.min+1,n=new Window("palette",configs.title,void 0,{resizeable:!1,borderless:"not quite true"}),n.preferredSize=[420,40],p=n.add("progressbar",void 0,a.min,a.max),p.preferredSize.width=400,p.show(),c=n.add("statictext",void 0,"Loading, please wait",{justify:"center"}),c.preferredSize=[400,17],this.update(o),this},this.start=function(){s=!0,this.update(i.current),n.show()},this.end=function(){n.hide()},this.update=function(e){i.current=e,a.current=i.current+1-i.min;var r=this.testInfos.replace(":current",a.current).replace(":max",a.max);p.value=a.current,c.text=r,cDebug(r),t()},this.constructor(e,r,o)}function explodeLayer(e){cLog("Exploding layer : "+e.name);var r=e.property("Contents"),o=[];if(!(r.numProperties>configs.itemAmountWarning)||confirm("You have more than "+configs.itemAmountWarning+" elements. Execution time might be long, are you sure you want to continue ?")){var t=new ProgressBar(1,r.numProperties,1);t.start();for(c=r.numProperties;c>0;c--){var n=r.property(c);if(t.update(r.numProperties-c),n.enabled){var p=emptyDuplicateLayer(e);p.name=e.name+" - "+n.name,p.enabled=!1,p.shy=!0,o.push(p),p.property("Contents").canAddProperty(n.matchName)&©Properties(n,p.property("Contents").addProperty(n.matchName),"")}}t.end();for(var c=0;c<o.length;c++)o[c].enabled=!0,o[c].shy=!1,configs.dryRun&&o[c].remove();return o}}function explode(){if(app.project.activeItem.selectedLayers.length>1)alert("Select a single shape layer");else{var e=app.project.activeItem.selectedLayers[0];if(void 0!=e&&"ADBE Vector Layer"===e.matchName){cLog("=================="),cLog("Configs :");for(config in configs)configs.hasOwnProperty(config)&&cLog(" "+config+" : "+configs[config]);cLog("");var r=new ExecutionTime;r.start();var o=e.containingComp.hideShyLayers;e.containingComp.hideShyLayers=!0;explodeLayer(e);e.moveToBeginning(),e.containingComp.hideShyLayers=o,r.stop(),cLog(r.time())}else alert("Select a shape layer")}}function emptyDuplicateLayer(e){var r=e.containingComp.layers.addShape();return copyProperty("anchorPoint",e,r),copyProperty("position",e,r),copyProperty("scale",e,r),copyProperty("rotation",e,r),copyProperty("opacity",e,r),r}function copyProperties(e,r,o){for(var t=1;t<=e.numProperties;t++){var n=e.property(t);if(!n.enabled||!r.canAddProperty(n.matchName))return;cDebug(o+n.matchName);var p=r.addProperty(n.matchName);switch(n.matchName){case"ADBE Vector Filter - Merge":copyProperty("mode",n,p);break;case"ADBE Vector Materials Group":cDebug(o+"-- skipped");break;case"ADBE Vector Graphic - Stroke":copyPropertyStroke(n,p);break;case"ADBE Vector Graphic - Fill":copyPropertyFill(n,p);break;case"ADBE Vector Transform Group":copyPropertyTransform(n,p);break;case"ADBE Vector Shape - Rect":copyPropertyRect(n,p);break;case"ADBE Vector Shape - Ellipse":copyPropertyEllipse(n,p);break;case"ADBE Vector Shape - Star":copyPropertyStar(n,p);break;case"ADBE Root Vectors Group":case"ADBE Vectors Group":case"ADBE Vector Group":copyProperties(n,p,o+=" ");break;case"ADBE Vector Shape - Group":copyPropertyShape(n,p);break;case"ADBE Vector Blend Mode":p.setValue(n.value)}}}function copyProperty(e,r,o){o[e].setValue(r[e].value)}function copyPropertyShape(e,r){r.property("ADBE Vector Shape").setValue(e.property("ADBE Vector Shape").value)}function copyPropertyStroke(e,r){copyProperty("composite",e,r),copyProperty("color",e,r),copyProperty("strokeWidth",e,r),copyProperty("lineCap",e,r),copyProperty("lineJoin",e,r),copyProperty("miterLimit",e,r)}function copyPropertyFill(e,r){copyProperty("composite",e,r),copyProperty("fillRule",e,r),copyProperty("color",e,r)}function copyPropertyTransform(e,r){copyProperty("anchorPoint",e,r),copyProperty("position",e,r),copyProperty("scale",e,r),copyProperty("skew",e,r),copyProperty("skewAxis",e,r),copyProperty("rotation",e,r),copyProperty("opacity",e,r)}function copyPropertyRect(e,r){copyProperty("shapeDirection",e,r),copyProperty("size",e,r),copyProperty("position",e,r),copyProperty("roundness",e,r)}function copyPropertyEllipse(e,r){copyProperty("shapeDirection",e,r),copyProperty("size",e,r),copyProperty("position",e,r)}function copyPropertyStar(e,r){copyProperty("shapeDirection",e,r),copyProperty("type",e,r),copyProperty("points",e,r),copyProperty("position",e,r),copyProperty("rotation",e,r),copyProperty("innerRadius",e,r),copyProperty("outerRadius",e,r),copyProperty("innerRoundness",e,r),copyProperty("outerRoundness",e,r)}function createUI(e){if(e instanceof Panel)var r=e;else(r=new Window("palette",configs.title,void 0,{resizeable:!0})).show();var o=r.add("button",[10,10,100,30],"Explode layer");return r.bounds.width=120,r.bounds.height=40,o.onClick=function(){explode()},r}var configs={title:"Explode layer tool",debug:!1,log:!0,itemAmountWarning:50,dryRun:!1},_panel=createUI(this); |