diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.com> | 2016-09-24 20:32:47 +0200 |
---|---|---|
committer | Tomaž Vajngerl <tomaz.vajngerl@collabora.com> | 2016-09-24 20:41:40 +0200 |
commit | b4cf40e52f220f4d934468c8b99e2509ebc1a549 (patch) | |
tree | 7863cd0056265bc5c7d04d547833d1b4fbfc9f6e /vcl/opengl/SceneGraphRenderer.cxx | |
parent | 7ac5ccde2d7332b926df509d840f775a65d0c9dd (diff) |
scenegraph: shared_ptr, findByName, SceneGraphFactoryfeature/sgexperiment
The change includes:
* Use shared_ptr for the child nodes.
* Every node can have a name and we can search for the node with
findByName.
* SceneGraphFactory class for easier initial construction of the
scene graph.
* RootNode has been removed as we can just use a simple empty Node
with type ROOT.
Change-Id: I7bee98cff6b46abb5c6baef25fc6f9bc084d4073
Diffstat (limited to 'vcl/opengl/SceneGraphRenderer.cxx')
-rw-r--r-- | vcl/opengl/SceneGraphRenderer.cxx | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/vcl/opengl/SceneGraphRenderer.cxx b/vcl/opengl/SceneGraphRenderer.cxx index 5763af96a32e..02ee75ea83d5 100644 --- a/vcl/opengl/SceneGraphRenderer.cxx +++ b/vcl/opengl/SceneGraphRenderer.cxx @@ -236,7 +236,7 @@ void addDrawPolyPolygon(RenderEntry& rRenderEntry,const basegfx::B2DPolyPolygon& } // end anonymous namespace -SceneGraphRenderer::SceneGraphRenderer(vcl::sg::RootNode& rRootNode, RenderList& rRenderList) +SceneGraphRenderer::SceneGraphRenderer(vcl::sg::Node& rRootNode, RenderList& rRenderList) : mrRootNode(rRootNode) , mrRenderList(rRenderList) {} @@ -304,10 +304,13 @@ void SceneGraphRenderer::processBitmapNode(vcl::sg::BitmapNode* pBitmapNode) void SceneGraphRenderer::processRectangleNode(vcl::sg::RectangleNode* pRectangleNode) { - float x1 = pRectangleNode->maRectangle.getMinX(); - float y1 = pRectangleNode->maRectangle.getMinY(); - float x2 = pRectangleNode->maRectangle.getMaxX(); - float y2 = pRectangleNode->maRectangle.getMaxY(); + const vcl::sg::GeometryAttributes& rAttributes = pRectangleNode->getAttributes(); + const basegfx::B2DRange& rRectangle = pRectangleNode->getRectangle(); + + float x1 = rRectangle.getMinX(); + float y1 = rRectangle.getMinY(); + float x2 = rRectangle.getMaxX(); + float y2 = rRectangle.getMaxY(); if (pRectangleNode->mbNormalized) { @@ -321,12 +324,14 @@ void SceneGraphRenderer::processRectangleNode(vcl::sg::RectangleNode* pRectangle RenderEntry& rRenderEntry = mrRenderList.getEntries().back(); - appendRectangle(rRenderEntry, x1, y1, x2, y2, pRectangleNode->maLineColor, pRectangleNode->maFillColor, 0.0f); + appendRectangle(rRenderEntry, x1, y1, x2, y2, rAttributes.maLineColor, rAttributes.maFillColor, 0.0f); } void SceneGraphRenderer::processPolyPolygonNode(vcl::sg::PolyPolygonNode* pPolyPolygonNode) { - basegfx::B2DPolyPolygon& rPolyPolygon(pPolyPolygonNode->maPolyPolygon); + const vcl::sg::GeometryAttributes& rAttributes = pPolyPolygonNode->getAttributes(); + + const basegfx::B2DPolyPolygon& rPolyPolygon(pPolyPolygonNode->getPolyPolygon()); basegfx::B2DRange aBoundingRect(rPolyPolygon.getB2DRange()); float x1 = aBoundingRect.getMinX(); @@ -338,7 +343,7 @@ void SceneGraphRenderer::processPolyPolygonNode(vcl::sg::PolyPolygonNode* pPolyP RenderEntry& rRenderEntry = mrRenderList.getEntries().back(); - addDrawPolyPolygon(rRenderEntry, rPolyPolygon, 0.0, pPolyPolygonNode->maLineColor, pPolyPolygonNode->maFillColor, true); + addDrawPolyPolygon(rRenderEntry, rPolyPolygon, 0.0, rAttributes.maLineColor, rAttributes.maFillColor, true); } void SceneGraphRenderer::runChildren(vcl::sg::Node& rNode) |