• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ osg::ProxyNode类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中osg::ProxyNode的典型用法代码示例。如果您正苦于以下问题:C++ ProxyNode类的具体用法?C++ ProxyNode怎么用?C++ ProxyNode使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了ProxyNode类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: Stringify

void
ShaderGenerator::apply(osg::ProxyNode& node)
{
    if ( !_active )
        return;

    if ( ignore(&node) )
        return;

    if ( node.getLoadingExternalReferenceMode() != osg::ProxyNode::LOAD_IMMEDIATELY )
    {
        // rewrite the filenames to include the shadergen pseudo-loader extension so
        // that dynamically loaded children will have the same shadergen applied.
        for( unsigned i=0; i<node.getNumFileNames(); ++i )
        {
            const std::string& filename = node.getFileName( i );
            if (!filename.empty() && 
                osgDB::getLowerCaseFileExtension(filename).compare(SHADERGEN_PL_EXTENSION) != 0 )
            {
                node.setFileName( i, Stringify() << filename << "." << SHADERGEN_PL_EXTENSION );
            }
        }
    }

    apply( static_cast<osg::Group&>(node) );
}
开发者ID:rhabacker,项目名称:osgearth,代码行数:26,代码来源:ShaderGenerator.cpp


示例2: readUserCenter

static bool readUserCenter( osgDB::InputStream& is, osg::ProxyNode& node )
{
    osg::Vec3d center; double radius;
    is >> center >> radius;
    node.setCenter( center ); node.setRadius( radius );
    return true;
}
开发者ID:,项目名称:,代码行数:7,代码来源:


示例3: apply

 virtual void apply( osg::ProxyNode& proxy )
 {
     proxy.setDatabasePath( archive_name );
     std::string name = proxy.getFileName( 0 );
     std::string simple = osgDB::getSimpleFileName( name );
     proxy.setFileName( 0, simple );
     osgGIS::notify( osg::INFO ) << "  Rewrote " << name << " as " << simple << std::endl;
     osg::NodeVisitor::apply( proxy );
 }
开发者ID:aarnchng,项目名称:osggis,代码行数:9,代码来源:LayerCompiler.cpp


示例4: guard

void
FltExportVisitor::apply( osg::ProxyNode& node )
{
    _firstNode = false;
    ScopedStatePushPop guard( this, node.getStateSet() );

    writeExternalReference( node );
    writeMatrix( node.getUserData() );
    writeComment( node );
}
开发者ID:joevandyk,项目名称:osg,代码行数:10,代码来源:FltExportVisitor.cpp


示例5: writeFileNames

static bool writeFileNames( osgDB::OutputStream& os, const osg::ProxyNode& node )
{
    os << node.getNumFileNames() << os.BEGIN_BRACKET << std::endl;
    for ( unsigned int i=0; i<node.getNumFileNames(); ++i )
    {
        os.writeWrappedString( node.getFileName(i) );
        os << std::endl;
    }
    os << os.END_BRACKET << std::endl;
    return true;
}
开发者ID:,项目名称:,代码行数:11,代码来源:


示例6: readChildren

static bool readChildren( osgDB::InputStream& is, osg::ProxyNode& node )
{
    unsigned int size = 0; is >> size >> is.BEGIN_BRACKET;
    for ( unsigned int i=0; i<size; ++i )
    {
        osg::Node* child = dynamic_cast<osg::Node*>( is.readObject() );
        if ( child ) node.addChild( child );
    }
    is >> is.END_BRACKET;
    return true;
}
开发者ID:,项目名称:,代码行数:11,代码来源:


示例7: length

