}
				 });

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);
Beispiel #2
0
#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);
}