void Spatialize<BasicTraits>::setGroupCore (const GroupPtr& group) { setRefdCP(s_group, group); }
bool State::addChunk(StateChunkPtr chunk, Int32 index) { OSG_ASSERT(chunk != NullFC && "State::addChunk: chunk is NullFC"); if(index > 0 && index > chunk->getClass()->getNumSlots()) { SWARNING << "addChunk: index " << index << " > Numslots " << chunk->getClass()->getNumSlots() << ", ignored!" << std::endl; return true; } UInt32 cindex = chunk->getClassId(); UInt32 csize = _mfChunks.size(); // special case: find empty slot automatically if(index == AutoSlot || index == AutoSlotReplace) { UInt8 nslots = chunk->getClass()->getNumSlots(); UInt8 ci; for(ci = cindex; ci < cindex + nslots && ci < csize; ++ci) { if(_mfChunks[ci] == NullFC) { break; } } if(ci >= cindex + nslots) // no free slot found { if(index == AutoSlot) { SWARNING << "addChunk: no free slot found for " << chunk->getClass()->getName() << " class, ignored!" << std::endl; return true; } // use last slot --ci; } cindex = ci; } else { cindex += index; } // add the chunk to the state at cindex if(cindex >= csize) { UInt32 oldsize = csize; UInt32 newsize = cindex + 1; _mfChunks.resize(newsize); for(UInt32 i = oldsize; i < newsize; i++) { _mfChunks[i] = NullFC; } } setRefdCP(_mfChunks[cindex], chunk); return false; }
void FaceSpatializeIndexed<BasicTraits>::setGroupCore (const GroupPtr& group) { setRefdCP(s_group, group); }