#ifndef _AtPlot3P_h
#define _AtPlot3P_h

#include <X11/IntrinsicP.h>
#include "Plot3.h" 
#include "ThreedeeP.h"

/******************************/
/* Pts, Polys and Projections */
/******************************/

/* Surface.h is #included by PlotP.h */

/******************/
/* AtPlot3 Widget */
/******************/

typedef struct _AtPlot3ClassPart {
  void (*resize)(AtThreedeeWidget, AtPlot3Widget);
} AtPlot3ClassPart;

typedef struct _AtPlot3ClassRec {
  CoreClassPart core_class;
  AtPlot3ClassPart plot3_class;
} AtPlot3ClassRec;

typedef struct _AtPlot3Part {

  /* resources */
  Surface plotSurface;
  Pixel edgeColor, fillColor;
  short lineWidth;
  Boolean noFill;
  
  /* private state */
  Projection plotProjection;
  Region plotRegion; /* used as a clip mask */
  GC edgeGC, fillGC;
  AtScale *xscale, *yscalex, *yscaley, *zscale;
  Boolean valid;
  double minx, maxx, miny, maxy, minz, maxz;
  int xmin_pix, yminx_pix, yminy_pix, zmin_pix;

} AtPlot3Part;

typedef struct _AtPlot3Rec {
  CorePart core;
  AtPlot3Part plot3;
} AtPlot3Rec;




#endif
