#ifndef	_BITMAP_H
#include <Bitmap.h>
#endif
#ifndef _MENU_ITEM_H
#include <MenuItem.h>
#endif
#ifndef _MENU_H
#include <Menu.h>
#endif
#ifndef _MENU_BAR_H
#include <MenuBar.h>
#endif
#ifndef	_SCROLL_VIEW_H
#include <ScrollView.h>
#endif
#include <math.h>


#ifndef	SHAPE_H
#define	SHAPE_H

#ifndef	T3d
#include "t3d.h"
#endif

/*------------------------------------------------------------*/

#define		MAX_POINT	5000
#define		MAX_S		5000

/*------------------------------------------------------------*/


class	TShape {
public:
		T3d			*owner;
		long		num_point;
		long		num_poly;

		long		spt_x[MAX_POINT];
		long		spt_y[MAX_POINT];

		long		pt_x[MAX_POINT];
		long		pt_y[MAX_POINT];
		long		pt_z[MAX_POINT];

		long		screen_x[MAX_POINT];
		long		screen_y[MAX_POINT];
		long		screen_z[MAX_POINT];

		long		l1[MAX_S];	
		long		l2[MAX_S];	
		long		l3[MAX_S];	
		long		l4[MAX_S];	
		rgb_color	acolor[MAX_S];
		long		zs[MAX_S];

		float		cur_alpha;
		float		cur_delta;
		float		cur_zeta;

					TShape(T3d *aowner);
virtual				~TShape();
		void		change_view_point(float new_alpha, float new_delta, float new_zeta);
		int			add_point(long x, long y, long z);
		void		add_poly(long p1, long p2, long p3, long p4, rgb_color c);
		long		calc_mid(long pn);
		void		sort_polys();
		void		draw(float new_alpha, float new_delta, float new_zeta, float pos_x, float pos_y);
		long		calc_color(long i, rgb_color c);
};


#endif
