test_class.file: singa-mathematics/src/test/java/bio/singa/mathematics/geometry/bodies/SpheresTest.java
test_class.identifier: SpheresTest
test_case.body: @Test
      @DisplayName("spherical triangle calculation - trivial")
      void calculateSphereTriangleSurface1() {
          Sphere sphere = new Sphere(new Vector3D(0, 0, 0), 1);
          Vector3D v1 = new Vector3D(1, 0, 0);
          Vector3D v2 = new Vector3D(0, 1, 0);
          Vector3D v3 = new Vector3D(0, 0, 1);
          double surface = Spheres.calculateSphereTriangleSurface(sphere, v1, v2, v3);
          assertEquals(sphere.getSurface() / 8.0, surface);
      }
test_case.class_method_signature: SpheresTest.calculateSphereTriangleSurface1()
test_case.full_signature: @Test @DisplayName("spherical triangle calculation - trivial") void calculateSphereTriangleSurface1()
test_case.identifier: calculateSphereTriangleSurface1
test_case.invocations: calculateSphereTriangleSurface assertEquals getSurface
test_case.modifiers: @Test @DisplayName("spherical triangle calculation - trivial")
test_case.parameters: ()
test_case.return: void
test_case.signature: void calculateSphereTriangleSurface1()
focal_class.file: singa-mathematics/src/main/java/bio/singa/mathematics/geometry/bodies/Spheres.java
focal_class.identifier: Spheres
focal_class.class_method_signature: Spheres.Spheres()
focal_class.full_signature: private  Spheres()
focal_class.identifier: Spheres
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  Spheres()
focal_class.class_method_signature: Spheres.calculateSurface(double radius)
focal_class.full_signature: public static double calculateSurface(double radius)
focal_class.identifier: calculateSurface
focal_class.modifiers: public static
focal_class.parameters: (double radius)
focal_class.return: double
focal_class.signature: double calculateSurface(double radius)
focal_class.class_method_signature: Spheres.calculateSphereTriangleSurface(Sphere sphere, Vector3D point1, Vector3D point2, Vector3D point3)
focal_class.full_signature: public static double calculateSphereTriangleSurface(Sphere sphere, Vector3D point1, Vector3D point2, Vector3D point3)
focal_class.identifier: calculateSphereTriangleSurface
focal_class.modifiers: public static
focal_class.parameters: (Sphere sphere, Vector3D point1, Vector3D point2, Vector3D point3)
focal_class.return: double
focal_class.signature: double calculateSphereTriangleSurface(Sphere sphere, Vector3D point1, Vector3D point2, Vector3D point3)
focal_class.class_method_signature: Spheres.calculateCenteredSphereTriangleSurface(Sphere sphere, Vector3D point1, Vector3D point2, Vector3D point3)
focal_class.full_signature: public static double calculateCenteredSphereTriangleSurface(Sphere sphere, Vector3D point1, Vector3D point2, Vector3D point3)
focal_class.identifier: calculateCenteredSphereTriangleSurface
focal_class.modifiers: public static
focal_class.parameters: (Sphere sphere, Vector3D point1, Vector3D point2, Vector3D point3)
focal_class.return: double
focal_class.signature: double calculateCenteredSphereTriangleSurface(Sphere sphere, Vector3D point1, Vector3D point2, Vector3D point3)
focal_class.class_method_signature: Spheres.calculateSphereSlice(Vector2D sphereCentre, double sphereRadius, LineSegment lineSegment)
focal_class.full_signature: public static double calculateSphereSlice(Vector2D sphereCentre, double sphereRadius, LineSegment lineSegment)
focal_class.identifier: calculateSphereSlice
focal_class.modifiers: public static
focal_class.parameters: (Vector2D sphereCentre, double sphereRadius, LineSegment lineSegment)
focal_class.return: double
focal_class.signature: double calculateSphereSlice(Vector2D sphereCentre, double sphereRadius, LineSegment lineSegment)
focal_class.class_method_signature: Spheres.calculateSphereSlice(Vector2D sphereCentre, double sphereRadius, Vector2D beam)
focal_class.full_signature: public static Map<MooreRectangularDirection, Double> calculateSphereSlice(Vector2D sphereCentre, double sphereRadius, Vector2D beam)
focal_class.identifier: calculateSphereSlice
focal_class.modifiers: public static
focal_class.parameters: (Vector2D sphereCentre, double sphereRadius, Vector2D beam)
focal_class.return: Map<MooreRectangularDirection, Double>
focal_class.signature: Map<MooreRectangularDirection, Double> calculateSphereSlice(Vector2D sphereCentre, double sphereRadius, Vector2D beam)
focal_method.body: public static double calculateSphereTriangleSurface(Sphere sphere, Vector3D point1, Vector3D point2, Vector3D point3) {
          // move everything to centre
          Vector3D p1c = point1.subtract(sphere.getCenter());
          Vector3D p2c = point2.subtract(sphere.getCenter());
          Vector3D p3c = point3.subtract(sphere.getCenter());
          return calculateCenteredSphereTriangleSurface(sphere, p1c, p2c, p3c);
      }
focal_method.class_method_signature: Spheres.calculateSphereTriangleSurface(Sphere sphere, Vector3D point1, Vector3D point2, Vector3D point3)
focal_method.full_signature: public static double calculateSphereTriangleSurface(Sphere sphere, Vector3D point1, Vector3D point2, Vector3D point3)
focal_method.identifier: calculateSphereTriangleSurface
focal_method.invocations: subtract getCenter subtract getCenter subtract getCenter calculateCenteredSphereTriangleSurface
focal_method.modifiers: public static
focal_method.parameters: (Sphere sphere, Vector3D point1, Vector3D point2, Vector3D point3)
focal_method.return: double
focal_method.signature: double calculateSphereTriangleSurface(Sphere sphere, Vector3D point1, Vector3D point2, Vector3D point3)