{
    "CpuGpuBundles": {
        "version": 1,
        "categories": "tutorials",
        "description": [
            "This is a tutorial node. It exercises functionality for accessing data in bundles that",
            "are on the GPU as well as bundles whose CPU/GPU location is decided at runtime. The",
            "compute looks for bundled attributes named 'points' and, if they are found, computes",
            "their dot products. If the bundle on the output contains an integer array type named",
            "'dotProducts' then the results are placed there, otherwise a new attribute of that name and",
            "type is created on the output bundle to hold the results.",
            "This node is identical to OgnTutorialCpuGpuBundlesPy.ogn, except it is implemented in C++."
        ],
        "tags": ["tutorial", "bundle", "gpu"],
        "tokens": ["points", "dotProducts"],
        "uiName": "Tutorial Node: CPU/GPU Bundles",
        "inputs": {
             "cpuBundle": {
                "type": "bundle",
                "description": "Input bundle whose data always lives on the CPU",
                "uiName": "CPU Input Bundle"
             },
             "gpuBundle": {
                 "type": "bundle",
                 "memoryType": "cuda",
                 "description": "Input bundle whose data always lives on the GPU",
                 "uiName": "GPU Input Bundle"
             },
             "gpu": {
                 "type": "bool",
                 "description": "If true then copy gpuBundle onto the output, otherwise copy cpuBundle",
                 "uiName": "Results To GPU"
             }
        },
        "outputs": {
            "cpuGpuBundle": {
                "type": "bundle",
                "memoryType": "any",
                "description": [
                    "This is the bundle with the merged data. If the 'gpu' attribute is set to true then this",
                    "bundle's contents will be entirely on the GPU, otherwise they will be on the CPU."
                ],
                "uiName": "Constructed Bundle"
             }
        }
    }
}
