| 2565 | } |
| 2566 | |
| 2567 | void OriginProjectParser::loadSymbol(const Origin::GraphCurve& originCurve, Symbol* symbol, const XYCurve* curve) const { |
| 2568 | if (originCurve.type != Origin::GraphCurve::Scatter && originCurve.type != Origin::GraphCurve::LineSymbol) { |
| 2569 | symbol->setStyle(Symbol::Style::NoSymbols); |
| 2570 | return; |
| 2571 | } |
| 2572 | |
| 2573 | // symbol style: |
| 2574 | // try to map the different symbols, mapping is not exact, |
| 2575 | // see https://www.originlab.com/doc/Labtalk/Ref/List-of-Symbol-Shapes |
| 2576 | symbol->setRotationAngle(0); |
| 2577 | switch (originCurve.symbolShape) { |
| 2578 | case 0: // NoSymbol |
| 2579 | symbol->setStyle(Symbol::Style::NoSymbols); |
| 2580 | break; |
| 2581 | case 1: // Square |
| 2582 | switch (originCurve.symbolInterior) { |
| 2583 | case 0: // solid |
| 2584 | case 1: // open |
| 2585 | case 3: // hollow |
| 2586 | symbol->setStyle(Symbol::Style::Square); |
| 2587 | break; |
| 2588 | case 2: // dot |
| 2589 | symbol->setStyle(Symbol::Style::SquareDot); |
| 2590 | break; |
| 2591 | case 4: // plus |
| 2592 | symbol->setStyle(Symbol::Style::SquarePlus); |
| 2593 | break; |
| 2594 | case 5: // X |
| 2595 | symbol->setStyle(Symbol::Style::SquareX); |
| 2596 | break; |
| 2597 | case 6: // minus |
| 2598 | case 10: // down |
| 2599 | symbol->setStyle(Symbol::Style::SquareHalf); |
| 2600 | break; |
| 2601 | case 7: // pipe |
| 2602 | symbol->setStyle(Symbol::Style::SquareHalf); |
| 2603 | symbol->setRotationAngle(90); |
| 2604 | break; |
| 2605 | case 8: // up |
| 2606 | symbol->setStyle(Symbol::Style::SquareHalf); |
| 2607 | symbol->setRotationAngle(180); |
| 2608 | break; |
| 2609 | case 9: // right |
| 2610 | symbol->setStyle(Symbol::Style::SquareHalf); |
| 2611 | symbol->setRotationAngle(-90); |
| 2612 | break; |
| 2613 | case 11: // left |
| 2614 | symbol->setStyle(Symbol::Style::SquareHalf); |
| 2615 | symbol->setRotationAngle(90); |
| 2616 | break; |
| 2617 | } |
| 2618 | break; |
| 2619 | case 2: // Ellipse |
| 2620 | case 20: // Sphere |
| 2621 | switch (originCurve.symbolInterior) { |
| 2622 | case 0: // solid |
| 2623 | case 1: // open |
| 2624 | case 3: // hollow |