Hi Robert,

attached is a change to TexGenNode rev 10060 that removes a private member 
variable that is only initialized and copied by never used seriously.

Please apply.
Thanks!

Greetings
Mathias

-- 
Dr. Mathias Fröhlich, science + computing ag, Software Solutions
Hagellocher Weg 71-75, D-72070 Tuebingen, Germany
Phone: +49 7071 9457-268, Fax: +49 7071 9457-511
-- 
Vorstand/Board of Management:
Dr. Bernd Finkbeiner, Dr. Roland Niemeier, 
Dr. Arno Steitz, Dr. Ingrid Zech
Vorsitzender des Aufsichtsrats/
Chairman of the Supervisory Board:
Michel Lepert
Sitz/Registered Office: Tuebingen
Registergericht/Registration Court: Stuttgart
Registernummer/Commercial Register No.: HRB 382196 

/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield 
 *
 * This library is open source and may be redistributed and/or modified under  
 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or 
 * (at your option) any later version.  The full license is in LICENSE file
 * included with this distribution, and on the openscenegraph.org website.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 * OpenSceneGraph Public License for more details.
*/
#include <osg/TexGenNode>

using namespace osg;

TexGenNode::TexGenNode():
    _referenceFrame(RELATIVE_RF)
{
    // switch off culling of tex gen nodes by default.
    setCullingActive(false);
    
    _textureUnit = 0;
    setStateSet(new StateSet);
    _texgen = new TexGen;
}

TexGenNode::TexGenNode(const TexGenNode& cn, const CopyOp& copyop):
    Group(cn,copyop),
    _textureUnit(cn._textureUnit),
    _texgen(static_cast<TexGen*>(copyop(cn._texgen.get()))),
    _referenceFrame(cn._referenceFrame)
{
    setStateSet(new StateSet);
}

TexGenNode::TexGenNode(TexGen *texgen):
    _referenceFrame(RELATIVE_RF)
{
    // switch off culling of tex gen nodes by default.
    setCullingActive(false);

    _textureUnit = 0;
    setStateSet(new StateSet);
    _texgen = texgen;
}

TexGenNode::~TexGenNode()
{
}

void TexGenNode::setReferenceFrame(ReferenceFrame rf)
{
    _referenceFrame = rf;
}

void TexGenNode::setTexGen(TexGen* texgen)
{
    _texgen = texgen;
}


void TexGenNode::setThreadSafeRefUnref(bool threadSafe)
{
    Group::setThreadSafeRefUnref(threadSafe);

    if (_texgen.valid()) _texgen->setThreadSafeRefUnref(threadSafe);
}
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield 
 *
 * This library is open source and may be redistributed and/or modified under  
 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or 
 * (at your option) any later version.  The full license is in LICENSE file
 * included with this distribution, and on the openscenegraph.org website.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 * OpenSceneGraph Public License for more details.
*/

#ifndef OSG_TexGenNode
#define OSG_TexGenNode 1

#include <osg/Group>
#include <osg/TexGen>

namespace osg {

/** Node for defining the position of TexGen in the scene. */
class OSG_EXPORT TexGenNode : public Group
{

    public:

        TexGenNode();
        TexGenNode(TexGen* texgen);

        TexGenNode(const TexGenNode& tgb, const CopyOp& copyop=CopyOp::SHALLOW_COPY);

        META_Node(osg, TexGenNode);
    
        
        enum ReferenceFrame
        {
            RELATIVE_RF,
            ABSOLUTE_RF
        };
        
        /** Set the TexGenNode's ReferenceFrame, either to be relative to its
          * parent reference frame. */
        void setReferenceFrame(ReferenceFrame rf);
        
        /** Ge thte TexGenNode's ReferenceFrame.*/
        ReferenceFrame getReferenceFrame() const { return _referenceFrame; }

        /** Set the texture unit that this TexGenNode is associated with.*/
        void setTextureUnit(unsigned int textureUnit) { _textureUnit = textureUnit; }

        unsigned int getTextureUnit() const { return _textureUnit; }

        /** Set the TexGen. */
        void setTexGen(TexGen* texgen);
        
        /** Get the TexGen. */
        inline TexGen* getTexGen() { return _texgen.get(); }

        /** Get the const TexGen. */
        inline const TexGen* getTexGen() const { return _texgen.get(); }

        /** Set whether to use a mutex to ensure ref() and unref() are thread safe.*/
        virtual void setThreadSafeRefUnref(bool threadSafe);

    protected:

        virtual ~TexGenNode();

        unsigned int _textureUnit;
        osg::ref_ptr<TexGen> _texgen;

        ReferenceFrame                  _referenceFrame;
};

}

#endif
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to