#ifndef LWSDK_MODELER_H
#define LWSDK_MODELER_H

/*
 * LWSDK Header File
 * Copyright 1999, NewTek, Inc.
 *
 * LWMODELER.H -- LightWave Modeler Global State
 *
 * This header contains declarations for the global services and
 * internal states of the Modeler host application.
 */

#include <lwtypes.h>

typedef int EltOpLayer;
#define OPLYR_PRIMARY	 0
#define OPLYR_FG		 1
#define OPLYR_BG		 2
#define OPLYR_SELECT	 3
#define OPLYR_ALL		 4
#define OPLYR_EMPTY		 5
#define OPLYR_NONEMPTY	 6

typedef int EltOpSelect;
#define OPSEL_GLOBAL	 0
#define OPSEL_USER		 1
#define OPSEL_DIRECT	 2

#define LWSTATEQUERYFUNCS_GLOBAL	"LWM: State Query 3"

typedef struct st_LWStateQueryFuncs
{
	int				(*numLayers) (void);
	unsigned int	(*layerMask) (EltOpLayer);
	const char *	(*surface)   (void);
	unsigned int	(*bbox)      (EltOpLayer, double *minmax);
	const char *	(*layerList) (EltOpLayer, const char *);
	const char *	(*object)    (void);
	int				(*mode)		 (int);
	const char *	(*vmap)      (int, LWID *);

} LWStateQueryFuncs;

#define LWM_MODE_SELECTION	 0
#define LWM_MODE_SYMMETRY	 1
#define LWM_VMAP_WEIGHT		 0
#define LWM_VMAP_TEXTURE	 1
#define LWM_VMAP_MORPH		 2

#define LWFONTLISTFUNCS_GLOBAL "LWM: Font List"

typedef struct st_LWFontListFuncs
{
	int				(*count) (void);
	int				(*index) (const char *name);
	const char *	(*name)  (int in_index);
	int				(*load)  (const char *filename);
	void			(*clear) (int in_index);

} LWFontListFuncs;

#endif
