osgEarth 2.1.1
Public Member Functions

osgEarth::Util::GeoCellVisitor Class Reference

List of all members.

Public Member Functions

 GeoCellVisitor ()
virtual void operator() (const GeoCell *cell, const GeoObjectCollection &objects)=0
void apply (osg::LOD &node)

Detailed Description

Definition at line 132 of file SpatialData.


Constructor & Destructor Documentation

osgEarth::Util::GeoCellVisitor::GeoCellVisitor ( ) [inline]

Definition at line 135 of file SpatialData.

: osg::NodeVisitor( osg::NodeVisitor::TRAVERSE_ALL_CHILDREN ) { }

Member Function Documentation

void osgEarth::Util::GeoCellVisitor::apply ( osg::LOD &  node) [inline]

Definition at line 139 of file SpatialData.

                                   {
            const GeoCell* cell = static_cast<const GeoCell*>(&node);
            if ( cell->_depth > 0 )
                this->operator()( cell, cell->_objects );
            traverse( node );
        }
void seamless::GeoPatchUpdateCallback::operator() ( const GeoCell cell,
const GeoObjectCollection objects 
) [pure virtual]

Definition at line 926 of file Geographic.cpp.

    {
        Vec3Array* verts = dynamic_cast<Vec3Array*>(_hfRequest->getResult());
        Vec3Array* norms = _hfRequest->_normalResult.get();
        if (verts && norms)
        {
            Vec3Array* patchVerts = static_cast<Vec3Array*>(
                patch->getData()->vertexData.array.get());
            Vec3Array* patchNorms = static_cast<Vec3Array*>(
                patch->getData()->normalData.array.get());
            copy(verts->begin(), verts->end(), patchVerts->begin());
            patchVerts->dirty();
            copy(norms->begin(), norms->end(), patchNorms->begin());
            patchNorms->dirty();
        }
        _hfRequest = 0;
        PatchGroup* faceRoot = findFaceRoot(patch, nv->getNodePath());
        if (faceRoot)
        {
            TileUpdater tileUpdater(patch);
            faceRoot->accept(tileUpdater);
        }
    }
    if (_imageRequest.valid() && _imageRequest->isCompleted())
    {
        Image* image = dynamic_cast<Image*>(_imageRequest->getResult());
        if (image)
        {
            Texture2D* tex = new Texture2D();
            tex->setImage(image);
            tex->setWrap(Texture::WRAP_S, Texture::CLAMP_TO_EDGE);
            tex->setWrap(Texture::WRAP_T, Texture::CLAMP_TO_EDGE);
            tex->setFilter(Texture::MIN_FILTER,
                           Texture::LINEAR_MIPMAP_LINEAR);
            tex->setFilter(Texture::MAG_FILTER, Texture::LINEAR);
            StateSet* ss = patch->getOrCreateStateSet();
            ss->setTextureAttributeAndModes(0, tex, StateAttribute::ON);
        }
        _imageRequest = 0;
    }
    if (!_hfRequest.valid() && !_imageRequest.valid())
        node->setUpdateCallback(0);
}
}

Here is the call graph for this function:


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines