/***************************************************************/
/*                                                             */
/*      insert2Ha.c           in         ~/rsc.src/spread      */
/*                                                             */
/*    This routine creates a queue (linked list) of cell_ptr   */
/*    data structures. It allocates memory for the cell to     */
/*    be inserted, assigns given coordinates to the structure  */
/*    attributes, then it insert the new cell into the list.   */
/*                                                             */
/***************************************************************/

#include <grass/gis.h>
#include "cell_ptrHa.h"
#include "local_proto.h"

void
insert2Ha(struct cell_ptrHa **front_cell,
          struct cell_ptrHa **rear_cell,
          float angle, int row, int col) 
     
{
	struct cell_ptrHa *temp_cell, *temp_cell2;

	temp_cell = (struct cell_ptrHa *)(G_malloc(sizeof(struct cell_ptrHa)));

        temp_cell->angle = angle;
        temp_cell->row = row;
	temp_cell->col = col;

	if (*front_cell == NULL)
	{
	        *front_cell = temp_cell;
                *rear_cell = temp_cell;
		temp_cell->next = NULL;
	}
        else 
        { 
 		temp_cell2 = *rear_cell;
		temp_cell2->next = temp_cell;
               	*rear_cell = temp_cell;
               	temp_cell->next = NULL; 
	}
        return;
}

/**************** END OF FUNCTION "INSERT2HA" *********************/

