Пример #1
0
 public void SetUp()
 {
     result = new StatisticsComputer.RunResult(
         objPath: "",
         expectedRotation: Quaternion.Euler(new Vector3(15, 30, -45)),
         expectedTranslation: new Vector3(+1.0f, +1.2f, -2.0f),
         runData: StatisticsComputer.RunData.RunDataForTests()
         );
 }
        public void Test_ExtractRotationAndTranslation(string file, Vector3 expectedActualTranslation, Quaternion expectedActualRotation)
        {
            _TransformationComputer computer = new _TransformationComputer(InputPath(file));

            computer.ReadObjFile();
            computer.CollectCorrespondences();
            computer.ComputeTransformationMatrix();
            computer.ExtractTranslationAndRotation();

            StatisticsComputer.RunResult actual = computer.Run;

            Assert.IsTrue(actual.ActualTranslation == expectedActualTranslation);

            float deltaAngle = Quaternion.Angle(actual.ActualRotation, expectedActualRotation);

            Assert.That(deltaAngle, Is.EqualTo(0).Within(0.1f));
        }
Пример #3
0
    public IEnumerator <object> Compute(StatisticsComputer.RunResult run)
    {
        this.done = false;

        transformComputer = new _TransformationComputer(run);
        yield return(null);

        transformComputer.ReadObjFile();
        yield return(null);

        transformComputer.CollectCorrespondences();
        yield return(null);

        transformComputer.ComputeTransformationMatrix();
        yield return(null);

        transformComputer.ExtractTranslationAndRotation();
        yield return(null);

        this.done = true;
    }
Пример #4
0
    public _TransformationComputer(StatisticsComputer.RunResult run)
    {
        correspondences = new CorrespondenceCollection();

        this.run = run;
    }