/* ----------------------------------------------------------------------------
 * 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 vtkSliderRepresentation3D;

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 vtkCoordinate;
static import vtkProperty;
static import SWIGTYPE_p_double;
static import vtkSliderRepresentation;

class vtkSliderRepresentation3D : vtkSliderRepresentation.vtkSliderRepresentation {
  private void* swigCPtr;

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

  public static void* swigGetCPtr(vtkSliderRepresentation3D 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 vtkSliderRepresentation3D New() {
    void* cPtr = vtkd_im.vtkSliderRepresentation3D_New();
    vtkSliderRepresentation3D ret = (cPtr is null) ? null : new vtkSliderRepresentation3D(cPtr, false);
    return ret;
  }

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

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

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

  alias vtkSliderRepresentation.vtkSliderRepresentation.NewInstance NewInstance;

  public vtkCoordinate.vtkCoordinate GetPoint1Coordinate() {
    void* cPtr = vtkd_im.vtkSliderRepresentation3D_GetPoint1Coordinate(cast(void*)swigCPtr);
    vtkCoordinate.vtkCoordinate ret = (cPtr is null) ? null : new vtkCoordinate.vtkCoordinate(cPtr, false);
    return ret;
  }

  public void SetPoint1InWorldCoordinates(double x, double y, double z) {
    vtkd_im.vtkSliderRepresentation3D_SetPoint1InWorldCoordinates(cast(void*)swigCPtr, x, y, z);
  }

  public vtkCoordinate.vtkCoordinate GetPoint2Coordinate() {
    void* cPtr = vtkd_im.vtkSliderRepresentation3D_GetPoint2Coordinate(cast(void*)swigCPtr);
    vtkCoordinate.vtkCoordinate ret = (cPtr is null) ? null : new vtkCoordinate.vtkCoordinate(cPtr, false);
    return ret;
  }

  public void SetPoint2InWorldCoordinates(double x, double y, double z) {
    vtkd_im.vtkSliderRepresentation3D_SetPoint2InWorldCoordinates(cast(void*)swigCPtr, x, y, z);
  }

  public void SetSliderShape(int _arg) {
    vtkd_im.vtkSliderRepresentation3D_SetSliderShape(cast(void*)swigCPtr, _arg);
  }

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

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

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

  public void SetSliderShapeToSphere() {
    vtkd_im.vtkSliderRepresentation3D_SetSliderShapeToSphere(cast(void*)swigCPtr);
  }

  public void SetSliderShapeToCylinder() {
    vtkd_im.vtkSliderRepresentation3D_SetSliderShapeToCylinder(cast(void*)swigCPtr);
  }

  public void SetRotation(double _arg) {
    vtkd_im.vtkSliderRepresentation3D_SetRotation(cast(void*)swigCPtr, _arg);
  }

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

  public vtkProperty.vtkProperty GetSliderProperty() {
    void* cPtr = vtkd_im.vtkSliderRepresentation3D_GetSliderProperty(cast(void*)swigCPtr);
    vtkProperty.vtkProperty ret = (cPtr is null) ? null : new vtkProperty.vtkProperty(cPtr, false);
    return ret;
  }

  public vtkProperty.vtkProperty GetTubeProperty() {
    void* cPtr = vtkd_im.vtkSliderRepresentation3D_GetTubeProperty(cast(void*)swigCPtr);
    vtkProperty.vtkProperty ret = (cPtr is null) ? null : new vtkProperty.vtkProperty(cPtr, false);
    return ret;
  }

  public vtkProperty.vtkProperty GetCapProperty() {
    void* cPtr = vtkd_im.vtkSliderRepresentation3D_GetCapProperty(cast(void*)swigCPtr);
    vtkProperty.vtkProperty ret = (cPtr is null) ? null : new vtkProperty.vtkProperty(cPtr, false);
    return ret;
  }

  public vtkProperty.vtkProperty GetSelectedProperty() {
    void* cPtr = vtkd_im.vtkSliderRepresentation3D_GetSelectedProperty(cast(void*)swigCPtr);
    vtkProperty.vtkProperty ret = (cPtr is null) ? null : new vtkProperty.vtkProperty(cPtr, false);
    return ret;
  }

  public void PlaceWidget(SWIGTYPE_p_double.SWIGTYPE_p_double bounds) {
    vtkd_im.vtkSliderRepresentation3D_PlaceWidget(cast(void*)swigCPtr, SWIGTYPE_p_double.SWIGTYPE_p_double.swigGetCPtr(bounds));
  }
}
