// python wrapper for vtkParametricBoy // #define VTK_WRAPPING_CXX #define VTK_STREAMS_FWD_ONLY #include "vtkPythonArgs.h" #include "vtkPythonOverload.h" #include "vtkConfigure.h" #include #include #include "vtkVariant.h" #include "vtkIndent.h" #include "vtkParametricBoy.h" extern "C" { VTK_ABI_EXPORT void PyVTKAddFile_vtkParametricBoy(PyObject *); } extern "C" { VTK_ABI_EXPORT PyObject *PyvtkParametricBoy_ClassNew(); } #ifndef DECLARED_PyvtkParametricFunction_ClassNew extern "C" { PyObject *PyvtkParametricFunction_ClassNew(); } #define DECLARED_PyvtkParametricFunction_ClassNew #endif static const char *PyvtkParametricBoy_Doc = "vtkParametricBoy - Generate Boy's surface.\n\n" "Superclass: vtkParametricFunction\n\n" "vtkParametricBoy generates Boy's surface. This is a Model of the\n" "projective plane without singularities. It was found by Werner Boy on\n" "assignment from David Hilbert.\n\n" "For further information about this surface, please consult the\n" "technical description \"Parametric surfaces\" in\n" "http://www.vtk.org/publications in the \"VTK Technical Documents\"\n" "section in the VTk.org web pages.\n\n" "@par Thanks: Andrew Maclean andrew.amaclean@gmail.com for creating\n" "and contributing the class.\n\n"; static PyObject * PyvtkParametricBoy_IsTypeOf(PyObject *, PyObject *args) { vtkPythonArgs ap(args, "IsTypeOf"); char *temp0 = nullptr; PyObject *result = nullptr; if (ap.CheckArgCount(1) && ap.GetValue(temp0)) { int tempr = vtkParametricBoy::IsTypeOf(temp0); if (!ap.ErrorOccurred()) { result = ap.BuildValue(tempr); } } return result; } static PyObject * PyvtkParametricBoy_IsA(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "IsA"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkParametricBoy *op = static_cast(vp); char *temp0 = nullptr; PyObject *result = nullptr; if (op && ap.CheckArgCount(1) && ap.GetValue(temp0)) { int tempr = (ap.IsBound() ? op->IsA(temp0) : op->vtkParametricBoy::IsA(temp0)); if (!ap.ErrorOccurred()) { result = ap.BuildValue(tempr); } } return result; } static PyObject * PyvtkParametricBoy_SafeDownCast(PyObject *, PyObject *args) { vtkPythonArgs ap(args, "SafeDownCast"); vtkObjectBase *temp0 = nullptr; PyObject *result = nullptr; if (ap.CheckArgCount(1) && ap.GetVTKObject(temp0, "vtkObjectBase")) { vtkParametricBoy *tempr = vtkParametricBoy::SafeDownCast(temp0); if (!ap.ErrorOccurred()) { result = ap.BuildVTKObject(tempr); } } return result; } static PyObject * PyvtkParametricBoy_NewInstance(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "NewInstance"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkParametricBoy *op = static_cast(vp); PyObject *result = nullptr; if (op && ap.CheckArgCount(0)) { vtkParametricBoy *tempr = (ap.IsBound() ? op->NewInstance() : op->vtkParametricBoy::NewInstance()); if (!ap.ErrorOccurred()) { result = ap.BuildVTKObject(tempr); if (result && PyVTKObject_Check(result)) { PyVTKObject_GetObject(result)->UnRegister(0); PyVTKObject_SetFlag(result, VTK_PYTHON_IGNORE_UNREGISTER, 1); } } } return result; } static PyObject * PyvtkParametricBoy_GetDimension(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "GetDimension"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkParametricBoy *op = static_cast(vp); PyObject *result = nullptr; if (op && ap.CheckArgCount(0)) { int tempr = (ap.IsBound() ? op->GetDimension() : op->vtkParametricBoy::GetDimension()); if (!ap.ErrorOccurred()) { result = ap.BuildValue(tempr); } } return result; } static PyObject * PyvtkParametricBoy_SetZScale(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "SetZScale"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkParametricBoy *op = static_cast(vp); double temp0; PyObject *result = nullptr; if (op && ap.CheckArgCount(1) && ap.GetValue(temp0)) { if (ap.IsBound()) { op->SetZScale(temp0); } else { op->vtkParametricBoy::SetZScale(temp0); } if (!ap.ErrorOccurred()) { result = ap.BuildNone(); } } return result; } static PyObject * PyvtkParametricBoy_GetZScale(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "GetZScale"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkParametricBoy *op = static_cast(vp); PyObject *result = nullptr; if (op && ap.CheckArgCount(0)) { double tempr = (ap.IsBound() ? op->GetZScale() : op->vtkParametricBoy::GetZScale()); if (!ap.ErrorOccurred()) { result = ap.BuildValue(tempr); } } return result; } static PyObject * PyvtkParametricBoy_Evaluate(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "Evaluate"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkParametricBoy *op = static_cast(vp); const int size0 = 3; double temp0[3]; double save0[3]; const int size1 = 3; double temp1[3]; double save1[3]; const int size2 = 9; double temp2[9]; double save2[9]; PyObject *result = nullptr; if (op && ap.CheckArgCount(3) && ap.GetArray(temp0, size0) && ap.GetArray(temp1, size1) && ap.GetArray(temp2, size2)) { ap.SaveArray(temp0, save0, size0); ap.SaveArray(temp1, save1, size1); ap.SaveArray(temp2, save2, size2); if (ap.IsBound()) { op->Evaluate(temp0, temp1, temp2); } else { op->vtkParametricBoy::Evaluate(temp0, temp1, temp2); } if (ap.ArrayHasChanged(temp0, save0, size0) && !ap.ErrorOccurred()) { ap.SetArray(0, temp0, size0); } if (ap.ArrayHasChanged(temp1, save1, size1) && !ap.ErrorOccurred()) { ap.SetArray(1, temp1, size1); } if (ap.ArrayHasChanged(temp2, save2, size2) && !ap.ErrorOccurred()) { ap.SetArray(2, temp2, size2); } if (!ap.ErrorOccurred()) { result = ap.BuildNone(); } } return result; } static PyObject * PyvtkParametricBoy_EvaluateScalar(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "EvaluateScalar"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkParametricBoy *op = static_cast(vp); const int size0 = 3; double temp0[3]; double save0[3]; const int size1 = 3; double temp1[3]; double save1[3]; const int size2 = 9; double temp2[9]; double save2[9]; PyObject *result = nullptr; if (op && ap.CheckArgCount(3) && ap.GetArray(temp0, size0) && ap.GetArray(temp1, size1) && ap.GetArray(temp2, size2)) { ap.SaveArray(temp0, save0, size0); ap.SaveArray(temp1, save1, size1); ap.SaveArray(temp2, save2, size2); double tempr = (ap.IsBound() ? op->EvaluateScalar(temp0, temp1, temp2) : op->vtkParametricBoy::EvaluateScalar(temp0, temp1, temp2)); if (ap.ArrayHasChanged(temp0, save0, size0) && !ap.ErrorOccurred()) { ap.SetArray(0, temp0, size0); } if (ap.ArrayHasChanged(temp1, save1, size1) && !ap.ErrorOccurred()) { ap.SetArray(1, temp1, size1); } if (ap.ArrayHasChanged(temp2, save2, size2) && !ap.ErrorOccurred()) { ap.SetArray(2, temp2, size2); } if (!ap.ErrorOccurred()) { result = ap.BuildValue(tempr); } } return result; } static PyMethodDef PyvtkParametricBoy_Methods[] = { {"IsTypeOf", PyvtkParametricBoy_IsTypeOf, METH_VARARGS, "V.IsTypeOf(string) -> int\nC++: static vtkTypeBool IsTypeOf(const char *type)\n\nReturn 1 if this class type is the same type of (or a subclass\nof) the named class. Returns 0 otherwise. This method works in\ncombination with vtkTypeMacro found in vtkSetGet.h.\n"}, {"IsA", PyvtkParametricBoy_IsA, METH_VARARGS, "V.IsA(string) -> int\nC++: vtkTypeBool IsA(const char *type) override;\n\nReturn 1 if this class is the same type of (or a subclass of) the\nnamed class. Returns 0 otherwise. This method works in\ncombination with vtkTypeMacro found in vtkSetGet.h.\n"}, {"SafeDownCast", PyvtkParametricBoy_SafeDownCast, METH_VARARGS, "V.SafeDownCast(vtkObjectBase) -> vtkParametricBoy\nC++: static vtkParametricBoy *SafeDownCast(vtkObjectBase *o)\n\n"}, {"NewInstance", PyvtkParametricBoy_NewInstance, METH_VARARGS, "V.NewInstance() -> vtkParametricBoy\nC++: vtkParametricBoy *NewInstance()\n\n"}, {"GetDimension", PyvtkParametricBoy_GetDimension, METH_VARARGS, "V.GetDimension() -> int\nC++: int GetDimension() override;\n\nReturn the parametric dimension of the class.\n"}, {"SetZScale", PyvtkParametricBoy_SetZScale, METH_VARARGS, "V.SetZScale(float)\nC++: virtual void SetZScale(double _arg)\n\nSet/Get the scale factor for the z-coordinate. Default is 1/8,\ngiving a nice shape.\n"}, {"GetZScale", PyvtkParametricBoy_GetZScale, METH_VARARGS, "V.GetZScale() -> float\nC++: virtual double GetZScale()\n\nSet/Get the scale factor for the z-coordinate. Default is 1/8,\ngiving a nice shape.\n"}, {"Evaluate", PyvtkParametricBoy_Evaluate, METH_VARARGS, "V.Evaluate([float, float, float], [float, float, float], [float,\n float, float, float, float, float, float, float, float])\nC++: void Evaluate(double uvw[3], double Pt[3], double Duvw[9])\n override;\n\nBoy's surface.\n\n* This function performs the mapping $f(u,v) \\rightarrow (x,y,x)\n $, returning it\n* as Pt. It also returns the partial derivatives Du and Dv.\n* $Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv,\n dy/dv, dz/dv) $ .\n* Then the normal is $N = Du X Dv $ .\n"}, {"EvaluateScalar", PyvtkParametricBoy_EvaluateScalar, METH_VARARGS, "V.EvaluateScalar([float, float, float], [float, float, float],\n [float, float, float, float, float, float, float, float,\n float]) -> float\nC++: double EvaluateScalar(double uvw[3], double Pt[3],\n double Duvw[9]) override;\n\nCalculate a user defined scalar using one or all of uvw, Pt,\nDuvw.\n\n* uvw are the parameters with Pt being the the cartesian point,\n* Duvw are the derivatives of this point with respect to u, v and\nw.\n* Pt, Duvw are obtained from Evaluate().\n\n* This function is only called if the ScalarMode has the value\n* vtkParametricFunctionSource::SCALAR_FUNCTION_DEFINED\n\n* If the user does not need to calculate a scalar, then the\n* instantiated function should return zero.\n"}, {nullptr, nullptr, 0, nullptr} }; static PyTypeObject PyvtkParametricBoy_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) "vtkCommonComputationalGeometryPython.vtkParametricBoy", // tp_name sizeof(PyVTKObject), // tp_basicsize 0, // tp_itemsize PyVTKObject_Delete, // tp_dealloc 0, // tp_print nullptr, // tp_getattr nullptr, // tp_setattr nullptr, // tp_compare PyVTKObject_Repr, // tp_repr nullptr, // tp_as_number nullptr, // tp_as_sequence nullptr, // tp_as_mapping nullptr, // tp_hash nullptr, // tp_call PyVTKObject_String, // tp_str PyObject_GenericGetAttr, // tp_getattro PyObject_GenericSetAttr, // tp_setattro &PyVTKObject_AsBuffer, // tp_as_buffer Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_BASETYPE, // tp_flags PyvtkParametricBoy_Doc, // tp_doc PyVTKObject_Traverse, // tp_traverse nullptr, // tp_clear nullptr, // tp_richcompare offsetof(PyVTKObject, vtk_weakreflist), // tp_weaklistoffset nullptr, // tp_iter nullptr, // tp_iternext nullptr, // tp_methods nullptr, // tp_members PyVTKObject_GetSet, // tp_getset nullptr, // tp_base nullptr, // tp_dict nullptr, // tp_descr_get nullptr, // tp_descr_set offsetof(PyVTKObject, vtk_dict), // tp_dictoffset nullptr, // tp_init nullptr, // tp_alloc PyVTKObject_New, // tp_new PyObject_GC_Del, // tp_free nullptr, // tp_is_gc nullptr, // tp_bases nullptr, // tp_mro nullptr, // tp_cache nullptr, // tp_subclasses nullptr, // tp_weaklist VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED }; static vtkObjectBase *PyvtkParametricBoy_StaticNew() { return vtkParametricBoy::New(); } PyObject *PyvtkParametricBoy_ClassNew() { PyVTKClass_Add( &PyvtkParametricBoy_Type, PyvtkParametricBoy_Methods, "vtkParametricBoy", &PyvtkParametricBoy_StaticNew); PyTypeObject *pytype = &PyvtkParametricBoy_Type; if ((pytype->tp_flags & Py_TPFLAGS_READY) != 0) { return (PyObject *)pytype; } #if !defined(VTK_PY3K) && PY_VERSION_HEX >= 0x02060000 pytype->tp_flags |= Py_TPFLAGS_HAVE_NEWBUFFER; #endif pytype->tp_base = (PyTypeObject *)PyvtkParametricFunction_ClassNew(); PyType_Ready(pytype); return (PyObject *)pytype; } void PyVTKAddFile_vtkParametricBoy( PyObject *dict) { PyObject *o; o = PyvtkParametricBoy_ClassNew(); if (o && PyDict_SetItemString(dict, "vtkParametricBoy", o) != 0) { Py_DECREF(o); } }