/// <summary>
 /// Instancia uma nova instância de objectos do tipo <see cref="UnivarNormalFromInterpolator{SourceType, TargetType}"/>.
 /// </summary>
 /// <param name="pointsContainer">O contentor de pontos que constitui o conjunto a ser interpolado.</param>
 /// <param name="variableName">A variável associada ao polinómio interpolador.</param>
 /// <param name="integerConversion">
 /// O objecto responsável pela conversão entre inteiros a o tipo de dados do conjunto
 /// dos objectos.
 /// </param>
 /// <param name="multiplicationOperation">
 /// O objecto responsável pelas operações de multiplicação entre objectos do conjunto de partida
 /// e objectos da imagem.
 /// </param>
 /// <param name="targetRing">O objecto responsável pelas operações sobre os objectos da imagem.</param>
 /// <param name="sourceField">O objecto responsável pelas operações sobre os objectos do conjunto de partida.</param>
 public UnivarNormalFromInterpolator(
     PointContainer2D <SourceType, TargetType> pointsContainer,
     string variableName,
     IConversion <int, SourceType> integerConversion,
     IMultiplicationOperation <SourceType, TargetType, TargetType> multiplicationOperation,
     IRing <TargetType> targetRing,
     IField <SourceType> sourceField)
     : base(pointsContainer, sourceField)
 {
     if (targetRing == null)
     {
         throw new ArgumentNullException("targetGroup");
     }
     else if (multiplicationOperation == null)
     {
         throw new ArgumentNullException("multiplicationOperation");
     }
     else
     {
         this.integerConversion        = integerConversion;
         this.targetRing               = targetRing;
         this.multiplicationOperation  = multiplicationOperation;
         this.interpolationgPolynomial = new UnivariatePolynomialNormalForm <TargetType>(variableName);
         this.Initialize();
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Instancia uma nova instância de objectos do tipo <see cref="ABaseInterpolator{SourceType, TargetType}"/>.
        /// </summary>
        /// <param name="pointsContainer">O contentor de pontos que constitui o conjunto a ser interpolado.</param>
        /// <param name="sourceField">O objecto responsável pelas operações sobre os objectos do conjunto de partida.</param>
        public ABaseInterpolator(
            PointContainer2D <SourceType, TargetType> pointsContainer,
            IField <SourceType> sourceField)
        {
            if (sourceField == null)
            {
                throw new ArgumentNullException("sourceField");
            }
            else if (pointsContainer == null)
            {
                throw new ArgumentNullException("pointsConatiner");
            }
            else
            {
                // Delega a inicialização para mais tarde.
                this.pointsContainer = pointsContainer;
                this.sourceField     = sourceField;

                // Inicializa os eventos.
                this.pointsContainer.BeforeAddEvent    += this.BeforeAddEventHandler;
                this.pointsContainer.AfterAddEvent     += this.AfterAddEventHandler;
                this.pointsContainer.BeforeDeleteEvent += this.BeforeRemoveEventHandler;
                this.pointsContainer.AfterDeleteEvent  += this.AfterRemoveEventHandler;
            }
        }