Clean up use of transforms in scene graph.

This commit is contained in:
jmsgrogan 2023-01-19 17:37:26 +00:00
parent 3915a40c96
commit f26ee2ebc4
37 changed files with 238 additions and 242 deletions

View file

@ -6,8 +6,8 @@
#include "SvgElement.h"
#include "SvgShapeElements.h"
SvgNode::SvgNode(const Point& location)
: MaterialNode(location)
SvgNode::SvgNode(const Transform& transform)
: MaterialNode(transform)
{
}
@ -21,27 +21,14 @@ void SvgNode::setContent(std::unique_ptr<SvgDocument> doc)
mGeometryNodes.clear();
}
void SvgNode::setWidth(unsigned width)
unsigned SvgNode::getContentWidth() const
{
if (mWidth != width)
{
mWidth = width;
mTransformIsDirty = true;
}
return mContentWidth;
}
void SvgNode::setHeight(unsigned height)
unsigned SvgNode::getContentHeight() const
{
if (mHeight != height)
{
mHeight = height;
mTransformIsDirty = true;
}
}
void SvgNode::updateTransform()
{
return mContentHeight;
}
void SvgNode::createOrUpdateGeometry(SceneInfo* sceneInfo)
@ -72,7 +59,11 @@ void SvgNode::createOrUpdateGeometry(SceneInfo* sceneInfo)
raw_node = geom_node.get();
mGeometryNodes.push_back(std::move(geom_node));
}
addChild(raw_node);
if (raw_node)
{
addChild(raw_node);
}
}
}
@ -84,12 +75,6 @@ void SvgNode::update(SceneInfo* sceneInfo)
mContentDirty = false;
}
if (mTransformIsDirty)
{
updateTransform();
mTransformIsDirty = false;
}
if (mMaterialIsDirty)
{
if (mHasFillColor)