Fix for [#36374] Read unitialized memory in Freestyle.
[blender-staging.git] / source / blender / freestyle / intern / application / Controller.cpp
index dbf3fa8349eae413f32e8ebefc8a56c130674332..c61f72295d2856ceedd48892f6c13a0c2052e171 100644 (file)
@@ -290,6 +290,8 @@ int Controller::LoadMesh(Render *re, SceneRenderLayer *srl)
 
        _ListOfModels.push_back("Blender_models");
 
+       _Scene3dBBox = _RootNode->bbox();
+
        _bboxDiag = (_RootNode->bbox().getMax() - _RootNode->bbox().getMin()).norm();
        if (G.debug & G_DEBUG_FREESTYLE) {
                cout << "Triangles nb     : " << _SceneNumFaces << endl;
@@ -339,6 +341,7 @@ void Controller::DeleteWingedEdge()
 
        // clears the grid
        _Grid.clear();
+       _Scene3dBBox.clear();
        _SceneNumFaces = 0;
        _minEdgeSize = DBL_MAX;
 }
@@ -540,8 +543,8 @@ void Controller::ComputeViewMap()
        }
        _Chrono.start();
        // Build View Map
-       _ViewMap = vmBuilder.BuildViewMap(*_winged_edge, _VisibilityAlgo, _EPSILON, _RootNode->bbox(), _SceneNumFaces);
-       _ViewMap->setScene3dBBox(_RootNode->bbox());
+       _ViewMap = vmBuilder.BuildViewMap(*_winged_edge, _VisibilityAlgo, _EPSILON, _Scene3dBBox, _SceneNumFaces);
+       _ViewMap->setScene3dBBox(_Scene3dBBox);
 
        if (G.debug & G_DEBUG_FREESTYLE) {
                printf("ViewMap edge count : %i\n", _ViewMap->viewedges_size());