Revision: 17778
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17778
Author:   mxcurioni
Date:     2008-12-10 16:30:43 +0100 (Wed, 10 Dec 2008)

Log Message:
-----------
replaced "Shape loading" message with "Importing triangular meshes into Blender"
handled case when scene is empty
made controller's view map as public variable

Modified Paths:
--------------
    
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/scene_graph/BlenderFileLoader.cpp
    branches/soc-2008-mxcurioni/source/blender/render/intern/source/rendercore.c

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-12-10 15:12:46 UTC (rev 17777)
+++ 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/Controller.cpp
      2008-12-10 15:30:43 UTC (rev 17778)
@@ -180,8 +180,12 @@
     return 1;
   }
 
-  cout << "Scene loaded\n" << endl;
+       if( blenderScene->numberOfChildren() < 1) {
+               cout << "Empty scene" << endl;
+               return 1;
+       }
 
+         cout << "Scene loaded" << endl;
   printf("Mesh cleaning    : %lf\n", _Chrono.stop());
   _SceneNumFaces += loader.numFacesRead();
 

Modified: 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/Controller.h
===================================================================
--- 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/Controller.h
        2008-12-10 15:12:46 UTC (rev 17777)
+++ 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/Controller.h
        2008-12-10 15:30:43 UTC (rev 17778)
@@ -140,6 +140,10 @@
 
   void resetInterpreter();
 
+public:
+       // Viewmap data structure
+       ViewMap * _ViewMap;
+
 private:
 
   // Main Window:
@@ -168,8 +172,6 @@
 
   // Winged-Edge structure
   WingedEdge* _winged_edge;
-  
-  ViewMap * _ViewMap;
 
   // Silhouette structure:
   //std::vector<SShape*> _SShapes;

Modified: 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/api.cpp
===================================================================
--- 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/api.cpp 
    2008-12-10 15:12:46 UTC (rev 17777)
+++ 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/app_blender/api.cpp 
    2008-12-10 15:30:43 UTC (rev 17778)
@@ -140,7 +140,8 @@
                controller->Clear();
 
                // load mesh
-               controller->LoadMesh(re);
+               if( controller->LoadMesh(re) ) // returns if scene cannot be 
loaded or if empty
+                       return;
                
                // add style module
                cout << "Module: " << style_module << endl;
@@ -161,37 +162,19 @@
                // compute view map
                controller->ComputeViewMap();
        }
-
-       // void FRS_render_GL(Render* re) {
-       //      
-       // 
-       // // build strokes
-       // controller->DrawStrokes();
-       //
-       //      cout << "Rendering Freestyle with OpenGL" << endl;
-       //      
-       //      // render strokes
-       //      view->workingBuffer = GL_BACK;
-       //      view->draw();
-       //      
-       //      // display result
-       //      RenderResult rres;
-       //      RE_GetResultImage(re, &rres);
-       //      view->readPixels(0, 0, re->winx, re->winy, AppGLWidget::RGBA, 
rres.rectf );             
-       //      re->result->renlay = render_get_active_layer(re, re->result);
-       //      re->display_draw(re->result, NULL);
-       //      
-       //      controller->CloseFile();
-       // }
        
        void FRS_render_Blender(Render* re) {
                
-               // build strokes
-               controller->DrawStrokes();
+               if( controller->_ViewMap ) {
+                       // build strokes
+                       controller->DrawStrokes();
                
-               cout << "Rendering Freestyle with Blender's internal renderer" 
<< endl;
-               controller->RenderBlender(re);
-               controller->CloseFile();
+                       cout << "Rendering Freestyle with Blender's internal 
renderer" << endl;
+                       controller->RenderBlender(re);
+                       controller->CloseFile();
+               } else {
+                       cout << "Freestyle cannot be used because the view map 
is not available" << endl;
+               }
        }       
        
 #ifdef __cplusplus

Modified: 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp
===================================================================
--- 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp
       2008-12-10 15:12:46 UTC (rev 17777)
+++ 
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp
       2008-12-10 15:30:43 UTC (rev 17778)
@@ -18,7 +18,7 @@
        ObjectInstanceRen *obi;
        ObjectRen *obr;
 
-       cout << "Shape loading" << endl;
+       cout << "\nImporting triangular meshes into Blender" << endl;
 
   // creation of the scene root node
   _Scene = new NodeGroup;

Modified: 
branches/soc-2008-mxcurioni/source/blender/render/intern/source/rendercore.c
===================================================================
--- 
branches/soc-2008-mxcurioni/source/blender/render/intern/source/rendercore.c    
    2008-12-10 15:12:46 UTC (rev 17777)
+++ 
branches/soc-2008-mxcurioni/source/blender/render/intern/source/rendercore.c    
    2008-12-10 15:30:43 UTC (rev 17778)
@@ -908,7 +908,10 @@
     int totsample;
     int x, y, od;
     float* freestyle;
-   
+
+       if( R.freestyle_render == NULL || R.freestyle_render->result == NULL )
+               return;
+               
     freestyle_rl = render_get_active_layer( R.freestyle_render, 
R.freestyle_render->result );
     if( freestyle_rl->rectf == NULL)
         return;


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to