void
FltExportVisitor::writeExternalReference(const osg::ProxyNode &proxy)
{
    uint16 length(216);

    // Set sane defaults for the override flags
    unsigned long flags = COLOR_PALETTE_OVERRIDE |
                          MATERIAL_PALETTE_OVERRIDE |
                          TEXTURE_PALETTE_OVERRIDE |
                          LIGHT_POINT_PALETTE_OVERRIDE |
                          SHADER_PALETTE_OVERRIDE;

    // Selectively turn off overrides for resources we don't need
    const ParentPools *pp = dynamic_cast<const ParentPools*>(proxy.getUserData());

    if (pp && pp->getColorPool())
        flags &= ~COLOR_PALETTE_OVERRIDE;

    if (pp && pp->getMaterialPool())
        flags &= ~MATERIAL_PALETTE_OVERRIDE;

    if (pp && pp->getTexturePool())
        flags &= ~TEXTURE_PALETTE_OVERRIDE;

    if (pp && pp->getLightSourcePool())
        flags &= ~LIGHT_SOURCE_PALETTE_OVERRIDE;

    if (pp && pp->getLPAppearancePool())
        flags &= ~LIGHT_POINT_PALETTE_OVERRIDE;

    if (pp && pp->getShaderPool())
        flags &= ~SHADER_PALETTE_OVERRIDE;

    _records->writeInt16((int16) EXTERNAL_REFERENCE_OP);
    _records->writeInt16(length);
    _records->writeString(proxy.getFileName(0), 200);
    _records->writeInt32(0);   // Reserved
    _records->writeInt32(flags);
    _records->writeInt16(0);   // ViewAsBoundingBox flag
    _records->writeInt16(0);   // Reserved
}
开发者ID:hyyh619,项目名称:OpenSceneGraph-3.4.0,代码行数:41,代码来源:expPrimaryRecords.cpp


示例8: readFileNames

static bool readFileNames( osgDB::InputStream& is, osg::ProxyNode& node )
{
    unsigned int size = 0; is >> size >> is.BEGIN_BRACKET;
    for ( unsigned int i=0; i<size; ++i )
    {
        std::string value;
        is.readWrappedString( value );
        node.setFileName( i, value );
    }
    is >> is.END_BRACKET;
    return true;
}
开发者ID:,项目名称:,代码行数:12,代码来源:


示例9: writeChildren

static bool writeChildren( osgDB::OutputStream& os, const osg::ProxyNode& node )
{
    unsigned int size=node.getNumFileNames(), dynamicLoadedSize=0;
    for ( unsigned int i=0; i<size; ++i )
    {
        if ( !node.getFileName(i).empty() )
            dynamicLoadedSize++;
    }

    unsigned int realSize = size-dynamicLoadedSize; os << realSize;
    if ( realSize>0 )
    {
        os << os.BEGIN_BRACKET << std::endl;
        for ( unsigned int i=0; i<size; ++i )
        {
            if ( !node.getFileName(i).empty() ) continue;
            if ( i<node.getNumChildren() )
                os << node.getChild(i);
        }
        os << os.END_BRACKET;
    }
    os << std::endl;
    return true;
}
开发者ID:,项目名称:,代码行数:24,代码来源:


示例10: apply

void daeWriter::apply( osg::ProxyNode &node ) 
{
    OSG_WARN << "ProxyNode. Missing " << node.getNumChildren() << " children" << std::endl;
}
开发者ID:aalex,项目名称:osg,代码行数:4,代码来源:daeWSceneObjects.cpp


示例11: writeUserCenter

static bool writeUserCenter( osgDB::OutputStream& os, const osg::ProxyNode& node )
{
    os << osg::Vec3d(node.getCenter()) << (double)node.getRadius() << std::endl;
    return true;
}
开发者ID:,项目名称:,代码行数:5,代码来源:


示例12: checkUserCenter

// _userDefinedCenter, _radius
static bool checkUserCenter( const osg::ProxyNode& node )
{
    return (node.getCenterMode()==osg::ProxyNode::USER_DEFINED_CENTER)||(node.getCenterMode()==osg::ProxyNode::UNION_OF_BOUNDING_SPHERE_AND_USER_DEFINED);
}
开发者ID:,项目名称:,代码行数:5,代码来源:


示例13: checkFileNames

// _filenameList
static bool checkFileNames( const osg::ProxyNode& node )
{
    return node.getNumFileNames()>0;
}
开发者ID:,项目名称:,代码行数:5,代码来源:


示例14: checkChildren

// _children
static bool checkChildren( const osg::ProxyNode& node )
{
    return node.getNumChildren()>0;
}
开发者ID:,项目名称:,代码行数:5,代码来源:



注:本文中的osg::ProxyNode类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ osg::Quat类代码示例发布时间:2022-05-31
下一篇:
C++ osg::Polytope类代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap