#ifndef _At3d_h
#define _At3d_h

#include "Plot3.h"
#include "Axis3.h"

/* resource names and classes */

#define XtNtitle "title"
#define XtNfontFamily "fontFamily"
#define XtNfontSize "fontSize"
#define XtNtitleSize "titleSize"
#define XtNtitleColor "titleColor"
#define XtNtitlePosX "titlePosX"
#define XtNtitlePosY "titlePosY"
#define XtNautoScale "autoScale"
#define XtNmarginWidth "marginWidth"
#define XtNmarginHeight "marginHeight"
#define XtNmotionCallback "motionCallback"
#define XtNclickCallback "clickCallback"
#define XtNdragCallback "dragCallback"
#define XtNselectCallback "selectCallback"
#define XtNerrorCallback "errorCallback"
#define XtNx1axis "x1axis"
#define XtNx2axis "x2axis"
#define XtNx3axis "x3axis"
#define XtNx4axis "x4axis"
#define XtNy1axis "y1axis"
#define XtNy2axis "y2axis"
#define XtNy3axis "y3axis"
#define XtNy4axis "y4axis"
#define XtNz1axis "z1axis"
#define XtNz2axis "z2axis"
#define XtNz3axis "z3axis"
#define XtNz4axis "z4axis"
#define XtNdownShear "downShear"
#define XtNleftShear "leftShear"
#define XtNxmin "xmin"
#define XtNxmax "xmax"
#define XtNymin "ymin"
#define XtNymax "ymax"
#define XtNzmin "zmin"
#define XtNzmax "zmax"
#define XtNaxisZone "axisZone"
#define XtNaxesShown "axesShown"


#define XtCTitle "Title"
#define XtCTitlePosX "TitlePosX"
#define XtCTitlePosY "TitlePosY"
#define XtCAutoScale "AutoScale"
#define XtCMarginWidth "MarginWidth"
#define XtCMarginHeight "MarginHeight"
#define XtCMotionCallback "MotionCallback"
#define XtCClickCallback "ClickCallback"
#define XtCDragCallback "DragCallback"
#define XtCSelectCallback "SelectCallback"
#define XtCErrorCallback "ErrorCallback"
#define XtCAxis3 "Axis3"
#define XtCDownShear "DownShear"
#define XtCLeftShear "LeftShear"
#define XtCXmin "Xmin"
#define XtCXmax "Xmax"
#define XtCYmin "Ymin"
#define XtCYmax "Ymax"
#define XtCZmin "Zmin"
#define XtCZmax "Zmax"
#define XtCAxisZone "AxisZone"
#define XtCAxesShown "AxesShown"

/* constraint resource names and classes */
#define XtNdisplayName "displayName"

#define XtCDisplayName "DisplayName"

#define XtRAxis3 "Axis3"
#define XtRProjection "Projection"
#define XtRBoolArray "BoolArray"

/* POSITION CONSTANTS USED FOR TITLE AND AXES */

#define XAXIS 1
#define YAXIS 2
#define ZAXIS 3
#define TOP 0.0
#define LEFT 0.0
#define CENTER 0.5
#define BOTTOM 1.0
#define RIGHT 1.0


/* class record constants */
extern WidgetClass atThreedeeWidgetClass;
typedef struct _AtThreedeeClassRec * AtThreedeeWidgetClass;
typedef struct _AtThreedeeRec * AtThreedeeWidget;

/* callback structures */
typedef struct _PointStruct {
  short pixx, pixy;
  double x, y, z;
} PointStruct;

typedef PointStruct RectangleStruct[2];

/* Macros */
#define XtStrlen(s)  ((s)? strlen(s) : 0)
extern void AtThreedeeComputeLayout();
extern void AtThreedeeSetAxisBounds(AtThreedeeWidget, double, double,
			      double, double);

#endif /* _At3d_h */
/* DON'T ADD ANYTHING AFTER THIS #endif */









