/* this file has been autogenerated by vtkNodeJsWrap */
/* editing this might proof futile */

#define VTK_WRAPPING_CXX
#define VTK_STREAMS_FWD_ONLY
#include <nan.h>

#include "vtkObjectWrap.h"
#include "vtkModelMetadataWrap.h"
#include "vtkObjectBaseWrap.h"
#include "vtkStringArrayWrap.h"
#include "../../plus/plus.h"

using namespace v8;

extern Nan::Persistent<v8::Object> vtkNodeJsNoWrap;
Nan::Persistent<v8::FunctionTemplate> VtkModelMetadataWrap::ptpl;

VtkModelMetadataWrap::VtkModelMetadataWrap()
{ }

VtkModelMetadataWrap::VtkModelMetadataWrap(vtkSmartPointer<vtkModelMetadata> _native)
{ native = _native; }

VtkModelMetadataWrap::~VtkModelMetadataWrap()
{ }

void VtkModelMetadataWrap::Init(v8::Local<v8::Object> exports)
{
	Nan::SetAccessor(exports, Nan::New("vtkModelMetadata").ToLocalChecked(), ConstructorGetter);
	Nan::SetAccessor(exports, Nan::New("ModelMetadata").ToLocalChecked(), ConstructorGetter);
}

void VtkModelMetadataWrap::ConstructorGetter(
	v8::Local<v8::String> property,
	const Nan::PropertyCallbackInfo<v8::Value>& info)
{
	InitPtpl();
	info.GetReturnValue().Set(Nan::New(ptpl)->GetFunction());
}

