soc-2008-mxcurioni: Tested SWIG-less environment more and understood why the former predicate methods were not working. As Stéphane had mentioned a few months ago, Freestyle uses SWIG directors to provide cross-language polymorphism. The API and the system I had provided did not support that feature and only implementations in C++ were supported. To correct the problem, after researching how directors are implemented in SWIG, I provided the same functionality. So far, I only provided the code for the UnaryPredicate1D class and it works. The implementation is in intern/python/Director.cpp and Operators.cpp. I will port the remaining directors tonight and continue to test it.

To prevent strokes from piling up after each render,  I clear the canvas at each render now (as it should have been all along)
This commit is contained in:
Maxime Curioni
2008-07-30 01:51:40 +00:00
parent 7d5eaa674b
commit a482f64424
11 changed files with 94 additions and 15 deletions

View File

@@ -164,7 +164,11 @@ PyObject * Operators_select(BPy_Operators* self, PyObject *args)
Py_RETURN_NONE;
}
Operators::select(*( ((BPy_UnaryPredicate1D *) obj)->up1D ));
UnaryPredicate1D *up1D = ((BPy_UnaryPredicate1D *) obj)->up1D;
if( PyObject_HasAttrString( obj, "__call__") )
up1D->setPythonObject( obj );
Operators::select(*up1D);
Py_RETURN_NONE;
}