Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Curioni <maxime.curioni@gmail.com>2008-08-02 11:39:49 +0400
committerMaxime Curioni <maxime.curioni@gmail.com>2008-08-02 11:39:49 +0400
commite385d69580de32df6dcfd009853ddd4eb8a3191e (patch)
treeef141019b1e00f03da689be0cea0b1a1bf6eb457 /source/blender/freestyle/intern/view_map/Interface0D.h
parent7565990db264dbb7771744cea0a1c87b3e11fc3f (diff)
soc-2008-mxcurioni: Made crucial corrections to stabilize the system. Most of the original styles are supported: stroke attributes are correctly taken into account, Python shaders are supported. Added SamplingShader.
Diffstat (limited to 'source/blender/freestyle/intern/view_map/Interface0D.h')
-rwxr-xr-xsource/blender/freestyle/intern/view_map/Interface0D.h162
1 files changed, 130 insertions, 32 deletions
diff --git a/source/blender/freestyle/intern/view_map/Interface0D.h b/source/blender/freestyle/intern/view_map/Interface0D.h
index eaa6d31829b..89d8f606264 100755
--- a/source/blender/freestyle/intern/view_map/Interface0D.h
+++ b/source/blender/freestyle/intern/view_map/Interface0D.h
@@ -40,6 +40,7 @@ using namespace std;
#include "../system/Iterator.h" //soc
+#include "../python/Director.h"
//
// Interface0D
@@ -56,6 +57,10 @@ class Interface0D
{
public:
+ PyObject *py_if0D;
+
+ /*! Default constructor */
+ Interface0D() { py_if0D = 0; }
virtual ~Interface0D() {}; //soc
/*! Returns the string "Interface0D".*/
@@ -67,94 +72,187 @@ public:
/*! Returns the 3D x coordinate of the point. */
virtual real getX() const {
- cerr << "Warning: method getX() not implemented" << endl;
- return 0;
+ string name( py_if0D ? PyString_AsString(PyObject_CallMethod(py_if0D, "getExactTypeName", "")) : getExactTypeName() );
+
+ if( py_if0D && PyObject_HasAttrString(py_if0D, "getX") ) {
+ return Director_BPy_Interface0D_getX(py_if0D);
+ } else {
+ cerr << "Warning: " << name << " getX() not implemented" << endl;
+ return 0;
+ }
}
+
/*! Returns the 3D y coordinate of the point. */
virtual real getY() const {
- cerr << "Warning: method getY() not implemented" << endl;
- return 0;
+ string name( py_if0D ? PyString_AsString(PyObject_CallMethod(py_if0D, "getExactTypeName", "")) : getExactTypeName() );
+
+ if( py_if0D && PyObject_HasAttrString(py_if0D, "getY") ) {
+ return Director_BPy_Interface0D_getY(py_if0D);
+ } else {
+ cerr << "Warning: " << name << " getY() not implemented" << endl;
+ return 0;
+ }
}
/*! Returns the 3D z coordinate of the point. */
virtual real getZ() const {
- cerr << "Warning: method getZ() not implemented" << endl;
- return 0;
+ string name( py_if0D ? PyString_AsString(PyObject_CallMethod(py_if0D, "getExactTypeName", "")) : getExactTypeName() );
+
+ if( py_if0D && PyObject_HasAttrString(py_if0D, "getZ") ) {
+ return Director_BPy_Interface0D_getZ(py_if0D);
+ } else {
+ cerr << "Warning: " << name << " getZ() not implemented" << endl;
+ return 0;
+ }
}
/*! Returns the 3D point. */
virtual Geometry::Vec3f getPoint3D() const {
- cerr << "Warning: method getPoint3D() not implemented" << endl;
- return 0;
+ string name( py_if0D ? PyString_AsString(PyObject_CallMethod(py_if0D, "getExactTypeName", "")) : getExactTypeName() );
+
+ if( py_if0D && PyObject_HasAttrString(py_if0D, "getPoint3D") ) {
+ return Director_BPy_Interface0D_getPoint3D(py_if0D);
+ } else {
+ cerr << "Warning: " << name << " getPoint3D() not implemented" << endl;
+ return 0;
+ }
}
/*! Returns the 2D x coordinate of the point. */
virtual real getProjectedX() const {
- cerr << "Warning: method getProjectedX() not implemented" << endl;
- return 0;
+ string name( py_if0D ? PyString_AsString(PyObject_CallMethod(py_if0D, "getExactTypeName", "")) : getExactTypeName() );
+
+ if( py_if0D && PyObject_HasAttrString(py_if0D, "getProjectedX") ) {
+ return Director_BPy_Interface0D_getProjectedX(py_if0D);
+ } else {
+ cerr << "Warning: " << name << " getProjectedX() not implemented" << endl;
+ return 0;
+ }
}
/*! Returns the 2D y coordinate of the point. */
virtual real getProjectedY() const {
- cerr << "Warning: method getProjectedY() not implemented" << endl;
- return 0;
+ string name( py_if0D ? PyString_AsString(PyObject_CallMethod(py_if0D, "getExactTypeName", "")) : getExactTypeName() );
+
+ if( py_if0D && PyObject_HasAttrString(py_if0D, "getProjectedY") ) {
+ return Director_BPy_Interface0D_getProjectedY(py_if0D);
+ } else {
+ cerr << "Warning: " << name << " getProjectedY() not implemented" << endl;
+ return 0;
+ }
}
/*! Returns the 2D z coordinate of the point. */
virtual real getProjectedZ() const {
- cerr << "Warning: method getProjectedZ() not implemented" << endl;
- return 0;
+ string name( py_if0D ? PyString_AsString(PyObject_CallMethod(py_if0D, "getExactTypeName", "")) : getExactTypeName() );
+
+ if( py_if0D && PyObject_HasAttrString(py_if0D, "getProjectedZ") ) {
+ return Director_BPy_Interface0D_getProjectedZ(py_if0D);
+ } else {
+ cerr << "Warning: " << name << " getProjectedZ() not implemented" << endl;
+ return 0;
+ }
}
/*! Returns the 2D point. */
virtual Geometry::Vec2f getPoint2D() const {
- cerr << "Warning: method getPoint2D() not implemented" << endl;
- return 0;
- }
+ string name( py_if0D ? PyString_AsString(PyObject_CallMethod(py_if0D, "getExactTypeName", "")) : getExactTypeName() );
+ if( py_if0D && PyObject_HasAttrString(py_if0D, "getPoint2D") ) {
+ return Director_BPy_Interface0D_getPoint2D(py_if0D);
+ } else {
+ cerr << "Warning: " << name << " getPoint2D() not implemented" << endl;
+ return 0;
+ }
+ }
+
/*! Returns the FEdge that lies between this Interface0D and the
* Interface0D given as argument. */
virtual FEdge* getFEdge(Interface0D&) {
- cerr << "Warning: method getFEdge() not implemented" << endl;
- return 0;
+ string name( py_if0D ? PyString_AsString(PyObject_CallMethod(py_if0D, "getExactTypeName", "")) : getExactTypeName() );
+
+ if( py_if0D && PyObject_HasAttrString(py_if0D, "getFEdge") ) {
+ return Director_BPy_Interface0D_getFEdge(py_if0D);
+ } else {
+ cerr << "Warning: " << name << " getFEdge() not implemented" << endl;
+ return 0;
+ }
}
/*! Returns the Id of the point. */
virtual Id getId() const {
- cerr << "Warning: method getId() not implemented" << endl;
- return Id(0, 0);
+ string name( py_if0D ? PyString_AsString(PyObject_CallMethod(py_if0D, "getExactTypeName", "")) : getExactTypeName() );
+
+ if( py_if0D && PyObject_HasAttrString(py_if0D, "getId") ) {
+ return Director_BPy_Interface0D_getId(py_if0D);
+ } else {
+ cerr << "Warning: " << name << " getId() not implemented" << endl;
+ return 0;
+ }
}
/*! Returns the nature of the point. */
virtual Nature::VertexNature getNature() const {
- cerr << "Warning: method getNature() not implemented" << endl;
- return Nature::POINT;
- }
+ string name( py_if0D ? PyString_AsString(PyObject_CallMethod(py_if0D, "getExactTypeName", "")) : getExactTypeName() );
+
+ if( py_if0D && PyObject_HasAttrString(py_if0D, "getNature") ) {
+ return Director_BPy_Interface0D_getNature(py_if0D);
+ } else {
+ cerr << "Warning: " << name << " getNature() not implemented" << endl;
+ return Nature::POINT;
+ }
+ }
+
/*! Cast the Interface0D in SVertex if it can be. */
virtual SVertex * castToSVertex(){
- cerr << "Warning: can't cast this Interface0D in SVertex" << endl;
- return 0;
+ string name( py_if0D ? PyString_AsString(PyObject_CallMethod(py_if0D, "getExactTypeName", "")) : getExactTypeName() );
+
+ if( py_if0D && PyObject_HasAttrString(py_if0D, "castToSVertex") ) {
+ return Director_BPy_Interface0D_castToSVertex(py_if0D);
+ } else {
+ cerr << "Warning: " << name << " castToSVertex() not implemented" << endl;
+ return 0;
+ }
}
/*! Cast the Interface0D in ViewVertex if it can be. */
virtual ViewVertex * castToViewVertex(){
- cerr << "Warning: can't cast this Interface0D in ViewVertex" << endl;
- return 0;
+ string name( py_if0D ? PyString_AsString(PyObject_CallMethod(py_if0D, "getExactTypeName", "")) : getExactTypeName() );
+
+ if( py_if0D && PyObject_HasAttrString(py_if0D, "castToViewVertex") ) {
+ return Director_BPy_Interface0D_castToViewVertex(py_if0D);
+ } else {
+ cerr << "Warning: " << name << " castToViewVertex() not implemented" << endl;
+ return 0;
+ }
}
/*! Cast the Interface0D in NonTVertex if it can be. */
virtual NonTVertex * castToNonTVertex(){
- cerr << "Warning: can't cast this Interface0D in NonTVertex" << endl;
- return 0;
+ string name( py_if0D ? PyString_AsString(PyObject_CallMethod(py_if0D, "getExactTypeName", "")) : getExactTypeName() );
+
+ if( py_if0D && PyObject_HasAttrString(py_if0D, "castToNonTVertex") ) {
+ return Director_BPy_Interface0D_castToNonTVertex(py_if0D);
+ } else {
+ cerr << "Warning: " << name << " castToNonTVertex() not implemented" << endl;
+ return 0;
+ }
}
/*! Cast the Interface0D in TVertex if it can be. */
virtual TVertex * castToTVertex(){
- cerr << "Warning: can't cast this Interface0D in TVertex" << endl;
- return 0;
+ string name( py_if0D ? PyString_AsString(PyObject_CallMethod(py_if0D, "getExactTypeName", "")) : getExactTypeName() );
+
+ if( py_if0D && PyObject_HasAttrString(py_if0D, "castToTVertex") ) {
+ return Director_BPy_Interface0D_castToTVertex(py_if0D);
+ } else {
+ cerr << "Warning: " << name << " castToTVertex() not implemented" << endl;
+ return 0;
+ }
}
+
};