535 {
536 RSPParam LRSL1_param;
537 LRSL(x, y, phi, &LRSL1_param);
538 double LRSL1_lengths[4] = {LRSL1_param.t, -0.5 * M_PI, LRSL1_param.u, LRSL1_param.v};
539 char LRSL1_types[] = "LRSL";
540 if (LRSL1_param.flag && !
SetRSP(4, LRSL1_lengths, LRSL1_types, all_possible_paths)) {
541 ADEBUG <<
"Fail at SetRSP with LRSL1_param";
542 return false;
543 }
544
545 RSPParam LRSL2_param;
546 LRSL(-x, y, -phi, &LRSL2_param);
547 double LRSL2_lengths[4] = {-LRSL2_param.t, 0.5 * M_PI, -LRSL2_param.u, -LRSL2_param.v};
548 char LRSL2_types[] = "LRSL";
549 if (LRSL2_param.flag && !
SetRSP(4, LRSL2_lengths, LRSL2_types, all_possible_paths)) {
550 ADEBUG <<
"Fail at SetRSP with LRSL2_param";
551 return false;
552 }
553
554 RSPParam LRSL3_param;
555 LRSL(x, -y, -phi, &LRSL3_param);
556 double LRSL3_lengths[4] = {LRSL3_param.t, -0.5 * M_PI, LRSL3_param.u, LRSL3_param.v};
557 char LRSL3_types[] = "RLSR";
558 if (LRSL3_param.flag && !
SetRSP(4, LRSL3_lengths, LRSL3_types, all_possible_paths)) {
559 ADEBUG <<
"Fail at SetRSP with LRSL3_param";
560 return false;
561 }
562
563 RSPParam LRSL4_param;
564 LRSL(-x, -y, phi, &LRSL4_param);
565 double LRSL4_lengths[4] = {-LRSL4_param.t, 0.5 * M_PI, -LRSL4_param.u, -LRSL4_param.v};
566 char LRSL4_types[] = "RLSR";
567 if (LRSL4_param.flag && !
SetRSP(4, LRSL4_lengths, LRSL4_types, all_possible_paths)) {
568 ADEBUG <<
"Fail at SetRSP with LRSL4_param";
569 return false;
570 }
571
572 RSPParam LRSR1_param;
573 LRSR(x, y, phi, &LRSR1_param);
574 double LRSR1_lengths[4] = {LRSR1_param.t, -0.5 * M_PI, LRSR1_param.u, LRSR1_param.v};
575 char LRSR1_types[] = "LRSR";
576 if (LRSR1_param.flag && !
SetRSP(4, LRSR1_lengths, LRSR1_types, all_possible_paths)) {
577 ADEBUG <<
"Fail at SetRSP with LRSR1_param";
578 return false;
579 }
580
581 RSPParam LRSR2_param;
582 LRSR(-x, y, -phi, &LRSR2_param);
583 double LRSR2_lengths[4] = {-LRSR2_param.t, 0.5 * M_PI, -LRSR2_param.u, -LRSR2_param.v};
584 char LRSR2_types[] = "LRSR";
585 if (LRSR2_param.flag && !
SetRSP(4, LRSR2_lengths, LRSR2_types, all_possible_paths)) {
586 ADEBUG <<
"Fail at SetRSP with LRSR2_param";
587 return false;
588 }
589
590 RSPParam LRSR3_param;
591 LRSR(x, -y, -phi, &LRSR3_param);
592 double LRSR3_lengths[4] = {LRSR3_param.t, -0.5 * M_PI, LRSR3_param.u, LRSR3_param.v};
593 char LRSR3_types[] = "RLSL";
594 if (LRSR3_param.flag && !
SetRSP(4, LRSR3_lengths, LRSR3_types, all_possible_paths)) {
595 ADEBUG <<
"Fail at SetRSP with LRSR3_param";
596 return false;
597 }
598
599 RSPParam LRSR4_param;
600 LRSR(-x, -y, phi, &LRSR4_param);
601 double LRSR4_lengths[4] = {-LRSR4_param.t, 0.5 * M_PI, -LRSR4_param.u, -LRSR4_param.v};
602 char LRSR4_types[] = "RLSL";
603 if (LRSR4_param.flag && !
SetRSP(4, LRSR4_lengths, LRSR4_types, all_possible_paths)) {
604 ADEBUG <<
"Fail at SetRSP with LRSR4_param";
605 return false;
606 }
607
608
609 double xb = x * std::cos(phi) + y * std::sin(phi);
610 double yb = x * std::sin(phi) - y * std::cos(phi);
611
612 RSPParam LRSL5_param;
613 LRSL(xb, yb, phi, &LRSL5_param);
614 double LRSL5_lengths[4] = {LRSL5_param.v, LRSL5_param.u, -0.5 * M_PI, LRSL5_param.t};
615 char LRSL5_types[] = "LSRL";
616 if (LRSL5_param.flag && !
SetRSP(4, LRSL5_lengths, LRSL5_types, all_possible_paths)) {
617 ADEBUG <<
"Fail at SetRSP with LRLRn_param";
618 return false;
619 }
620
621 RSPParam LRSL6_param;
622 LRSL(-xb, yb, -phi, &LRSL6_param);
623 double LRSL6_lengths[4] = {-LRSL6_param.v, -LRSL6_param.u, 0.5 * M_PI, -LRSL6_param.t};
624 char LRSL6_types[] = "LSRL";
625 if (LRSL6_param.flag && !
SetRSP(4, LRSL6_lengths, LRSL6_types, all_possible_paths)) {
626 ADEBUG <<
"Fail at SetRSP with LRSL6_param";
627 return false;
628 }
629
630 RSPParam LRSL7_param;
631 LRSL(xb, -yb, -phi, &LRSL7_param);
632 double LRSL7_lengths[4] = {LRSL7_param.v, LRSL7_param.u, -0.5 * M_PI, LRSL7_param.t};
633 char LRSL7_types[] = "RSLR";
634 if (LRSL7_param.flag && !
SetRSP(4, LRSL7_lengths, LRSL7_types, all_possible_paths)) {
635 ADEBUG <<
"Fail at SetRSP with LRSL7_param";
636 return false;
637 }
638
639 RSPParam LRSL8_param;
640 LRSL(-xb, -yb, phi, &LRSL8_param);
641 double LRSL8_lengths[4] = {-LRSL8_param.v, -LRSL8_param.u, 0.5 * M_PI, -LRSL8_param.t};
642 char LRSL8_types[] = "RSLR";
643 if (LRSL8_param.flag && !
SetRSP(4, LRSL8_lengths, LRSL8_types, all_possible_paths)) {
644 ADEBUG <<
"Fail at SetRSP with LRSL8_param";
645 return false;
646 }
647
648 RSPParam LRSR5_param;
649 LRSR(xb, yb, phi, &LRSR5_param);
650 double LRSR5_lengths[4] = {LRSR5_param.v, LRSR5_param.u, -0.5 * M_PI, LRSR5_param.t};
651 char LRSR5_types[] = "RSRL";
652 if (LRSR5_param.flag && !
SetRSP(4, LRSR5_lengths, LRSR5_types, all_possible_paths)) {
653 ADEBUG <<
"Fail at SetRSP with LRSR5_param";
654 return false;
655 }
656
657 RSPParam LRSR6_param;
658 LRSR(-xb, yb, -phi, &LRSR6_param);
659 double LRSR6_lengths[4] = {-LRSR6_param.v, -LRSR6_param.u, 0.5 * M_PI, -LRSR6_param.t};
660 char LRSR6_types[] = "RSRL";
661 if (LRSR6_param.flag && !
SetRSP(4, LRSR6_lengths, LRSR6_types, all_possible_paths)) {
662 ADEBUG <<
"Fail at SetRSP with LRSR6_param";
663 return false;
664 }
665
666 RSPParam LRSR7_param;
667 LRSR(xb, -yb, -phi, &LRSR7_param);
668 double LRSR7_lengths[4] = {LRSR7_param.v, LRSR7_param.u, -0.5 * M_PI, LRSR7_param.t};
669 char LRSR7_types[] = "LSLR";
670 if (LRSR7_param.flag && !
SetRSP(4, LRSR7_lengths, LRSR7_types, all_possible_paths)) {
671 ADEBUG <<
"Fail at SetRSP with LRSR7_param";
672 return false;
673 }
674
675 RSPParam LRSR8_param;
676 LRSR(-xb, -yb, phi, &LRSR8_param);
677 double LRSR8_lengths[4] = {-LRSR8_param.v, -LRSR8_param.u, 0.5 * M_PI, -LRSR8_param.t};
678 char LRSR8_types[] = "LSLR";
679 if (LRSR8_param.flag && !
SetRSP(4, LRSR8_lengths, LRSR8_types, all_possible_paths)) {
680 ADEBUG <<
"Fail at SetRSP with LRSR8_param";
681 return false;
682 }
683 return true;
684}
void LRSL(const double x, const double y, const double phi, RSPParam *param)
void LRSR(const double x, const double y, const double phi, RSPParam *param)