本文整理汇总了C++中ConstIndexedIOPtr::get方法的典型用法代码示例。如果您正苦于以下问题:C++ ConstIndexedIOPtr::get方法的具体用法?C++ ConstIndexedIOPtr::get怎么用?C++ ConstIndexedIOPtr::get使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConstIndexedIOPtr
的用法示例。
在下文中一共展示了ConstIndexedIOPtr::get方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: tokens
ObjectPtr Object::LoadContext::loadObjectOrReference( const IndexedIO *container, const IndexedIO::EntryID &name )
{
IndexedIO::Entry e = container->entry( name );
if( e.entryType()==IndexedIO::File )
{
IndexedIO::EntryIDList pathParts;
if ( e.dataType() == IndexedIO::InternedStringArray )
{
pathParts.resize( e.arrayLength() );
InternedString *p = &(pathParts[0]);
container->read( name, p, e.arrayLength() );
}
else
{
// for backward compatibility...
string path;
container->read( name, path );
typedef boost::tokenizer<boost::char_separator<char> > Tokenizer;
// \todo: this would have trouble if the name of the object contains slashes...
Tokenizer tokens(path, boost::char_separator<char>("/"));
Tokenizer::iterator t = tokens.begin();
for ( ; t != tokens.end(); t++ )
{
pathParts.push_back( *t );
}
}
std::pair< LoadedObjectMap::iterator,bool > ret = m_loadedObjects->insert( std::pair<IndexedIO::EntryIDList, ObjectPtr>( pathParts, NULL ) );
if ( ret.second )
{
// jump to the path..
ConstIndexedIOPtr ioObject = m_ioInterface->directory( pathParts );
// add the loaded object to the map.
ret.first->second = loadObject( ioObject.get() );
}
return ret.first->second;
}
else
{
ConstIndexedIOPtr ioObject = container->subdirectory( name );
IndexedIO::EntryIDList pathParts;
ioObject->path( pathParts );
std::pair< LoadedObjectMap::iterator,bool > ret = m_loadedObjects->insert( std::pair<IndexedIO::EntryIDList, ObjectPtr>( pathParts, NULL ) );
if ( ret.second )
{
// add the loaded object to the map.
ret.first->second = loadObject( ioObject.get() );
}
return ret.first->second;
}
}
示例2: load
void load( IECore::Object::LoadContextPtr context )
{
unsigned int v = g_ioVersion;
ConstIndexedIOPtr container = context->container( staticTypeName(), v );
ConstIndexedIOPtr shaders = container->subdirectory( "shaders" );
IndexedIO::EntryIDList handles;
shaders->entryIds( handles, IndexedIO::Directory );
for( const auto &handle : handles )
{
ShaderPtr shader = context->load<Shader>( shaders.get(), handle );
setShader( handle, shader.get() );
}
ConstIndexedIOPtr connections = container->subdirectory( "connections" );
IndexedIO::EntryIDList connectionIndices;
for( const auto &connectionIndex : connectionIndices )
{
InternedString c[4];
InternedString *cp = c;
connections->read( connectionIndex, cp, 4 );
addConnection(
Connection( Parameter( cp[0], cp[1] ), Parameter( cp[2], cp[3] ) )
);
}
InternedString o[2];
InternedString *op = o;
container->read( "output", op, 2 );
m_output = Parameter( op[0], op[1] );
}
示例3: load
void Options::load( LoadContextPtr context )
{
PreWorldRenderable::load( context );
unsigned int v = m_ioVersion;
ConstIndexedIOPtr container = context->container( staticTypeName(), v );
m_options = context->load<CompoundData>( container.get(), g_optionsEntry );
}
示例4: load
void CompoundDataBase::load( LoadContextPtr context )
{
Data::load( context );
unsigned int v = 0;
ConstIndexedIOPtr container = nullptr;
try
{
container = context->container( staticTypeName(), v );
}
catch( const IOException &e )
{
// probably a file with CORTEX_MAJOR_VERSION < 5, get the
// data from CompoundData container instead.
container = context->container( "CompoundData", v );
}
CompoundDataMap &m = writable();
m.clear();
container = container->subdirectory( g_membersEntry );
IndexedIO::EntryIDList memberNames;
container->entryIds( memberNames );
IndexedIO::EntryIDList::const_iterator it;
for( it=memberNames.begin(); it!=memberNames.end(); it++ )
{
m[*it] = context->load<Data>( container.get(), *it );
}
}
示例5: load
void NURBSPrimitive::load( IECore::Object::LoadContextPtr context )
{
Primitive::load(context);
unsigned int v = m_ioVersion;
ConstIndexedIOPtr container = context->container( staticTypeName(), v );
container->read( g_uOrderEntry, m_uOrder );
m_uKnot = context->load<FloatVectorData>( container.get(), g_uKnotEntry );
container->read( g_uMinEntry, m_uMin );
container->read( g_uMaxEntry, m_uMax );
container->read( g_vOrderEntry, m_vOrder );
m_vKnot = context->load<FloatVectorData>( container.get(), g_vKnotEntry );
container->read( g_vMinEntry, m_vMin );
container->read( g_vMaxEntry, m_vMax );
}
示例6: load
void Shader::load( LoadContextPtr context )
{
StateRenderable::load( context );
unsigned int v = m_ioVersion;
ConstIndexedIOPtr container = context->container( staticTypeName(), v );
container->read( g_nameEntry, m_name );
container->read( g_typeEntry, m_type );
m_parameters = context->load<CompoundData>( container.get(), g_parametersEntry );
}
示例7: load
void CurvesPrimitive::load( IECore::Object::LoadContextPtr context )
{
Primitive::load( context );
unsigned int v = m_ioVersion;
ConstIndexedIOPtr container = context->container( staticTypeName(), v );
float *f = m_basis.matrix.getValue();
container->read( g_basisMatrixEntry, f, 16 );
container->read( g_basisStepEntry, m_basis.step );
m_linear = m_basis==CubicBasisf::linear();
int p = 0;
container->read( g_periodicEntry, p );
m_periodic = p;
m_vertsPerCurve = context->load<IntVectorData>( container.get(), g_verticesPerCurveEntry );
container->read( g_numVertsEntry, m_numVerts );
container->read( g_numFaceVaryingEntry, m_numFaceVarying );
}
示例8: load
void SmoothSkinningData::load( IECore::Object::LoadContextPtr context )
{
Data::load(context);
unsigned int v = m_ioVersion;
ConstIndexedIOPtr container = context->container( staticTypeName(), v );
m_influenceNames = context->load<StringVectorData>( container.get(), g_influenceNamesEntry );
m_influencePose = context->load<M44fVectorData>( container.get(), g_influencePoseEntry );
m_pointIndexOffsets = context->load<IntVectorData>( container.get(), g_pointIndexOffsetsEntry );
m_pointInfluenceCounts = context->load<IntVectorData>( container.get(), g_pointInfluenceCountsEntry );
m_pointInfluenceIndices = context->load<IntVectorData>( container.get(), g_pointInfluenceIndicesEntry );
m_pointInfluenceWeights = context->load<FloatVectorData>( container.get(), g_pointInfluenceWeightsEntry );
}
示例9: loadPrimitiveVariables
PrimitiveVariableMap Primitive::loadPrimitiveVariables( const IndexedIO *ioInterface, const IndexedIO::EntryID &name, const IndexedIO::EntryIDList &primVarNames )
{
IECore::Object::LoadContextPtr context = new Object::LoadContext( ioInterface->subdirectory( name )->subdirectory( g_dataEntry ) );
unsigned int v = m_ioVersion;
ConstIndexedIOPtr container = context->container( Primitive::staticTypeName(), v );
if ( !container )
{
throw Exception( "Could not find Primitive entry in the file!" );
}
ConstIndexedIOPtr ioVariables = container->subdirectory( g_variablesEntry );
PrimitiveVariableMap variables;
IndexedIO::EntryIDList::const_iterator it;
for( it=primVarNames.begin(); it!=primVarNames.end(); it++ )
{
ConstIndexedIOPtr ioPrimVar = ioVariables->subdirectory( *it, IndexedIO::NullIfMissing );
if ( !ioPrimVar )
{
continue;
}
int i;
ioPrimVar->read( g_interpolationEntry, i );
variables.insert(
PrimitiveVariableMap::value_type( *it, PrimitiveVariable( (PrimitiveVariable::Interpolation)i, context->load<Data>( ioPrimVar.get(), g_dataEntry ) ) )
);
}
return variables;
}
示例10: load
void Primitive::load( IECore::Object::LoadContextPtr context )
{
unsigned int v = m_ioVersion;
ConstIndexedIOPtr container = context->container( staticTypeName(), v );
// we changed the inheritance hierarchy at io version 1
if( v==0 )
{
Renderable::load( context );
}
else
{
VisibleRenderable::load( context );
}
ConstIndexedIOPtr ioVariables = container->subdirectory( g_variablesEntry );
variables.clear();
IndexedIO::EntryIDList names;
ioVariables->entryIds( names, IndexedIO::Directory );
IndexedIO::EntryIDList::const_iterator it;
for( it=names.begin(); it!=names.end(); it++ )
{
ConstIndexedIOPtr ioPrimVar = ioVariables->subdirectory( *it );
int i;
ioPrimVar->read( g_interpolationEntry, i );
variables.insert(
PrimitiveVariableMap::value_type( *it, PrimitiveVariable( (PrimitiveVariable::Interpolation)i, context->load<Data>( ioPrimVar.get(), g_dataEntry ) ) )
);
}
}
示例11: load
ObjectPtr Object::load( ConstIndexedIOPtr ioInterface, const IndexedIO::EntryID &name )
{
LoadContextPtr context( new LoadContext( ioInterface ) );
ObjectPtr result = context->load<Object>( ioInterface.get(), name );
return result;
}