test_class.declarator: verticalBlackBars = new float[] {
              //  X,      Y,     Z,     U,     V
              -1.00f, -0.75f, 0.00f, 0.00f, 0.00f,
              1.00f, -0.75f, 0.00f, 1.00f, 0.00f,
              -1.00f, 0.75f, 0.00f, 0.00f, 1.00f,
              1.00f, 0.75f, 0.00f, 1.00f, 1.00f,
      }
test_class.modifier: private final
test_class.original_string: private final float[] verticalBlackBars = new float[] {
              //  X,      Y,     Z,     U,     V
              -1.00f, -0.75f, 0.00f, 0.00f, 0.00f,
              1.00f, -0.75f, 0.00f, 1.00f, 0.00f,
              -1.00f, 0.75f, 0.00f, 0.00f, 1.00f,
              1.00f, 0.75f, 0.00f, 1.00f, 1.00f,
      };
test_class.type: float[]
test_class.var_name: verticalBlackBars
test_class.declarator: horizontalBlackBars = new float[] {
          //  X,      Y,     Z,     U,     V
          -0.75f, -1.00f, 0.00f, 0.00f, 0.00f,
          0.75f, -1.00f, 0.00f, 1.00f, 0.00f,
          -0.75f, 1.00f, 0.00f, 0.00f, 1.00f,
          0.75f, 1.00f, 0.00f, 1.00f, 1.00f,
      }
test_class.modifier: private final
test_class.original_string: private final float[] horizontalBlackBars = new float[] {
          //  X,      Y,     Z,     U,     V
          -0.75f, -1.00f, 0.00f, 0.00f, 0.00f,
          0.75f, -1.00f, 0.00f, 1.00f, 0.00f,
          -0.75f, 1.00f, 0.00f, 0.00f, 1.00f,
          0.75f, 1.00f, 0.00f, 1.00f, 1.00f,
      };
test_class.type: float[]
test_class.var_name: horizontalBlackBars
test_class.declarator: defaultData = new float[] {
          //  X,     Y,    Z,    U,     V
          -1.0f, -1.0f, 0.0f, 0.00f, 0.00f,
          1.0f, -1.0f, 0.0f, 1.00f, 0.00f,
          -1.0f, 1.0f, 0.0f, 0.00f, 1.00f,
          1.0f, 1.0f, 0.0f, 1.00f, 1.00f,
      }
test_class.modifier: private final
test_class.original_string: private final float[] defaultData = new float[] {
          //  X,     Y,    Z,    U,     V
          -1.0f, -1.0f, 0.0f, 0.00f, 0.00f,
          1.0f, -1.0f, 0.0f, 1.00f, 0.00f,
          -1.0f, 1.0f, 0.0f, 0.00f, 1.00f,
          1.0f, 1.0f, 0.0f, 1.00f, 1.00f,
      };
test_class.type: float[]
test_class.var_name: defaultData
test_class.declarator: verticalBlackBarsRotated90 = new float[] {
            //    X,     Y,  Z,   U,   V
              -1.0f,  1.0f, 0, 0.f, 0.f,
              -1.0f, -1.0f, 0, 1.f, 0.f,
               1.0f,  1.0f, 0, 0.f, 1.f,
               1.0f, -1.0f, 0, 1.f, 1.f,
      }
test_class.modifier: private final
test_class.original_string: private final float[] verticalBlackBarsRotated90 = new float[] {
            //    X,     Y,  Z,   U,   V
              -1.0f,  1.0f, 0, 0.f, 0.f,
              -1.0f, -1.0f, 0, 1.f, 0.f,
               1.0f,  1.0f, 0, 0.f, 1.f,
               1.0f, -1.0f, 0, 1.f, 1.f,
      };
test_class.type: float[]
test_class.var_name: verticalBlackBarsRotated90
test_class.declarator: verticalBlackBarsRotated90ArCorrected = new float[] {
              //    X,     Y,  Z,   U,   V
             -0.5f,  1.0f, 0, 0.f, 0.f,
             -0.5f, -1.0f, 0, 1.f, 0.f,
              0.5f,  1.0f, 0, 0.f, 1.f,
              0.5f, -1.0f, 0, 1.f, 1.f,
      }
test_class.modifier: private final
test_class.original_string: private final float[] verticalBlackBarsRotated90ArCorrected = new float[] {
              //    X,     Y,  Z,   U,   V
             -0.5f,  1.0f, 0, 0.f, 0.f,
             -0.5f, -1.0f, 0, 1.f, 0.f,
              0.5f,  1.0f, 0, 0.f, 1.f,
              0.5f, -1.0f, 0, 1.f, 1.f,
      };
test_class.type: float[]
test_class.var_name: verticalBlackBarsRotated90ArCorrected
test_class.file: domain/src/test/java/org/m4m/domain/pipeline/TriangleVerticesCalculatorTest.java
test_class.identifier: TriangleVerticesCalculatorTest
test_case.body: @Test
      public void testVerticalBlackBarsWhenRotate90() {
          TriangleVerticesCalculator calculator = new TriangleVerticesCalculator(verticalBlackBarsRotated90);
  
          float[] verticesData = calculator.getAspectRatioVerticesData(5, 10, 10, 10);
  
          assertAlmostEqual(verticesData, verticalBlackBarsRotated90ArCorrected, 1e-7);
      }
test_case.class_method_signature: TriangleVerticesCalculatorTest.testVerticalBlackBarsWhenRotate90()
test_case.full_signature: @Test public void testVerticalBlackBarsWhenRotate90()
test_case.identifier: testVerticalBlackBarsWhenRotate90
test_case.invocations: getAspectRatioVerticesData assertAlmostEqual
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testVerticalBlackBarsWhenRotate90()
focal_class.declarator: stride = 5
focal_class.modifier: static
focal_class.original_string: static int stride = 5;
focal_class.type: int
focal_class.var_name: stride
focal_class.declarator: triangleVerticesData
focal_class.modifier: private final
focal_class.original_string: private final float[] triangleVerticesData;
focal_class.type: float[]
focal_class.var_name: triangleVerticesData
focal_class.declarator: defaultTriangleVerticesData
focal_class.modifier: private final
focal_class.original_string: private final float[] defaultTriangleVerticesData ;
focal_class.type: float[]
focal_class.var_name: defaultTriangleVerticesData
focal_class.declarator: scale = {1, 1}
focal_class.modifier: private final
focal_class.original_string: private final float[] scale = {1, 1};
focal_class.type: float[]
focal_class.var_name: scale
focal_class.file: domain/src/main/java/org/m4m/domain/pipeline/TriangleVerticesCalculator.java
focal_class.identifier: TriangleVerticesCalculator
focal_class.class_method_signature: TriangleVerticesCalculator.TriangleVerticesCalculator()
focal_class.full_signature: public  TriangleVerticesCalculator()
focal_class.identifier: TriangleVerticesCalculator
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  TriangleVerticesCalculator()
focal_class.class_method_signature: TriangleVerticesCalculator.TriangleVerticesCalculator(float[] triangleVerticesData)
focal_class.full_signature: public  TriangleVerticesCalculator(float[] triangleVerticesData)
focal_class.identifier: TriangleVerticesCalculator
focal_class.modifiers: public
focal_class.parameters: (float[] triangleVerticesData)
focal_class.signature:  TriangleVerticesCalculator(float[] triangleVerticesData)
focal_class.class_method_signature: TriangleVerticesCalculator.getScale_PreserveAspectFit(int angle, int widthIn, int heightIn, int widthOut, int heightOut)
focal_class.full_signature: public float[] getScale_PreserveAspectFit(int angle, int widthIn, int heightIn, int widthOut, int heightOut)
focal_class.identifier: getScale_PreserveAspectFit
focal_class.modifiers: public
focal_class.parameters: (int angle, int widthIn, int heightIn, int widthOut, int heightOut)
focal_class.return: float[]
focal_class.signature: float[] getScale_PreserveAspectFit(int angle, int widthIn, int heightIn, int widthOut, int heightOut)
focal_class.class_method_signature: TriangleVerticesCalculator.getScale_PreserveAspectCrop(int angle, int widthIn, int heightIn, int widthOut, int heightOut)
focal_class.full_signature: public float[] getScale_PreserveAspectCrop(int angle, int widthIn, int heightIn, int widthOut, int heightOut)
focal_class.identifier: getScale_PreserveAspectCrop
focal_class.modifiers: public
focal_class.parameters: (int angle, int widthIn, int heightIn, int widthOut, int heightOut)
focal_class.return: float[]
focal_class.signature: float[] getScale_PreserveAspectCrop(int angle, int widthIn, int heightIn, int widthOut, int heightOut)
focal_class.class_method_signature: TriangleVerticesCalculator.getAspectRatioVerticesData(int widthIn, int heightIn, int widthOut, int heightOut)
focal_class.full_signature: public float[] getAspectRatioVerticesData(int widthIn, int heightIn, int widthOut, int heightOut)
focal_class.identifier: getAspectRatioVerticesData
focal_class.modifiers: public
focal_class.parameters: (int widthIn, int heightIn, int widthOut, int heightOut)
focal_class.return: float[]
focal_class.signature: float[] getAspectRatioVerticesData(int widthIn, int heightIn, int widthOut, int heightOut)
focal_class.class_method_signature: TriangleVerticesCalculator.getDefaultTriangleVerticesData()
focal_class.full_signature: public static float[] getDefaultTriangleVerticesData()
focal_class.identifier: getDefaultTriangleVerticesData
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: float[]
focal_class.signature: float[] getDefaultTriangleVerticesData()
focal_method.body: public float[] getAspectRatioVerticesData(int widthIn, int heightIn, int widthOut, int heightOut) {
          System.arraycopy(defaultTriangleVerticesData, 0, triangleVerticesData, 0, defaultTriangleVerticesData.length);
  
          float aspectRatioIn = (float) widthIn / heightIn;
          float heightOutCalculated = (float) widthOut / aspectRatioIn;
  
          if (heightOutCalculated < heightOut) {
              float deltaHeight = (heightOut - heightOutCalculated) / heightOut;
              GetMinMax vertical = new GetMinMax(1).invoke();
              triangleVerticesData[vertical.getMin1()] += deltaHeight;
              triangleVerticesData[vertical.getMin2()] += deltaHeight;
              triangleVerticesData[vertical.getMax1()] -= deltaHeight;
              triangleVerticesData[vertical.getMax2()] -= deltaHeight;
          } else {
              float deltaWidth = (widthOut - heightOut * aspectRatioIn) / widthOut;
              GetMinMax horizontal = new GetMinMax(0).invoke();
              triangleVerticesData[horizontal.getMin1()] += deltaWidth;
              triangleVerticesData[horizontal.getMin2()] += deltaWidth;
              triangleVerticesData[horizontal.getMax1()] -= deltaWidth;
              triangleVerticesData[horizontal.getMax2()] -= deltaWidth;
          }
  
          return triangleVerticesData;
      }
focal_method.class_method_signature: TriangleVerticesCalculator.getAspectRatioVerticesData(int widthIn, int heightIn, int widthOut, int heightOut)
focal_method.full_signature: public float[] getAspectRatioVerticesData(int widthIn, int heightIn, int widthOut, int heightOut)
focal_method.identifier: getAspectRatioVerticesData
focal_method.invocations: arraycopy invoke getMin1 getMin2 getMax1 getMax2 invoke getMin1 getMin2 getMax1 getMax2
focal_method.modifiers: public
focal_method.parameters: (int widthIn, int heightIn, int widthOut, int heightOut)
focal_method.return: float[]
focal_method.signature: float[] getAspectRatioVerticesData(int widthIn, int heightIn, int widthOut, int heightOut)