Irrlicht:如何将 ISceneNode 转换为 IMeshSceneNode?
Irrlicht: how to convert a ISceneNode into a IMeshSceneNode?
我有一个复杂的代码,它完全加载了对 ISceneNode 对象的引用。我想为这些启用阴影。但是,让我们启用阴影的函数是 addShadowVolumeSceneNode(),它仅适用于 class IMeshSceneNode。
我的问题是,如何将 ISceneNode 转换为 IMeshSceneNode 以便对其应用阴影?
ps:我知道无法将阴影应用于 ISceneNode:http://irrlicht.sourceforge.net/forum/viewtopic.php?t=42174
您可以将 ISceneNode
指针转换为 IMeshSceneNode
指针,如果它实际上指向 IMeshSceneNode 对象:
void AddShadowToSceneNodeIfPossible(ISceneNode* node)
{
IMeshSceneNode* meshNode = dynamic_cast<IMeshSceneNode*>(node);
if (meshNode)
{
meshNode->addShadowVolumeSceneNode(...);
}
}
但更好的解决方案是从一开始就将 IMeshSceneNode
指针存储为 IMeshSceneNode
指针。
我有一个复杂的代码,它完全加载了对 ISceneNode 对象的引用。我想为这些启用阴影。但是,让我们启用阴影的函数是 addShadowVolumeSceneNode(),它仅适用于 class IMeshSceneNode。
我的问题是,如何将 ISceneNode 转换为 IMeshSceneNode 以便对其应用阴影?
ps:我知道无法将阴影应用于 ISceneNode:http://irrlicht.sourceforge.net/forum/viewtopic.php?t=42174
您可以将 ISceneNode
指针转换为 IMeshSceneNode
指针,如果它实际上指向 IMeshSceneNode 对象:
void AddShadowToSceneNodeIfPossible(ISceneNode* node)
{
IMeshSceneNode* meshNode = dynamic_cast<IMeshSceneNode*>(node);
if (meshNode)
{
meshNode->addShadowVolumeSceneNode(...);
}
}
但更好的解决方案是从一开始就将 IMeshSceneNode
指针存储为 IMeshSceneNode
指针。