/*************************************************************************

	form*Z by auto*des*sys, Inc.
	Copyright (c) 1989-2004 auto*des*sys, Inc.  All rights reserved.

	File:			snow.h
	Author:			auto*des*sys, Inc.
	Created on:		02/27/04
	Description:	Snow plugin header.

*************************************************************************/

#ifndef __SNOW_H
#define __SNOW_H 1

/************************************************************************
	formZ api headers
*************************************************************************/

/* Required for all plugins */

#include "fzrt_api.h"

/* Required for plugins created by auto*des*sys, Inc. */

#include "formz_vendor.h"

/* Required for this specific plugin */

#include "fz_rzne_shdr_api.h" /* required for shdr fset */
#include "fz_math_api.h" /* required for math fset */


/************************************************************************
	Globals
*************************************************************************/

/* snow shader plugin identification */
#define SNOW_PLUGIN_UUID				"\x28\x2c\x5a\xfd\x7b\x18\x48\x41\x81\xd0\x0d\xdd\x1f\xda\x02\x3e"
#define SNOW_PLUGIN_FSET_UUID			"\x40\xb9\xdd\x6a\x32\x20\x45\x64\x82\xf5\x7d\x5a\xf4\xcc\xdf\x20"
#define SNOW_PLUGIN_VERSION				FZPL_VERS_MAKE(6,1,0,0)
/* Usually, start the data io version at 0 and increment by 1 each time the data changes */
#define SNOW_PLUGIN_DATA_IO_VERSION		FZPL_VERS_MAKE(5,5,0,0)	/* ONLY UPDATE WHEN SHADER DATA CHANGES */
#define SNOW_PLUGIN_VENDOR				FORMZ_VENDOR
#define SNOW_PLUGIN_URL					FORMZ_VENDOR_URL

/* function set provided by formZ. */
const fzpl_fset_glue_fset* _fset_glue;

/* formZ provided function sets to hold on to */
fz_fzrt_base_fset		_base_funcs;
fz_fzrt_mem_fset		_mem_funcs;
fz_shdr_fset			_shdr_funcs;
fz_type_fset			_type_funcs;
fz_math_fset			_math_funcs;
fz_fzrt_file_fset		_file_funcs;

/* id assigned at run-time */
fzrt_unsigned_int _snow_plugin_runtime_id;

/* localization */
#define STRING_SIZE		256
char _name[STRING_SIZE];
char _short_name[STRING_SIZE];
char _visibility[STRING_SIZE];
char _density[STRING_SIZE];
char _snow_scale[STRING_SIZE];
char _do_noise[STRING_SIZE];
char _max_dist[STRING_SIZE];
char _do_accum[STRING_SIZE];
char _accum_scale[STRING_SIZE];
char _accum_percent[STRING_SIZE];
char _accum_percent_fuzz[STRING_SIZE];

/* used to scale random numbers */
double scale_factor = 1.0 / (double)RAND_MAX;


#endif /* __SNOW_H */

