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


using System;
using System.Runtime.InteropServices;

public class OBAtom : OBBase {
  private HandleRef swigCPtr;

  internal OBAtom(IntPtr cPtr, bool cMemoryOwn) : base(openbabelPINVOKE.OBAtomUpcast(cPtr), cMemoryOwn) {
    swigCPtr = new HandleRef(this, cPtr);
  }

  internal static HandleRef getCPtr(OBAtom obj) {
    return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
  }

  ~OBAtom() {
    Dispose();
  }

  public override void Dispose() {
    lock(this) {
      if(swigCPtr.Handle != IntPtr.Zero && swigCMemOwn) {
        swigCMemOwn = false;
        openbabelPINVOKE.delete_OBAtom(swigCPtr);
      }
      swigCPtr = new HandleRef(null, IntPtr.Zero);
      GC.SuppressFinalize(this);
      base.Dispose();
    }
  }

  public bool Visit {
    set {
      openbabelPINVOKE.OBAtom_Visit_set(swigCPtr, value);
    } 
    get {
      bool ret = openbabelPINVOKE.OBAtom_Visit_get(swigCPtr);
      return ret;
    } 
  }

  public OBAtom() : this(openbabelPINVOKE.new_OBAtom(), true) {
  }

  public void Duplicate(OBAtom arg0) {
    openbabelPINVOKE.OBAtom_Duplicate(swigCPtr, OBAtom.getCPtr(arg0));
  }

  public void SetIdx(int idx) {
    openbabelPINVOKE.OBAtom_SetIdx(swigCPtr, idx);
  }

  public void SetHyb(int hyb) {
    openbabelPINVOKE.OBAtom_SetHyb(swigCPtr, hyb);
  }

  public void SetAtomicNum(int atomicnum) {
    openbabelPINVOKE.OBAtom_SetAtomicNum(swigCPtr, atomicnum);
  }

  public void SetIsotope(uint iso) {
    openbabelPINVOKE.OBAtom_SetIsotope(swigCPtr, iso);
  }

  public void SetImplicitValence(int val) {
    openbabelPINVOKE.OBAtom_SetImplicitValence(swigCPtr, val);
  }

  public void IncrementImplicitValence() {
    openbabelPINVOKE.OBAtom_IncrementImplicitValence(swigCPtr);
  }

  public void DecrementImplicitValence() {
    openbabelPINVOKE.OBAtom_DecrementImplicitValence(swigCPtr);
  }

  public void SetFormalCharge(int fcharge) {
    openbabelPINVOKE.OBAtom_SetFormalCharge(swigCPtr, fcharge);
  }

  public void SetSpinMultiplicity(short spin) {
    openbabelPINVOKE.OBAtom_SetSpinMultiplicity(swigCPtr, spin);
  }

  public void SetType(string type) {
    openbabelPINVOKE.OBAtom_SetType__SWIG_0(swigCPtr, type);
  }

  public void SetPartialCharge(double pcharge) {
    openbabelPINVOKE.OBAtom_SetPartialCharge(swigCPtr, pcharge);
  }