void VtkModelMetadataWrap::InitPtpl()
{
	if (!ptpl.IsEmpty()) return;
	v8::Local<v8::FunctionTemplate> tpl = Nan::New<v8::FunctionTemplate>(New);
	VtkObjectWrap::InitPtpl( );
	tpl->Inherit(Nan::New<FunctionTemplate>(VtkObjectWrap::ptpl));
	tpl->SetClassName(Nan::New("VtkModelMetadataWrap").ToLocalChecked());
	tpl->InstanceTemplate()->SetInternalFieldCount(1);

	Nan::SetPrototypeMethod(tpl, "AllVariablesDefinedInAllBlocksOff", AllVariablesDefinedInAllBlocksOff);
	Nan::SetPrototypeMethod(tpl, "allVariablesDefinedInAllBlocksOff", AllVariablesDefinedInAllBlocksOff);

	Nan::SetPrototypeMethod(tpl, "AllVariablesDefinedInAllBlocksOn", AllVariablesDefinedInAllBlocksOn);
	Nan::SetPrototypeMethod(tpl, "allVariablesDefinedInAllBlocksOn", AllVariablesDefinedInAllBlocksOn);

	Nan::SetPrototypeMethod(tpl, "FreeAllGlobalData", FreeAllGlobalData);
	Nan::SetPrototypeMethod(tpl, "freeAllGlobalData", FreeAllGlobalData);

	Nan::SetPrototypeMethod(tpl, "FreeAllLocalData", FreeAllLocalData);
	Nan::SetPrototypeMethod(tpl, "freeAllLocalData", FreeAllLocalData);

	Nan::SetPrototypeMethod(tpl, "FreeBlockDependentData", FreeBlockDependentData);
	Nan::SetPrototypeMethod(tpl, "freeBlockDependentData", FreeBlockDependentData);

	Nan::SetPrototypeMethod(tpl, "FreeOriginalElementVariableNames", FreeOriginalElementVariableNames);
	Nan::SetPrototypeMethod(tpl, "freeOriginalElementVariableNames", FreeOriginalElementVariableNames);

	Nan::SetPrototypeMethod(tpl, "FreeOriginalNodeVariableNames", FreeOriginalNodeVariableNames);
	Nan::SetPrototypeMethod(tpl, "freeOriginalNodeVariableNames", FreeOriginalNodeVariableNames);

	Nan::SetPrototypeMethod(tpl, "FreeUsedElementVariableNames", FreeUsedElementVariableNames);
	Nan::SetPrototypeMethod(tpl, "freeUsedElementVariableNames", FreeUsedElementVariableNames);

	Nan::SetPrototypeMethod(tpl, "FreeUsedElementVariables", FreeUsedElementVariables);
	Nan::SetPrototypeMethod(tpl, "freeUsedElementVariables", FreeUsedElementVariables);

	Nan::SetPrototypeMethod(tpl, "FreeUsedNodeVariableNames", FreeUsedNodeVariableNames);
	Nan::SetPrototypeMethod(tpl, "freeUsedNodeVariableNames", FreeUsedNodeVariableNames);

	Nan::SetPrototypeMethod(tpl, "FreeUsedNodeVariables", FreeUsedNodeVariables);
	Nan::SetPrototypeMethod(tpl, "freeUsedNodeVariables", FreeUsedNodeVariables);

	Nan::SetPrototypeMethod(tpl, "GetAllVariablesDefinedInAllBlocks", GetAllVariablesDefinedInAllBlocks);
	Nan::SetPrototypeMethod(tpl, "getAllVariablesDefinedInAllBlocks", GetAllVariablesDefinedInAllBlocks);

	Nan::SetPrototypeMethod(tpl, "GetDimension", GetDimension);
	Nan::SetPrototypeMethod(tpl, "getDimension", GetDimension);

	Nan::SetPrototypeMethod(tpl, "GetNodeSetNames", GetNodeSetNames);
	Nan::SetPrototypeMethod(tpl, "getNodeSetNames", GetNodeSetNames);

	Nan::SetPrototypeMethod(tpl, "GetNumberOfBlockProperties", GetNumberOfBlockProperties);
	Nan::SetPrototypeMethod(tpl, "getNumberOfBlockProperties", GetNumberOfBlockProperties);

	Nan::SetPrototypeMethod(tpl, "GetNumberOfBlocks", GetNumberOfBlocks);
	Nan::SetPrototypeMethod(tpl, "getNumberOfBlocks", GetNumberOfBlocks);

	Nan::SetPrototypeMethod(tpl, "GetNumberOfElementVariables", GetNumberOfElementVariables);
	Nan::SetPrototypeMethod(tpl, "getNumberOfElementVariables", GetNumberOfElementVariables);

	Nan::SetPrototypeMethod(tpl, "GetNumberOfGlobalVariables", GetNumberOfGlobalVariables);
	Nan::SetPrototypeMethod(tpl, "getNumberOfGlobalVariables", GetNumberOfGlobalVariables);

	Nan::SetPrototypeMethod(tpl, "GetNumberOfInformationLines", GetNumberOfInformationLines);
	Nan::SetPrototypeMethod(tpl, "getNumberOfInformationLines", GetNumberOfInformationLines);

	Nan::SetPrototypeMethod(tpl, "GetNumberOfNodeSetProperties", GetNumberOfNodeSetProperties);
	Nan::SetPrototypeMethod(tpl, "getNumberOfNodeSetProperties", GetNumberOfNodeSetProperties);

	Nan::SetPrototypeMethod(tpl, "GetNumberOfNodeSets", GetNumberOfNodeSets);
	Nan::SetPrototypeMethod(tpl, "getNumberOfNodeSets", GetNumberOfNodeSets);

	Nan::SetPrototypeMethod(tpl, "GetNumberOfNodeVariables", GetNumberOfNodeVariables);
	Nan::SetPrototypeMethod(tpl, "getNumberOfNodeVariables", GetNumberOfNodeVariables);

	Nan::SetPrototypeMethod(tpl, "GetNumberOfSideSetProperties", GetNumberOfSideSetProperties);
	Nan::SetPrototypeMethod(tpl, "getNumberOfSideSetProperties", GetNumberOfSideSetProperties);

	Nan::SetPrototypeMethod(tpl, "GetNumberOfSideSets", GetNumberOfSideSets);
	Nan::SetPrototypeMethod(tpl, "getNumberOfSideSets", GetNumberOfSideSets);

	Nan::SetPrototypeMethod(tpl, "GetNumberOfTimeSteps", GetNumberOfTimeSteps);
	Nan::SetPrototypeMethod(tpl, "getNumberOfTimeSteps", GetNumberOfTimeSteps);

	Nan::SetPrototypeMethod(tpl, "GetOriginalNumberOfElementVariables", GetOriginalNumberOfElementVariables);
	Nan::SetPrototypeMethod(tpl, "getOriginalNumberOfElementVariables", GetOriginalNumberOfElementVariables);

	Nan::SetPrototypeMethod(tpl, "GetOriginalNumberOfNodeVariables", GetOriginalNumberOfNodeVariables);
	Nan::SetPrototypeMethod(tpl, "getOriginalNumberOfNodeVariables", GetOriginalNumberOfNodeVariables);

	Nan::SetPrototypeMethod(tpl, "GetSideSetNames", GetSideSetNames);
	Nan::SetPrototypeMethod(tpl, "getSideSetNames", GetSideSetNames);

	Nan::SetPrototypeMethod(tpl, "GetSizeBlockAttributeArray", GetSizeBlockAttributeArray);
	Nan::SetPrototypeMethod(tpl, "getSizeBlockAttributeArray", GetSizeBlockAttributeArray);

	Nan::SetPrototypeMethod(tpl, "GetSumDistFactPerNodeSet", GetSumDistFactPerNodeSet);
	Nan::SetPrototypeMethod(tpl, "getSumDistFactPerNodeSet", GetSumDistFactPerNodeSet);

	Nan::SetPrototypeMethod(tpl, "GetSumDistFactPerSideSet", GetSumDistFactPerSideSet);
	Nan::SetPrototypeMethod(tpl, "getSumDistFactPerSideSet", GetSumDistFactPerSideSet);

	Nan::SetPrototypeMethod(tpl, "GetSumElementsPerBlock", GetSumElementsPerBlock);
	Nan::SetPrototypeMethod(tpl, "getSumElementsPerBlock", GetSumElementsPerBlock);

	Nan::SetPrototypeMethod(tpl, "GetSumNodesPerNodeSet", GetSumNodesPerNodeSet);
	Nan::SetPrototypeMethod(tpl, "getSumNodesPerNodeSet", GetSumNodesPerNodeSet);

	Nan::SetPrototypeMethod(tpl, "GetSumSidesPerSideSet", GetSumSidesPerSideSet);
	Nan::SetPrototypeMethod(tpl, "getSumSidesPerSideSet", GetSumSidesPerSideSet);

	Nan::SetPrototypeMethod(tpl, "GetTimeStepIndex", GetTimeStepIndex);
	Nan::SetPrototypeMethod(tpl, "getTimeStepIndex", GetTimeStepIndex);

	Nan::SetPrototypeMethod(tpl, "GetTitle", GetTitle);
	Nan::SetPrototypeMethod(tpl, "getTitle", GetTitle);

	Nan::SetPrototypeMethod(tpl, "NewInstance", NewInstance);
	Nan::SetPrototypeMethod(tpl, "newInstance", NewInstance);

	Nan::SetPrototypeMethod(tpl, "PrintGlobalInformation", PrintGlobalInformation);
	Nan::SetPrototypeMethod(tpl, "printGlobalInformation", PrintGlobalInformation);

	Nan::SetPrototypeMethod(tpl, "PrintLocalInformation", PrintLocalInformation);
	Nan::SetPrototypeMethod(tpl, "printLocalInformation", PrintLocalInformation);

	Nan::SetPrototypeMethod(tpl, "Reset", Reset);
	Nan::SetPrototypeMethod(tpl, "reset", Reset);

	Nan::SetPrototypeMethod(tpl, "SafeDownCast", SafeDownCast);
	Nan::SetPrototypeMethod(tpl, "safeDownCast", SafeDownCast);

	Nan::SetPrototypeMethod(tpl, "SetAllVariablesDefinedInAllBlocks", SetAllVariablesDefinedInAllBlocks);
	Nan::SetPrototypeMethod(tpl, "setAllVariablesDefinedInAllBlocks", SetAllVariablesDefinedInAllBlocks);

	Nan::SetPrototypeMethod(tpl, "SetNodeSetNames", SetNodeSetNames);
	Nan::SetPrototypeMethod(tpl, "setNodeSetNames", SetNodeSetNames);

	Nan::SetPrototypeMethod(tpl, "SetNumberOfBlocks", SetNumberOfBlocks);
	Nan::SetPrototypeMethod(tpl, "setNumberOfBlocks", SetNumberOfBlocks);

	Nan::SetPrototypeMethod(tpl, "SetNumberOfNodeSets", SetNumberOfNodeSets);
	Nan::SetPrototypeMethod(tpl, "setNumberOfNodeSets", SetNumberOfNodeSets);

	Nan::SetPrototypeMethod(tpl, "SetNumberOfSideSets", SetNumberOfSideSets);
	Nan::SetPrototypeMethod(tpl, "setNumberOfSideSets", SetNumberOfSideSets);

	Nan::SetPrototypeMethod(tpl, "SetSideSetNames", SetSideSetNames);
	Nan::SetPrototypeMethod(tpl, "setSideSetNames", SetSideSetNames);

	Nan::SetPrototypeMethod(tpl, "SetSumNodesPerNodeSet", SetSumNodesPerNodeSet);
	Nan::SetPrototypeMethod(tpl, "setSumNodesPerNodeSet", SetSumNodesPerNodeSet);

	Nan::SetPrototypeMethod(tpl, "SetSumSidesPerSideSet", SetSumSidesPerSideSet);
	Nan::SetPrototypeMethod(tpl, "setSumSidesPerSideSet", SetSumSidesPerSideSet);

	Nan::SetPrototypeMethod(tpl, "SetTimeStepIndex", SetTimeStepIndex);
	Nan::SetPrototypeMethod(tpl, "setTimeStepIndex", SetTimeStepIndex);

	Nan::SetPrototypeMethod(tpl, "SetTitle", SetTitle);
	Nan::SetPrototypeMethod(tpl, "setTitle", SetTitle);

#ifdef VTK_NODE_PLUS_VTKMODELMETADATAWRAP_INITPTPL
	VTK_NODE_PLUS_VTKMODELMETADATAWRAP_INITPTPL
#endif
	ptpl.Reset( tpl );
}

