mirror of
https://github.com/OpenMW/openmw.git
synced 2025-04-02 10:36:39 +00:00
filter mouse interaction by interaction mask
This commit is contained in:
parent
71247a0186
commit
72bb33c2c4
1 changed files with 15 additions and 6 deletions
|
@ -463,18 +463,27 @@ void CSVRender::WorldspaceWidget::mousePressEvent (QMouseEvent *event)
|
||||||
for (std::vector<osg::Node*>::iterator it = intersection.nodePath.begin(); it != intersection.nodePath.end(); ++it)
|
for (std::vector<osg::Node*>::iterator it = intersection.nodePath.begin(); it != intersection.nodePath.end(); ++it)
|
||||||
{
|
{
|
||||||
osg::Node* node = *it;
|
osg::Node* node = *it;
|
||||||
if (CSVRender::ObjectTag* holder = dynamic_cast<CSVRender::ObjectTag *>(node->getUserData()))
|
if (CSVRender::TagBase* tag = dynamic_cast<CSVRender::TagBase *>(node->getUserData()))
|
||||||
{
|
{
|
||||||
// hit an Object, toggle its selection state
|
if (!(tag->getElement() && mInteractionMask))
|
||||||
CSVRender::Object* obj = holder->mObject;
|
break; // not interested -> continue looking
|
||||||
obj->setSelected(!obj->getSelected());
|
|
||||||
|
// hit something marked with a tag
|
||||||
|
if (CSVRender::ObjectTag *objectTag = dynamic_cast<CSVRender::ObjectTag *> (tag))
|
||||||
|
{
|
||||||
|
// hit an Object, toggle its selection state
|
||||||
|
CSVRender::Object* object = objectTag->mObject;
|
||||||
|
object->setSelected (!object->getSelected());
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ignoring terrain for now
|
||||||
// must be terrain, report coordinates
|
// must be terrain, report coordinates
|
||||||
std::cout << "Terrain hit at " << intersection.getWorldIntersectPoint().x() << " " << intersection.getWorldIntersectPoint().y() << std::endl;
|
// std::cout << "Terrain hit at " << intersection.getWorldIntersectPoint().x() << " " << intersection.getWorldIntersectPoint().y() << std::endl;
|
||||||
return;
|
// return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue