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

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _p3dBlob
else:
    import _p3dBlob

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)



def cdata(ptr, nelements=1):
    return _p3dBlob.cdata(ptr, nelements)

def memmove(data, indata):
    return _p3dBlob.memmove(data, indata)

def malloc_uchar(*args):
    return _p3dBlob.malloc_uchar(*args)

def calloc_uchar(*args):
    return _p3dBlob.calloc_uchar(*args)

def realloc_uchar(ptr, nitems):
    return _p3dBlob.realloc_uchar(ptr, nitems)

def free_uchar(ptr):
    return _p3dBlob.free_uchar(ptr)
sizeof_uchar = _p3dBlob.sizeof_uchar

def malloc_ushort(*args):
    return _p3dBlob.malloc_ushort(*args)

def calloc_ushort(*args):
    return _p3dBlob.calloc_ushort(*args)

def realloc_ushort(ptr, nitems):
    return _p3dBlob.realloc_ushort(ptr, nitems)

def free_ushort(ptr):
    return _p3dBlob.free_ushort(ptr)
sizeof_ushort = _p3dBlob.sizeof_ushort

def malloc_BasicStat(*args):
    return _p3dBlob.malloc_BasicStat(*args)

def calloc_BasicStat(*args):
    return _p3dBlob.calloc_BasicStat(*args)

def realloc_BasicStat(ptr, nitems):
    return _p3dBlob.realloc_BasicStat(ptr, nitems)

def free_BasicStat(ptr):
    return _p3dBlob.free_BasicStat(ptr)
sizeof_BasicStat = _p3dBlob.sizeof_BasicStat

def malloc_AnisotropyStat(*args):
    return _p3dBlob.malloc_AnisotropyStat(*args)

def calloc_AnisotropyStat(*args):
    return _p3dBlob.calloc_AnisotropyStat(*args)

def realloc_AnisotropyStat(ptr, nitems):
    return _p3dBlob.realloc_AnisotropyStat(ptr, nitems)

def free_AnisotropyStat(ptr):
    return _p3dBlob.free_AnisotropyStat(ptr)
sizeof_AnisotropyStat = _p3dBlob.sizeof_AnisotropyStat

def malloc_MorphometricStat(*args):
    return _p3dBlob.malloc_MorphometricStat(*args)

def calloc_MorphometricStat(*args):
    return _p3dBlob.calloc_MorphometricStat(*args)

def realloc_MorphometricStat(ptr, nitems):
    return _p3dBlob.realloc_MorphometricStat(ptr, nitems)

def free_MorphometricStat(ptr):
    return _p3dBlob.free_MorphometricStat(ptr)
sizeof_MorphometricStat = _p3dBlob.sizeof_MorphometricStat

def malloc_TextureStat(*args):
    return _p3dBlob.malloc_TextureStat(*args)

def calloc_TextureStat(*args):
    return _p3dBlob.calloc_TextureStat(*args)

def realloc_TextureStat(ptr, nitems):
    return _p3dBlob.realloc_TextureStat(ptr, nitems)

def free_TextureStat(ptr):
    return _p3dBlob.free_TextureStat(ptr)
sizeof_TextureStat = _p3dBlob.sizeof_TextureStat

def malloc_BlobStat(*args):
    return _p3dBlob.malloc_BlobStat(*args)

def calloc_BlobStat(*args):
    return _p3dBlob.calloc_BlobStat(*args)

def realloc_BlobStat(ptr, nitems):
    return _p3dBlob.realloc_BlobStat(ptr, nitems)

def free_BlobStat(ptr):
    return _p3dBlob.free_BlobStat(ptr)
sizeof_BlobStat = _p3dBlob.sizeof_BlobStat

def PrintBlobStruct(out_stats, filename):
    return _p3dBlob.PrintBlobStruct(out_stats, filename)

def invert_vol(in_im, dimx, dimy, dimz):
    return _p3dBlob.invert_vol(in_im, dimx, dimy, dimz)

def invert_vol_16(in_im, dimx, dimy, dimz):
    return _p3dBlob.invert_vol_16(in_im, dimx, dimy, dimz)
P3D_FALSE = _p3dBlob.P3D_FALSE
P3D_TRUE = _p3dBlob.P3D_TRUE
P3D_ERROR = _p3dBlob.P3D_ERROR
P3D_SUCCESS = _p3dBlob.P3D_SUCCESS
BACKGROUND = _p3dBlob.BACKGROUND
CONN4 = _p3dBlob.CONN4
CONN8 = _p3dBlob.CONN8
CONN6 = _p3dBlob.CONN6
CONN18 = _p3dBlob.CONN18
CONN26 = _p3dBlob.CONN26
class BlobStats(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    aspect_ratio = property(_p3dBlob.BlobStats_aspect_ratio_get, _p3dBlob.BlobStats_aspect_ratio_set)
    blobCount = property(_p3dBlob.BlobStats_blobCount_get, _p3dBlob.BlobStats_blobCount_set)
    max_sph = property(_p3dBlob.BlobStats_max_sph_get, _p3dBlob.BlobStats_max_sph_set)
    eq_sph = property(_p3dBlob.BlobStats_eq_sph_get, _p3dBlob.BlobStats_eq_sph_set)
    l_min = property(_p3dBlob.BlobStats_l_min_get, _p3dBlob.BlobStats_l_min_set)
    l_max = property(_p3dBlob.BlobStats_l_max_get, _p3dBlob.BlobStats_l_max_set)
    sphericity = property(_p3dBlob.BlobStats_sphericity_get, _p3dBlob.BlobStats_sphericity_set)
    extent = property(_p3dBlob.BlobStats_extent_get, _p3dBlob.BlobStats_extent_set)
    volume = property(_p3dBlob.BlobStats_volume_get, _p3dBlob.BlobStats_volume_set)

    def __init__(self):
        _p3dBlob.BlobStats_swiginit(self, _p3dBlob.new_BlobStats())
    __swig_destroy__ = _p3dBlob.delete_BlobStats

# Register BlobStats in _p3dBlob:
_p3dBlob.BlobStats_swigregister(BlobStats)

class MorphometricStats(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    BvTv = property(_p3dBlob.MorphometricStats_BvTv_get, _p3dBlob.MorphometricStats_BvTv_set)
    BsBv = property(_p3dBlob.MorphometricStats_BsBv_get, _p3dBlob.MorphometricStats_BsBv_set)
    TbN = property(_p3dBlob.MorphometricStats_TbN_get, _p3dBlob.MorphometricStats_TbN_set)
    TbTh = property(_p3dBlob.MorphometricStats_TbTh_get, _p3dBlob.MorphometricStats_TbTh_set)
    TbSp = property(_p3dBlob.MorphometricStats_TbSp_get, _p3dBlob.MorphometricStats_TbSp_set)

    def __init__(self):
        _p3dBlob.MorphometricStats_swiginit(self, _p3dBlob.new_MorphometricStats())
    __swig_destroy__ = _p3dBlob.delete_MorphometricStats

# Register MorphometricStats in _p3dBlob:
_p3dBlob.MorphometricStats_swigregister(MorphometricStats)

class AnisotropyStats(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    I = property(_p3dBlob.AnisotropyStats_I_get, _p3dBlob.AnisotropyStats_I_set)
    E = property(_p3dBlob.AnisotropyStats_E_get, _p3dBlob.AnisotropyStats_E_set)

    def __init__(self):
        _p3dBlob.AnisotropyStats_swiginit(self, _p3dBlob.new_AnisotropyStats())
    __swig_destroy__ = _p3dBlob.delete_AnisotropyStats

# Register AnisotropyStats in _p3dBlob:
_p3dBlob.AnisotropyStats_swigregister(AnisotropyStats)

class BasicStats(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Vv = property(_p3dBlob.BasicStats_Vv_get, _p3dBlob.BasicStats_Vv_set)
    Cv = property(_p3dBlob.BasicStats_Cv_get, _p3dBlob.BasicStats_Cv_set)
    Mv = property(_p3dBlob.BasicStats_Mv_get, _p3dBlob.BasicStats_Mv_set)
    Sv = property(_p3dBlob.BasicStats_Sv_get, _p3dBlob.BasicStats_Sv_set)

    def __init__(self):
        _p3dBlob.BasicStats_swiginit(self, _p3dBlob.new_BasicStats())
    __swig_destroy__ = _p3dBlob.delete_BasicStats

# Register BasicStats in _p3dBlob:
_p3dBlob.BasicStats_swigregister(BasicStats)

class TextureStats(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    FD = property(_p3dBlob.TextureStats_FD_get, _p3dBlob.TextureStats_FD_set)

    def __init__(self):
        _p3dBlob.TextureStats_swiginit(self, _p3dBlob.new_TextureStats())
    __swig_destroy__ = _p3dBlob.delete_TextureStats

# Register TextureStats in _p3dBlob:
_p3dBlob.TextureStats_swigregister(TextureStats)


def p3dBlobAnalysis(in_im, out_stats, blob_im, star_im, dimx, dimy, dimz, voxelsize, conn, max_rot, skip_borders, wr_log):
    return _p3dBlob.p3dBlobAnalysis(in_im, out_stats, blob_im, star_im, dimx, dimy, dimz, voxelsize, conn, max_rot, skip_borders, wr_log)

def p3dBasicAnalysis(in_im, out_stats, dimx, dimy, dimz, voxelsize, wr_log):
    return _p3dBlob.p3dBasicAnalysis(in_im, out_stats, dimx, dimy, dimz, voxelsize, wr_log)

def p3dTextureAnalysis(in_im, out_stats, dimx, dimy, dimz, wr_log):
    return _p3dBlob.p3dTextureAnalysis(in_im, out_stats, dimx, dimy, dimz, wr_log)

def p3dAnisotropyAnalysis(in_im, msk_im, out_stats, dimx, dimy, dimz, voxelsize, verbose, wr_log):
    return _p3dBlob.p3dAnisotropyAnalysis(in_im, msk_im, out_stats, dimx, dimy, dimz, voxelsize, verbose, wr_log)

def p3dMorphometricAnalysis(in_im, msk_im, out_stats, dimx, dimy, dimz, voxelsize, wr_log):
    return _p3dBlob.p3dMorphometricAnalysis(in_im, msk_im, out_stats, dimx, dimy, dimz, voxelsize, wr_log)

def p3dREVEstimation(in_rev, porosity, cubeEdges, numel, dimx, dimy, dimz, stepsize, centerx, centery, centerz, wr_log):
    return _p3dBlob.p3dREVEstimation(in_rev, porosity, cubeEdges, numel, dimx, dimy, dimz, stepsize, centerx, centery, centerz, wr_log)

def p3dChamferDT(in_im, out_im, dimx, dimy, dimz, w1, w2, w3, wr_log):
    return _p3dBlob.p3dChamferDT(in_im, out_im, dimx, dimy, dimz, w1, w2, w3, wr_log)

def p3dBlobLabeling_ushort(in_im, out_im, dimx, dimy, dimz, conn, random_lbl, skip_borders, wr_log):
    return _p3dBlob.p3dBlobLabeling_ushort(in_im, out_im, dimx, dimy, dimz, conn, random_lbl, skip_borders, wr_log)

def p3dBlobLabeling_uint(in_im, out_im, dimx, dimy, dimz, conn, random_lbl, skip_borders, wr_log):
    return _p3dBlob.p3dBlobLabeling_uint(in_im, out_im, dimx, dimy, dimz, conn, random_lbl, skip_borders, wr_log)

def p3dGetMaxVolumeBlob3D(in_rev, out_rev, dimx, dimy, dimz, conn, wr_log):
    return _p3dBlob.p3dGetMaxVolumeBlob3D(in_rev, out_rev, dimx, dimy, dimz, conn, wr_log)

def p3dGetMinVolumeBlob3D(in_rev, out_rev, dimx, dimy, dimz, conn, wr_log):
    return _p3dBlob.p3dGetMinVolumeBlob3D(in_rev, out_rev, dimx, dimy, dimz, conn, wr_log)

def p3dMinVolumeFilter3D(in_im, out_im, dimx, dimy, dimz, min_volume, conn, wr_log):
    return _p3dBlob.p3dMinVolumeFilter3D(in_im, out_im, dimx, dimy, dimz, min_volume, conn, wr_log)

def p3dSquaredEuclideanDT(in_rev, out_rev, dimx, dimy, dimz, wr_log):
    return _p3dBlob.p3dSquaredEuclideanDT(in_rev, out_rev, dimx, dimy, dimz, wr_log)

def p3dResetStartTime():
    return _p3dBlob.p3dResetStartTime()

def p3dGetElapsedTime():
    return _p3dBlob.p3dGetElapsedTime()

def p3dGetElapsedTime_min():
    return _p3dBlob.p3dGetElapsedTime_min()

def p3dGetElapsedTime_sec():
    return _p3dBlob.p3dGetElapsedTime_sec()
class bb_lelem_t(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    elem = property(_p3dBlob.bb_lelem_t_elem_get, _p3dBlob.bb_lelem_t_elem_set)
    next = property(_p3dBlob.bb_lelem_t_next_get, _p3dBlob.bb_lelem_t_next_set)

    def __init__(self):
        _p3dBlob.bb_lelem_t_swiginit(self, _p3dBlob.new_bb_lelem_t())
    __swig_destroy__ = _p3dBlob.delete_bb_lelem_t

# Register bb_lelem_t in _p3dBlob:
_p3dBlob.bb_lelem_t_swigregister(bb_lelem_t)


def bb_list_init(list):
    return _p3dBlob.bb_list_init(list)

def bb_list_add(list, item):
    return _p3dBlob.bb_list_add(list, item)

def bb_list_isempty(list):
    return _p3dBlob.bb_list_isempty(list)

def bb_list_toarray(list, numel):
    return _p3dBlob.bb_list_toarray(list, numel)

def bb_list_clear(list):
    return _p3dBlob.bb_list_clear(list)
class bb_t(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    min_x = property(_p3dBlob.bb_t_min_x_get, _p3dBlob.bb_t_min_x_set)
    max_x = property(_p3dBlob.bb_t_max_x_get, _p3dBlob.bb_t_max_x_set)
    min_y = property(_p3dBlob.bb_t_min_y_get, _p3dBlob.bb_t_min_y_set)
    max_y = property(_p3dBlob.bb_t_max_y_get, _p3dBlob.bb_t_max_y_set)
    min_z = property(_p3dBlob.bb_t_min_z_get, _p3dBlob.bb_t_min_z_set)
    max_z = property(_p3dBlob.bb_t_max_z_get, _p3dBlob.bb_t_max_z_set)

    def __init__(self):
        _p3dBlob.bb_t_swiginit(self, _p3dBlob.new_bb_t())
    __swig_destroy__ = _p3dBlob.delete_bb_t

# Register bb_t in _p3dBlob:
_p3dBlob.bb_t_swigregister(bb_t)


def p3dConnectedComponentsLabeling_ushort(in_rev, out_rev, numOfConnectedComponents, volumes, boundingBoxes, dimx, dimy, dimz, conn, random_lbl, skip_borders):
    return _p3dBlob.p3dConnectedComponentsLabeling_ushort(in_rev, out_rev, numOfConnectedComponents, volumes, boundingBoxes, dimx, dimy, dimz, conn, random_lbl, skip_borders)

def p3dConnectedComponentsLabeling_uint(in_rev, out_rev, numOfConnectedComponents, volumes, boundingBoxes, dimx, dimy, dimz, conn, random_lbl, skip_borders):
    return _p3dBlob.p3dConnectedComponentsLabeling_uint(in_rev, out_rev, numOfConnectedComponents, volumes, boundingBoxes, dimx, dimy, dimz, conn, random_lbl, skip_borders)
class coords_lelem_t(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    elem = property(_p3dBlob.coords_lelem_t_elem_get, _p3dBlob.coords_lelem_t_elem_set)
    next = property(_p3dBlob.coords_lelem_t_next_get, _p3dBlob.coords_lelem_t_next_set)

    def __init__(self):
        _p3dBlob.coords_lelem_t_swiginit(self, _p3dBlob.new_coords_lelem_t())
    __swig_destroy__ = _p3dBlob.delete_coords_lelem_t

# Register coords_lelem_t in _p3dBlob:
_p3dBlob.coords_lelem_t_swigregister(coords_lelem_t)


def coords_list_init(arg1):
    return _p3dBlob.coords_list_init(arg1)

def coords_list_push(arg1, arg2):
    return _p3dBlob.coords_list_push(arg1, arg2)

def coords_list_pop(arg1):
    return _p3dBlob.coords_list_pop(arg1)

def coords_list_isempty(arg1):
    return _p3dBlob.coords_list_isempty(arg1)

def coords_list_toarray(arg1, arg2):
    return _p3dBlob.coords_list_toarray(arg1, arg2)
class coords_qelem_t(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    item = property(_p3dBlob.coords_qelem_t_item_get, _p3dBlob.coords_qelem_t_item_set)
    next = property(_p3dBlob.coords_qelem_t_next_get, _p3dBlob.coords_qelem_t_next_set)

    def __init__(self):
        _p3dBlob.coords_qelem_t_swiginit(self, _p3dBlob.new_coords_qelem_t())
    __swig_destroy__ = _p3dBlob.delete_coords_qelem_t

# Register coords_qelem_t in _p3dBlob:
_p3dBlob.coords_qelem_t_swigregister(coords_qelem_t)

class coords_queue_t(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    tail = property(_p3dBlob.coords_queue_t_tail_get, _p3dBlob.coords_queue_t_tail_set)
    head = property(_p3dBlob.coords_queue_t_head_get, _p3dBlob.coords_queue_t_head_set)

    def __init__(self):
        _p3dBlob.coords_queue_t_swiginit(self, _p3dBlob.new_coords_queue_t())
    __swig_destroy__ = _p3dBlob.delete_coords_queue_t

# Register coords_queue_t in _p3dBlob:
_p3dBlob.coords_queue_t_swigregister(coords_queue_t)


def coords_queue_init(queue):
    return _p3dBlob.coords_queue_init(queue)

def coords_queue_push(queue, elem):
    return _p3dBlob.coords_queue_push(queue, elem)

def coords_queue_pop(queue):
    return _p3dBlob.coords_queue_pop(queue)

def coords_queue_isempty(queue):
    return _p3dBlob.coords_queue_isempty(queue)
class coords_t(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_p3dBlob.coords_t_x_get, _p3dBlob.coords_t_x_set)
    y = property(_p3dBlob.coords_t_y_get, _p3dBlob.coords_t_y_set)
    z = property(_p3dBlob.coords_t_z_get, _p3dBlob.coords_t_z_set)

    def __init__(self):
        _p3dBlob.coords_t_swiginit(self, _p3dBlob.new_coords_t())
    __swig_destroy__ = _p3dBlob.delete_coords_t

# Register coords_t in _p3dBlob:
_p3dBlob.coords_t_swigregister(coords_t)

class fcoords_t(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_p3dBlob.fcoords_t_x_get, _p3dBlob.fcoords_t_x_set)
    y = property(_p3dBlob.fcoords_t_y_get, _p3dBlob.fcoords_t_y_set)
    z = property(_p3dBlob.fcoords_t_z_get, _p3dBlob.fcoords_t_z_set)

    def __init__(self):
        _p3dBlob.fcoords_t_swiginit(self, _p3dBlob.new_fcoords_t())
    __swig_destroy__ = _p3dBlob.delete_fcoords_t

# Register fcoords_t in _p3dBlob:
_p3dBlob.fcoords_t_swigregister(fcoords_t)

class double_lelem_t(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    ct = property(_p3dBlob.double_lelem_t_ct_get, _p3dBlob.double_lelem_t_ct_set)
    next = property(_p3dBlob.double_lelem_t_next_get, _p3dBlob.double_lelem_t_next_set)

    def __init__(self):
        _p3dBlob.double_lelem_t_swiginit(self, _p3dBlob.new_double_lelem_t())
    __swig_destroy__ = _p3dBlob.delete_double_lelem_t

# Register double_lelem_t in _p3dBlob:
_p3dBlob.double_lelem_t_swigregister(double_lelem_t)


def double_list_init(list):
    return _p3dBlob.double_list_init(list)

def double_list_add(list, item):
    return _p3dBlob.double_list_add(list, item)

def double_list_isempty(list):
    return _p3dBlob.double_list_isempty(list)

def double_list_toarray(list, numel):
    return _p3dBlob.double_list_toarray(list, numel)
class fcoords_lelem_t(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    elem = property(_p3dBlob.fcoords_lelem_t_elem_get, _p3dBlob.fcoords_lelem_t_elem_set)
    next = property(_p3dBlob.fcoords_lelem_t_next_get, _p3dBlob.fcoords_lelem_t_next_set)

    def __init__(self):
        _p3dBlob.fcoords_lelem_t_swiginit(self, _p3dBlob.new_fcoords_lelem_t())
    __swig_destroy__ = _p3dBlob.delete_fcoords_lelem_t

# Register fcoords_lelem_t in _p3dBlob:
_p3dBlob.fcoords_lelem_t_swigregister(fcoords_lelem_t)


def fcoords_list_init(arg1):
    return _p3dBlob.fcoords_list_init(arg1)

def fcoords_list_push(arg1, arg2):
    return _p3dBlob.fcoords_list_push(arg1, arg2)

def fcoords_list_pop(arg1):
    return _p3dBlob.fcoords_list_pop(arg1)

def fcoords_list_isempty(arg1):
    return _p3dBlob.fcoords_list_isempty(arg1)

def fcoords_list_toarray(arg1, arg2):
    return _p3dBlob.fcoords_list_toarray(arg1, arg2)
class uint_lelem_t(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    ct = property(_p3dBlob.uint_lelem_t_ct_get, _p3dBlob.uint_lelem_t_ct_set)
    next = property(_p3dBlob.uint_lelem_t_next_get, _p3dBlob.uint_lelem_t_next_set)

    def __init__(self):
        _p3dBlob.uint_lelem_t_swiginit(self, _p3dBlob.new_uint_lelem_t())
    __swig_destroy__ = _p3dBlob.delete_uint_lelem_t

# Register uint_lelem_t in _p3dBlob:
_p3dBlob.uint_lelem_t_swigregister(uint_lelem_t)


def uint_list_init(list):
    return _p3dBlob.uint_list_init(list)

def uint_list_add(list, ct):
    return _p3dBlob.uint_list_add(list, ct)

def uint_list_isempty(list):
    return _p3dBlob.uint_list_isempty(list)

def uint_list_toarray(list, numel):
    return _p3dBlob.uint_list_toarray(list, numel)

def uint_list_clear(list):
    return _p3dBlob.uint_list_clear(list)

def findNeighbor(im, dimx, dimy, dimz, i, j, k, coords):
    return _p3dBlob.findNeighbor(im, dimx, dimy, dimz, i, j, k, coords)

def countNeighbors(im, dimx, dimy, dimz, i, j, k):
    return _p3dBlob.countNeighbors(im, dimx, dimy, dimz, i, j, k)

def isSimplePoint(im, dimx, dimy, dimz, x, y, z):
    return _p3dBlob.isSimplePoint(im, dimx, dimy, dimz, x, y, z)

def p3dCrop3D_uchar2uchar(in_im, out_im, dimx, dimy, dimz, size):
    return _p3dBlob.p3dCrop3D_uchar2uchar(in_im, out_im, dimx, dimy, dimz, size)

def p3dCrop3D_ushort2ushort(in_im, out_im, dimx, dimy, dimz, size):
    return _p3dBlob.p3dCrop3D_ushort2ushort(in_im, out_im, dimx, dimy, dimz, size)

def p3dCrop3D_uint2uint(in_rev, out_rev, dimx, dimy, dimz, size):
    return _p3dBlob.p3dCrop3D_uint2uint(in_rev, out_rev, dimx, dimy, dimz, size)

def p3dCrop3D_float2float(in_im, out_im, dimx, dimy, dimz, size):
    return _p3dBlob.p3dCrop3D_float2float(in_im, out_im, dimx, dimy, dimz, size)

def p3dZeroPadding3D_uchar2float(in_im, out_im, dimx, dimy, dimz, size):
    return _p3dBlob.p3dZeroPadding3D_uchar2float(in_im, out_im, dimx, dimy, dimz, size)

def p3dZeroPadding3D_uchar2uchar(in_im, out_im, dimx, dimy, dimz, size):
    return _p3dBlob.p3dZeroPadding3D_uchar2uchar(in_im, out_im, dimx, dimy, dimz, size)

def p3dReplicatePadding3D_uchar2uchar(in_im, out_im, dimx, dimy, dimz, size):
    return _p3dBlob.p3dReplicatePadding3D_uchar2uchar(in_im, out_im, dimx, dimy, dimz, size)

def interpolation(gvf, dimx, dimy, dimz, x, y, z):
    return _p3dBlob.interpolation(gvf, dimx, dimy, dimz, x, y, z)

def isBoundary(in_im, dimx, dimy, dimz, i, j, k):
    return _p3dBlob.isBoundary(in_im, dimx, dimy, dimz, i, j, k)

def isFullNeighborhood(in_im, dimx, dimy, dimz, i, j, k):
    return _p3dBlob.isFullNeighborhood(in_im, dimx, dimy, dimz, i, j, k)

def p3dSpecialPadding3D_uchar2uchar(in_im, out_im, dimx, dimy, dimz, size):
    return _p3dBlob.p3dSpecialPadding3D_uchar2uchar(in_im, out_im, dimx, dimy, dimz, size)


