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

#ifndef NATIVE_EXTENSION_VTK_VTKDECIMATEPROWRAP_H
#define NATIVE_EXTENSION_VTK_VTKDECIMATEPROWRAP_H

#include <nan.h>

#include <vtkSmartPointer.h>
#include <vtkDecimatePro.h>

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

class VtkDecimateProWrap : 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);

		VtkDecimateProWrap(vtkSmartPointer<vtkDecimatePro>);
		VtkDecimateProWrap();
		~VtkDecimateProWrap( );
		static Nan::Persistent<v8::FunctionTemplate> ptpl;

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

		static void AccumulateErrorOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void AccumulateErrorOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void BoundaryVertexDeletionOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void BoundaryVertexDeletionOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetAbsoluteError(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetAbsoluteErrorMaxValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetAbsoluteErrorMinValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetAccumulateError(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetBoundaryVertexDeletion(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetDegree(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetDegreeMaxValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetDegreeMinValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetErrorIsAbsolute(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 GetInflectionPointRatio(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetInflectionPointRatioMaxValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetInflectionPointRatioMinValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetMaximumError(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetMaximumErrorMaxValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetMaximumErrorMinValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetOutputPointsPrecision(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetPreSplitMesh(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetPreserveTopology(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetSplitAngle(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetSplitAngleMaxValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetSplitAngleMinValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetSplitting(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetTargetReduction(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetTargetReductionMaxValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetTargetReductionMinValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void NewInstance(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void PreSplitMeshOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void PreSplitMeshOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void PreserveTopologyOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void PreserveTopologyOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SafeDownCast(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetAbsoluteError(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetAccumulateError(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetBoundaryVertexDeletion(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetDegree(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetErrorIsAbsolute(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetFeatureAngle(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetInflectionPointRatio(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetMaximumError(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetOutputPointsPrecision(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetPreSplitMesh(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetPreserveTopology(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetSplitAngle(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetSplitting(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetTargetReduction(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SplittingOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SplittingOn(const Nan::FunctionCallbackInfo<v8::Value>& info);

#ifdef VTK_NODE_PLUS_VTKDECIMATEPROWRAP_CLASSDEF
		VTK_NODE_PLUS_VTKDECIMATEPROWRAP_CLASSDEF
#endif
};

#endif
