MCPcopy Create free account
hub / github.com/ImageEngine/cortex / ensureVertIds

Method ensureVertIds

src/IECoreGL/CurvesPrimitive.cpp:416–448  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

414}
415
416void CurvesPrimitive::ensureVertIds() const
417{
418 if( m_memberData->vertIdsBuffer )
419 {
420 return;
421 }
422
423 IECore::UIntVectorDataPtr vertIdsData = new IECore::UIntVectorData;
424 vector<unsigned int> &vertIds = vertIdsData->writable();
425
426 unsigned vertIndex = 0;
427 const vector<int> &vertsPerCurve = m_memberData->vertsPerCurve->readable();
428 for( vector<int>::const_iterator it = vertsPerCurve.begin(), eIt = vertsPerCurve.end(); it != eIt; it++ )
429 {
430 const int numSegments = *it - 1;
431 for( int i = 0; i < numSegments; i++ )
432 {
433 vertIds.push_back( vertIndex );
434 vertIds.push_back( ++vertIndex );
435 }
436 if( m_memberData->periodic )
437 {
438 vertIds.push_back( vertIndex );
439 vertIds.push_back( vertIndex - numSegments );
440 }
441 vertIndex++;
442 }
443
444 m_memberData->numVertIds = vertIds.size();
445
446 CachedConverterPtr cachedConverter = CachedConverter::defaultCachedConverter();
447 m_memberData->vertIdsBuffer = IECore::runTimeCast<const Buffer>( cachedConverter->convert( vertIdsData.get() ) );
448}
449
450void CurvesPrimitive::ensureAdjacencyVertIds() const
451{

Callers

nothing calls this directly

Calls 7

readableMethod · 0.80
writableMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
sizeMethod · 0.45
convertMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected