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

#ifndef NATIVE_EXTENSION_VTK_VTKYOUNGSMATERIALINTERFACEWRAP_H
#define NATIVE_EXTENSION_VTK_VTKYOUNGSMATERIALINTERFACEWRAP_H

#include <nan.h>

#include <vtkSmartPointer.h>
#include <vtkYoungsMaterialInterface.h>

#include "vtkMultiBlockDataSetAlgorithmWrap.h"
#include "../../plus/plus.h"

class VtkYoungsMaterialInterfaceWrap : public VtkMultiBlockDataSetAlgorithmWrap
{
	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);

		VtkYoungsMaterialInterfaceWrap(vtkSmartPointer<vtkYoungsMaterialInterface>);
		VtkYoungsMaterialInterfaceWrap();
		~VtkYoungsMaterialInterfaceWrap( );
		static Nan::Persistent<v8::FunctionTemplate> ptpl;

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

		static void AddMaterialBlockMapping(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void AxisSymetricOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void AxisSymetricOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void FillMaterialOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void FillMaterialOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetAxisSymetric(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetClassName(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetFillMaterial(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetInverseNormal(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfDomains(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfMaterials(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetOnionPeel(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetReverseMaterialOrder(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetUseAllBlocks(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetUseFractionAsDistance(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetVolumeFractionRange(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void InverseNormalOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void InverseNormalOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void IsA(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void NewInstance(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void OnionPeelOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void OnionPeelOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void RemoveAllMaterialBlockMappings(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void RemoveAllMaterials(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void ReverseMaterialOrderOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void ReverseMaterialOrderOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SafeDownCast(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetAxisSymetric(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetFillMaterial(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetInverseNormal(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetMaterialArrays(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetMaterialNormalArray(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetMaterialOrderingArray(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetMaterialVolumeFractionArray(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetNumberOfMaterials(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetOnionPeel(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetReverseMaterialOrder(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetUseAllBlocks(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetUseFractionAsDistance(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetVolumeFractionRange(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void UseAllBlocksOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void UseAllBlocksOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void UseFractionAsDistanceOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void UseFractionAsDistanceOn(const Nan::FunctionCallbackInfo<v8::Value>& info);

#ifdef VTK_NODE_PLUS_VTKYOUNGSMATERIALINTERFACEWRAP_CLASSDEF
		VTK_NODE_PLUS_VTKYOUNGSMATERIALINTERFACEWRAP_CLASSDEF
#endif
};

#endif
