void OnionPeelAttributes::SetFromNode(DataNode *parentNode) { if(parentNode == 0) return; DataNode *searchNode = parentNode->GetNode("OnionPeelAttributes"); if(searchNode == 0) return; DataNode *node; if((node = searchNode->GetNode("adjacencyType")) != 0) { // Allow enums to be int or string in the config file if(node->GetNodeType() == INT_NODE) { int ival = node->AsInt(); if(ival >= 0 && ival < 2) SetAdjacencyType(NodeFace(ival)); } else if(node->GetNodeType() == STRING_NODE) { NodeFace value; if(NodeFace_FromString(node->AsString(), value)) SetAdjacencyType(value); } } if((node = searchNode->GetNode("useGlobalId")) != 0) SetUseGlobalId(node->AsBool()); if((node = searchNode->GetNode("categoryName")) != 0) SetCategoryName(node->AsString()); if((node = searchNode->GetNode("subsetName")) != 0) SetSubsetName(node->AsString()); if((node = searchNode->GetNode("index")) != 0) SetIndex(node->AsIntVector()); if((node = searchNode->GetNode("logical")) != 0) SetLogical(node->AsBool()); if((node = searchNode->GetNode("requestedLayer")) != 0) SetRequestedLayer(node->AsInt()); if((node = searchNode->GetNode("seedType")) != 0) { // Allow enums to be int or string in the config file if(node->GetNodeType() == INT_NODE) { int ival = node->AsInt(); if(ival >= 0 && ival < 2) SetSeedType(SeedIdType(ival)); } else if(node->GetNodeType() == STRING_NODE) { SeedIdType value; if(SeedIdType_FromString(node->AsString(), value)) SetSeedType(value); } } }
void OPObjectNode::SetCategory(opNode* category) { // extract the category name now... if (TerminalNode* node = node_cast<TerminalNode>(category)) { SetCategoryName(node->GetValue()); } }