/****************************************************************************
 *                  clothray.h
 *
 *  Author: Christophe Bouffartigue (tofbouf@oreka.com)
 *
 * from Persistence of Vision(tm) Ray Tracer version 3.6.
 * Copyright 1991-2003 Persistence of Vision Team
 * Copyright 2003-2004 Persistence of Vision Raytracer Pty. Ltd.
 *---------------------------------------------------------------------------
 * NOTICE: This source code file is provided so that users may experiment
 * with enhancements to POV-Ray and to port the software to platforms other
 * than those supported by the POV-Ray developers. There are strict rules
 * regarding how you are permitted to use this file. These rules are contained
 * in the distribution and derivative versions licenses which should have been
 * provided with this file.
 *
 * These licences may be found online, linked from the end-user license
 * agreement that is located at http://www.povray.org/povlegal.html
 *---------------------------------------------------------------------------
 * This program is based on the popular DKB raytracer version 2.12.
 * DKBTrace was originally written by David K. Buck.
 * DKBTrace Ver 2.0-2.12 were written by David K. Buck & Aaron A. Collins.
 *---------------------------------------------------------------------------
 *
 *===========================================================================
 * This file is part of MegaPOV, a modified and unofficial version of POV-Ray
 * For more information on MegaPOV visit our website:
 * http://megapov.inetart.net/
 *===========================================================================
 *
 * $RCSfile: clothray.h,v $
 * $Revision: 1.9 $
 * $Author: chris $
 *
 *****************************************************************************/
 
#ifndef CLOTHRAY_H
#define CLOTHRAY_H
#include "povms.h"

BEGIN_POV_NAMESPACE
/*****************************************************************************
* Global preprocessor defines
******************************************************************************/

/*****************************************************************************
* Global typedefs
******************************************************************************/
typedef struct {
	int nb1;
	int nb2;
	int neighbors;
	SNGL nlng;
	SNGL ks;
	VECTOR* points;
	VECTOR* vel;
	VECTOR* constraint;
} CLOTH;



typedef struct {
	CLOTH* cloth;
	PIGMENT* wind;
	OBJECT* object;
	VECTOR gravity;
	int neighbors;
	int smooth_mesh;
	int uv_mesh;
	int internal_collision;
	DBL friction;
	DBL viscosity;
	DBL damping;
	DBL dt;
	long nbit;
	char* input;
	char* output;
	char* mesh_output;
} CLOTH_SYS;

/*****************************************************************************
* Global variables
******************************************************************************/



/*****************************************************************************
* Global functions
******************************************************************************/

void Parse_Cloth_Sys(void);
int GetClothrayStat(POVMSType a);

void Terminate_Cloth_Sys(void);
END_POV_NAMESPACE
#endif
