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

#ifndef NATIVE_EXTENSION_VTK_VTKMODELMETADATAWRAP_H
#define NATIVE_EXTENSION_VTK_VTKMODELMETADATAWRAP_H

#include <nan.h>

#include <vtkSmartPointer.h>
#include <vtkModelMetadata.h>

#include "vtkObjectWrap.h"
#include "../../plus/plus.h"

class VtkModelMetadataWrap : public VtkObjectWrap
{
	public:
		using Nan::ObjectWrap::Wrap;
		static void Init(v8::Local<v8::Object> exports);
		static void InitPtpl();
		static void ConstructorGetter(
			v8::Local<v8::String> property,
			const Nan::PropertyCallbackInfo<v8::Value>& info);

		VtkModelMetadataWrap(vtkSmartPointer<vtkModelMetadata>);
		VtkModelMetadataWrap();
		~VtkModelMetadataWrap( );
		static Nan::Persistent<v8::FunctionTemplate> ptpl;

	private:
		static void New(const Nan::FunctionCallbackInfo<v8::Value>& info);

		static void AllVariablesDefinedInAllBlocksOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void AllVariablesDefinedInAllBlocksOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void FreeAllGlobalData(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void FreeAllLocalData(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void FreeBlockDependentData(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void FreeOriginalElementVariableNames(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void FreeOriginalNodeVariableNames(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void FreeUsedElementVariableNames(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void FreeUsedElementVariables(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void FreeUsedNodeVariableNames(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void FreeUsedNodeVariables(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetAllVariablesDefinedInAllBlocks(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetDimension(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNodeSetNames(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfBlockProperties(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfBlocks(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfElementVariables(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfGlobalVariables(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfInformationLines(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfNodeSetProperties(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfNodeSets(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfNodeVariables(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfSideSetProperties(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfSideSets(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfTimeSteps(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetOriginalNumberOfElementVariables(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetOriginalNumberOfNodeVariables(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetSideSetNames(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetSizeBlockAttributeArray(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetSumDistFactPerNodeSet(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetSumDistFactPerSideSet(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetSumElementsPerBlock(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetSumNodesPerNodeSet(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetSumSidesPerSideSet(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetTimeStepIndex(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetTitle(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void NewInstance(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void PrintGlobalInformation(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void PrintLocalInformation(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void Reset(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SafeDownCast(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetAllVariablesDefinedInAllBlocks(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetNodeSetNames(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetNumberOfBlocks(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetNumberOfNodeSets(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetNumberOfSideSets(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetSideSetNames(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetSumNodesPerNodeSet(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetSumSidesPerSideSet(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetTimeStepIndex(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetTitle(const Nan::FunctionCallbackInfo<v8::Value>& info);

#ifdef VTK_NODE_PLUS_VTKMODELMETADATAWRAP_CLASSDEF
		VTK_NODE_PLUS_VTKMODELMETADATAWRAP_CLASSDEF
#endif
};

#endif
