


/*
 * Copyright (c) 1990, Geometry Supercomputer Project
 *                     University of Minnesota 
 *                     1200 Washington Ave. S
 *                     Minneapolis, MN  55415
 *
 * email address: software@geom.umn.edu
 *
 * This software is copyrighted as noted above.  It may be freely copied,
 * modified, and redistributed, provided that the copyright notice is
 * preserved on all copies.
 *
 * There is no warranty or other guarantee of fitness for this software,
 * it is provided solely "as is".  Bug reports or fixes may be sent
 * to the authors, who may or may not act on them as they desire.
 *
 * You may not include this software in a program or other software product
 * without supplying the source, or without informing the end-user that the
 * source is available for no extra charge.
 *
 * If you modify this software, you should include a notice giving the
 * name of the person performing the modification, the date of modification,
 * and the reason for such modification.
 */



#ifndef MATERIALDEF
#define MATERIALDEF

#include "color/color.h" 
#include "geometry/point.h"

typedef struct material {
    Color emission;
    Color ambient;
    Color diffuse;
    Color specular;
    float shininess;
    float ka, kd, ks;
    float alpha;

    int materialno;
    int changed;
} Material;

Material *MtCreate( void );
void MtDelete( Material * );
void MtDefault( Material * );
void MtProperties( Material *,float,float,float,float,Color *,Color *,Color *);
Material *MtLoad( Material *, char *filename );
void MtSave( Material *, char *filename );
void MtCopy( Material *, Material * );
void MtPrint( Material * );
void MtMaterial( Material * );

#endif

