예제 #1
0
	long SourcesManager::groupGetNextIndex()
	{
		if(getNumberOfGroups() != 0)
		{
			for(int i = 0; i < getMaximumIndexOfGroup()+2; i++)
			{
				if(!groupGetExistence(i))
				{
					return i;
				}
			}
		}
		return getMaximumIndexOfGroup();
	}
예제 #2
0
	void SourcesManager::clearAll()
	{

		for(int i = 0; i <= getMaximumIndexOfSource(); i++)
			sourceRemove(i);
		for(int i = 0; i <= getMaximumIndexOfGroup(); i++)
			groupRemove(i);
	}
예제 #3
0
	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);
		}
	}
예제 #4
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));
				}
			}
		}
	}