Changeset 29340 in osm for applications/editors/josm/plugins/smed2/src/seamap
- Timestamp:
- 2013-03-03T23:15:59+01:00 (12 years ago)
- Location:
- applications/editors/josm/plugins/smed2/src/seamap
- Files:
-
- 1 deleted
- 1 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/smed2/src/seamap/Lights.java
r29286 r29340 10 10 package seamap; 11 11 12 public class Light Render{12 public class Lights { 13 13 14 14 /* -
applications/editors/josm/plugins/smed2/src/seamap/Rules.java
r29287 r29340 15 15 import java.util.ArrayList; 16 16 17 import s57.S57val; 17 18 import s57.S57val.*; 18 19 import s57.S57att.*; … … 466 467 */ 467 468 } 469 468 470 private static void notices(Feature feature) { 469 471 if (zoom >= 14) { 472 double dx = 0.0, dy = 0.0; 473 switch (feature.type) { 474 case BCNCAR: 475 case BCNISD: 476 case BCNLAT: 477 case BCNSAW: 478 case BCNSPP: 479 case BCNWTW: 480 dy = 45.0; 481 break; 482 case NOTMRK: 483 dy = 0.0; 484 break; 485 default: 486 return; 487 } 488 Symbol s1 = null, s2 = null; 489 MarSYS sys = MarSYS.SYS_CEVN; 490 AttItem att = feature.atts.get(Att.MARSYS); 491 if (att != null) sys = (MarSYS)att.val; 492 ObjTab objs = feature.objs.get(Obj.NOTMRK); 493 int n = objs.size(); 494 if (n > 2) { 495 s1 = Notices.Notice; 496 n = 1; 497 } else { 498 for (AttMap atts : objs.values()) { 499 if (atts.get(Att.MARSYS) != null) sys = (MarSYS)atts.get(Att.MARSYS).val; 500 CatNMK cat = CatNMK.NMK_UNKN; 501 if (atts.get(Att.CATNMK) != null) cat = (CatNMK)atts.get(Att.CATNMK).val; 502 s2 = Notices.getNotice(cat, sys); 503 } 504 } 505 /* Obj_t *obj = getObj(item, NOTMRK, i); 506 if (obj == NULL) continue; 507 Atta_t add; 508 int idx = 0; 509 while ((add = getAttEnum(obj, ADDMRK, idx++)) != MRK_UNKN) { 510 if ((add == MRK_LTRI) && (i == 2)) swap = true; 511 if ((add == MRK_RTRI) && (i != 2)) swap = true; 512 } 513 } 514 } else { 515 516 } 517 for (int i = 0; i <=2; i++) { 518 Obj_t *obj = getObj(item, NOTMRK, i); 519 if (obj == NULL) continue; 520 Atta_t category = getAttEnum(obj, CATNMK, i); 521 Atta_t add; 522 int idx = 0; 523 int top=0, bottom=0, left=0, right=0; 524 while ((add = getAttEnum(obj, ADDMRK, idx++)) != MRK_UNKN) { 525 switch (add) { 526 case MRK_TOPB: 527 top = add; 528 break; 529 case MRK_BOTB: 530 case MRK_BTRI: 531 bottom = add; 532 break; 533 case MRK_LTRI: 534 left = add; 535 break; 536 case MRK_RTRI: 537 right = add; 538 break; 539 default: 540 break; 541 } 542 } 543 double orient = getAtt(obj, ORIENT) != NULL ? getAtt(obj, ORIENT)->val.val.f : 0.0; 544 int system = getAtt(obj, MARSYS) != NULL ? getAtt(obj, MARSYS)->val.val.e : 0; 545 double flip = 0.0; 546 char *symb = ""; 547 char *base = ""; 548 char *colour = "black"; 549 if ((system == SYS_BWR2) || (system == SYS_BNWR)) { 550 symb = bniwr_map[category]; 551 switch (category) { 552 case NMK_NANK: 553 case NMK_LMHR: 554 case NMK_KTPM...NMK_RSPD: 555 { 556 int bank = getAtt(obj, BNKWTW) != NULL ? getAtt(obj, BNKWTW)->val.val.e : 0; 557 switch (bank) { 558 case BWW_LEFT: 559 base = "notice_blb"; 560 colour = "red"; 561 break; 562 case BWW_RGHT: 563 base = "notice_brb"; 564 colour = "green"; 565 break; 566 default: 567 base = "notice_bsi"; 568 colour = "black"; 569 break; 570 } 571 } 572 default: 573 break; 574 } 575 } else if (system == SYS_PPWB) { 576 int bank = getAtt(obj, BNKWTW) != NULL ? getAtt(obj, BNKWTW)->val.val.e : 0; 577 if (bank != 0) { 578 switch (category) { 579 case NMK_WLAR: 580 if (bank == BNK_LEFT) 581 base = "notice_pwlarl"; 582 else 583 base = "notice_pwlarr"; 584 break; 585 case NMK_WRAL: 586 if (bank == BNK_LEFT) 587 base = "notice_pwrall"; 588 else 589 base = "notice_pwralr"; 590 break; 591 case NMK_KTPM: 592 if (bank == BNK_LEFT) 593 base = "notice_ppml"; 594 else 595 base = "notice_ppmr"; 596 break; 597 case NMK_KTSM: 598 if (bank == BNK_LEFT) 599 base = "notice_psml"; 600 else 601 base = "notice_psmr"; 602 break; 603 case NMK_KTMR: 604 if (bank == BNK_LEFT) 605 base = "notice_pmrl"; 606 else 607 base = "notice_pmrr"; 608 break; 609 case NMK_CRTP: 610 if (bank == BNK_LEFT) 611 base = "notice_pcpl"; 612 else 613 base = "notice_pcpr"; 614 break; 615 case NMK_CRTS: 616 if (bank == BNK_LEFT) 617 base = "notice_pcsl"; 618 else 619 base = "notice_pcsr"; 620 break; 621 default: 622 break; 623 } 624 } 625 } else { 626 symb = notice_map[category]; 627 switch (category) { 628 case NMK_NOVK...NMK_NWSH: 629 case NMK_NMTC...NMK_NLBG: 630 base = "notice_a"; 631 break; 632 case NMK_MVTL...NMK_CHDR: 633 base = "notice_b"; 634 break; 635 case NMK_PRTL...NMK_PRTR: 636 case NMK_OVHC...NMK_LBGP: 637 base = "notice_e"; 638 colour = "white"; 639 break; 640 default: 641 break; 642 } 643 switch (category) { 644 case NMK_MVTL: 645 case NMK_ANKP: 646 case NMK_PRTL: 647 case NMK_MWAL: 648 case NMK_MWAR: 649 flip = 180.0; 650 break; 651 case NMK_SWWR: 652 case NMK_WRSL: 653 case NMK_WARL: 654 flip = -90.0; 655 break; 656 case NMK_SWWC: 657 case NMK_SWWL: 658 case NMK_WLSR: 659 case NMK_WALR: 660 flip = 90.0; 661 break; 662 default: 663 break; 664 } 665 } 666 if (n == 2) { 667 dx = (((i != 2) && swap) || ((i == 2) && !swap)) ? -30.0 : 30.0; 668 } 669 if (top == MRK_TOPB) 670 renderSymbol(item, NOTMRK, "notice_board", "", "", BC, dx, dy, orient); 671 if (bottom == MRK_BOTB) 672 renderSymbol(item, NOTMRK, "notice_board", "", "", BC, dx, dy, orient+180); 673 if (bottom == MRK_BTRI) 674 renderSymbol(item, NOTMRK, "notice_triangle", "", "", BC, dx, dy, orient+180); 675 if (left == MRK_LTRI) 676 renderSymbol(item, NOTMRK, "notice_triangle", "", "", BC, dx, dy, orient-90); 677 if (right == MRK_RTRI) 678 renderSymbol(item, NOTMRK, "notice_triangle", "", "", BC, dx, dy, orient+90); 679 renderSymbol(item, NOTMRK, base, "", "", CC, dx, dy, orient); 680 renderSymbol(item, NOTMRK, symb, "", colour, CC, dx, dy, orient+flip); 681 } 682 */ 470 683 } 471 684 }
Note:
See TracChangeset
for help on using the changeset viewer.