OSG-Hinweise: Rufen Sie den Begrenzungsrahmen eines Knotens ab

Begrenzungsrahmen in OSG

  • osg::Node bietet eine Schnittstelle zum Abrufen der Begrenzungskugel, inline const BoundingSphere& getBound() const , stellt jedoch keine Schnittstelle zum Abrufen der BoundingBox bereit.
  • osg::Drawable und osg::Geode stellen Schnittstellen zum Abrufen von BoundingBox bereit.

brauchen

Bei einem osg::Node müssen Sie die BoundingBox abrufen

Lösungen und Pläne

Wenn Sie wissen, dass osg::Node ein osg::Geode oder osg::Drawable ist, können Sie es in den angegebenen Typ konvertieren, um es zu erhalten. (Hinweis: Wenn der Nachkommenknoten von osg::Node ein osg::Geode ist und Sie versuchen, zu osg::Geode zu wechseln und dann dessen osg::BoundingBox herauszunehmen, wird er als Begrenzungsrahmen von betrachtet osg::Node, was falsch ist. , da die osg::BoundingBox zu diesem Zeitpunkt der Begrenzungsrahmen im lokalen Koordinatensystem von osg::Geode ist.)

osg stellt einen Besucher osg::ComputeBoundsVisitor bereit, der die BoundingBox von osg::Node wie folgt finden kann:

osg::ComputeBoundsVisitor cbVisitor;
pOsgNode->accept(cbVisitor);
const osg::BoundingBox& mBBox = cbVisitor.getBoundingBox(); 

Guess you like

Origin blog.csdn.net/s634772208/article/details/130150994