soc-2008-mxcurioni: added (but did not test) NonTVertex and TVertex classes. All...
authorMaxime Curioni <maxime.curioni@gmail.com>
Fri, 25 Jul 2008 21:56:06 +0000 (21:56 +0000)
committerMaxime Curioni <maxime.curioni@gmail.com>
Fri, 25 Jul 2008 21:56:06 +0000 (21:56 +0000)
source/blender/freestyle/SConscript
source/blender/freestyle/intern/python/BPy_Interface0D.cpp
source/blender/freestyle/intern/python/Interface0D/ViewVertex/BPy_NonTVertex.cpp
source/blender/freestyle/intern/python/Interface0D/ViewVertex/BPy_NonTVertex.h [new file with mode: 0644]
source/blender/freestyle/intern/python/Interface0D/ViewVertex/BPy_TVertex.cpp
source/blender/freestyle/intern/python/Interface0D/ViewVertex/BPy_TVertex.h [new file with mode: 0644]
source/blender/freestyle/intern/view_map/ViewMap.h
source/blender/freestyle/intern/view_map/ViewMapIO.cpp

index 3b7d503ed43511c66f2e713ba860ea9c09718764..6bbf5c9ca4bdd4264324194631e5b06934bdbcf2 100644 (file)
@@ -72,6 +72,8 @@ python_sources = [
                                                prefix + '/Interface0D/CurvePoint/BPy_StrokeVertex.cpp',
                                                prefix + '/Interface0D/BPy_SVertex.cpp',
                                                prefix + '/Interface0D/BPy_ViewVertex.cpp',
+                                               prefix + '/Interface0D/ViewVertex/BPy_NonTVertex.cpp',
+                                               prefix + '/Interface0D/ViewVertex/BPy_TVertex.cpp',
                                        prefix + '/BPy_Interface1D.cpp',
                                                prefix + '/Interface1D/BPy_Curve.cpp',
                                                prefix + '/Interface1D/BPy_FEdge.cpp',
index defe76464eba26e508e8d7ae88754165ec2440bc..506fc3b4e9dd829a2aa807743a060d9a4af7704a 100644 (file)
@@ -5,6 +5,8 @@
 #include "Interface0D/CurvePoint/BPy_StrokeVertex.h"
 #include "Interface0D/BPy_SVertex.h"
 #include "Interface0D/BPy_ViewVertex.h"
+#include "Interface0D/ViewVertex/BPy_NonTVertex.h"
+#include "Interface0D/ViewVertex/BPy_TVertex.h"
 #include "Interface1D/BPy_FEdge.h"
 #include "BPy_Nature.h"
 
@@ -164,6 +166,16 @@ PyMODINIT_FUNC Interface0D_Init( PyObject *module )
                return;
        Py_INCREF( &StrokeVertex_Type );
        PyModule_AddObject(module, "StrokeVertex", (PyObject *)&StrokeVertex_Type);
+       
+       if( PyType_Ready( &NonTVertex_Type ) < 0 )
+               return;
+       Py_INCREF( &NonTVertex_Type );
+       PyModule_AddObject(module, "NonTVertex", (PyObject *)&NonTVertex_Type);
+       
+       if( PyType_Ready( &TVertex_Type ) < 0 )
+               return;
+       Py_INCREF( &TVertex_Type );
+       PyModule_AddObject(module, "TVertex", (PyObject *)&TVertex_Type);
 }
 
 //------------------------INSTANCE METHODS ----------------------------------
