test_class.file: app/src/test/java/org/hwyl/sexytopo/control/util/CrossSectionerTest.java
test_class.identifier: CrossSectionerTest
test_case.body: @Test
      public void testStraightNorthCrossSection() {
          Survey testSurvey = BasicTestSurveyCreator.createStraightNorth();
  
          Station s2 = testSurvey.getStationByName("2");
          double angle = CrossSectioner.getAngleOfSection(testSurvey, s2);
          Assert.assertEquals(0.0, angle);
      }
test_case.class_method_signature: CrossSectionerTest.testStraightNorthCrossSection()
test_case.full_signature: @Test public void testStraightNorthCrossSection()
test_case.identifier: testStraightNorthCrossSection
test_case.invocations: createStraightNorth getStationByName getAngleOfSection assertEquals
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testStraightNorthCrossSection()
focal_class.file: app/src/main/java/org/hwyl/sexytopo/control/util/CrossSectioner.java
focal_class.identifier: CrossSectioner
focal_class.class_method_signature: CrossSectioner.section(Survey survey, final Station station)
focal_class.full_signature: public static CrossSection section(Survey survey, final Station station)
focal_class.identifier: section
focal_class.modifiers: public static
focal_class.parameters: (Survey survey, final Station station)
focal_class.return: CrossSection
focal_class.signature: CrossSection section(Survey survey, final Station station)
focal_class.class_method_signature: CrossSectioner.getAngleOfSection(Survey survey, Station station)
focal_class.full_signature: public static double getAngleOfSection(Survey survey, Station station)
focal_class.identifier: getAngleOfSection
focal_class.modifiers: public static
focal_class.parameters: (Survey survey, Station station)
focal_class.return: double
focal_class.signature: double getAngleOfSection(Survey survey, Station station)
focal_class.class_method_signature: CrossSectioner.getIncomingAzimuth(Survey survey, Station station)
focal_class.full_signature: private static double getIncomingAzimuth(Survey survey, Station station)
focal_class.identifier: getIncomingAzimuth
focal_class.modifiers: private static
focal_class.parameters: (Survey survey, Station station)
focal_class.return: double
focal_class.signature: double getIncomingAzimuth(Survey survey, Station station)
focal_class.class_method_signature: CrossSectioner.getOutgoingAzimuth(Station station)
focal_class.full_signature: private static double getOutgoingAzimuth(Station station)
focal_class.identifier: getOutgoingAzimuth
focal_class.modifiers: private static
focal_class.parameters: (Station station)
focal_class.return: double
focal_class.signature: double getOutgoingAzimuth(Station station)
focal_method.body: public static double getAngleOfSection(Survey survey, Station station) {
  
          int numIncomingLegs = station == survey.getOrigin()? 0 : 1;
          int numOutgoingLegs = station.getConnectedOnwardLegs().size();
  
          double angle;
          if (numIncomingLegs == 1 && numOutgoingLegs == 1) {
              double incomingAzimuth = getIncomingAzimuth(survey, station);
              double outgoingAzimuth = getOutgoingAzimuth(station);
              angle = (incomingAzimuth + outgoingAzimuth) / 2;
          } else if (numIncomingLegs == 1) {
              // just consider the incoming leg (end of a passage or, lots of ways on)
              double incomingAzimuth = getIncomingAzimuth(survey, station);
              angle = incomingAzimuth;
          } else if (numOutgoingLegs == 1) {
              // just consider the outgoing leg (must be doing X-section at the origin)
              double outgoingAzimuth = getOutgoingAzimuth(station);
              angle = outgoingAzimuth;
          } else {
              // at the origin with no or lots of outgoing legs?? No idea....
              angle = 0;
          }
  
          return angle;
      }
focal_method.class_method_signature: CrossSectioner.getAngleOfSection(Survey survey, Station station)
focal_method.full_signature: public static double getAngleOfSection(Survey survey, Station station)
focal_method.identifier: getAngleOfSection
focal_method.invocations: getOrigin size getConnectedOnwardLegs getIncomingAzimuth getOutgoingAzimuth getIncomingAzimuth getOutgoingAzimuth
focal_method.modifiers: public static
focal_method.parameters: (Survey survey, Station station)
focal_method.return: double
focal_method.signature: double getAngleOfSection(Survey survey, Station station)