/* Mathematiques de l'informatique graphique    */
/* Matrice de base pour des courbes B-Splines   */
/*                                              */
/* Auteur: Nicolas JANEY                        */
/* nicolas.janey@univ-fcomte.fr                 */
/* Mars 2020                                    */

#include <stdlib.h>
#include <stdio.h>
#include <math.h>

#include "MatriceDeBase.h"

/* Constructeurs                                */

MatriceDeBase::MatriceDeBase(void) {
  for ( int i = 0 ; i < 4 ; i++ )
    for ( int j = 0 ; j < 4 ; j++ )
      c[i][j] =( i == j ) ? 1.0F : 0.0F;
}

MatriceDeBase::MatriceDeBase(float *t):Matrice4x4(t) {
}

MatriceDeBase::MatriceDeBase(float **t):Matrice4x4(t) {
}

MatriceDeBase::MatriceDeBase(MatriceDeBase *m):Matrice4x4(m) {
}

/* Destructeur                                  */

MatriceDeBase::~MatriceDeBase(void) {
}

static float vl1[] = { -1.0F/6.0F, 3.0F/6.0F, -3.0F/6.0F, 1.0F/6.0F,
                        3.0F/6.0F,-6.0F/6.0F,  3.0F/6.0F,      0.0F,
                       -3.0F/6.0F,      0.0F,  3.0F/6.0F,      0.0F,
                        1.0F/6.0F, 4.0F/6.0F,  1.0F/6.0F,      0.0F };
const MatriceDeBase MatriceDeBase::NRUBS(vl1);

static float vl2[] = { -1.0F/2.0F, 3.0F/2.0F, -3.0F/2.0F, 1.0F/2.0F,
                        2.0F/2.0F,-5.0F/2.0F,  4.0F/2.0F,-1.0F/2.0F,
                       -1.0F/2.0F,      0.0F,  1.0F/2.0F,      0.0F,
                             0.0F, 2.0F/2.0F,       0.0F,      0.0F };
const MatriceDeBase MatriceDeBase::CATMULL_ROM(vl2);