  public void SetVector(vector3 v) {
    openbabelPINVOKE.OBAtom_SetVector__SWIG_0(swigCPtr, vector3.getCPtr(v));
    if (openbabelPINVOKE.SWIGPendingException.Pending) throw openbabelPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetVector(double x, double y, double z) {
    openbabelPINVOKE.OBAtom_SetVector__SWIG_1(swigCPtr, x, y, z);
  }

  public void SetCoordPtr(SWIGTYPE_p_p_double c) {
    openbabelPINVOKE.OBAtom_SetCoordPtr(swigCPtr, SWIGTYPE_p_p_double.getCPtr(c));
  }

  public void SetVector() {
    openbabelPINVOKE.OBAtom_SetVector__SWIG_2(swigCPtr);
  }

  public void SetResidue(OBResidue res) {
    openbabelPINVOKE.OBAtom_SetResidue(swigCPtr, OBResidue.getCPtr(res));
  }

  public void SetParent(OBMol ptr) {
    openbabelPINVOKE.OBAtom_SetParent(swigCPtr, OBMol.getCPtr(ptr));
  }

  public void SetAromatic() {
    openbabelPINVOKE.OBAtom_SetAromatic(swigCPtr);
  }

  public void UnsetAromatic() {
    openbabelPINVOKE.OBAtom_UnsetAromatic(swigCPtr);
  }

  public void SetClockwiseStereo() {
    openbabelPINVOKE.OBAtom_SetClockwiseStereo(swigCPtr);
  }

  public void SetAntiClockwiseStereo() {
    openbabelPINVOKE.OBAtom_SetAntiClockwiseStereo(swigCPtr);
  }

  public void SetPositiveStereo() {
    openbabelPINVOKE.OBAtom_SetPositiveStereo(swigCPtr);
  }

  public void SetNegativeStereo() {
    openbabelPINVOKE.OBAtom_SetNegativeStereo(swigCPtr);
  }

  public void UnsetStereo() {
    openbabelPINVOKE.OBAtom_UnsetStereo(swigCPtr);
  }

  public void SetInRing() {
    openbabelPINVOKE.OBAtom_SetInRing(swigCPtr);
  }

  public void SetChiral() {
    openbabelPINVOKE.OBAtom_SetChiral(swigCPtr);
  }

  public void ClearCoordPtr() {
    openbabelPINVOKE.OBAtom_ClearCoordPtr(swigCPtr);
  }

  public int GetFormalCharge() {
    int ret = openbabelPINVOKE.OBAtom_GetFormalCharge(swigCPtr);
    return ret;
  }

  public uint GetAtomicNum() {
    uint ret = openbabelPINVOKE.OBAtom_GetAtomicNum(swigCPtr);
    return ret;
  }

  public ushort GetIsotope() {
    ushort ret = openbabelPINVOKE.OBAtom_GetIsotope(swigCPtr);
    return ret;
  }

  public int GetSpinMultiplicity() {
    int ret = openbabelPINVOKE.OBAtom_GetSpinMultiplicity(swigCPtr);
    return ret;
  }

  public double GetAtomicMass() {
    double ret = openbabelPINVOKE.OBAtom_GetAtomicMass(swigCPtr);
    return ret;
  }

  public double GetExactMass() {
    double ret = openbabelPINVOKE.OBAtom_GetExactMass(swigCPtr);
    return ret;
  }

  public uint GetIdx() {
    uint ret = openbabelPINVOKE.OBAtom_GetIdx(swigCPtr);
    return ret;
  }

  public uint GetCoordinateIdx() {
    uint ret = openbabelPINVOKE.OBAtom_GetCoordinateIdx(swigCPtr);
    return ret;
  }

  public uint GetCIdx() {
    uint ret = openbabelPINVOKE.OBAtom_GetCIdx(swigCPtr);
    return ret;
  }

  public uint GetValence() {
    uint ret = openbabelPINVOKE.OBAtom_GetValence(swigCPtr);
    return ret;
  }

  public uint GetHyb() {
    uint ret = openbabelPINVOKE.OBAtom_GetHyb(swigCPtr);
    return ret;
  }

  public uint GetImplicitValence() {
    uint ret = openbabelPINVOKE.OBAtom_GetImplicitValence(swigCPtr);
    return ret;
  }

  public uint GetHvyValence() {
    uint ret = openbabelPINVOKE.OBAtom_GetHvyValence(swigCPtr);
    return ret;
  }

  public uint GetHeteroValence() {
    uint ret = openbabelPINVOKE.OBAtom_GetHeteroValence(swigCPtr);
    return ret;
  }

  public string GetType() {
    string ret = openbabelPINVOKE.OBAtom_GetType(swigCPtr);
    return ret;
  }

  public double GetX() {
    double ret = openbabelPINVOKE.OBAtom_GetX(swigCPtr);
    return ret;
  }

  public double GetY() {
    double ret = openbabelPINVOKE.OBAtom_GetY(swigCPtr);
    return ret;
  }

  public double GetZ() {
    double ret = openbabelPINVOKE.OBAtom_GetZ(swigCPtr);
    return ret;
  }

  public double x() {
    double ret = openbabelPINVOKE.OBAtom_x(swigCPtr);
    return ret;
  }

  public double y() {
    double ret = openbabelPINVOKE.OBAtom_y(swigCPtr);
    return ret;
  }

  public double z() {
    double ret = openbabelPINVOKE.OBAtom_z(swigCPtr);
    return ret;
  }

  public SWIGTYPE_p_double GetCoordinate() {
    IntPtr cPtr = openbabelPINVOKE.OBAtom_GetCoordinate(swigCPtr);
    SWIGTYPE_p_double ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_double(cPtr, false);
    return ret;
  }

  public vector3 GetVector() {
    vector3 ret = new vector3(openbabelPINVOKE.OBAtom_GetVector__SWIG_0(swigCPtr), false);
    return ret;
  }

  public double GetPartialCharge() {
    double ret = openbabelPINVOKE.OBAtom_GetPartialCharge(swigCPtr);
    return ret;
  }

  public OBResidue GetResidue() {
    IntPtr cPtr = openbabelPINVOKE.OBAtom_GetResidue__SWIG_0(swigCPtr);
    OBResidue ret = (cPtr == IntPtr.Zero) ? null : new OBResidue(cPtr, false);
    return ret;
  }

  public OBResidue GetResidue(bool perception) {
    IntPtr cPtr = openbabelPINVOKE.OBAtom_GetResidue__SWIG_1(swigCPtr, perception);
    OBResidue ret = (cPtr == IntPtr.Zero) ? null : new OBResidue(cPtr, false);
    return ret;
  }

  public OBMol GetParent() {
    IntPtr cPtr = openbabelPINVOKE.OBAtom_GetParent(swigCPtr);
    OBMol ret = (cPtr == IntPtr.Zero) ? null : new OBMol(cPtr, false);
    return ret;
  }

  public bool GetNewBondVector(vector3 v, double length) {
    bool ret = openbabelPINVOKE.OBAtom_GetNewBondVector(swigCPtr, vector3.getCPtr(v), length);
    if (openbabelPINVOKE.SWIGPendingException.Pending) throw openbabelPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public OBBond GetBond(OBAtom arg0) {
    IntPtr cPtr = openbabelPINVOKE.OBAtom_GetBond(swigCPtr, OBAtom.getCPtr(arg0));
    OBBond ret = (cPtr == IntPtr.Zero) ? null : new OBBond(cPtr, false);
    return ret;
  }

  public OBAtom GetNextAtom() {
    IntPtr cPtr = openbabelPINVOKE.OBAtom_GetNextAtom(swigCPtr);
    OBAtom ret = (cPtr == IntPtr.Zero) ? null : new OBAtom(cPtr, false);
    return ret;
  }

  public SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator BeginBonds() {
    SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator ret = new SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator(openbabelPINVOKE.OBAtom_BeginBonds(swigCPtr), true);
    return ret;
  }

  public SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator EndBonds() {
    SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator ret = new SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator(openbabelPINVOKE.OBAtom_EndBonds(swigCPtr), true);
    return ret;
  }

  public OBBond BeginBond(SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator i) {
    IntPtr cPtr = openbabelPINVOKE.OBAtom_BeginBond(swigCPtr, SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator.getCPtr(i));
    OBBond ret = (cPtr == IntPtr.Zero) ? null : new OBBond(cPtr, false);
    if (openbabelPINVOKE.SWIGPendingException.Pending) throw openbabelPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public OBBond NextBond(SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator i) {
    IntPtr cPtr = openbabelPINVOKE.OBAtom_NextBond(swigCPtr, SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator.getCPtr(i));
    OBBond ret = (cPtr == IntPtr.Zero) ? null : new OBBond(cPtr, false);
    if (openbabelPINVOKE.SWIGPendingException.Pending) throw openbabelPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public OBAtom BeginNbrAtom(SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator i) {
    IntPtr cPtr = openbabelPINVOKE.OBAtom_BeginNbrAtom(swigCPtr, SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator.getCPtr(i));
    OBAtom ret = (cPtr == IntPtr.Zero) ? null : new OBAtom(cPtr, false);
    if (openbabelPINVOKE.SWIGPendingException.Pending) throw openbabelPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public OBAtom NextNbrAtom(SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator i) {
    IntPtr cPtr = openbabelPINVOKE.OBAtom_NextNbrAtom(swigCPtr, SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator.getCPtr(i));
    OBAtom ret = (cPtr == IntPtr.Zero) ? null : new OBAtom(cPtr, false);
    if (openbabelPINVOKE.SWIGPendingException.Pending) throw openbabelPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public double GetDistance(int index) {
    double ret = openbabelPINVOKE.OBAtom_GetDistance__SWIG_0(swigCPtr, index);
    return ret;
  }

  public double GetDistance(OBAtom arg0) {
    double ret = openbabelPINVOKE.OBAtom_GetDistance__SWIG_1(swigCPtr, OBAtom.getCPtr(arg0));
    return ret;
  }

  public double GetAngle(int b, int c) {
    double ret = openbabelPINVOKE.OBAtom_GetAngle__SWIG_0(swigCPtr, b, c);
    return ret;
  }

  public double GetAngle(OBAtom b, OBAtom c) {
    double ret = openbabelPINVOKE.OBAtom_GetAngle__SWIG_1(swigCPtr, OBAtom.getCPtr(b), OBAtom.getCPtr(c));
    return ret;
  }

  public void NewResidue() {
    openbabelPINVOKE.OBAtom_NewResidue(swigCPtr);
  }

  public void AddResidue(OBResidue res) {
    openbabelPINVOKE.OBAtom_AddResidue(swigCPtr, OBResidue.getCPtr(res));
  }

  public void DeleteResidue() {
    openbabelPINVOKE.OBAtom_DeleteResidue(swigCPtr);
  }

  public void AddBond(OBBond bond) {
    openbabelPINVOKE.OBAtom_AddBond(swigCPtr, OBBond.getCPtr(bond));
  }

  public void InsertBond(SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator i, OBBond bond) {
    openbabelPINVOKE.OBAtom_InsertBond(swigCPtr, SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_t__iterator.getCPtr(i), OBBond.getCPtr(bond));
    if (openbabelPINVOKE.SWIGPendingException.Pending) throw openbabelPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool DeleteBond(OBBond bond) {
    bool ret = openbabelPINVOKE.OBAtom_DeleteBond(swigCPtr, OBBond.getCPtr(bond));
    return ret;
  }

  public void ClearBond() {
    openbabelPINVOKE.OBAtom_ClearBond(swigCPtr);
  }

  public bool HtoMethyl() {
    bool ret = openbabelPINVOKE.OBAtom_HtoMethyl(swigCPtr);
    return ret;
  }

  public bool SetHybAndGeom(int arg0) {
    bool ret = openbabelPINVOKE.OBAtom_SetHybAndGeom(swigCPtr, arg0);
    return ret;
  }

  public void ForceNoH() {
    openbabelPINVOKE.OBAtom_ForceNoH(swigCPtr);
  }

  public bool HasNoHForced() {
    bool ret = openbabelPINVOKE.OBAtom_HasNoHForced(swigCPtr);
    return ret;
  }

  public void ForceImplH() {
    openbabelPINVOKE.OBAtom_ForceImplH(swigCPtr);
  }

  public bool HasImplHForced() {
    bool ret = openbabelPINVOKE.OBAtom_HasImplHForced(swigCPtr);
    return ret;
  }

  public uint CountFreeOxygens() {
    uint ret = openbabelPINVOKE.OBAtom_CountFreeOxygens(swigCPtr);
    return ret;
  }

  public uint ImplicitHydrogenCount() {
    uint ret = openbabelPINVOKE.OBAtom_ImplicitHydrogenCount(swigCPtr);
    return ret;
  }

  public uint ExplicitHydrogenCount(bool ExcludeIsotopes) {
    uint ret = openbabelPINVOKE.OBAtom_ExplicitHydrogenCount__SWIG_0(swigCPtr, ExcludeIsotopes);
    return ret;
  }

  public uint ExplicitHydrogenCount() {
    uint ret = openbabelPINVOKE.OBAtom_ExplicitHydrogenCount__SWIG_1(swigCPtr);
    return ret;
  }

  public uint MemberOfRingCount() {
    uint ret = openbabelPINVOKE.OBAtom_MemberOfRingCount(swigCPtr);
    return ret;
  }

  public uint MemberOfRingSize() {
    uint ret = openbabelPINVOKE.OBAtom_MemberOfRingSize(swigCPtr);
    return ret;
  }

  public uint CountRingBonds() {
    uint ret = openbabelPINVOKE.OBAtom_CountRingBonds(swigCPtr);
    return ret;
  }

  public double SmallestBondAngle() {
    double ret = openbabelPINVOKE.OBAtom_SmallestBondAngle(swigCPtr);
    return ret;
  }

  public double AverageBondAngle() {
    double ret = openbabelPINVOKE.OBAtom_AverageBondAngle(swigCPtr);
    return ret;
  }

  public uint BOSum() {
    uint ret = openbabelPINVOKE.OBAtom_BOSum(swigCPtr);
    return ret;
  }

  public uint KBOSum() {
    uint ret = openbabelPINVOKE.OBAtom_KBOSum(swigCPtr);
    return ret;
  }

  public bool HasResidue() {
    bool ret = openbabelPINVOKE.OBAtom_HasResidue(swigCPtr);
    return ret;
  }

  public bool IsHydrogen() {
    bool ret = openbabelPINVOKE.OBAtom_IsHydrogen(swigCPtr);
    return ret;
  }

  public bool IsCarbon() {
    bool ret = openbabelPINVOKE.OBAtom_IsCarbon(swigCPtr);
    return ret;
  }

  public bool IsNitrogen() {
    bool ret = openbabelPINVOKE.OBAtom_IsNitrogen(swigCPtr);
    return ret;
  }

  public bool IsOxygen() {
    bool ret = openbabelPINVOKE.OBAtom_IsOxygen(swigCPtr);
    return ret;
  }

  public bool IsSulfur() {
    bool ret = openbabelPINVOKE.OBAtom_IsSulfur(swigCPtr);
    return ret;
  }

  public bool IsPhosphorus() {
    bool ret = openbabelPINVOKE.OBAtom_IsPhosphorus(swigCPtr);
    return ret;
  }

  public bool IsAromatic() {
    bool ret = openbabelPINVOKE.OBAtom_IsAromatic(swigCPtr);
    return ret;
  }

  public bool IsInRing() {
    bool ret = openbabelPINVOKE.OBAtom_IsInRing(swigCPtr);
    return ret;
  }

  public bool IsInRingSize(int arg0) {
    bool ret = openbabelPINVOKE.OBAtom_IsInRingSize(swigCPtr, arg0);
    return ret;
  }

  public bool IsHeteroatom() {
    bool ret = openbabelPINVOKE.OBAtom_IsHeteroatom(swigCPtr);
    return ret;
  }

  public bool IsNotCorH() {
    bool ret = openbabelPINVOKE.OBAtom_IsNotCorH(swigCPtr);
    return ret;
  }

  public bool IsConnected(OBAtom arg0) {
    bool ret = openbabelPINVOKE.OBAtom_IsConnected(swigCPtr, OBAtom.getCPtr(arg0));
    return ret;
  }

  public bool IsOneThree(OBAtom arg0) {
    bool ret = openbabelPINVOKE.OBAtom_IsOneThree(swigCPtr, OBAtom.getCPtr(arg0));
    return ret;
  }

  public bool IsOneFour(OBAtom arg0) {
    bool ret = openbabelPINVOKE.OBAtom_IsOneFour(swigCPtr, OBAtom.getCPtr(arg0));
    return ret;
  }

  public bool IsCarboxylOxygen() {
    bool ret = openbabelPINVOKE.OBAtom_IsCarboxylOxygen(swigCPtr);
    return ret;
  }

  public bool IsPhosphateOxygen() {
    bool ret = openbabelPINVOKE.OBAtom_IsPhosphateOxygen(swigCPtr);
    return ret;
  }

  public bool IsSulfateOxygen() {
    bool ret = openbabelPINVOKE.OBAtom_IsSulfateOxygen(swigCPtr);
    return ret;
  }

  public bool IsNitroOxygen() {
    bool ret = openbabelPINVOKE.OBAtom_IsNitroOxygen(swigCPtr);
    return ret;
  }

  public bool IsAmideNitrogen() {
    bool ret = openbabelPINVOKE.OBAtom_IsAmideNitrogen(swigCPtr);
    return ret;
  }

  public bool IsPolarHydrogen() {
    bool ret = openbabelPINVOKE.OBAtom_IsPolarHydrogen(swigCPtr);
    return ret;
  }

  public bool IsNonPolarHydrogen() {
    bool ret = openbabelPINVOKE.OBAtom_IsNonPolarHydrogen(swigCPtr);
    return ret;
  }

  public bool IsAromaticNOxide() {
    bool ret = openbabelPINVOKE.OBAtom_IsAromaticNOxide(swigCPtr);
    return ret;
  }

  public bool IsChiral() {
    bool ret = openbabelPINVOKE.OBAtom_IsChiral(swigCPtr);
    return ret;
  }

  public bool IsAxial() {
    bool ret = openbabelPINVOKE.OBAtom_IsAxial(swigCPtr);
    return ret;
  }

  public bool IsClockwise() {
    bool ret = openbabelPINVOKE.OBAtom_IsClockwise(swigCPtr);
    return ret;
  }

  public bool IsAntiClockwise() {
    bool ret = openbabelPINVOKE.OBAtom_IsAntiClockwise(swigCPtr);
    return ret;
  }

  public bool IsPositiveStereo() {
    bool ret = openbabelPINVOKE.OBAtom_IsPositiveStereo(swigCPtr);
    return ret;
  }

  public bool IsNegativeStereo() {
    bool ret = openbabelPINVOKE.OBAtom_IsNegativeStereo(swigCPtr);
    return ret;
  }

  public bool HasChiralitySpecified() {
    bool ret = openbabelPINVOKE.OBAtom_HasChiralitySpecified(swigCPtr);
    return ret;
  }

  public bool HasChiralVolume() {
    bool ret = openbabelPINVOKE.OBAtom_HasChiralVolume(swigCPtr);
    return ret;
  }

  public bool IsHbondAcceptor() {
    bool ret = openbabelPINVOKE.OBAtom_IsHbondAcceptor(swigCPtr);
    return ret;
  }

  public bool IsHbondDonor() {
    bool ret = openbabelPINVOKE.OBAtom_IsHbondDonor(swigCPtr);
    return ret;
  }

  public bool IsHbondDonorH() {
    bool ret = openbabelPINVOKE.OBAtom_IsHbondDonorH(swigCPtr);
    return ret;
  }

  public bool HasAlphaBetaUnsat(bool includePandS) {
    bool ret = openbabelPINVOKE.OBAtom_HasAlphaBetaUnsat__SWIG_0(swigCPtr, includePandS);
    return ret;
  }

  public bool HasAlphaBetaUnsat() {
    bool ret = openbabelPINVOKE.OBAtom_HasAlphaBetaUnsat__SWIG_1(swigCPtr);
    return ret;
  }

  public bool HasBondOfOrder(uint bo) {
    bool ret = openbabelPINVOKE.OBAtom_HasBondOfOrder(swigCPtr, bo);
    return ret;
  }

  public int CountBondsOfOrder(uint bo) {
    int ret = openbabelPINVOKE.OBAtom_CountBondsOfOrder(swigCPtr, bo);
    return ret;
  }

  public bool HasNonSingleBond() {
    bool ret = openbabelPINVOKE.OBAtom_HasNonSingleBond(swigCPtr);
    return ret;
  }

  public bool HasSingleBond() {
    bool ret = openbabelPINVOKE.OBAtom_HasSingleBond(swigCPtr);
    return ret;
  }

  public bool HasDoubleBond() {
    bool ret = openbabelPINVOKE.OBAtom_HasDoubleBond(swigCPtr);
    return ret;
  }

  public bool HasAromaticBond() {
    bool ret = openbabelPINVOKE.OBAtom_HasAromaticBond(swigCPtr);
    return ret;
  }

  public bool MatchesSMARTS(string arg0) {
    bool ret = openbabelPINVOKE.OBAtom_MatchesSMARTS(swigCPtr, arg0);
    return ret;
  }

}
