/* 
 * rect.c - rectangle abstract data type.
 * 
 * Author:  L. Van Warren
 * Date:    May 1984
 * Copyright (c) 1984 L. Van Warren * All Rights Reserved
 * 
 */
#include <stdio.h>
#include "Vmisc.h"
#include "Vec.h"
#include "Quad.h"

/*****************************************************************
 * TAG( asnQuad )
 * 
 * Assign a value to a rectangle.
 * 
 * Inputs:
 *  Corner coordinates and a color.
 * Outputs:
 *  A rectangle whose components are the above inputs.
 * Assumptions:
 *  [None]
 * Algorithm:
 *  Von Neumann assignment.
 */

Quad
asnQuad(Vec pos, Vec clr)
{
    Quad a;

	a.pos = pos;
	a.clr = clr;

    return(a);
}

Quad
fscanQuad(FILE* f)
{
    Quad ret ;

    fscanf(f, "%*s "); ret.pos = fscanVec (f) ;
    fscanf(f, "%*s "); ret.clr = fscanVec (f) ;

    return ret ;
}

void 
fprintQuad(FILE* f, Quad inst)
{
    fprintf(f, "pos: "); fprintVec(f, inst.pos);
    fprintf(f, "clr: "); fprintVec(f, inst.clr);
}

Quad
freadQuad(FILE* f)
{
    Quad ret ;

    fread (&ret, sizeof(ret), 1, f) ;
    
    return ret ;
}

void
fwriteQuad(FILE* f, Quad inst)
{
    fwrite(&inst, sizeof(inst), 1, f) ;
}