} }); void nodeEvent ( VuoInputData(VuoList_VuoLayer) layers, VuoInputData(VuoBoolean, {"name":"Scale to Fit", "default":true}) scaleToFit, VuoInputData(VuoPoint2d, {"default":[{"x":0,"y":0}], "suggestedStep":{"x":0.1,"y":0.1}}) center, VuoInputData(VuoReal, {"default":2.0, "suggestedMin":0.0, "suggestedStep":0.1}) width, VuoInputData(VuoInteger, {"default":2, "suggestedMin":1}) columns, VuoInputData(VuoReal, {"default":2.0, "suggestedMin":0.0, "suggestedStep":0.1}) height, VuoInputData(VuoInteger, {"default":2, "suggestedMin":1}) rows, VuoOutputData(VuoLayer) griddedLayer ) { VuoList_VuoLayer childLayers = VuoListCreate_VuoLayer(); VuoRetain(childLayers); unsigned long layerCount = VuoListGetCount_VuoLayer(layers); unsigned long currentLayer = 1; for (unsigned int y = 0; y < rows; ++y) { VuoReal yPosition = center.y + height/2 - (height / rows) * (y + .5); for (unsigned int x = 0; x < columns; ++x) { VuoReal xPosition = center.x - width/2 + (width / columns) * (x + .5); VuoLayer layer = VuoListGetValue_VuoLayer(layers, currentLayer);
#include "VuoLayer.h" VuoModuleMetadata({ "title" : "Copy Layer", "keywords" : [ "duplicate", "array", "instance", "instantiate", "populate" ], "version" : "1.0.0", "node": { "isInterface" : false } }); void nodeEvent ( VuoInputData(VuoLayer) layer, VuoInputData(VuoList_VuoTransform2d) transforms, VuoOutputData(VuoList_VuoLayer) copies ) { *copies = VuoListCreate_VuoLayer(); unsigned long transform_length = VuoListGetCount_VuoTransform2d(transforms); for(int i = 0; i < transform_length; i++) { VuoLayer o; o.sceneObject = layer.sceneObject; o.sceneObject.transform = VuoTransform_makeFrom2d(VuoListGetValueAtIndex_VuoTransform2d(transforms, i+1)); VuoListAppendValue_VuoLayer(*copies, o); } }
"title" : "Copy Layer with Transforms", "keywords" : [ "duplicate", "clone", "array", "instance", "instantiate", "populate" ], "version" : "2.0.0", "node": { "exampleCompositions" : [ ] } }); void nodeEvent ( VuoInputData(VuoLayer) layer, VuoInputData(VuoList_VuoTransform2d) transforms, VuoOutputData(VuoLayer) copies ) { VuoList_VuoLayer layers = VuoListCreate_VuoLayer(); unsigned long transform_length = VuoListGetCount_VuoTransform2d(transforms); for(int i = 0; i < transform_length; i++) { VuoLayer o; o.sceneObject = layer.sceneObject; o.sceneObject.transform = VuoTransform_makeFrom2d(VuoListGetValue_VuoTransform2d(transforms, i+1)); VuoListAppendValue_VuoLayer(layers, o); } VuoRetain(layers); *copies = VuoLayer_makeGroup(layers, VuoTransform2d_makeIdentity()); VuoRelease(layers); }