mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-01 05:45:35 +00:00
Fix node mask being reset
This commit is contained in:
parent
c1fe9f2a89
commit
4c9bbce1e2
1 changed files with 6 additions and 4 deletions
|
@ -428,10 +428,12 @@ private:
|
|||
class CelestialBody
|
||||
{
|
||||
public:
|
||||
CelestialBody(osg::Group* parentNode, float scaleFactor, int numUvSets)
|
||||
CelestialBody(osg::Group* parentNode, float scaleFactor, int numUvSets, unsigned int visibleMask=~0)
|
||||
: mVisibleMask(visibleMask)
|
||||
{
|
||||
mGeom = createTexturedQuad(numUvSets);
|
||||
mTransform = new osg::PositionAttitudeTransform;
|
||||
mTransform->setNodeMask(mVisibleMask);
|
||||
mTransform->setScale(osg::Vec3f(450,450,450) * scaleFactor);
|
||||
mTransform->addChild(mGeom);
|
||||
|
||||
|
@ -444,10 +446,11 @@ public:
|
|||
|
||||
void setVisible(bool visible)
|
||||
{
|
||||
mTransform->setNodeMask(visible ? ~0 : 0);
|
||||
mTransform->setNodeMask(visible ? mVisibleMask : 0);
|
||||
}
|
||||
|
||||
protected:
|
||||
unsigned int mVisibleMask;
|
||||
static const float mDistance;
|
||||
osg::ref_ptr<osg::PositionAttitudeTransform> mTransform;
|
||||
osg::ref_ptr<osg::Geometry> mGeom;
|
||||
|
@ -459,11 +462,10 @@ class Sun : public CelestialBody
|
|||
{
|
||||
public:
|
||||
Sun(osg::Group* parentNode, Resource::ImageManager& imageManager)
|
||||
: CelestialBody(parentNode, 1.0f, 1)
|
||||
: CelestialBody(parentNode, 1.0f, 1, Mask_Sun)
|
||||
, mUpdater(new Updater)
|
||||
{
|
||||
mTransform->addUpdateCallback(mUpdater);
|
||||
mTransform->setNodeMask(Mask_Sun);
|
||||
|
||||
osg::ref_ptr<osg::Texture2D> sunTex (new osg::Texture2D(imageManager.getImage("textures/tx_sun_05.dds")));
|
||||
sunTex->setWrap(osg::Texture::WRAP_S, osg::Texture::CLAMP_TO_EDGE);
|
||||
|
|
Loading…
Reference in a new issue