MCPcopy Create free account
hub / github.com/OpenOrienteering/mapper / recognizeSymbolPatterns

Method recognizeSymbolPatterns

src/core/objects/symbol_rule_set.cpp:365–390  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

363
364
365void SymbolRuleSet::recognizeSymbolPatterns(const Map& symbol_set)
366{
367 for (auto& item : *this)
368 {
369 if (item.type == SymbolRule::NoAssignment
370 || item.query.getOperator() != ObjectQuery::OperatorSearch)
371 continue;
372 Q_ASSERT(item.symbol);
373
374 auto operands = item.query.tagOperands();
375 if (!operands || operands->value.isEmpty())
376 continue;
377
378 // Find original symbol number matching the pattern
379 for (int i = 0; i < symbol_set.getNumSymbols(); ++i)
380 {
381 auto symbol = symbol_set.getSymbol(i);
382 if (symbol->getNumberAsString() == operands->value)
383 {
384 if (Symbol::areTypesCompatible(symbol->getType(), item.symbol->getType()))
385 item.query = { symbol };
386 break;
387 }
388 }
389 }
390}
391
392
393

Callers 1

loadCrtFileMethod · 0.80

Calls 7

getOperatorMethod · 0.80
tagOperandsMethod · 0.80
getNumSymbolsMethod · 0.80
getNumberAsStringMethod · 0.80
isEmptyMethod · 0.45
getSymbolMethod · 0.45
getTypeMethod · 0.45

Tested by

no test coverage detected