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