/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 3.0.0
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

module vtkPolyDataSilhouette;

static import vtkd_im;
static import core.stdc.config;

static import std.conv;
static import std.string;

static import std.conv;
static import std.string;
static import vtkObjectBase;
static import vtkCamera;
static import vtkProp3D;
static import SWIGTYPE_p_double;
static import vtkPolyDataAlgorithm;

class vtkPolyDataSilhouette : vtkPolyDataAlgorithm.vtkPolyDataAlgorithm {
  private void* swigCPtr;

  public this(void* cObject, bool ownCObject) {
    super(vtkd_im.vtkPolyDataSilhouette_Upcast(cObject), ownCObject);
    swigCPtr = cObject;
  }

  public static void* swigGetCPtr(vtkPolyDataSilhouette obj) {
    return (obj is null) ? null : obj.swigCPtr;
  }

  mixin vtkd_im.SwigOperatorDefinitions;

  public override void dispose() {
    synchronized(this) {
      if (swigCPtr !is null) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          throw new object.Exception("C++ destructor does not have public access");
        }
        swigCPtr = null;
        super.dispose();
      }
    }
  }

  public static vtkPolyDataSilhouette New() {
    void* cPtr = vtkd_im.vtkPolyDataSilhouette_New();
    vtkPolyDataSilhouette ret = (cPtr is null) ? null : new vtkPolyDataSilhouette(cPtr, false);
    return ret;
  }

  public static int IsTypeOf(string type) {
    auto ret = vtkd_im.vtkPolyDataSilhouette_IsTypeOf((type ? std.string.toStringz(type) : null));
    return ret;
  }

  public static vtkPolyDataSilhouette SafeDownCast(vtkObjectBase.vtkObjectBase o) {
    void* cPtr = vtkd_im.vtkPolyDataSilhouette_SafeDownCast(vtkObjectBase.vtkObjectBase.swigGetCPtr(o));
    vtkPolyDataSilhouette ret = (cPtr is null) ? null : new vtkPolyDataSilhouette(cPtr, false);
    return ret;
  }

  public vtkPolyDataSilhouette NewInstance() const {
    void* cPtr = vtkd_im.vtkPolyDataSilhouette_NewInstance(cast(void*)swigCPtr);
    vtkPolyDataSilhouette ret = (cPtr is null) ? null : new vtkPolyDataSilhouette(cPtr, false);
    return ret;
  }

  alias vtkPolyDataAlgorithm.vtkPolyDataAlgorithm.NewInstance NewInstance;

  public void SetEnableFeatureAngle(int _arg) {
    vtkd_im.vtkPolyDataSilhouette_SetEnableFeatureAngle(cast(void*)swigCPtr, _arg);
  }

  public int GetEnableFeatureAngle() {
    auto ret = vtkd_im.vtkPolyDataSilhouette_GetEnableFeatureAngle(cast(void*)swigCPtr);
    return ret;
  }

  public void SetFeatureAngle(double _arg) {
    vtkd_im.vtkPolyDataSilhouette_SetFeatureAngle(cast(void*)swigCPtr, _arg);
  }

  public double GetFeatureAngle() {
    auto ret = vtkd_im.vtkPolyDataSilhouette_GetFeatureAngle(cast(void*)swigCPtr);
    return ret;
  }

  public void SetBorderEdges(int _arg) {
    vtkd_im.vtkPolyDataSilhouette_SetBorderEdges(cast(void*)swigCPtr, _arg);
  }

  public int GetBorderEdges() {
    auto ret = vtkd_im.vtkPolyDataSilhouette_GetBorderEdges(cast(void*)swigCPtr);
    return ret;
  }

  public void BorderEdgesOn() {
    vtkd_im.vtkPolyDataSilhouette_BorderEdgesOn(cast(void*)swigCPtr);
  }

  public void BorderEdgesOff() {
    vtkd_im.vtkPolyDataSilhouette_BorderEdgesOff(cast(void*)swigCPtr);
  }

  public void SetPieceInvariant(int _arg) {
    vtkd_im.vtkPolyDataSilhouette_SetPieceInvariant(cast(void*)swigCPtr, _arg);
  }

  public int GetPieceInvariant() {
    auto ret = vtkd_im.vtkPolyDataSilhouette_GetPieceInvariant(cast(void*)swigCPtr);
    return ret;
  }

  public void PieceInvariantOn() {
    vtkd_im.vtkPolyDataSilhouette_PieceInvariantOn(cast(void*)swigCPtr);
  }

  public void PieceInvariantOff() {
    vtkd_im.vtkPolyDataSilhouette_PieceInvariantOff(cast(void*)swigCPtr);
  }

  public void SetDirection(int _arg) {
    vtkd_im.vtkPolyDataSilhouette_SetDirection(cast(void*)swigCPtr, _arg);
  }

  public int GetDirection() {
    auto ret = vtkd_im.vtkPolyDataSilhouette_GetDirection(cast(void*)swigCPtr);
    return ret;
  }

  public void SetDirectionToSpecifiedVector() {
    vtkd_im.vtkPolyDataSilhouette_SetDirectionToSpecifiedVector(cast(void*)swigCPtr);
  }

  public void SetDirectionToSpecifiedOrigin() {
    vtkd_im.vtkPolyDataSilhouette_SetDirectionToSpecifiedOrigin(cast(void*)swigCPtr);
  }

  public void SetDirectionToCameraVector() {
    vtkd_im.vtkPolyDataSilhouette_SetDirectionToCameraVector(cast(void*)swigCPtr);
  }

  public void SetDirectionToCameraOrigin() {
    vtkd_im.vtkPolyDataSilhouette_SetDirectionToCameraOrigin(cast(void*)swigCPtr);
  }

  public void SetCamera(vtkCamera.vtkCamera arg0) {
    vtkd_im.vtkPolyDataSilhouette_SetCamera(cast(void*)swigCPtr, vtkCamera.vtkCamera.swigGetCPtr(arg0));
  }

  public vtkCamera.vtkCamera GetCamera() {
    void* cPtr = vtkd_im.vtkPolyDataSilhouette_GetCamera(cast(void*)swigCPtr);
    vtkCamera.vtkCamera ret = (cPtr is null) ? null : new vtkCamera.vtkCamera(cPtr, false);
    return ret;
  }

  public void SetProp3D(vtkProp3D.vtkProp3D arg0) {
    vtkd_im.vtkPolyDataSilhouette_SetProp3D(cast(void*)swigCPtr, vtkProp3D.vtkProp3D.swigGetCPtr(arg0));
  }

  public vtkProp3D.vtkProp3D GetProp3D() {
    void* cPtr = vtkd_im.vtkPolyDataSilhouette_GetProp3D(cast(void*)swigCPtr);
    vtkProp3D.vtkProp3D ret = (cPtr is null) ? null : new vtkProp3D.vtkProp3D(cPtr, false);
    return ret;
  }

  public void SetVector(double _arg1, double _arg2, double _arg3) {
    vtkd_im.vtkPolyDataSilhouette_SetVector__SWIG_0(cast(void*)swigCPtr, _arg1, _arg2, _arg3);
  }

  public void SetVector(SWIGTYPE_p_double.SWIGTYPE_p_double _arg) {
    vtkd_im.vtkPolyDataSilhouette_SetVector__SWIG_1(cast(void*)swigCPtr, SWIGTYPE_p_double.SWIGTYPE_p_double.swigGetCPtr(_arg));
  }

  public double* GetVector() {
    auto ret = cast(double*)vtkd_im.vtkPolyDataSilhouette_GetVector__SWIG_0(cast(void*)swigCPtr);
    return ret;
  }

  public void GetVector(SWIGTYPE_p_double.SWIGTYPE_p_double data) {
    vtkd_im.vtkPolyDataSilhouette_GetVector__SWIG_1(cast(void*)swigCPtr, SWIGTYPE_p_double.SWIGTYPE_p_double.swigGetCPtr(data));
  }

  public void SetOrigin(double _arg1, double _arg2, double _arg3) {
    vtkd_im.vtkPolyDataSilhouette_SetOrigin__SWIG_0(cast(void*)swigCPtr, _arg1, _arg2, _arg3);
  }

  public void SetOrigin(SWIGTYPE_p_double.SWIGTYPE_p_double _arg) {
    vtkd_im.vtkPolyDataSilhouette_SetOrigin__SWIG_1(cast(void*)swigCPtr, SWIGTYPE_p_double.SWIGTYPE_p_double.swigGetCPtr(_arg));
  }

  public double* GetOrigin() {
    auto ret = cast(double*)vtkd_im.vtkPolyDataSilhouette_GetOrigin__SWIG_0(cast(void*)swigCPtr);
    return ret;
  }

  public void GetOrigin(SWIGTYPE_p_double.SWIGTYPE_p_double data) {
    vtkd_im.vtkPolyDataSilhouette_GetOrigin__SWIG_1(cast(void*)swigCPtr, SWIGTYPE_p_double.SWIGTYPE_p_double.swigGetCPtr(data));
  }
}
