mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-04-29 23:39:26 -05:00
Can't add different cygnet type to a group
This commit is contained in:
@@ -67,7 +67,7 @@ void ISWAGroup::registerCygnet(ISWACygnet* cygnet, ISWAManager::CygnetType type)
|
||||
}
|
||||
|
||||
if(type != _type){
|
||||
LERROR("Can't register cygnet with a different class from the group");
|
||||
LWARNING("Can't register cygnet with a different type from the group");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -94,6 +94,9 @@ void ISWAGroup::unregisterCygnet(ISWACygnet* cygnet){
|
||||
|
||||
if(it != _cygnets.end())
|
||||
_cygnets.erase(it);
|
||||
|
||||
if(_cygnets.empty())
|
||||
unregisterProperties();
|
||||
}
|
||||
|
||||
|
||||
@@ -110,6 +113,11 @@ void ISWAGroup::registerOptions(const std::vector<properties::SelectionProperty:
|
||||
}
|
||||
}
|
||||
|
||||
bool ISWAGroup::checkType(ISWAManager::CygnetType type){
|
||||
if(_type == ISWAManager::CygnetType::NoType) return true;
|
||||
return (_type == type);
|
||||
}
|
||||
|
||||
void ISWAGroup::registerProperties(){
|
||||
OsEng.gui()._iSWAproperty.registerProperty(&_enabled);
|
||||
|
||||
@@ -166,11 +174,15 @@ void ISWAGroup::registerProperties(){
|
||||
ISWAManager::ref().deleteISWACygnet((*it)->name());
|
||||
it = _cygnets.erase(it);
|
||||
}
|
||||
_dataOptions.removeOptions();
|
||||
OsEng.gui()._iSWAproperty.unregisterProperties(name());
|
||||
_type = ISWAManager::CygnetType::NoType;
|
||||
// ISWAManager::ref().unregisterGroup(_id);
|
||||
unregisterProperties();
|
||||
});
|
||||
}
|
||||
|
||||
void ISWAGroup::unregisterProperties(){
|
||||
_dataOptions.removeOptions();
|
||||
OsEng.gui()._iSWAproperty.unregisterProperties(name());
|
||||
_type = ISWAManager::CygnetType::NoType;
|
||||
}
|
||||
|
||||
} //namespace openspace
|
||||
@@ -45,7 +45,7 @@ public:
|
||||
void registerCygnet(ISWACygnet* cygnet, ISWAManager::CygnetType type);
|
||||
void unregisterCygnet(ISWACygnet* cygnet);
|
||||
void registerOptions(const std::vector<properties::SelectionProperty::Option>& options);
|
||||
|
||||
bool checkType(ISWAManager::CygnetType type);
|
||||
private:
|
||||
void registerProperties();
|
||||
void unregisterProperties();
|
||||
|
||||
@@ -229,8 +229,12 @@ void ISWAManager::createScreenSpace(int id){
|
||||
void ISWAManager::createPlane(std::shared_ptr<MetadataFuture> data){
|
||||
// check if this plane already exist
|
||||
std::string name = _type[data->type] + _geom[data->geom] + std::to_string(data->id);
|
||||
if(data->group > 0)
|
||||
name += "_Group" + std::to_string(data->group);
|
||||
|
||||
if(data->group > 0){
|
||||
auto it = _groups.find(data->group);
|
||||
if(it == _groups.end() || (*it).second->checkType((CygnetType) data->type))
|
||||
name += "_Group" + std::to_string(data->group);
|
||||
}
|
||||
|
||||
data->name = name;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user