// Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.
//
// NVIDIA CORPORATION and its licensors retain all intellectual property
// and proprietary rights in and to this software, related documentation
// and any modifications thereto.  Any use, reproduction, disclosure or
// distribution of this software and related documentation without an express
// license agreement from NVIDIA CORPORATION is strictly prohibited.
//
#include <OgnTutorialDefaultsDatabase.h>

class OgnTutorialDefaults
{
public:
    static bool compute(OgnTutorialDefaultsDatabase& db)
    {
        // Simple values
        db.outputs.a_bool() = db.inputs.a_bool();
        db.outputs.a_half() = db.inputs.a_half();
        db.outputs.a_int() = db.inputs.a_int();
        db.outputs.a_int64() = db.inputs.a_int64();
        db.outputs.a_double() = db.inputs.a_double();
        db.outputs.a_float() = db.inputs.a_float();
        db.outputs.a_uchar() = db.inputs.a_uchar();
        db.outputs.a_uint() = db.inputs.a_uint();
        db.outputs.a_uint64() = db.inputs.a_uint64();
        db.outputs.a_token() = db.inputs.a_token();
        db.outputs.a_string() = db.inputs.a_string();

        // A few representative tuples
        db.outputs.a_int2() = db.inputs.a_int2();
        db.outputs.a_matrix() = db.inputs.a_matrix();

        // And an array
        db.outputs.a_array().resize(db.inputs.a_array().size());
        db.outputs.a_array() = db.inputs.a_array();

        return true;
    }
};

REGISTER_OGN_NODE()
