Example #1
0
        public bool ComputeTokenClass(ClassComputeReferenceSystem refSystem, ClassComputeDimension dimension)
        {
            float   tokenAngleRad;
            Vector2 dataOriginalPosition;
            Vector2 originPosition;

            if (refSystem == ClassComputeReferenceSystem.Regular)
            {
                tokenAngleRad  = this._angle * Mathf.Deg2Rad;
                originPosition = typeMarkers[MarkerType.Origin].Position;
            }
            else
            {
                tokenAngleRad  = this.meanSquaredTokenAngle * Mathf.Deg2Rad;
                originPosition = this.meanSquaredTokenReferenceSystem[0].Position;
            }

            dataOriginalPosition = typeMarkers[MarkerType.Data].Position;

            Vector2 dataCoordinates = TokenUtils.ComputeRotoTranslation(dataOriginalPosition, originPosition, tokenAngleRad);

            dataGridIndexes = CalculateDataGridIndexes(dataCoordinates, dimension);

            this._class = TokenManager.CurrentTokenType.GetTokenClass(dataGridIndexes[0], dataGridIndexes[1]);

            if (this._class != null)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #2
0
        public void Initialize()
        {
            tokenStatistics = TokenStatistics.Instance;

            switch (TokensEngine.Pars.Type)
            {
            case TokensEngineProperties.TOKEN3x3:
                CurrentTokenType = (new Token3x3());
                break;

            case TokensEngineProperties.TOKEN4x4:
                CurrentTokenType = (new Token4x4());
                break;

            case TokensEngineProperties.TOKEN5x5:
                CurrentTokenType = (new Token5x5());
                break;
            }

            ClusterManager.Instance.Initialize();
            ClusterManager.Instance.SetClusterDistThreshold(CurrentTokenType.TokenDiagonalPX);

            if (TokensEngine.Pars.MeanSquare)
            {
                ClassComputeRefSystem = ClassComputeReferenceSystem.MeanSqure;
            }
            else
            {
                ClassComputeRefSystem = ClassComputeReferenceSystem.Regular;
            }

            ContinuousMeanSquare = TokensEngine.Pars.ContinuousMeanSquare;

            if (TokensEngine.Pars.ComputePixels == TokensEngineProperties.PIXELS)
            {
                ComputeDimension = ClassComputeDimension.Pixels;
            }
            else
            {
                ComputeDimension = ClassComputeDimension.Centimeters;
            }


            TokenUpdateTranslationThreshold = (TokensEngine.Pars.TranslationThr);
            TokenUpdateRotationThreshold    = (TokensEngine.Pars.RotationThr);

            // listen to updated cluster events
            ClusterManager.Instance.ClustersUpdateEvent += OnClustersUpdated;
        }
Example #3
0
 public void SetClassComputeReferenceSystem(bool SetMeanSquare)
 {
     if (SetMeanSquare)
         ClassComputeRefSystem = ClassComputeReferenceSystem.MeanSqure;
     else
         ClassComputeRefSystem = ClassComputeReferenceSystem.Regular;
 }
Example #4
0
        public bool ComputeTokenClass(ClassComputeReferenceSystem refSystem, ClassComputeDimension dimension)
        {
            float tokenAngleRad;
            Vector2 dataOriginalPosition;
            Vector2 originPosition;

            if(refSystem == ClassComputeReferenceSystem.Regular)
            {
                tokenAngleRad = this._angle * Mathf.Deg2Rad;
                originPosition = typeMarkers[MarkerType.Origin].Position;
            }
            else
            {
                tokenAngleRad = this.meanSquaredTokenAngle * Mathf.Deg2Rad;
                originPosition = this.meanSquaredTokenReferenceSystem[0].Position;
            }

            dataOriginalPosition = typeMarkers[MarkerType.Data].Position;

            Vector2 dataCoordinates = TokenUtils.ComputeRotoTranslation(dataOriginalPosition, originPosition, tokenAngleRad);

            int[] dataGridIndexes = CalculateDataGridIndexes(dataCoordinates, dimension);

            this._class = TokenManager.CurrentTokenType.GetTokenClass(dataGridIndexes[0], dataGridIndexes[1]);

            if (this._class != null)
                return true;
            else
                return false;
        }
        public void Initialize()
        {
            tokenStatistics = TokenStatistics.Instance;

            switch (TokensEngine.Pars.Type)
            {
                case TokensEngineProperties.TOKEN3x3:
                    CurrentTokenType = (new Token3x3());
                    break;
                case TokensEngineProperties.TOKEN4x4:
                    CurrentTokenType = (new Token4x4());
                    break;
                case TokensEngineProperties.TOKEN5x5:
                    CurrentTokenType = (new Token5x5());
                    break;
            }

            ClusterManager.Instance.Initialize();
            ClusterManager.Instance.SetClusterDistThreshold(CurrentTokenType.TokenDiagonalPX);

            if (TokensEngine.Pars.MeanSquare)
                ClassComputeRefSystem = ClassComputeReferenceSystem.MeanSqure;
            else
                ClassComputeRefSystem = ClassComputeReferenceSystem.Regular;

            ContinuousMeanSquare = TokensEngine.Pars.ContinuousMeanSquare;

            if (TokensEngine.Pars.ComputePixels == TokensEngineProperties.PIXELS)
                ComputeDimension = ClassComputeDimension.Pixels;
            else
                ComputeDimension = ClassComputeDimension.Centimeters;

            TokenUpdateTranslationThreshold = (TokensEngine.Pars.TranslationThr);
            TokenUpdateRotationThreshold = (TokensEngine.Pars.RotationThr);

            // listen to updated cluster events
            ClusterManager.Instance.ClustersUpdateEvent += OnClustersUpdated;
        }