www.pudn.com > final_6.rar > Shape.h
#ifndef _SHAPE_H_
#define _SHAPE_H_
#include "base.h"
#include "Texture.h"
#define SHAPE_NUM 4
enum EShapeType
{
etUnkown=0,
etCuboid=1,
etBall=2,
etColumn=3,
etCone=4
};
enum EDrawMode
{
dmNormal= 0,
dmCuboid= 1,
dmBall= 2,
dmColumn= 3,
dmCone= 4,
dmSelectEntity=5,
dmMove= 6,
dmRotate= 7,
dmZoom= 8,
dmAddPointL= 9,
dmSetPointL= 10,
dmMovePointL= 11,
dmSetShape= 12,
dmExtrude = 13,
dmLatheX = 14,
dmLatheY = 15,
dmLatheZ = 16,
dmLoftSample = 17,
dmLoftTrack = 18,
dmDelete = 19,
dmDeleteLight =20,
dmZoomView = 21,
dmRotateView = 22,
dmSetTexture = 23,
dmCancelTexture =24
};
enum CGCommand
{
Normal=0,
Rotate=1,
Move=2
};
class CShape: public CObject
{
DECLARE_SERIAL(CShape);
public:
CGPoint BPoint[9][16];
CGPlane BFace[9][16];
SPoint BPer[LATI][LONG];
CGPoint center;
CGPoint tempCenter;
double Kd;
double Ks;
int ns;
double Ka;
color cl;
float trans;
//CTexture *texture; // ÎÆÀí
protected:
public:
CShape();
virtual void SetBodyFace();
virtual void DrawTop(CDC* pDC,CRect *rc);
virtual void DrawLeft(CDC* pDC,CRect *rc);
virtual void DrawFront(CDC*pDC,CRect *rc);
virtual void DrawPer(CDC*pDC,CRect *rc);
virtual void Serialize(CArchive &ar);
};
class CCuboid:public CShape
{
DECLARE_SERIAL(CCuboid)
public:
CGPoint CuboidPoint[8];
public:
CCuboid();
void TopSet(CPoint point1, CPoint point2);
virtual void DrawTop(CDC *pDC,CRect *rc);
virtual void DrawLeft(CDC* pDC,CRect* rc);
virtual void DrawFront(CDC*pDC,CRect *rc);
virtual void DrawPer(CDC*pDC,CRect *rc);
virtual void Serialize(CArchive &ar);
virtual void SetBodyFace();
void SetCuboidPoint(double width,double length,double height);
};
class CBall:public CShape
{
DECLARE_SERIAL(CBall)
public:
// CGPoint center;
double radius;
public:
CBall();
virtual void DrawTop(CDC *pDC,CRect *rc);
virtual void DrawLeft(CDC* pDC,CRect* rc);
virtual void DrawFront(CDC*pDC,CRect *rc);
virtual void DrawPer(CDC*pDC,CRect *rc);
virtual void Serialize(CArchive &ar);
virtual void SetBodyFace();
void SetBallPoint(double radius,CBall *pBall);
};
class CColumn:public CShape
{
DECLARE_SERIAL(CColumn)
public:
// CGPoint center;
double radius;
double height;
public:
CColumn();
virtual void DrawTop(CDC *pDC,CRect *rc);
virtual void DrawLeft(CDC* pDC,CRect* rc);
virtual void DrawFront(CDC*pDC,CRect *rc);
virtual void DrawPer(CDC*pDC,CRect *rc);
virtual void Serialize(CArchive &ar);
void SetColumnPoint(double radius,double height,CColumn* column);
virtual void SetBodyFace();
};
class CCone:public CShape
{
DECLARE_SERIAL(CCone)
public:
// CGPoint center;
double radius;
double height;
public:
CCone();
virtual void DrawTop(CDC *pDC,CRect *rc);
virtual void DrawLeft(CDC* pDC,CRect* rc);
virtual void DrawFront(CDC*pDC,CRect *rc);
virtual void DrawPer(CDC*pDC,CRect *rc);
virtual void Serialize(CArchive &ar);
void SetConePoint(double radius,double height,CCone* pCone);
virtual void SetBodyFace();
};
#endif