Skip to content

Instantly share code, notes, and snippets.

@isonno
Last active December 2, 2015 23:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save isonno/5b330532a742a1b1739c to your computer and use it in GitHub Desktop.
Save isonno/5b330532a742a1b1739c to your computer and use it in GitHub Desktop.
Sample Spaces code to convert a shape layer to a vector mask.
// 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