Skip to content

Instantly share code, notes, and snippets.

@isonno
Created December 22, 2015 23:05
Show Gist options
  • Save isonno/63f212d0aa7e77776fc3 to your computer and use it in GitHub Desktop.
Save isonno/63f212d0aa7e77776fc3 to your computer and use it in GitHub Desktop.
Copy a vector mask from a shape to another (non-shape) layer.
//
// Copy the vector mask from a shape to another layer.
// This takes layer names, modify as indicated below to take
// layer ID's instead.
// The shape is not deleted or modified.
function createMaskFromShape(srcShapeName, layerToClip)
{
srcLayerRef = {"_ref":"layer","_name":srcShapeName}; // Replace "_name" with "_id"
dstLayerRef = {"_ref":"layer","_name":layerToClip}; // to use layer ID's instead.
vecMaskRef = {"_ref":"path","_enum":"path","_value":"vectorMask"};
vecLayerMaskref = {"_ref":[vecMaskRef, {"_ref":"layer","_enum":"ordinal",
"_value":"targetEnum"}]};
srcLayerDesc = {"null":{"_ref":[srcLayerRef]}};
vecMaskDesc = {"null":vecLayerMaskref};
makeMaskDesc = {"null":{"_ref":[{"_ref":"path"}]},
"at":{"_ref":[vecMaskRef, dstLayerRef]},
"using":vecLayerMaskref};
var batchList = [{name:"select", descriptor:srcLayerDesc},
{name:"select", descriptor:vecMaskDesc},
{name:"make", descriptor:makeMaskDesc}];
return new Promise(function( resolve, reject ) {
_spaces.ps.descriptor.batchPlay( batchList, {},
function( err, desc, errors )
{
if (err)
reject(errors);
else
resolve(err);
});
});
}
function doMask()
{
createMaskFromShape("Shape", "Paint").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