mirror of
https://github.com/OpenMW/openmw.git
synced 2025-03-01 00:09:41 +00:00
Apply ShaderVisitor to Rig/MorphGeometry source geometry
This commit is contained in:
parent
6aef366fd3
commit
471f6abf6c
1 changed files with 10 additions and 3 deletions
|
@ -889,21 +889,28 @@ namespace Shader
|
||||||
if (auto rig = dynamic_cast<SceneUtil::RigGeometry*>(&drawable))
|
if (auto rig = dynamic_cast<SceneUtil::RigGeometry*>(&drawable))
|
||||||
{
|
{
|
||||||
osg::ref_ptr<osg::Geometry> sourceGeometry = rig->getSourceGeometry();
|
osg::ref_ptr<osg::Geometry> sourceGeometry = rig->getSourceGeometry();
|
||||||
if (sourceGeometry && adjustGeometry(*sourceGeometry, reqs))
|
if (sourceGeometry)
|
||||||
|
{
|
||||||
|
sourceGeometry->accept(*this);
|
||||||
rig->setSourceGeometry(sourceGeometry);
|
rig->setSourceGeometry(sourceGeometry);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if (auto morph = dynamic_cast<SceneUtil::MorphGeometry*>(&drawable))
|
else if (auto morph = dynamic_cast<SceneUtil::MorphGeometry*>(&drawable))
|
||||||
{
|
{
|
||||||
osg::ref_ptr<osg::Geometry> sourceGeometry = morph->getSourceGeometry();
|
osg::ref_ptr<osg::Geometry> sourceGeometry = morph->getSourceGeometry();
|
||||||
if (sourceGeometry && adjustGeometry(*sourceGeometry, reqs))
|
if (sourceGeometry)
|
||||||
|
{
|
||||||
|
sourceGeometry->accept(*this);
|
||||||
morph->setSourceGeometry(sourceGeometry);
|
morph->setSourceGeometry(sourceGeometry);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if (auto osgaRig = dynamic_cast<SceneUtil::RigGeometryHolder*>(&drawable))
|
else if (auto osgaRig = dynamic_cast<SceneUtil::RigGeometryHolder*>(&drawable))
|
||||||
{
|
{
|
||||||
osg::ref_ptr<SceneUtil::OsgaRigGeometry> sourceOsgaRigGeometry = osgaRig->getSourceRigGeometry();
|
osg::ref_ptr<SceneUtil::OsgaRigGeometry> sourceOsgaRigGeometry = osgaRig->getSourceRigGeometry();
|
||||||
osg::ref_ptr<osg::Geometry> sourceGeometry = sourceOsgaRigGeometry->getSourceGeometry();
|
osg::ref_ptr<osg::Geometry> sourceGeometry = sourceOsgaRigGeometry->getSourceGeometry();
|
||||||
if (sourceGeometry && adjustGeometry(*sourceGeometry, reqs))
|
if (sourceGeometry)
|
||||||
{
|
{
|
||||||
|
sourceGeometry->accept(*this);
|
||||||
sourceOsgaRigGeometry->setSourceGeometry(sourceGeometry);
|
sourceOsgaRigGeometry->setSourceGeometry(sourceGeometry);
|
||||||
osgaRig->setSourceRigGeometry(sourceOsgaRigGeometry);
|
osgaRig->setSourceRigGeometry(sourceOsgaRigGeometry);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue