1 #include "BPy_ChainSilhouetteIterator.h"
3 #include "../BPy_Convert.h"
4 #include "../Interface1D/BPy_ViewEdge.h"
10 ///////////////////////////////////////////////////////////////////////////////////////////
12 /*--------------- Python API function prototypes for ChainSilhouetteIterator instance -----------*/
13 static int ChainSilhouetteIterator___init__(BPy_ChainSilhouetteIterator *self, PyObject *args);
15 /*-----------------------BPy_ChainSilhouetteIterator type definition ------------------------------*/
17 PyTypeObject ChainSilhouetteIterator_Type = {
18 PyObject_HEAD_INIT(NULL)
19 "ChainSilhouetteIterator", /* tp_name */
20 sizeof(BPy_ChainSilhouetteIterator), /* tp_basicsize */
29 0, /* tp_as_sequence */
30 0, /* tp_as_mapping */
37 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
38 "ChainSilhouetteIterator objects", /* tp_doc */
41 0, /* tp_richcompare */
42 0, /* tp_weaklistoffset */
48 &ChainingIterator_Type, /* tp_base */
52 0, /* tp_dictoffset */
53 (initproc)ChainSilhouetteIterator___init__, /* tp_init */
58 //------------------------INSTANCE METHODS ----------------------------------
60 // ChainSilhouetteIterator (bool iRestrictToSelection=true, ViewEdge *begin=NULL, bool orientation=true)
61 // ChainSilhouetteIterator (const ChainSilhouetteIterator &brother)
63 int ChainSilhouetteIterator___init__(BPy_ChainSilhouetteIterator *self, PyObject *args )
65 PyObject *obj1 = 0, *obj2 = 0, *obj3 = 0;
67 if (!( PyArg_ParseTuple(args, "|OOO", &obj1, &obj2, &obj3) ))
70 if( obj1 && BPy_ChainSilhouetteIterator_Check(obj1) ) {
71 self->cs_it = new ChainSilhouetteIterator(*( ((BPy_ChainSilhouetteIterator *) obj1)->cs_it ));
74 bool restrictToSelection = ( obj1 ) ? bool_from_PyBool(obj1) : true;
76 if ( !obj2 || obj2 == Py_None )
78 else if ( BPy_ViewEdge_Check(obj2) )
79 begin = ((BPy_ViewEdge *) obj2)->ve;
81 PyErr_SetString(PyExc_TypeError, "2nd argument must be either a ViewEdge object or None");
84 bool orientation = ( obj3 ) ? bool_from_PyBool(obj3) : true;
86 self->cs_it = new ChainSilhouetteIterator( restrictToSelection, begin, orientation);
89 self->py_c_it.c_it = self->cs_it;
90 self->py_c_it.py_ve_it.ve_it = self->cs_it;
91 self->py_c_it.py_ve_it.py_it.it = self->cs_it;
98 ///////////////////////////////////////////////////////////////////////////////////////////