Commit 49edee9f authored by ahern's avatar ahern
Browse files

A number of changes related to clip:

+ Added fast vs. accurate quality option.
+ Added quality options to the GUI.
+ Put the fast path logic back in and made it be the default.


git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@3368 18c085ea-50e0-402c-830e-de6fd14e8384
parent 299d983c
##
## build_vist generated host.conf
## created: Thu Jul 12 15:03:08 EDT 2007
## system: Linux lije 2.6.9-55.ELsmp #1 SMP Fri Apr 20 16:36:54 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
## created: Wed Feb 27 09:54:29 EST 2008
## system: Linux lije 2.6.9-67.0.1.ELsmp #1 SMP Fri Nov 30 11:57:43 EST 2007 x86_64 x86_64 x86_64 GNU/Linux
## by: ahern
##
## Tell VisIt where to find cmake in case we want to build slivr.
##
DEFAULT_CMAKE=/home/ahern/work/VisIt/svn/trunk/src/cmake-2.4.5/bin/cmake
##
## Set the VISITHOME environment variable.
##
VISITHOME=/home/ahern/work/VisIt/svn/trunk/src/visit
VISITHOME=/home/ahern/work/VisIt/svn/trunk/visit
##
## Specify the location of the mesa include files and libraries.
##
#MESA=$VISITHOME/mesa/6.4.2/linux_gcc-3.4.6
MESA=$VISITHOME/mesa/5.0/
MESA=$VISITHOME/mesa/5.0/linux-x86_64_gcc-3.4.6/
##
## If enable_viewer_mesa_stub in not set, then disable it.
##
if test -z "$enable_viewer_mesa_stub"; then
enable_viewer_mesa_stub=no
fi
##
## Specify the location of the vtk include files and libraries.
##
VTK=$VISITHOME/vtk/5.0.0c/linux_gcc-3.4.6
VTK=$VISITHOME/vtk/5.0.0c/linux-x86_64_gcc-3.4.6
##
## Specify the location of cmake.
##
DEFAULT_CMAKE=$VISITHOME/cmake/2.4.5/linux-x86_64_gcc-3.4.6/bin/cmake
##
## Specify the location of the qt include files and libraries.
##
QT_BIN=$VISITHOME/qt/3.3.8/linux_gcc-3.4.6/bin
QT_INCLUDE=$VISITHOME/qt/3.3.8/linux_gcc-3.4.6/include
QT_LIB=$VISITHOME/qt/3.3.8/linux_gcc-3.4.6/lib
QT_BIN=$VISITHOME/qt/3.3.8/linux-x86_64_gcc-3.4.6/bin
QT_INCLUDE=$VISITHOME/qt/3.3.8/linux-x86_64_gcc-3.4.6/include
QT_LIB=$VISITHOME/qt/3.3.8/linux-x86_64_gcc-3.4.6/lib
##
## Specify the location of the python include and libraries.
##
PYDIR=$VISITHOME/python/2.5/linux_gcc-3.4.6
PYDIR=$VISITHOME/python/2.5/linux-x86_64_gcc-3.4.6
PYVERSION=python2.5
##
## Silo
##
DEFAULT_SILO_INCLUDES=$VISITHOME/silo/4.5.1/linux_gcc-3.4.6/include
DEFAULT_SILO_LIBRARY=$VISITHOME/silo/4.5.1/linux_gcc-3.4.6/lib
DEFAULT_SILO_INCLUDES=$VISITHOME/silo/4.6.1/linux-x86_64_gcc-3.4.6/include
DEFAULT_SILO_LIBRARY=$VISITHOME/silo/4.6.1/linux-x86_64_gcc-3.4.6/lib
## Compiler flage.
## Compiler flags.
##
CC="gcc"
CXX="g++"
CFLAGS="-g -m64 -fPIC"
CXXFLAGS="-g -m64 -fPIC"
CFLAGS=" -m64 -fPIC -g"
CXXFLAGS=" -m64 -fPIC -g"
##
## Database reader plugin support libraries
......@@ -59,67 +64,57 @@ CXXFLAGS="-g -m64 -fPIC"
##
## Boxlib
##
DEFAULT_BOXLIB2D_INCLUDE=$VISITHOME/boxlib/linux_gcc-3.4.6/include/2D
DEFAULT_BOXLIB2D_LIBS=$VISITHOME/boxlib/linux_gcc-3.4.6/lib
DEFAULT_BOXLIB3D_INCLUDE=$VISITHOME/boxlib/linux_gcc-3.4.6/include/3D
DEFAULT_BOXLIB3D_LIBS=$VISITHOME/boxlib/linux_gcc-3.4.6/lib
##
## CFITSIO
##
DEFAULT_CFITSIO_INCLUDE=$VISITHOME/cfitsio/3006/linux_gcc-3.4.6/include
DEFAULT_CFITSIO_LIB=$VISITHOME/cfitsio/3006/linux_gcc-3.4.6/lib
##
## CGNS
##
DEFAULT_CGNS_INCLUDE=$VISITHOME/cgns/2.4/linux_gcc-3.4.6/include
DEFAULT_CGNS_LIB=$VISITHOME/cgns/2.4/linux_gcc-3.4.6/lib
##
## Exodus
##
DEFAULT_EXODUS_INCLUDES=$VISITHOME/exodus/4.46/linux_gcc-3.4.6/inc
DEFAULT_EXODUS_LIBRARY=$VISITHOME/exodus/4.46/linux_gcc-3.4.6/lib
##
## GDAL
##
DEFAULT_GDAL_INCLUDE=$VISITHOME/gdal/1.3.2/linux_gcc-3.4.6/include
DEFAULT_GDAL_LIB=$VISITHOME/gdal/1.3.2/linux_gcc-3.4.6/lib
##
## H5Part
##
DEFAULT_H5PART_INCLUDE=$VISITHOME/h5part/1.3.3/linux_gcc-3.4.6/include
DEFAULT_H5PART_LIB=$VISITHOME/h5part/1.3.3/linux_gcc-3.4.6/lib
DEFAULT_H5PART_INCLUDE=$VISITHOME/h5part/1.4.0/linux-x86_64_gcc-3.4.6/include
DEFAULT_H5PART_LIB=$VISITHOME/h5part/1.4.0/linux-x86_64_gcc-3.4.6/lib
##
## HDF4
##
DEFAULT_HDF4_FLAGS=$VISITHOME/hdf4/4.2.1/linux_gcc-3.4.6/include
DEFAULT_HDF4_LIBS=$VISITHOME/hdf4/4.2.1/linux_gcc-3.4.6/lib
DEFAULT_HDF4_FLAGS=$VISITHOME/hdf4/4.2.1/linux-x86_64_gcc-3.4.6/include
DEFAULT_HDF4_LIBS=$VISITHOME/hdf4/4.2.1/linux-x86_64_gcc-3.4.6/lib
##
## HDF5
##
DEFAULT_HDF5_INCLUDE=$VISITHOME/hdf5/1.6.5/linux_gcc-3.4.6/include
DEFAULT_HDF5_LIB=$VISITHOME/hdf5/1.6.5/linux_gcc-3.4.6/lib
DEFAULT_HDF5_INCLUDE=$VISITHOME/hdf5/1.6.5/linux-x86_64_gcc-3.4.6/include
DEFAULT_HDF5_LIB=$VISITHOME/hdf5/1.6.5/linux-x86_64_gcc-3.4.6/lib
##
## Mili
##
MILI_DIR=$VISITHOME/mili/1.10.0/linux_gcc-3.4.6
##
## NetCDF
##
DEFAULT_NETCDF_INCLUDE=$VISITHOME/netcdf/3.6.0/linux_gcc-3.4.6/include
DEFAULT_NETCDF_LIB=$VISITHOME/netcdf/3.6.0/linux_gcc-3.4.6/lib
DEFAULT_NETCDF_INCLUDE=$VISITHOME/netcdf/3.6.0/linux-x86_64_gcc-3.4.6/include
DEFAULT_NETCDF_LIB=$VISITHOME/netcdf/3.6.0/linux-x86_64_gcc-3.4.6/lib
##
## If enable_viewer_mesa_stub in not set, then disable it.
## SZIP
##
DEFAULT_SZIP_INCLUDE=$VISITHOME/szip/2.1/linux-x86_64_gcc-3.4.6/include
DEFAULT_SZIP_LIB=$VISITHOME/szip/2.1/linux-x86_64_gcc-3.4.6/lib
##
## CCMIO
##
##
if test -z "$enable_viewer_mesa_stub"; then
enable_viewer_mesa_stub=no
fi
......@@ -68,8 +68,8 @@ enhancements and bug-fixes that were added to this release.</p>
<li>VisIt's ZeusMP reader now supports cylindrical coordinates.</li>
<li>VisIt's Clip operator now has a 'fast' vs. 'accurate' option, with
a new 'accurate' option being the default.</li>
<li>VisIt's Clip operator now has a 'fast' vs. 'accurate' option,
with 'fast' being the default.</li>
</ul>
<p><b><font size="4">Bugs fixed in version 1.9.0</font></b></p>
<ul>
......
......@@ -11,6 +11,13 @@
Plane2
Plane3
</Enum>
<Enum name="Quality">
Fast
Accurate
</Enum>
<Field name="quality" label="Quality" type="enum" subtype="Quality">
Fast
</Field>
<Field name="funcType" label="Style" type="enum" subtype="ClipStyle">
Plane
</Field>
......
This diff is collapsed.
......@@ -52,7 +52,7 @@
// Notes: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Tue Aug 28 15:35:06 PST 2007
// Creation: Wed Feb 27 16:13:14 PST 2008
//
// Modifications:
//
......@@ -73,6 +73,11 @@ public:
Plane2,
Plane3
};
enum Quality
{
Fast,
Accurate
};
ClipAttributes();
ClipAttributes(const ClipAttributes &obj);
......@@ -98,6 +103,7 @@ public:
void SelectCenter();
// Property setting methods
void SetQuality(Quality quality_);
void SetFuncType(ClipStyle funcType_);
void SetPlane1Status(bool plane1Status_);
void SetPlane2Status(bool plane2Status_);
......@@ -115,6 +121,7 @@ public:
void SetSphereInverse(bool sphereInverse_);
// Property getting methods
Quality GetQuality() const;
ClipStyle GetFuncType() const;
bool GetPlane1Status() const;
bool GetPlane2Status() const;
......@@ -153,6 +160,11 @@ public:
protected:
static std::string WhichClipPlane_ToString(int);
public:
static std::string Quality_ToString(Quality);
static bool Quality_FromString(const std::string &, Quality &);
protected:
static std::string Quality_ToString(int);
public:
// Keyframing methods
virtual std::string GetFieldName(int index) const;
......@@ -162,7 +174,29 @@ public:
// User-defined methods
virtual bool EqualTo(const AttributeGroup *atts) const;
// IDs that can be used to identify fields in case statements
enum {
ID_quality = 0,
ID_funcType,
ID_plane1Status,
ID_plane2Status,
ID_plane3Status,
ID_plane1Origin,
ID_plane2Origin,
ID_plane3Origin,
ID_plane1Normal,
ID_plane2Normal,
ID_plane3Normal,
ID_planeInverse,
ID_planeToolControlledClipPlane,
ID_center,
ID_radius,
ID_sphereInverse
};
private:
int quality;
int funcType;
bool plane1Status;
bool plane2Status;
......
......@@ -38,9 +38,10 @@
#include <PyClipAttributes.h>
#include <ObserverToCallback.h>
#include <ColorAttribute.h>
#include <snprintf.h>
extern void VisItErrorFunc(const char *);
// ****************************************************************************
// Module: PyClipAttributes
//
......@@ -50,7 +51,7 @@
// Note: Autogenerated by xml2python. Do not modify by hand!
//
// Programmer: xml2python
// Creation: Fri Jan 6 18:12:14 PST 2006
// Creation: Fri Feb 29 13:52:43 PST 2008
//
// ****************************************************************************
......@@ -62,6 +63,7 @@ struct ClipAttributesObject
PyObject_HEAD
ClipAttributes *data;
bool owns;
PyObject *parent;
};
//
......@@ -69,12 +71,24 @@ struct ClipAttributesObject
//
static PyObject *NewClipAttributes(int);
static std::string
std::string
PyClipAttributes_ToString(const ClipAttributes *atts, const char *prefix)
{
std::string str;
char tmpStr[1000];
const char *quality_names = "Fast, Accurate";
if(atts->GetQuality() == ClipAttributes::Fast)
{
SNPRINTF(tmpStr, 1000, "%squality = %sFast # %s\n", prefix, prefix, quality_names);
str += tmpStr;
}
else
{
SNPRINTF(tmpStr, 1000, "%squality = %sAccurate # %s\n", prefix, prefix, quality_names);
str += tmpStr;
}
const char *funcType_names = "Plane, Sphere";
if(atts->GetFuncType() == ClipAttributes::Plane)
{
......@@ -203,6 +217,28 @@ PyClipAttributes_ToString(const ClipAttributes *atts, const char *prefix)
else
SNPRINTF(tmpStr, 1000, "%splaneInverse = 0\n", prefix);
str += tmpStr;
const char *planeToolControlledClipPlane_names = "None, Plane1, Plane2, Plane3";
if(atts->GetPlaneToolControlledClipPlane() == ClipAttributes::None)
{
SNPRINTF(tmpStr, 1000, "%splaneToolControlledClipPlane = %sNone # %s\n", prefix, prefix, planeToolControlledClipPlane_names);
str += tmpStr;
}
else if(atts->GetPlaneToolControlledClipPlane() == ClipAttributes::Plane1)
{
SNPRINTF(tmpStr, 1000, "%splaneToolControlledClipPlane = %sPlane1 # %s\n", prefix, prefix, planeToolControlledClipPlane_names);
str += tmpStr;
}
else if(atts->GetPlaneToolControlledClipPlane() == ClipAttributes::Plane2)
{
SNPRINTF(tmpStr, 1000, "%splaneToolControlledClipPlane = %sPlane2 # %s\n", prefix, prefix, planeToolControlledClipPlane_names);
str += tmpStr;
}
else
{
SNPRINTF(tmpStr, 1000, "%splaneToolControlledClipPlane = %sPlane3 # %s\n", prefix, prefix, planeToolControlledClipPlane_names);
str += tmpStr;
}
{ const double *center = atts->GetCenter();
SNPRINTF(tmpStr, 1000, "%scenter = (", prefix);
str += tmpStr;
......@@ -238,6 +274,39 @@ ClipAttributes_Notify(PyObject *self, PyObject *args)
return Py_None;
}
static PyObject *
ClipAttributes_SetQuality(PyObject *self, PyObject *args)
{
ClipAttributesObject *obj = (ClipAttributesObject *)self;
int ival;
if(!PyArg_ParseTuple(args, "i", &ival))
return NULL;
// Set the quality in the object.
if(ival >= 0 && ival < 2)
obj->data->SetQuality(ClipAttributes::Quality(ival));
else
{
fprintf(stderr, "An invalid quality value was given. "
"Valid values are in the range of [0,1]. "
"You can also use the following names: "
"Fast, Accurate.");
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
}
static PyObject *
ClipAttributes_GetQuality(PyObject *self, PyObject *args)
{
ClipAttributesObject *obj = (ClipAttributesObject *)self;
PyObject *retval = PyInt_FromLong(long(obj->data->GetQuality()));
return retval;
}
static PyObject *
ClipAttributes_SetFuncType(PyObject *self, PyObject *args)
{
......@@ -691,6 +760,39 @@ ClipAttributes_GetPlaneInverse(PyObject *self, PyObject *args)
return retval;
}
static PyObject *
ClipAttributes_SetPlaneToolControlledClipPlane(PyObject *self, PyObject *args)
{
ClipAttributesObject *obj = (ClipAttributesObject *)self;
int ival;
if(!PyArg_ParseTuple(args, "i", &ival))
return NULL;
// Set the planeToolControlledClipPlane in the object.
if(ival >= 0 && ival < 4)
obj->data->SetPlaneToolControlledClipPlane(ClipAttributes::WhichClipPlane(ival));
else
{
fprintf(stderr, "An invalid planeToolControlledClipPlane value was given. "
"Valid values are in the range of [0,3]. "
"You can also use the following names: "
"None, Plane1, Plane2, Plane3.");
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
}
static PyObject *
ClipAttributes_GetPlaneToolControlledClipPlane(PyObject *self, PyObject *args)
{
ClipAttributesObject *obj = (ClipAttributesObject *)self;
PyObject *retval = PyInt_FromLong(long(obj->data->GetPlaneToolControlledClipPlane()));
return retval;
}
static PyObject *
ClipAttributes_SetCenter(PyObject *self, PyObject *args)
{
......@@ -797,6 +899,8 @@ ClipAttributes_GetSphereInverse(PyObject *self, PyObject *args)
static struct PyMethodDef ClipAttributes_methods[] = {
{"Notify", ClipAttributes_Notify, METH_VARARGS},
{"SetQuality", ClipAttributes_SetQuality, METH_VARARGS},
{"GetQuality", ClipAttributes_GetQuality, METH_VARARGS},
{"SetFuncType", ClipAttributes_SetFuncType, METH_VARARGS},
{"GetFuncType", ClipAttributes_GetFuncType, METH_VARARGS},
{"SetPlane1Status", ClipAttributes_SetPlane1Status, METH_VARARGS},
......@@ -819,6 +923,8 @@ static struct PyMethodDef ClipAttributes_methods[] = {
{"GetPlane3Normal", ClipAttributes_GetPlane3Normal, METH_VARARGS},
{"SetPlaneInverse", ClipAttributes_SetPlaneInverse, METH_VARARGS},
{"GetPlaneInverse", ClipAttributes_GetPlaneInverse, METH_VARARGS},
{"SetPlaneToolControlledClipPlane", ClipAttributes_SetPlaneToolControlledClipPlane, METH_VARARGS},
{"GetPlaneToolControlledClipPlane", ClipAttributes_GetPlaneToolControlledClipPlane, METH_VARARGS},
{"SetCenter", ClipAttributes_SetCenter, METH_VARARGS},
{"GetCenter", ClipAttributes_GetCenter, METH_VARARGS},
{"SetRadius", ClipAttributes_SetRadius, METH_VARARGS},
......@@ -836,6 +942,8 @@ static void
ClipAttributes_dealloc(PyObject *v)
{
ClipAttributesObject *obj = (ClipAttributesObject *)v;
if(obj->parent != 0)
Py_DECREF(obj->parent);
if(obj->owns)
delete obj->data;
}
......@@ -851,6 +959,13 @@ ClipAttributes_compare(PyObject *v, PyObject *w)
static PyObject *
ClipAttributes_getattr(PyObject *self, char *name)
{
if(strcmp(name, "quality") == 0)
return ClipAttributes_GetQuality(self, NULL);
if(strcmp(name, "Fast") == 0)
return PyInt_FromLong(long(ClipAttributes::Fast));
else if(strcmp(name, "Accurate") == 0)
return PyInt_FromLong(long(ClipAttributes::Accurate));
if(strcmp(name, "funcType") == 0)
return ClipAttributes_GetFuncType(self, NULL);
if(strcmp(name, "Plane") == 0)
......@@ -878,6 +993,17 @@ ClipAttributes_getattr(PyObject *self, char *name)
return ClipAttributes_GetPlane3Normal(self, NULL);
if(strcmp(name, "planeInverse") == 0)
return ClipAttributes_GetPlaneInverse(self, NULL);
if(strcmp(name, "planeToolControlledClipPlane") == 0)
return ClipAttributes_GetPlaneToolControlledClipPlane(self, NULL);
if(strcmp(name, "None") == 0)
return PyInt_FromLong(long(ClipAttributes::None));
else if(strcmp(name, "Plane1") == 0)
return PyInt_FromLong(long(ClipAttributes::Plane1));
else if(strcmp(name, "Plane2") == 0)
return PyInt_FromLong(long(ClipAttributes::Plane2));
else if(strcmp(name, "Plane3") == 0)
return PyInt_FromLong(long(ClipAttributes::Plane3));
if(strcmp(name, "center") == 0)
return ClipAttributes_GetCenter(self, NULL);
if(strcmp(name, "radius") == 0)
......@@ -896,39 +1022,46 @@ ClipAttributes_setattr(PyObject *self, char *name, PyObject *args)
PyObject *tuple = PyTuple_New(1);
PyTuple_SET_ITEM(tuple, 0, args);
Py_INCREF(args);
bool retval = false;
PyObject *obj = NULL;
if(strcmp(name, "funcType") == 0)
retval = (ClipAttributes_SetFuncType(self, tuple) != NULL);
if(strcmp(name, "quality") == 0)
obj = ClipAttributes_SetQuality(self, tuple);
else if(strcmp(name, "funcType") == 0)
obj = ClipAttributes_SetFuncType(self, tuple);
else if(strcmp(name, "plane1Status") == 0)
retval = (ClipAttributes_SetPlane1Status(self, tuple) != NULL);
obj = ClipAttributes_SetPlane1Status(self, tuple);
else if(strcmp(name, "plane2Status") == 0)
retval = (ClipAttributes_SetPlane2Status(self, tuple) != NULL);
obj = ClipAttributes_SetPlane2Status(self, tuple);
else if(strcmp(name, "plane3Status") == 0)
retval = (ClipAttributes_SetPlane3Status(self, tuple) != NULL);
obj = ClipAttributes_SetPlane3Status(self, tuple);
else if(strcmp(name, "plane1Origin") == 0)
retval = (ClipAttributes_SetPlane1Origin(self, tuple) != NULL);
obj = ClipAttributes_SetPlane1Origin(self, tuple);
else if(strcmp(name, "plane2Origin") == 0)
retval = (ClipAttributes_SetPlane2Origin(self, tuple) != NULL);
obj = ClipAttributes_SetPlane2Origin(self, tuple);
else if(strcmp(name, "plane3Origin") == 0)
retval = (ClipAttributes_SetPlane3Origin(self, tuple) != NULL);
obj = ClipAttributes_SetPlane3Origin(self, tuple);
else if(strcmp(name, "plane1Normal") == 0)
retval = (ClipAttributes_SetPlane1Normal(self, tuple) != NULL);
obj = ClipAttributes_SetPlane1Normal(self, tuple);
else if(strcmp(name, "plane2Normal") == 0)
retval = (ClipAttributes_SetPlane2Normal(self, tuple) != NULL);
obj = ClipAttributes_SetPlane2Normal(self, tuple);
else if(strcmp(name, "plane3Normal") == 0)
retval = (ClipAttributes_SetPlane3Normal(self, tuple) != NULL);
obj = ClipAttributes_SetPlane3Normal(self, tuple);
else if(strcmp(name, "planeInverse") == 0)
retval = (ClipAttributes_SetPlaneInverse(self, tuple) != NULL);
obj = ClipAttributes_SetPlaneInverse(self, tuple);
else if(strcmp(name, "planeToolControlledClipPlane") == 0)
obj = ClipAttributes_SetPlaneToolControlledClipPlane(self, tuple);
else if(strcmp(name, "center") == 0)
retval = (ClipAttributes_SetCenter(self, tuple) != NULL);
obj = ClipAttributes_SetCenter(self, tuple);
else if(strcmp(name, "radius") == 0)
retval = (ClipAttributes_SetRadius(self, tuple) != NULL);
obj = ClipAttributes_SetRadius(self, tuple);
else if(strcmp(name, "sphereInverse") == 0)
retval = (ClipAttributes_SetSphereInverse(self, tuple) != NULL);
obj = ClipAttributes_SetSphereInverse(self, tuple);
if(obj != NULL)
Py_DECREF(obj);
Py_DECREF(tuple);
return retval ? 0 : -1;
return (obj != NULL) ? 0 : -1;
}
static int
......@@ -1017,6 +1150,7 @@ NewClipAttributes(int useCurrent)
else
newObject->data = new ClipAttributes;
newObject->owns = true;
newObject->parent = 0;
return (PyObject *)newObject;
}
......@@ -1029,6 +1163,7 @@ WrapClipAttributes(const ClipAttributes *attr)
return NULL;
newObject->data = (ClipAttributes *)attr;
newObject->owns = false;
newObject->parent = 0;
return (PyObject *)newObject;
}
......@@ -1137,17 +1272,24 @@ PyClipAttributes_FromPyObject(PyObject *obj)
}
PyObject *
PyClipAttributes_NewPyObject()
PyClipAttributes_New()
{
return NewClipAttributes(0);
}
PyObject *
PyClipAttributes_WrapPyObject(const ClipAttributes *attr)
PyClipAttributes_Wrap(const ClipAttributes *attr)
{
return WrapClipAttributes(attr);
}
void
PyClipAttributes_SetParent(PyObject *obj, PyObject *parent)
{
ClipAttributesObject *obj2 = (ClipAttributesObject *)obj;
obj2->parent = parent;
}
void
PyClipAttributes_SetDefaults(const ClipAttributes *atts)
{
......
......@@ -46,13 +46,15 @@
//
void PyClipAttributes_StartUp(ClipAttributes *subj, void *data);
void PyClipAttributes_CloseDown();
PyMethodDef *PyClipAttributes_GetMethodTable(int *nMethods);
PyMethodDef * PyClipAttributes_GetMethodTable(int *nMethods);
bool PyClipAttributes_Check(PyObject *obj);
ClipAttributes *PyClipAttributes_FromPyObject(PyObject *obj);
PyObject *PyClipAttributes_NewPyObject();
PyObject *PyClipAttributes_WrapPyObject(const ClipAttributes *attr);
std::string PyClipAttributes_GetLogString();
ClipAttributes * PyClipAttributes_FromPyObject(PyObject *obj);
PyObject * PyClipAttributes_New();
PyObject * PyClipAttributes_Wrap(const ClipAttributes *attr);
void PyClipAttributes_SetParent(PyObject *obj, PyObject *parent);
void PyClipAttributes_SetDefaults(const ClipAttributes *atts);