/* This file is part of the Neper software package. */
/* Copyright (C) 2003-2014, Romain Quey. */
/* See the COPYING file in the top-level directory. */

#include "neut_tesse_op_.h"

void
neut_tesse_set_zero (struct TESSE *pTessE)
{
  (*pTessE).VerFVer = NULL;
  (*pTessE).EdgeFEdgeQty = NULL;
  (*pTessE).EdgeFEdgeNb = NULL;
  (*pTessE).EdgeFEdgeOri = NULL;
  (*pTessE).FaceFFaceQty = NULL;
  (*pTessE).FaceFFaceNb = NULL;
  (*pTessE).FaceFFaceOri = NULL;

  return;
}

void
neut_tesse_face_addface (struct TESSE *pTessE, int face, int fface, int fori)
{
  (*pTessE).FaceFFaceQty[face]++;
  (*pTessE).FaceFFaceNb[face] =
    ut_realloc_1d_int ((*pTessE).FaceFFaceNb[face],
		       (*pTessE).FaceFFaceQty[face]);
  (*pTessE).FaceFFaceOri[face] =
    ut_realloc_1d_int ((*pTessE).FaceFFaceOri[face],
		       (*pTessE).FaceFFaceQty[face]);
  (*pTessE).FaceFFaceNb[face][(*pTessE).FaceFFaceQty[face] - 1] = fface;
  (*pTessE).FaceFFaceOri[face][(*pTessE).FaceFFaceQty[face] - 1] = fori;

  return;
}

void
neut_tesse_poly_addpoly (struct TESSE *pTessE, int poly, int fpoly)
{
  (*pTessE).PolyFPolyQty[poly]++;
  (*pTessE).PolyFPolyNb[poly] =
    ut_realloc_1d_int ((*pTessE).PolyFPolyNb[poly],
		       (*pTessE).PolyFPolyQty[poly]);
  (*pTessE).PolyFPolyNb[poly][(*pTessE).PolyFPolyQty[poly] - 1] = fpoly;

  return;
}