index 772a385139e2000d1b532f0c7cc895418173bda5..206674a20a573f1b918277a0ab9192a1d3d72c49 100644 (file)
- PyObject *_wrap_NonTVertex_getExactTypeName(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_NonTVertex_getX(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_NonTVertex_getY(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_NonTVertex_getZ(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_NonTVertex_getPoint3D(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_NonTVertex_getProjectedX(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_NonTVertex_getProjectedY(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_NonTVertex_getProjectedZ(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_NonTVertex_getPoint2D(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_NonTVertex_getId(PyObject *self , PyObject *args) {
-}
-
+#include "BPy_NonTVertex.h"
+
+#include "../../BPy_Convert.h"
+#include "../BPy_SVertex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+///////////////////////////////////////////////////////////////////////////////////////////
+
+/*---------------  Python API function prototypes for NonTVertex___init__ instance  -----------*/
+static int NonTVertex___init__(BPy_NonTVertex *self, PyObject *args, PyObject *kwds);
+
+static PyObject * NonTVertex_castToSVertex( BPy_NonTVertex *self );
+static PyObject * NonTVertex_castToViewVertex( BPy_NonTVertex *self );
+static PyObject * NonTVertex_castToNonTVertex( BPy_NonTVertex *self );
+static PyObject * NonTVertex_svertex( BPy_NonTVertex *self );
+static PyObject * NonTVertex_setSVertex( BPy_NonTVertex *self, PyObject *args);
+
+/*----------------------NonTVertex instance definitions ----------------------------*/
+static PyMethodDef BPy_NonTVertex_methods[] = {        
+//     {"__copy__", ( PyCFunction ) NonTVertex___copy__, METH_NOARGS, "( )Cloning method."},
+       {"castToSVertex", ( PyCFunction ) NonTVertex_castToSVertex, METH_NOARGS, "( )Cast the Interface0D in SVertex if it can be. "},
+       {"castToViewVertex", ( PyCFunction ) NonTVertex_castToViewVertex, METH_NOARGS, "( )Cast the Interface0D in ViewVertex if it can be. "},
+       {"castToNonTVertex", ( PyCFunction ) NonTVertex_castToNonTVertex, METH_NOARGS, "( )Cast the Interface0D in NonTVertex if it can be. "},
+       {"svertex", ( PyCFunction ) NonTVertex_svertex, METH_NOARGS, "( )Returns the SVertex on top of which this NonTVertex is built. "},
+       {"setSVertex", ( PyCFunction ) NonTVertex_setSVertex, METH_VARARGS, "(SVertex sv )Sets the SVertex on top of which this NonTVertex is built. "},
+       {NULL, NULL, 0, NULL}
+};
+
+/*-----------------------BPy_NonTVertex type definition ------------------------------*/
+
+PyTypeObject NonTVertex_Type = {
+       PyObject_HEAD_INIT( NULL ) 
+       0,                                                      /* ob_size */
+       "NonTVertex",                           /* tp_name */
+       sizeof( BPy_NonTVertex ),       /* tp_basicsize */
+       0,                                                      /* tp_itemsize */
+       
+       /* methods */
+       NULL,   /* tp_dealloc */
+       NULL,                                                   /* printfunc tp_print; */
+       NULL,                                                   /* getattrfunc tp_getattr; */
+       NULL,                                                   /* setattrfunc tp_setattr; */
+       NULL,                                                                           /* tp_compare */
+       NULL,                                   /* tp_repr */
+
+       /* Method suites for standard classes */
+
+       NULL,                       /* PyNumberMethods *tp_as_number; */
+       NULL,                       /* PySequenceMethods *tp_as_sequence; */
+       NULL,                       /* PyMappingMethods *tp_as_mapping; */
+
+       /* More standard operations (here for binary compatibility) */
+
+       NULL,                                           /* hashfunc tp_hash; */
+       NULL,                       /* ternaryfunc tp_call; */
+       NULL,                       /* reprfunc tp_str; */
+       NULL,                       /* getattrofunc tp_getattro; */
+       NULL,                       /* setattrofunc tp_setattro; */
 
- PyObject *_wrap_NonTVertex_castToSVertex(PyObject *self , PyObject *args) {
-}
+       /* Functions to access object as input/output buffer */
+       NULL,                       /* PyBufferProcs *tp_as_buffer; */
 
+  /*** Flags to define presence of optional/expanded features ***/
+       Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,               /* long tp_flags; */
 
- PyObject *_wrap_NonTVertex_castToViewVertex(PyObject *self , PyObject *args) {
-}
+       NULL,                       /*  char *tp_doc;  Documentation string */
+  /*** Assigned meaning in release 2.0 ***/
+       /* call function for all accessible objects */
+       NULL,                       /* traverseproc tp_traverse; */
 
+       /* delete references to contained objects */
+       NULL,                       /* inquiry tp_clear; */
 
- PyObject *_wrap_NonTVertex_castToNonTVertex(PyObject *self , PyObject *args) {
-}
+  /***  Assigned meaning in release 2.1 ***/
+  /*** rich comparisons ***/
+       NULL,                       /* richcmpfunc tp_richcompare; */
 
+  /***  weak reference enabler ***/
+       0,                          /* long tp_weaklistoffset; */
 
- PyObject *_wrap_new_NonTVertex__SWIG_0(PyObject *self , PyObject *args) {
-}
+  /*** Added in release 2.2 ***/
+       /*   Iterators */
+       NULL,                       /* getiterfunc tp_iter; */
+       NULL,                       /* iternextfunc tp_iternext; */
 
+  /*** Attribute descriptor and subclassing stuff ***/
+       BPy_NonTVertex_methods, /* struct PyMethodDef *tp_methods; */
+       NULL,                           /* struct PyMemberDef *tp_members; */
+       NULL,                                           /* struct PyGetSetDef *tp_getset; */
+       &ViewVertex_Type,                               /* struct _typeobject *tp_base; */
+       NULL,                                                   /* PyObject *tp_dict; */
+       NULL,                                                   /* descrgetfunc tp_descr_get; */
+       NULL,                                                   /* descrsetfunc tp_descr_set; */
+       0,                              /* long tp_dictoffset; */
+       (initproc)NonTVertex___init__,                          /* initproc tp_init; */
+       NULL,                                                   /* allocfunc tp_alloc; */
+       NULL,           /* newfunc tp_new; */
+       
+       /*  Low-level free-memory routine */
+       NULL,                       /* freefunc tp_free;  */
+       
+       /* For PyObject_IS_GC */
+       NULL,                       /* inquiry tp_is_gc;  */
+       NULL,                       /* PyObject *tp_bases; */
+       
+       /* method resolution order */
+       NULL,                       /* PyObject *tp_mro;  */
+       NULL,                       /* PyObject *tp_cache; */
+       NULL,                       /* PyObject *tp_subclasses; */
+       NULL,                       /* PyObject *tp_weaklist; */
+       NULL
+};
 
- PyObject *_wrap_new_NonTVertex__SWIG_1(PyObject *self , PyObject *args) {
-}
 
 
- PyObject *_wrap_new_NonTVertex(PyObject *self, PyObject *args) {
-}
+//------------------------INSTANCE METHODS ----------------------------------
 
+int NonTVertex___init__(BPy_NonTVertex *self, PyObject *args, PyObject *kwds)
+{
 
- PyObject *_wrap_delete_NonTVertex(PyObject *self , PyObject *args) {
-}
+       PyObject *obj = 0;
 
+    if (! PyArg_ParseTuple(args, "|O", &obj) )
+        return -1;
 
PyObject *_wrap_NonTVertex_svertex(PyObject *self , PyObject *args) {
-}
      if( !obj ){
+               self->ntv = new NonTVertex();
 
+       } else if( BPy_SVertex_Check(obj) && ((BPy_SVertex *) obj)->sv ) {
+               self->ntv = new NonTVertex( ((BPy_SVertex *) obj)->sv );
 
- PyObject *_wrap_NonTVertex_viewedges(PyObject *self , PyObject *args) {
-}
+       } else {
+               return -1;
+       }
 
+       self->py_vv.vv = self->ntv;
+       self->py_vv.py_if0D.if0D = self->ntv;
 
- PyObject *_wrap_NonTVertex_SetSVertex(PyObject *self , PyObject *args) {
+       return 0;
 }
 
+PyObject * NonTVertex_castToSVertex( BPy_NonTVertex *self ) {
+       PyObject *py_sv =  SVertex_Type.tp_new( &SVertex_Type, 0, 0 );
+       ((BPy_SVertex *) py_sv)->sv = self->ntv->castToSVertex();
 
- PyObject *_wrap_NonTVertex_SetViewEdges(PyObject *self , PyObject *args) {
+       return py_sv;
 }
 
+PyObject * NonTVertex_castToViewVertex( BPy_NonTVertex *self ) {
+       PyObject *py_vv =  ViewVertex_Type.tp_new( &ViewVertex_Type, 0, 0 );
+       ((BPy_ViewVertex *) py_vv)->vv = self->ntv->castToViewVertex();
 
- PyObject *_wrap_NonTVertex_AddIncomingViewEdge(PyObject *self , PyObject *args) {
+       return py_vv;
 }
 
+PyObject * NonTVertex_castToNonTVertex( BPy_NonTVertex *self ) {
+       PyObject *py_ntv =  NonTVertex_Type.tp_new( &NonTVertex_Type, 0, 0 );
+       ((BPy_NonTVertex *) py_ntv)->ntv = self->ntv->castToNonTVertex();
 
- PyObject *_wrap_NonTVertex_AddOutgoingViewEdge(PyObject *self , PyObject *args) {
+       return py_ntv;
 }
 
+PyObject * NonTVertex_svertex( BPy_NonTVertex *self ) {
+       if( self->ntv->svertex() ){
+               return BPy_SVertex_from_SVertex(*( self->ntv->svertex() ));
+       }
 
- PyObject *_wrap_NonTVertex_AddViewEdge__SWIG_0(PyObject *self , PyObject *args) {
+       Py_RETURN_NONE;
 }
 
+PyObject * NonTVertex_setSVertex( BPy_NonTVertex *self, PyObject *args) {
+       PyObject *py_sv;
 
- PyObject *_wrap_NonTVertex_AddViewEdge__SWIG_1(PyObject *self , PyObject *args) {
-}
+       if(!( PyArg_ParseTuple(args, "O", &py_sv) && BPy_SVertex_Check(py_sv) )) {
+               cout << "ERROR: NonTVertex_setSVertex" << endl;
+               Py_RETURN_NONE;
+       }
 
+       self->ntv->setSVertex( ((BPy_SVertex *) py_sv)->sv );
 
- PyObject *_wrap_NonTVertex_AddViewEdge(PyObject *self, PyObject *args) {
+       Py_RETURN_NONE;
 }
 
 
- PyObject *_wrap_NonTVertex_Replace(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_NonTVertex_edges_end__SWIG_0(PyObject *self , PyObject *args) {
-}
-
+///////////////////////////////////////////////////////////////////////////////////////////
 
- PyObject *_wrap_NonTVertex_edges_end__SWIG_1(PyObject *self , PyObject *args) {
+#ifdef __cplusplus
 }
-
-
- PyObject *_wrap_NonTVertex_edges_end(PyObject *self, PyObject *args) {
-}
-
-
- PyObject *_wrap_NonTVertex_edgesBegin(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_NonTVertex_edgesEnd(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_NonTVertex_edgesIterator(PyObject *self , PyObject *args) {
-}
-
-
+#endif
diff --git a/source/blender/freestyle/intern/python/Interface0D/ViewVertex/BPy_NonTVertex.h b/source/blender/freestyle/intern/python/Interface0D/ViewVertex/BPy_NonTVertex.h
new file mode 100644 (file)
index 0000000..13b520d
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef FREESTYLE_PYTHON_NONTVERTEX_H
+#define FREESTYLE_PYTHON_NONTVERTEX_H
+
+#include "../BPy_ViewVertex.h"
+#include "../../../view_map/ViewMap.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+///////////////////////////////////////////////////////////////////////////////////////////
+
+#include <Python.h>
+
+extern PyTypeObject NonTVertex_Type;
+
+#define BPy_NonTVertex_Check(v)        (( (PyObject *) v)->ob_type == &NonTVertex_Type)
+
+/*---------------------------Python BPy_NonTVertex structure definition----------*/
+typedef struct {
+       BPy_ViewVertex py_vv;
+       NonTVertex *ntv;
+} BPy_NonTVertex;
+
+///////////////////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* FREESTYLE_PYTHON_NONTVERTEX_H */
index 715170c1422594691edc4f65b81c8dfe99476a2e..ab8bb72604c507bcf821aeb267f22a327b7db618 100644 (file)
- PyObject *_wrap_TVertex_getExactTypeName(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_getX(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_getY(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_getZ(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_getPoint3D(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_getProjectedX(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_getProjectedY(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_getProjectedZ(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_getPoint2D(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_getId(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_castToViewVertex(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_castToTVertex(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_new_TVertex__SWIG_0(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_new_TVertex__SWIG_1(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_new_TVertex(PyObject *self, PyObject *args) {
-}
-
+#include "BPy_TVertex.h"
+
+#include "../../BPy_Convert.h"
+#include "../BPy_SVertex.h"
+#include "../../BPy_Id.h"
+#include "../../Interface1D/BPy_FEdge.h"
+#include "../../Interface1D/BPy_ViewEdge.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+///////////////////////////////////////////////////////////////////////////////////////////
+
+/*---------------  Python API function prototypes for TVertex___init__ instance  -----------*/
+static int TVertex___init__(BPy_TVertex *self, PyObject *args, PyObject *kwds);
+
+static PyObject * TVertex_castToViewVertex( BPy_TVertex *self );
+static PyObject * TVertex_castToTVertex( BPy_TVertex *self );
+static PyObject * TVertex_frontSVertex( BPy_TVertex *self );
+static PyObject * TVertex_backSVertex( BPy_TVertex *self );
+static PyObject * TVertex_setFrontSVertex( BPy_TVertex *self, PyObject *args); 
+static PyObject * TVertex_setBackSVertex( BPy_TVertex *self, PyObject *args); 
+static PyObject * TVertex_setId( BPy_TVertex *self, PyObject *args);
+static PyObject * TVertex_getSVertex( BPy_TVertex *self, PyObject *args);
+static PyObject * TVertex_mate( BPy_TVertex *self, PyObject *args);
+
+/*----------------------TVertex instance definitions ----------------------------*/
+static PyMethodDef BPy_TVertex_methods[] = {   
+//     {"__copy__", ( PyCFunction ) TVertex___copy__, METH_NOARGS, "( )Cloning method."},
+       {"castToViewVertex", ( PyCFunction ) TVertex_castToViewVertex, METH_NOARGS, "( )Cast the Interface0D in ViewVertex if it can be. "},
+       {"castToTVertex", ( PyCFunction ) TVertex_castToTVertex, METH_NOARGS, "( )Cast the Interface0D in TVertex if it can be. "},
+       {"frontSVertex", ( PyCFunction ) TVertex_frontSVertex, METH_NOARGS, "( )Returns the SVertex that is closer to the viewpoint. "},
+       {"backSVertex", ( PyCFunction ) TVertex_backSVertex, METH_NOARGS, "( )Returns the SVertex that is further away from the viewpoint. "},
+       {"setFrontSVertex", ( PyCFunction ) TVertex_setFrontSVertex, METH_VARARGS, "(SVertex sv )Sets the SVertex that is closer to the viewpoint. "},
+       {"setBackSVertex", ( PyCFunction ) TVertex_setBackSVertex, METH_VARARGS, "(SVertex sv )Sets the SVertex that is further away from the viewpoint. "},
+       {"setId", ( PyCFunction ) TVertex_setId, METH_VARARGS, "(Id id )Sets the Id."},
+       {"getSVertex", ( PyCFunction ) TVertex_getSVertex, METH_VARARGS, "(FEdge fe )Returns the SVertex (among the 2) belonging to the FEdge iFEdge "},
+       {"mate", ( PyCFunction ) TVertex_mate, METH_VARARGS, "(ViewEdge ve )Returns the mate edge of iEdgeA. For example, if iEdgeA is frontEdgeA, then frontEdgeB is returned. If iEdgeA is frontEdgeB then frontEdgeA is returned. Same for back edges"},
+       {NULL, NULL, 0, NULL}
+};
+
+/*-----------------------BPy_TVertex type definition ------------------------------*/
+
+PyTypeObject TVertex_Type = {
+       PyObject_HEAD_INIT( NULL ) 
+       0,                                                      /* ob_size */
+       "TVertex",                              /* tp_name */
+       sizeof( BPy_TVertex ),  /* tp_basicsize */
+       0,                                                      /* tp_itemsize */
+       
+       /* methods */
+       NULL,   /* tp_dealloc */
+       NULL,                                                   /* printfunc tp_print; */
+       NULL,                                                   /* getattrfunc tp_getattr; */
+       NULL,                                                   /* setattrfunc tp_setattr; */
+       NULL,                                                                           /* tp_compare */
+       NULL,                                   /* tp_repr */
+
+       /* Method suites for standard classes */
+
+       NULL,                       /* PyNumberMethods *tp_as_number; */
+       NULL,                       /* PySequenceMethods *tp_as_sequence; */
+       NULL,                       /* PyMappingMethods *tp_as_mapping; */
+
+       /* More standard operations (here for binary compatibility) */
+
+       NULL,                                           /* hashfunc tp_hash; */
+       NULL,                       /* ternaryfunc tp_call; */
+       NULL,                       /* reprfunc tp_str; */
+       NULL,                       /* getattrofunc tp_getattro; */
+       NULL,                       /* setattrofunc tp_setattro; */
+
+       /* Functions to access object as input/output buffer */
+       NULL,                       /* PyBufferProcs *tp_as_buffer; */
+
+  /*** Flags to define presence of optional/expanded features ***/
+       Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,               /* long tp_flags; */
+
+       NULL,                       /*  char *tp_doc;  Documentation string */
+  /*** Assigned meaning in release 2.0 ***/
+       /* call function for all accessible objects */
+       NULL,                       /* traverseproc tp_traverse; */
+
+       /* delete references to contained objects */
+       NULL,                       /* inquiry tp_clear; */
 
- PyObject *_wrap_TVertex_frontSVertex(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_backSVertex(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_frontEdgeA(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_frontEdgeB(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_backEdgeA(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_backEdgeB(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_SetFrontVertex(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_SetBackSVertex(PyObject *self , PyObject *args) {
-}
+  /***  Assigned meaning in release 2.1 ***/
+  /*** rich comparisons ***/
+       NULL,                       /* richcmpfunc tp_richcompare; */
+
+  /***  weak reference enabler ***/
+       0,                          /* long tp_weaklistoffset; */
 
+  /*** Added in release 2.2 ***/
+       /*   Iterators */
+       NULL,                       /* getiterfunc tp_iter; */
+       NULL,                       /* iternextfunc tp_iternext; */
 
- PyObject *_wrap_TVertex_SetFrontEdgeA__SWIG_0(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_SetFrontEdgeA__SWIG_1(PyObject *self , PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_SetFrontEdgeA(PyObject *self, PyObject *args) {
-}
-
-
- PyObject *_wrap_TVertex_SetFrontEdgeB__SWIG_0(PyObject *self , PyObject *args) {
-}
-
+  /*** Attribute descriptor and subclassing stuff ***/
+       BPy_TVertex_methods,    /* struct PyMethodDef *tp_methods; */
+       NULL,                           /* struct PyMemberDef *tp_members; */
+       NULL,                                           /* struct PyGetSetDef *tp_getset; */
+       &ViewVertex_Type,                               /* struct _typeobject *tp_base; */
+       NULL,                                                   /* PyObject *tp_dict; */
+       NULL,                                                   /* descrgetfunc tp_descr_get; */
+       NULL,                                                   /* descrsetfunc tp_descr_set; */
+       0,                              /* long tp_dictoffset; */
+       (initproc)TVertex___init__,                             /* initproc tp_init; */
+       NULL,                                                   /* allocfunc tp_alloc; */
+       NULL,           /* newfunc tp_new; */
+       
+       /*  Low-level free-memory routine */
+       NULL,                       /* freefunc tp_free;  */
+       
+       /* For PyObject_IS_GC */
+       NULL,                       /* inquiry tp_is_gc;  */
+       NULL,                       /* PyObject *tp_bases; */
+       
+       /* method resolution order */
+       NULL,                       /* PyObject *tp_mro;  */
+       NULL,                       /* PyObject *tp_cache; */
+       NULL,                       /* PyObject *tp_subclasses; */
+       NULL,                       /* PyObject *tp_weaklist; */
+       NULL
+};
 
- PyObject *_wrap_TVertex_SetFrontEdgeB__SWIG_1(PyObject *self , PyObject *args) {
-}
 
 
- PyObject *_wrap_TVertex_SetFrontEdgeB(PyObject *self, PyObject *args) {
-}
+//------------------------INSTANCE METHODS ----------------------------------
 
+int TVertex___init__(BPy_TVertex *self, PyObject *args, PyObject *kwds)
+{
+       self->tv = new TVertex();
+       self->py_vv.vv = self->tv;
+       self->py_vv.py_if0D.if0D = self->tv;
 
- PyObject *_wrap_TVertex_SetBackEdgeA__SWIG_0(PyObject *self , PyObject *args) {
+       return 0;
 }
 
 
- PyObject *_wrap_TVertex_SetBackEdgeA__SWIG_1(PyObject *self , PyObject *args) {
-}
-
+PyObject * TVertex_castToViewVertex( BPy_TVertex *self ) {
+       PyObject *py_vv =  ViewVertex_Type.tp_new( &ViewVertex_Type, 0, 0 );
+       ((BPy_ViewVertex *) py_vv)->vv = self->tv->castToViewVertex();
 
- PyObject *_wrap_TVertex_SetBackEdgeA(PyObject *self, PyObject *args) {
+       return py_vv;
 }
 
+PyObject * TVertex_castToTVertex( BPy_TVertex *self ) {
+       PyObject *py_tv =  TVertex_Type.tp_new( &TVertex_Type, 0, 0 );
+       ((BPy_TVertex *) py_tv)->tv = self->tv->castToTVertex();
 
- PyObject *_wrap_TVertex_SetBackEdgeB__SWIG_0(PyObject *self , PyObject *args) {
+       return py_tv;
 }
 
+PyObject * TVertex_frontSVertex( BPy_TVertex *self ) {
+       if( self->tv->frontSVertex() ){
+               return BPy_SVertex_from_SVertex(*( self->tv->frontSVertex() ));
+       }
 
- PyObject *_wrap_TVertex_SetBackEdgeB__SWIG_1(PyObject *self , PyObject *args) {
+       Py_RETURN_NONE;
 }
 
+PyObject * TVertex_backSVertex( BPy_TVertex *self ) {
+       if( self->tv->backSVertex() ){
+               return BPy_SVertex_from_SVertex(*( self->tv->backSVertex() ));
+       }
 
- PyObject *_wrap_TVertex_SetBackEdgeB(PyObject *self, PyObject *args) {
+       Py_RETURN_NONE;
 }
 
+PyObject * TVertex_setFrontSVertex( BPy_TVertex *self, PyObject *args) {
+       PyObject *py_sv;
 
- PyObject *_wrap_TVertex_SetId(PyObject *self , PyObject *args) {
-}
+       if(!( PyArg_ParseTuple(args, "O", &py_sv) && BPy_SVertex_Check(py_sv) )) {
+               cout << "ERROR: TVertex_setFrontSVertex" << endl;
+               Py_RETURN_NONE;
+       }
 
+       self->tv->setFrontSVertex( ((BPy_SVertex *) py_sv)->sv );
 
- PyObject *_wrap_TVertex_GetSVertex(PyObject *self , PyObject *args) {
+       Py_RETURN_NONE;
 }
 
+PyObject * TVertex_setBackSVertex( BPy_TVertex *self, PyObject *args) {
+       PyObject *py_sv;
 
- PyObject *_wrap_TVertex_Replace(PyObject *self , PyObject *args) {
-}
+       if(!( PyArg_ParseTuple(args, "O", &py_sv) && BPy_SVertex_Check(py_sv) )) {
+               cout << "ERROR: TVertex_setBackSVertex" << endl;
+               Py_RETURN_NONE;
+       }
 
+       self->tv->setBackSVertex( ((BPy_SVertex *) py_sv)->sv );
 
- PyObject *_wrap_TVertex_mate(PyObject *self , PyObject *args) {
+       Py_RETURN_NONE;
 }
 
+PyObject * TVertex_setId( BPy_TVertex *self, PyObject *args) {
+       PyObject *py_id;
 
- PyObject *_wrap_TVertex_edges_end__SWIG_0(PyObject *self , PyObject *args) {
-}
+       if(!( PyArg_ParseTuple(args, "O", &py_id) && BPy_Id_Check(py_id) )) {
+               cout << "ERROR: TVertex_setId" << endl;
+               Py_RETURN_NONE;
+       }
 
+       if( ((BPy_Id *) py_id)->id )
+               self->tv->setId(*( ((BPy_Id *) py_id)->id ));
 
- PyObject *_wrap_TVertex_edges_end__SWIG_1(PyObject *self , PyObject *args) {
+       Py_RETURN_NONE;
 }
 
+PyObject * TVertex_getSVertex( BPy_TVertex *self, PyObject *args) {
+       PyObject *py_fe;
 
- PyObject *_wrap_TVertex_edges_end(PyObject *self, PyObject *args) {
-}
+       if(!( PyArg_ParseTuple(args, "O", &py_fe) && BPy_FEdge_Check(py_fe) )) {
+               cout << "ERROR: TVertex_getSVertex" << endl;
+               Py_RETURN_NONE;
+       }
 
+       SVertex *sv = self->tv->getSVertex( ((BPy_FEdge *) py_fe)->fe );
+       if( sv ){
+               return BPy_SVertex_from_SVertex(*( sv ));
+       }
 
- PyObject *_wrap_TVertex_edgesBegin(PyObject *self , PyObject *args) {
+       Py_RETURN_NONE;
 }
 
+PyObject * TVertex_mate( BPy_TVertex *self, PyObject *args) {
+       PyObject *py_ve;
 
- PyObject *_wrap_TVertex_edgesEnd(PyObject *self , PyObject *args) {
-}
+       if(!( PyArg_ParseTuple(args, "O", &py_ve) && BPy_ViewEdge_Check(py_ve) )) {
+               cout << "ERROR: TVertex_mate" << endl;
+               Py_RETURN_NONE;
+       }
 
+       ViewEdge *ve = self->tv->mate( ((BPy_ViewEdge *) py_ve)->ve );
+       if( ve ){
+               return BPy_ViewEdge_from_ViewEdge(*( ve ));
+       }
 
- PyObject *_wrap_TVertex_edgesIterator(PyObject *self , PyObject *args) {
+       Py_RETURN_NONE;
 }
 
+       
+///////////////////////////////////////////////////////////////////////////////////////////
 
- PyObject *_wrap_delete_TVertex(PyObject *self , PyObject *args) {
+#ifdef __cplusplus
 }
-
-
+#endif
diff --git a/source/blender/freestyle/intern/python/Interface0D/ViewVertex/BPy_TVertex.h b/source/blender/freestyle/intern/python/Interface0D/ViewVertex/BPy_TVertex.h
new file mode 100644 (file)
index 0000000..a4f5644
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef FREESTYLE_PYTHON_TVERTEX_H
+#define FREESTYLE_PYTHON_TVERTEX_H
+
+#include "../BPy_ViewVertex.h"
+#include "../../../view_map/ViewMap.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+///////////////////////////////////////////////////////////////////////////////////////////
+
+#include <Python.h>
+
+extern PyTypeObject TVertex_Type;
+
+#define BPy_TVertex_Check(v)   (( (PyObject *) v)->ob_type == &TVertex_Type)
+
+/*---------------------------Python BPy_TVertex structure definition----------*/
+typedef struct {
+       BPy_ViewVertex py_vv;
+       TVertex *tv;
+} BPy_TVertex;
+
+///////////////////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* FREESTYLE_PYTHON_TVERTEX_H */
index 2ddeb198fff01601186e36996cca874f239879bc..e4b0d915ada1d06726c5879d5bb7822449dd533e 100755 (executable)
@@ -465,7 +465,7 @@ public:
   
   /* modifiers */
   /*! Sets the SVertex that is closer to the viewpoint. */
-  inline void setFrontVertex(SVertex  *iFrontSVertex) {_FrontSVertex = iFrontSVertex;_FrontSVertex->setViewVertex(this);}
+  inline void setFrontSVertex(SVertex  *iFrontSVertex) {_FrontSVertex = iFrontSVertex;_FrontSVertex->setViewVertex(this);}
   /*! Sets the SVertex that is further away from the viewpoint. */
   inline void setBackSVertex(SVertex  *iBackSVertex) {_BackSVertex = iBackSVertex;_BackSVertex->setViewVertex(this);}
   void setFrontEdgeA(ViewEdge *iFrontEdgeA, bool incoming=true);
@@ -476,7 +476,7 @@ public:
   inline void setId(const Id& iId) {_Id = iId;}
   
   /*! Returns the SVertex (among the 2) belonging to the FEdge iFEdge */
-  inline SVertex * GetSVertex(FEdge *iFEdge)
+  inline SVertex * getSVertex(FEdge *iFEdge)
   {
     const vector<FEdge*>& vfEdges = _FrontSVertex->fedges();
     vector<FEdge*>::const_iterator fe,fend;
index 3591c67ce1f687863fbb0ea6d0afa291669dcc9b..e42a0df042216a072869a5808bb149584a4e002b 100755 (executable)
@@ -463,7 +463,7 @@ namespace ViewMapIO {
        // FrontSVertex
        SVertex* fsv;
        READ_IF_NON_NULL(fsv, g_vm->SVertices());
-       tv->setFrontVertex(fsv);
+       tv->setFrontSVertex(fsv);
 
        // BackSVertex
        SVertex* bsv;