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

#ifndef NATIVE_EXTENSION_VTK_VTKITERATIVECLOSESTPOINTTRANSFORMWRAP_H
#define NATIVE_EXTENSION_VTK_VTKITERATIVECLOSESTPOINTTRANSFORMWRAP_H

#include <nan.h>

#include <vtkSmartPointer.h>
#include <vtkIterativeClosestPointTransform.h>

#include "vtkLinearTransformWrap.h"
#include "../../plus/plus.h"

class VtkIterativeClosestPointTransformWrap : public VtkLinearTransformWrap
{
	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);

		VtkIterativeClosestPointTransformWrap(vtkSmartPointer<vtkIterativeClosestPointTransform>);
		VtkIterativeClosestPointTransformWrap();
		~VtkIterativeClosestPointTransformWrap( );
		static Nan::Persistent<v8::FunctionTemplate> ptpl;

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

		static void CheckMeanDistanceOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void CheckMeanDistanceOn(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetCheckMeanDistance(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetLandmarkTransform(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetLocator(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetMaximumMeanDistance(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetMaximumNumberOfIterations(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetMaximumNumberOfLandmarks(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetMeanDistance(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetMeanDistanceMode(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetMeanDistanceModeAsString(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetMeanDistanceModeMaxValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetMeanDistanceModeMinValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetNumberOfIterations(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetSource(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetStartByMatchingCentroids(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void GetTarget(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void Inverse(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void MakeTransform(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 SetCheckMeanDistance(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetLocator(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetMaximumMeanDistance(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetMaximumNumberOfIterations(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetMaximumNumberOfLandmarks(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetMeanDistanceMode(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetMeanDistanceModeToAbsoluteValue(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetMeanDistanceModeToRMS(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetSource(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetStartByMatchingCentroids(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void SetTarget(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void StartByMatchingCentroidsOff(const Nan::FunctionCallbackInfo<v8::Value>& info);
		static void StartByMatchingCentroidsOn(const Nan::FunctionCallbackInfo<v8::Value>& info);

#ifdef VTK_NODE_PLUS_VTKITERATIVECLOSESTPOINTTRANSFORMWRAP_CLASSDEF
		VTK_NODE_PLUS_VTKITERATIVECLOSESTPOINTTRANSFORMWRAP_CLASSDEF
#endif
};

#endif