void VtkModelMetadataWrap::New(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	if(!info.IsConstructCall())
	{
		Nan::ThrowError("Constructor not called in a construct call.");
		return;
	}

	if(info.Length() == 0)
	{
		vtkSmartPointer<vtkModelMetadata> native = vtkSmartPointer<vtkModelMetadata>::New();
		VtkModelMetadataWrap* obj = new VtkModelMetadataWrap(native);
		obj->Wrap(info.This());
	}
	else
	{
		if(info[0]->ToObject() != vtkNodeJsNoWrap )
		{
			Nan::ThrowError("Parameter Error");
			return;
		}
	}

	info.GetReturnValue().Set(info.This());
}

void VtkModelMetadataWrap::AllVariablesDefinedInAllBlocksOff(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
		if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	native->AllVariablesDefinedInAllBlocksOff();
}

void VtkModelMetadataWrap::AllVariablesDefinedInAllBlocksOn(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
		if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	native->AllVariablesDefinedInAllBlocksOn();
}

void VtkModelMetadataWrap::FreeAllGlobalData(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
		if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	native->FreeAllGlobalData();
}

void VtkModelMetadataWrap::FreeAllLocalData(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
		if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	native->FreeAllLocalData();
}

void VtkModelMetadataWrap::FreeBlockDependentData(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
		if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	native->FreeBlockDependentData();
}

