Revision: 14967
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14967
Author:   mxcurioni
Date:     2008-05-25 19:34:21 +0200 (Sun, 25 May 2008)

Log Message:
-----------
soc-2008-mxcurioni: Big update. Finally works (links and compiles). So far, the 
following steps work:
1. instantiates the config path, the controller and the view
2. sets the controller?\226?\128?\153s view
3. loads a 3ds file (right now a fixed file)
4. inserts a style module (right now, also fixed)
5. computes the view map

The next and final step is running the Python script. A lot of information are 
fixed and should be changed to test the following code: see 
source/blender/freestyle/app_blender/*.cpp and search for fixed paths (starting 
in /Users/).

I am currently evaluating whether it's worth making Python run on its own 
environment (right now, the program crashes because of PyImport_AddModule) or 
whether it should use Blender's Python capabilities. Also, I need to figure out 
how to integrate the SWIG wrapper dynamic library into the current scheme.

Modified Paths:
--------------
    branches/soc-2008-mxcurioni/source/blender/freestyle/SConscript
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppCanvas.cpp
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppConfig.cpp
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppGLWidget.cpp
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppGLWidget.h
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/Controller.cpp
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/Controller.h
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/api.cpp
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/rendering/GLStrokeRenderer.cpp
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/stroke/BasicStrokeShaders.cpp
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/stroke/Canvas.cpp
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/system/StringUtils.h
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/view_map/SteerableViewMap.cpp

Added Paths:
-----------
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/camera.cpp
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/camera.h
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/config.h
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/constraint.h
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/frame.cpp
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/frame.h
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/manipulatedCameraFrame.cpp
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/manipulatedCameraFrame.h
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/manipulatedFrame.cpp
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/manipulatedFrame.h
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/old_camera_vec_quaternion.txt
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/point.h
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/quaternion.cpp
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/quaternion.h
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/vec.cpp
    
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/vec.h
    branches/soc-2008-mxcurioni/source/blender/freestyle/python/
    branches/soc-2008-mxcurioni/source/blender/freestyle/python/Freestyle.py

Modified: branches/soc-2008-mxcurioni/source/blender/freestyle/SConscript
===================================================================
--- branches/soc-2008-mxcurioni/source/blender/freestyle/SConscript     
2008-05-25 16:39:57 UTC (rev 14966)
+++ branches/soc-2008-mxcurioni/source/blender/freestyle/SConscript     
2008-05-25 17:34:21 UTC (rev 14967)
@@ -55,9 +55,14 @@
 prefix = 'intern/app_blender'
 app_sources = env.Glob(prefix + '/*.cpp')
 
+#      swig wrapper
+#prefix = 'intern/swig'
+#swig_sources = env.Glob(prefix + '/*.cpp')
+swig_sources = []
+
 sources =      system_sources + image_sources + geometry_sources + 
scene_graph_sources \
                  +     winged_edge_sources + view_map_sources + stroke_sources 
+ rendering_sources \
-                 + app_sources
+                 + app_sources + swig_sources
 
 env.BlenderLib (libname="bf_freestyle",
                                sources=sources,
@@ -70,4 +75,21 @@
 ########################################################
 # SWIG
 ########################################################
-#      swig
\ No newline at end of file
+#      swig
+
+# swig -c++ -python -o ModuleWrapper.cpp Freestyle.i
+#
+# g++   -w  -I../geometry -I../image -I../scene_graph -I../stroke -I../system 
-I../view_map -I../winged_edge -I/usr/include/python2.5 -c ModuleWrapper.cpp -o 
ModuleWrapper.o
+#
+# install -d ../../build/macosx/release/lib/python
+#
+# g++ -bundle -flat_namespace -undefined suppress  -w  
-L/usr/lib/python2.5/config -lpython2.5 -o 
../../build/macosx/release/lib/python/_Freestyle.so ModuleWrapper.o
+# 
+# install Freestyle.py ../../build/macosx/release/lib/python
+
+
+#================ MINE
+
+# g++ -w  -I../geometry -I../image -I../scene_graph -I../stroke -I../system 
-I../view_map -I../winged_edge -I/usr/include/python2.5 -I../../../blenlib 
-I../../../blenkernel -I../../../imbuf -I../../../makesdna -c ModuleWrapper.cpp 
-o ModuleWrapper.o
+# 
+# g++ -bundle -flat_namespace -undefined suppress  -w  
-L/usr/lib/python2.5/config -lpython2.5 -o ../../python/_Freestyle.so 
ModuleWrapper.o
\ No newline at end of file

Modified: 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppCanvas.cpp
===================================================================
--- 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppCanvas.cpp
       2008-05-25 16:39:57 UTC (rev 14966)
+++ 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppCanvas.cpp
       2008-05-25 17:34:21 UTC (rev 14967)
@@ -29,6 +29,7 @@
 #include "../rendering/GLStrokeRenderer.h"
 #include "../rendering/GLUtils.h"
 #include "AppConfig.h"
+
 #include "../system/StringUtils.h"
 
 #ifdef WIN32

Modified: 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppConfig.cpp
===================================================================
--- 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppConfig.cpp
       2008-05-25 16:39:57 UTC (rev 14966)
+++ 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppConfig.cpp
       2008-05-25 17:34:21 UTC (rev 14967)
@@ -31,8 +31,12 @@
     // get the home directory
     _HomeDir = getEnvVar("HOME");
     // get the root directory
-    setRootDir(getEnvVar("FREESTYLE_DIR"));
-    //setRootDir(QString("."));
+       //soc
+       //setRootDir(getEnvVar("FREESTYLE_BLENDER_DIR"));
+       
setRootDir("/Users/mx/Documents/work/GSoC_2008/bf-blender/branches/soc-2008-mxcurioni/source/blender/freestyle");
+       cout << _PythonPath << endl;
+
+//setRootDir(QString("."));
     _pInstance = this;
   }
   void Path::setRootDir(const string& iRootDir){
@@ -59,7 +63,7 @@
               "python" + 
               string(PATH_SEP.c_str()) +
               _ProjectDir +
-                                           string(DIR_SEP.c_str()) +
+                               string(DIR_SEP.c_str()) +
               "style_modules" +
               string(DIR_SEP.c_str()) ;
     if (getenv("PYTHONPATH")) {

Modified: 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppGLWidget.cpp
===================================================================
--- 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppGLWidget.cpp
     2008-05-25 16:39:57 UTC (rev 14966)
+++ 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppGLWidget.cpp
     2008-05-25 17:34:21 UTC (rev 14967)
@@ -36,9 +36,12 @@
 #include "AppConfig.h"
 
 #include "../system/StringUtils.h"
+
+extern "C" {
 #include "BLI_blenlib.h"
 #include "IMB_imbuf.h"
 #include "IMB_imbuf_types.h"
+}
 
 // glut.h must be included last to avoid a conflict with stdlib.h on vc .net 
2003 and 2005
 #ifdef __MACH__
@@ -54,6 +57,9 @@
 
 AppGLWidget::AppGLWidget(const char *iName)
 {
+  //soc
+  _camera = new Camera;        
+
   _Fovy        = 30.f;
   //_SceneDepth = 2.f;
   _RenderStyle = LINE;
@@ -146,8 +152,6 @@
   //  _backBufferFlag = true;
   _record = false;
 
-_camera = new Camera;
-
 }
 
 AppGLWidget::~AppGLWidget()
@@ -609,3 +613,27 @@
 //  delete [] colorPixels;  
 //}
 
+
+//*******************************
+// COPIED FROM LIBQGLVIEWER
+//*******************************
+
+       // inherited 
+       void AppGLWidget::swapBuffers() {}
+       
+       //Updates the display. Do not call draw() directly, use this method 
instead. 
+       void AppGLWidget::updateGL() {}
+
+       //Makes this widget's rendering context the current OpenGL rendering 
context. Useful with several viewers
+       void AppGLWidget::makeCurrent() {}
+
+
+       // not-inherited
+
+       //      Convenient way to call setSceneCenter() and setSceneRadius() 
from a (world axis aligned) bounding box of the scene.
+       void AppGLWidget::setSceneBoundingBox(const Vec& min, const Vec& max) { 
_camera->setSceneBoundingBox(min,max); }
+               
+       void AppGLWidget::saveSnapshot(bool b) {}
+
+        void AppGLWidget::setStateFileName(const string& name) { 
stateFileName_ = name; };
+

Modified: 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppGLWidget.h
===================================================================
--- 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppGLWidget.h
       2008-05-25 16:39:57 UTC (rev 14966)
+++ 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/AppGLWidget.h
       2008-05-25 17:34:21 UTC (rev 14967)
@@ -47,6 +47,11 @@
 # include "../rendering/GLDebugRenderer.h"
 //# include <QGLViewer/qglviewer.h>
 
+//soc
+#include "camera.h"
+#include "vec.h"
+#include "quaternion.h"
+
 using namespace Geometry;
 
 typedef enum {SURFACIC, LINE, DEPTHBUFFER} RenderStyle;
@@ -58,75 +63,9 @@
 class GLBBoxRenderer;
 class GLMonoColorRenderer;
 class GLDebugRenderer;
-
-class Vec{
-public:
-       Vec() {};
-       Vec(float _x, float _y, float _z): x(_x), y(_y), z(_z) {};
-       ~Vec() {}
-       
-       float operator[] (unsigned i) {
-               switch(i){
-               case 0: return x; break;
-               case 1: return y; break;
-               case 2: return z; break;
-               }
-               return 0.0;
-       }
-               
-       
-       float x,y,z;
-};
-
-class Quaternion{
-public:
-       Quaternion( float _x, float _y, float _z, float _s): x(_x), y(_y), 
z(_z), s(_s){};
-       ~Quaternion() {}
-       
-       float operator[] (unsigned i) {
-               switch(i){
-               case 0: return x; break;
-               case 1: return y; break;
-               case 2: return z; break;
-               case 3: return s; break;
-               }
-               return 0.0;
-       }
-       
-       float x,y,z,s;
-};
-
-class Camera {
-       private:
-               float _position[3];
-               float _orientation[3];
-               
-       public:
-               Camera(){};
-               ~Camera() {};
-               
-               void setZNearCoefficient(float f) {}
-               void playPath(int i) {}
-
-               void loadProjectionMatrix() {}
-               void loadModelViewMatrix() {}
-               real distanceToSceneCenter() { return 0;}
-               void showEntireScene() {} 
-               real zFar() {return 0;}
-               real zNear() {return 0;}
-               void setPosition(Vec v) {}
-               void setOrientation(Quaternion q) {}
-               float* position() { return _position; }
-               float* orientation()  { return _orientation; }
-               void getWorldCoordinatesOf(float *src, float *vp_tmp) {}
-
-};
-
-
-//class AppGLWidget : public QGLViewer
+ 
 class AppGLWidget
 {
-  //Q_OBJECT
 
     
 public:
@@ -136,18 +75,28 @@
   
 public:
 
-       inline void swapBuffers() {}
-  inline void updateGL() {}
-  inline void makeCurrent() {}
-  inline void setSceneBoundingBox(Vec &min_, Vec &max_) {}
-       inline void saveSnapshot(bool b) {}
-       inline real width() { return _width; }
-       inline real height() { return _height; }
-        void setStateFileName(const string& name) { stateFileName_ = name; };
+       //inherited
+               inline real width() { return _width; }
+               inline real height() { return _height; }
+               void swapBuffers();
+               void updateGL();
+               void makeCurrent();
        
+       // not-inherited
+               void setSceneBoundingBox(const Vec& min, const Vec& max);
+               void saveSnapshot(bool b);
+               void setStateFileName(const string& name);
        
-Camera * _camera;
 
+               Camera * _camera;
+
+protected:
+       real _width, _height;
+       Vec _min,_max;
+       string stateFileName_;
+
+public:
+
   // captures a frame animation that was previously registered
   void captureMovie();
 
@@ -452,8 +401,8 @@
   }
 
   void getCameraState(float* position, float* orientation) const {
-    float* pos = _camera->position();
-    float* orient = _camera->orientation();
+       Vec pos = _camera->position();
+       Quaternion orient = _camera->orientation();
     int i;
     for(i=0;i<3;++i){
       position[i] = pos[i];
@@ -585,9 +534,7 @@
   bool _record;
 
 
-real _width, _height;
-Vec _min,_max;
-string stateFileName_;
+
 };
 
 #endif // ARTGLWIDGET_H

Modified: 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/Controller.cpp
===================================================================
--- 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/Controller.cpp
      2008-05-25 16:39:57 UTC (rev 14966)
+++ 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/Controller.cpp
      2008-05-25 17:34:21 UTC (rev 14967)
@@ -67,9 +67,9 @@
 
 Controller::Controller()
 {
+       
   const string sep(Config::DIR_SEP.c_str());
-  const string filename = Config::Path::getInstance()->getHomeDir() + sep +
-    Config::OPTIONS_DIR + sep + Config::OPTIONS_CURRENT_DIRS_FILE;
+  //const string filename = Config::Path::getInstance()->getHomeDir() + sep + 
Config::OPTIONS_DIR + sep + Config::OPTIONS_CURRENT_DIRS_FILE;
   //_current_dirs = new ConfigIO(filename, Config::APPLICATION_NAME + 
"CurrentDirs", true);
 
   _RootNode = new NodeGroup;
@@ -88,6 +88,7 @@
 
   _edgeTesselationNature = (Nature::SILHOUETTE | Nature::BORDER | 
Nature::CREASE);
 
+  _ProgressBar = new ProgressBar;
   _SceneNumFaces = 0;
   _minEdgeSize = DBL_MAX;
   _bboxDiag = 0;
@@ -180,9 +181,12 @@
   NodeGroup *maxScene = loader3DS.Load();
 
   if (maxScene == NULL) {
+       cout << "Cannot load scene" << endl;
     return 1;
   }
 
+  cout << "Scene loaded\n" << endl;

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to