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

#ifndef NATIVE_EXTENSION_VTK_VTKSMOOTHPOLYDATAFILTERWRAP_H
#define NATIVE_EXTENSION_VTK_VTKSMOOTHPOLYDATAFILTERWRAP_H

#include <nan.h>

#include <vtkSmartPointer.h>
#include <vtkSmoothPolyDataFilter.h>

#include "vtkPolyDataAlgorithmWrap.h"
#include "../../plus/plus.h"

class VtkSmoothPolyDataFilterWrap : public VtkPolyDataAlgorithmWrap
{
	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);

		VtkSmoothPolyDataFilterWrap(vtkSmartPointer<vtkSmoothPolyDataFilter>);
		VtkSmoothPolyDataFilterWrap();
		~VtkSmoothPolyDataFilterWrap( );
		static Nan::Persistent<v8::FunctionTemplate> ptpl;

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

		static void BoundarySmoothingOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void BoundarySmoothingOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void FeatureEdgeSmoothingOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void FeatureEdgeSmoothingOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GenerateErrorScalarsOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GenerateErrorScalarsOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GenerateErrorVectorsOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GenerateErrorVectorsOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetBoundarySmoothing(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetConvergence(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetConvergenceMaxValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetConvergenceMinValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetEdgeAngle(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetEdgeAngleMaxValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetEdgeAngleMinValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetFeatureAngle(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetFeatureAngleMaxValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetFeatureAngleMinValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetFeatureEdgeSmoothing(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetGenerateErrorScalars(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetGenerateErrorVectors(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfIterations(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfIterationsMaxValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfIterationsMinValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetOutputPointsPrecision(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetRelaxationFactor(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetSource(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void NewInstance(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SafeDownCast(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetBoundarySmoothing(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetConvergence(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetEdgeAngle(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetFeatureAngle(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetFeatureEdgeSmoothing(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetGenerateErrorScalars(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetGenerateErrorVectors(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetNumberOfIterations(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetOutputPointsPrecision(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetRelaxationFactor(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetSourceData(const Nan::FunctionCallbackInfo<v8::Value>& info);

#ifdef VTK_NODE_PLUS_VTKSMOOTHPOLYDATAFILTERWRAP_CLASSDEF
		VTK_NODE_PLUS_VTKSMOOTHPOLYDATAFILTERWRAP_CLASSDEF
#endif
};

#endif
