long SourcesManager::groupGetNextIndex() { if(getNumberOfGroups() != 0) { for(int i = 0; i < getMaximumIndexOfGroup()+2; i++) { if(!groupGetExistence(i)) { return i; } } } return getMaximumIndexOfGroup(); }
void SourcesManager::clearAll() { for(int i = 0; i <= getMaximumIndexOfSource(); i++) sourceRemove(i); for(int i = 0; i <= getMaximumIndexOfGroup(); i++) groupRemove(i); }
void SourcesManager::sourceRemove(long index) { if(index < m_sources.size() && index >= 0) { int numberOfGroups = m_sources[index]->getNumberOfGroups(); int indexOfGroup = -1; for(int i = 0; i < numberOfGroups; i++) { indexOfGroup = m_sources[index]->getGroupIndex(i); if(indexOfGroup >= 0 && indexOfGroup <= getMaximumIndexOfGroup()) { if(groupGetExistence(indexOfGroup)) m_groups[indexOfGroup]->removeSource(index); } } m_sources[index]->setExistence(0); m_sources[index]->setDescription(""); m_sources[index]->setColor(0.2, 0.2, 0.2, 1.); m_sources[index]->setCoordinatesCartesian(0., 1.); m_sources[index]->setMute(0); } }
void SourcesManager::copyTo(SourcesManager* sourcesManagerDestination) { double* color; sourcesManagerDestination->setExistence(0); if(getExistence() == 1) { sourcesManagerDestination->setExistence(1); sourcesManagerDestination->setMaximumRadius(getLimitMaximum()); for(long i = 0; i <= getMaximumIndexOfSource(); i++) { if(sourceGetExistence(i) == 1) { color = sourceGetColor(i); sourcesManagerDestination->sourceSetRadius(i, sourceGetRadius(i)); sourcesManagerDestination->sourceSetAzimuth(i, sourceGetAzimuth(i)); sourcesManagerDestination->sourceSetElevation(i, sourceGetElevation(i)); sourcesManagerDestination->sourceSetColor(i, color[0], color[1], color[2], color[3]); sourcesManagerDestination->sourceSetDescription(i, sourceGetDescription(i)); sourcesManagerDestination->sourceSetMute(i, sourceGetMute(i)); } } for(long i = 0; i <= getMaximumIndexOfGroup(); i++) { if(groupGetExistence(i) == 1) { for(long j = 0; j < groupGetNumberOfSources(i); j++) { sourcesManagerDestination->groupSetSource(i, groupGetSourceIndex(i, j)); } color = groupGetColor(i); sourcesManagerDestination->groupSetColor(i, color[0], color[1], color[2], color[3]); sourcesManagerDestination->groupSetDescription(i, groupGetDescription(i)); } } } }