//////////////////////////////////////
// START of File: CO1_PGON.HPP
//////////////////////////////////////

#ifndef CO1_PGON_HPP			// Avoid multiple includes...
#define CO1_PGON_HPP	TRUE	// ...holds to a terminal #endif below...

//===================================================================
//
// COPYRIGHT NOTICE:  This code is protected by Copyright!
//
// Copyright (c) 1994, 1995, 1996, 1997 by DPC Technology.
// All rights reserved. 
//
// See files "cf_copyr.txt" and "cf_licen.txt" for details of 
// copyright and license specifications, and contact information.
//
//===================================================================

//
// Master Header File Listing:
//
// #include    <cf_api/co1_pgon.hpp>
// Chart Framework "2D/3D Polygon" object.
//

//--------------------------------------------------------------------
// Include Chart Framework class or ID defs/headers this file needs.
// Paths are relative to the IDE's (global) include path: ~/cfrz
//--------------------------------------------------------------------
class 		bf_Color;
class 		cf_2DPoint;
class		bf_Display;
class 		cf_Virt3DObj;
class		cf_3DPointSeries;
#include    <cf_api/co1_pser.hpp>
			// and we'll use these pulled-in classes...

//
// Declare a Chart Framework "cf_3DPolygon" class.
//
// Class cf_3DPolygon is virtually identical to class 
// cf_3DPolyLine -- it abstracts a set of graphable 3D-Points, 
// along with other polygon attributes, and is used the base
// class capabilities of the cf_3DPointSeries object.
//
// The main differences lie in how a polygon gets rendered in 2D/3D
// mode, versus how the base polyline class gets rendered.  Thus,
// we will over-ride some of the base class functionality.
//
// Additionally, since cf_3DPolygons are the often-used components 
// of pictChart objects, they will use a lot of HSE (Hidden Surface 
// Elimination) and DSORT (Depth Sorting) functionality.
//
class CF_EXPORT	cf_3DPolygon 

		: public cf_3DPointSeries 

{

public:

	cf_3DPolygon();		// Default c-tor w.o. DispAttribs pointer
						// uses Pen=CF_BLACK; brush=CF_WHITE;

	cf_3DPolygon( cf_DispAttribs *p_attrToDrawWith );
						// Std c-tor lets user assign display attribs


	virtual 		~cf_3DPolygon();

	        
	virtual void	drawBorder( bf_Display *p_bf_dspOutputDisplay );

	virtual void	draw2D( bf_Display *p_bf_dspOutputDisplay );

	virtual void	draw3D( bf_Display *p_bf_dspOutputDisplay );

protected:


private:

	    				
};	//
	// End of cf_3DPolygon declaration.
	//

#endif		// Terminates include re-definition protection

//////////////////////////////////////
// END of File: CO1_PGON.HPP
//////////////////////////////////////
			
