Last active
December 2, 2015 23:00
-
-
Save isonno/5b330532a742a1b1739c to your computer and use it in GitHub Desktop.
Sample Spaces code to convert a shape layer to a vector mask.
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
// Take a shape specified by clipShapeID, and use it to | |
// create a vectorMask for layer clippedLayerID. | |
// Shape layer is deleted. | |
function createMaskFromShape(clipShapeID, clippedLayerID) | |
{ | |
var clipShapeDesc = {"null":{"_ref":[{"_ref":"layer","_id":clipShapeID}]}}; | |
var clippedLayerDesc = {"null":{"_ref":[{"_ref":"layer","_id":clippedLayerID}]}}; | |
var vecMaskRef = {"_ref":"path","_enum":"path","_value":"vectorMask"}; | |
var targLayerRef = {"_ref":"layer","_enum":"ordinal","_value":"targetEnum"}; | |
var targPathRef = {"_ref":"path","_enum":"ordinal","_value":"targetEnum"}; | |
var makePathDesc = {"null":{"_ref":[{"_ref":"path"}]}, | |
"from":{"_ref":[vecMaskRef, targLayerRef]}, | |
"name":"TempVectorMask"}; | |
var makeMaskDesc = {"null":{"_ref":[{"_ref":"path"}]}, | |
"at":{"_ref":[vecMaskRef]}, | |
"using":{"_ref":[targPathRef]}}; | |
var selPathDesc = {"null":{"_ref":[targPathRef]}}; | |
var targLayerDesc = {"null":{"_ref":[targLayerRef]}}; | |
var tempPathDesc = {"null":{"_ref":[{"_ref":"path", "_name":"TempVectorMask"}]}}; | |
var batchList = [{name:"select", descriptor:clipShapeDesc}, | |
{name:"make", descriptor:makePathDesc}, | |
{name:"select", descriptor:clippedLayerDesc}, | |
{name:"make", descriptor:makeMaskDesc}, | |
{name:"select", descriptor:clipShapeDesc}, | |
{name:"delete", descriptor:targLayerDesc}, | |
{name:"select", descriptor:tempPathDesc}, | |
{name:"delete", descriptor:selPathDesc}]; | |
return new Promise(function( resolve, reject ) { | |
_spaces.ps.descriptor.batchPlay( batchList, {}, | |
function( err, desc, errors ) | |
{ | |
if (err) | |
reject(errors); | |
else | |
resolve(err); | |
}); | |
}); | |
} | |
// Test; assumes layer ID 3 is the shape layer clipping layer ID 2 | |
function doMask() | |
{ | |
createMaskFromShape(3, 2).then(function() {console.log("ok")}) | |
.catch(function(err) {console.log("Fail:"+err);}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment