diff options
author | Maxime Curioni <maxime.curioni@gmail.com> | 2008-12-10 18:30:43 +0300 |
---|---|---|
committer | Maxime Curioni <maxime.curioni@gmail.com> | 2008-12-10 18:30:43 +0300 |
commit | eaae4090c1ade6ed1d8eb321e492e277035e5c54 (patch) | |
tree | f3b1bf2830528d947ab05f3c3bc315ad62c6999a /source/blender | |
parent | 12debd47dda063ef3a504441ecf21f4edb34e502 (diff) |
replaced "Shape loading" message with "Importing triangular meshes into Blender"
handled case when scene is empty
made controller's view map as public variable
Diffstat (limited to 'source/blender')
5 files changed, 25 insertions, 33 deletions
diff --git a/source/blender/freestyle/intern/app_blender/Controller.cpp b/source/blender/freestyle/intern/app_blender/Controller.cpp index 6fa31cdd03d..64bcdd5acb8 100755 --- a/source/blender/freestyle/intern/app_blender/Controller.cpp +++ b/source/blender/freestyle/intern/app_blender/Controller.cpp @@ -180,8 +180,12 @@ int Controller::LoadMesh(Render *re) 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(); diff --git a/source/blender/freestyle/intern/app_blender/Controller.h b/source/blender/freestyle/intern/app_blender/Controller.h index 76aa071ddd3..8521cdc7f68 100755 --- a/source/blender/freestyle/intern/app_blender/Controller.h +++ b/source/blender/freestyle/intern/app_blender/Controller.h @@ -140,6 +140,10 @@ public: void resetInterpreter(); +public: + // Viewmap data structure + ViewMap * _ViewMap; + private: // Main Window: @@ -168,8 +172,6 @@ private: // Winged-Edge structure WingedEdge* _winged_edge; - - ViewMap * _ViewMap; // Silhouette structure: //std::vector<SShape*> _SShapes; diff --git a/source/blender/freestyle/intern/app_blender/api.cpp b/source/blender/freestyle/intern/app_blender/api.cpp index 9ac8dfe989a..c91efa89466 100644 --- a/source/blender/freestyle/intern/app_blender/api.cpp +++ b/source/blender/freestyle/intern/app_blender/api.cpp @@ -140,7 +140,8 @@ extern "C" { 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 @@ extern "C" { // 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 diff --git a/source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp b/source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp index bede99e4da3..7c3d41d0018 100644 --- a/source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp +++ b/source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp @@ -18,7 +18,7 @@ NodeGroup* BlenderFileLoader::Load() ObjectInstanceRen *obi; ObjectRen *obr; - cout << "Shape loading" << endl; + cout << "\nImporting triangular meshes into Blender" << endl; // creation of the scene root node _Scene = new NodeGroup; diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 5f7967d85db..46fcd99a6e6 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -908,7 +908,10 @@ static void freestyle_enhance_add(RenderPart *pa, RenderLayer *rl) 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; |