void VtkModelMetadataWrap::FreeOriginalElementVariableNames(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
		if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	native->FreeOriginalElementVariableNames();
}

void VtkModelMetadataWrap::FreeOriginalNodeVariableNames(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
		if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	native->FreeOriginalNodeVariableNames();
}

void VtkModelMetadataWrap::FreeUsedElementVariableNames(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
		if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	native->FreeUsedElementVariableNames();
}

void VtkModelMetadataWrap::FreeUsedElementVariables(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
		if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	native->FreeUsedElementVariables();
}

void VtkModelMetadataWrap::FreeUsedNodeVariableNames(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
		if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	native->FreeUsedNodeVariableNames();
}

void VtkModelMetadataWrap::FreeUsedNodeVariables(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
		if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	native->FreeUsedNodeVariables();
}

void VtkModelMetadataWrap::GetAllVariablesDefinedInAllBlocks(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetAllVariablesDefinedInAllBlocks();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetDimension(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetDimension();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetNodeSetNames(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	vtkStringArray * r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetNodeSetNames();
	VtkStringArrayWrap::InitPtpl();
	v8::Local<v8::Value> argv[1] =
		{ Nan::New(vtkNodeJsNoWrap) };
	v8::Local<v8::Function> cons =
		Nan::New<v8::FunctionTemplate>(VtkStringArrayWrap::ptpl)->GetFunction();
	v8::Local<v8::Object> wo = cons->NewInstance(1, argv);
	VtkStringArrayWrap *w = new VtkStringArrayWrap();
	w->native = r;
	w->Wrap(wo);
	info.GetReturnValue().Set(wo);
}

void VtkModelMetadataWrap::GetNumberOfBlockProperties(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetNumberOfBlockProperties();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetNumberOfBlocks(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetNumberOfBlocks();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetNumberOfElementVariables(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetNumberOfElementVariables();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetNumberOfGlobalVariables(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetNumberOfGlobalVariables();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetNumberOfInformationLines(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetNumberOfInformationLines();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetNumberOfNodeSetProperties(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetNumberOfNodeSetProperties();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetNumberOfNodeSets(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetNumberOfNodeSets();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetNumberOfNodeVariables(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetNumberOfNodeVariables();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetNumberOfSideSetProperties(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetNumberOfSideSetProperties();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetNumberOfSideSets(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetNumberOfSideSets();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetNumberOfTimeSteps(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetNumberOfTimeSteps();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetOriginalNumberOfElementVariables(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetOriginalNumberOfElementVariables();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetOriginalNumberOfNodeVariables(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetOriginalNumberOfNodeVariables();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetSideSetNames(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	vtkStringArray * r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetSideSetNames();
	VtkStringArrayWrap::InitPtpl();
	v8::Local<v8::Value> argv[1] =
		{ Nan::New(vtkNodeJsNoWrap) };
	v8::Local<v8::Function> cons =
		Nan::New<v8::FunctionTemplate>(VtkStringArrayWrap::ptpl)->GetFunction();
	v8::Local<v8::Object> wo = cons->NewInstance(1, argv);
	VtkStringArrayWrap *w = new VtkStringArrayWrap();
	w->native = r;
	w->Wrap(wo);
	info.GetReturnValue().Set(wo);
}

void VtkModelMetadataWrap::GetSizeBlockAttributeArray(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetSizeBlockAttributeArray();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetSumDistFactPerNodeSet(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetSumDistFactPerNodeSet();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetSumDistFactPerSideSet(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetSumDistFactPerSideSet();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetSumElementsPerBlock(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetSumElementsPerBlock();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetSumNodesPerNodeSet(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetSumNodesPerNodeSet();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetSumSidesPerSideSet(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetSumSidesPerSideSet();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetTimeStepIndex(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	int r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetTimeStepIndex();
	info.GetReturnValue().Set(Nan::New(r));
}

void VtkModelMetadataWrap::GetTitle(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	char const * r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->GetTitle();
	info.GetReturnValue().Set(Nan::New(r).ToLocalChecked());
}

void VtkModelMetadataWrap::NewInstance(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	vtkModelMetadata * r;
	if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	r = native->NewInstance();
	VtkModelMetadataWrap::InitPtpl();
	v8::Local<v8::Value> argv[1] =
		{ Nan::New(vtkNodeJsNoWrap) };
	v8::Local<v8::Function> cons =
		Nan::New<v8::FunctionTemplate>(VtkModelMetadataWrap::ptpl)->GetFunction();
	v8::Local<v8::Object> wo = cons->NewInstance(1, argv);
	VtkModelMetadataWrap *w = new VtkModelMetadataWrap();
	w->native = r;
	w->Wrap(wo);
	info.GetReturnValue().Set(wo);
}

void VtkModelMetadataWrap::PrintGlobalInformation(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
		if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	native->PrintGlobalInformation();
}

void VtkModelMetadataWrap::PrintLocalInformation(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
		if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	native->PrintLocalInformation();
}

void VtkModelMetadataWrap::Reset(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
		if(info.Length() != 0)
	{
		Nan::ThrowError("Too many parameters.");
		return;
	}
	native->Reset();
}

void VtkModelMetadataWrap::SafeDownCast(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	if(info.Length() > 0 && info[0]->IsObject() && (Nan::New(VtkObjectBaseWrap::ptpl))->HasInstance(info[0]))
	{
		VtkObjectBaseWrap *a0 = ObjectWrap::Unwrap<VtkObjectBaseWrap>(info[0]->ToObject());
		vtkModelMetadata * r;
		if(info.Length() != 1)
		{
			Nan::ThrowError("Too many parameters.");
			return;
		}
		r = native->SafeDownCast(
			(vtkObjectBase *) a0->native.GetPointer()
		);
		VtkModelMetadataWrap::InitPtpl();
		v8::Local<v8::Value> argv[1] =
			{ Nan::New(vtkNodeJsNoWrap) };
		v8::Local<v8::Function> cons =
			Nan::New<v8::FunctionTemplate>(VtkModelMetadataWrap::ptpl)->GetFunction();
		v8::Local<v8::Object> wo = cons->NewInstance(1, argv);
		VtkModelMetadataWrap *w = new VtkModelMetadataWrap();
		w->native = r;
		w->Wrap(wo);
		info.GetReturnValue().Set(wo);
		return;
	}
	Nan::ThrowError("Parameter mismatch");
}

void VtkModelMetadataWrap::SetAllVariablesDefinedInAllBlocks(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	if(info.Length() > 0 && info[0]->IsInt32())
	{
				if(info.Length() != 1)
		{
			Nan::ThrowError("Too many parameters.");
			return;
		}
		native->SetAllVariablesDefinedInAllBlocks(
			info[0]->Int32Value()
		);
		return;
	}
	Nan::ThrowError("Parameter mismatch");
}

void VtkModelMetadataWrap::SetNodeSetNames(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	if(info.Length() > 0 && info[0]->IsObject() && (Nan::New(VtkStringArrayWrap::ptpl))->HasInstance(info[0]))
	{
		VtkStringArrayWrap *a0 = ObjectWrap::Unwrap<VtkStringArrayWrap>(info[0]->ToObject());
				if(info.Length() != 1)
		{
			Nan::ThrowError("Too many parameters.");
			return;
		}
		native->SetNodeSetNames(
			(vtkStringArray *) a0->native.GetPointer()
		);
		return;
	}
	Nan::ThrowError("Parameter mismatch");
}

void VtkModelMetadataWrap::SetNumberOfBlocks(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	if(info.Length() > 0 && info[0]->IsInt32())
	{
				if(info.Length() != 1)
		{
			Nan::ThrowError("Too many parameters.");
			return;
		}
		native->SetNumberOfBlocks(
			info[0]->Int32Value()
		);
		return;
	}
	Nan::ThrowError("Parameter mismatch");
}

void VtkModelMetadataWrap::SetNumberOfNodeSets(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	if(info.Length() > 0 && info[0]->IsInt32())
	{
				if(info.Length() != 1)
		{
			Nan::ThrowError("Too many parameters.");
			return;
		}
		native->SetNumberOfNodeSets(
			info[0]->Int32Value()
		);
		return;
	}
	Nan::ThrowError("Parameter mismatch");
}

void VtkModelMetadataWrap::SetNumberOfSideSets(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	if(info.Length() > 0 && info[0]->IsInt32())
	{
				if(info.Length() != 1)
		{
			Nan::ThrowError("Too many parameters.");
			return;
		}
		native->SetNumberOfSideSets(
			info[0]->Int32Value()
		);
		return;
	}
	Nan::ThrowError("Parameter mismatch");
}

void VtkModelMetadataWrap::SetSideSetNames(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	if(info.Length() > 0 && info[0]->IsObject() && (Nan::New(VtkStringArrayWrap::ptpl))->HasInstance(info[0]))
	{
		VtkStringArrayWrap *a0 = ObjectWrap::Unwrap<VtkStringArrayWrap>(info[0]->ToObject());
				if(info.Length() != 1)
		{
			Nan::ThrowError("Too many parameters.");
			return;
		}
		native->SetSideSetNames(
			(vtkStringArray *) a0->native.GetPointer()
		);
		return;
	}
	Nan::ThrowError("Parameter mismatch");
}

void VtkModelMetadataWrap::SetSumNodesPerNodeSet(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	if(info.Length() > 0 && info[0]->IsInt32())
	{
				if(info.Length() != 1)
		{
			Nan::ThrowError("Too many parameters.");
			return;
		}
		native->SetSumNodesPerNodeSet(
			info[0]->Int32Value()
		);
		return;
	}
	Nan::ThrowError("Parameter mismatch");
}

void VtkModelMetadataWrap::SetSumSidesPerSideSet(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	if(info.Length() > 0 && info[0]->IsInt32())
	{
				if(info.Length() != 1)
		{
			Nan::ThrowError("Too many parameters.");
			return;
		}
		native->SetSumSidesPerSideSet(
			info[0]->Int32Value()
		);
		return;
	}
	Nan::ThrowError("Parameter mismatch");
}

void VtkModelMetadataWrap::SetTimeStepIndex(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	if(info.Length() > 0 && info[0]->IsInt32())
	{
				if(info.Length() != 1)
		{
			Nan::ThrowError("Too many parameters.");
			return;
		}
		native->SetTimeStepIndex(
			info[0]->Int32Value()
		);
		return;
	}
	Nan::ThrowError("Parameter mismatch");
}

void VtkModelMetadataWrap::SetTitle(const Nan::FunctionCallbackInfo<v8::Value>& info)
{
	VtkModelMetadataWrap *wrapper = ObjectWrap::Unwrap<VtkModelMetadataWrap>(info.Holder());
	vtkModelMetadata *native = (vtkModelMetadata *)wrapper->native.GetPointer();
	if(info.Length() > 0 && info[0]->IsString())
	{
		Nan::Utf8String a0(info[0]);
				if(info.Length() != 1)
		{
			Nan::ThrowError("Too many parameters.");
			return;
		}
		native->SetTitle(
			*a0
		);
		return;
	}
	Nan::ThrowError("Parameter mismatch");
}

