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); } }
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; }
public void SetClassComputeReferenceSystem(bool SetMeanSquare) { if (SetMeanSquare) ClassComputeRefSystem = ClassComputeReferenceSystem.MeanSqure; else ClassComputeRefSystem = ClassComputeReferenceSystem.Regular; }
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; }