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
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs