Скачиваний:
6
Добавлен:
01.05.2014
Размер:
2.88 Кб
Скачать
/********************************************************************************/
#include "stdafx.h"
#include "TriangleEntity.h"
#include <iostream>
/********************************************************************************/

CTriangleEntity::CTriangleEntity( const int  iB, const int  iH,
								  const int iX, const int iY )
:CPointEntity( iX,iY )
{
	setBase( iB );
	setHeight( iH );
}

/********************************************************************************/

CTriangleEntity::~CTriangleEntity()
{

}

/********************************************************************************/

int CTriangleEntity::getBase() const
{
	return mBase;
}

/********************************************************************************/

int CTriangleEntity::getHeight() const
{
	return mHeight;
}

/********************************************************************************/

void CTriangleEntity::setBase( int iB )
{
	mBase = iB;
}

/********************************************************************************/

void CTriangleEntity::setHeight( int iH )
{
	mHeight = iH;
}

/********************************************************************************/

void CTriangleEntity::Printfig(std::ostream& os)
{
	os	<< "Triangle:" <<std::endl;
	os	<< " X=" << mX<<std::endl;
	os	<< " Y=" << mY<<std::endl;
	os	<< " B=" << mBase<<std::endl;
	os	<< " H=" << mHeight<<std::endl;
}

int CTriangleEntity::getNumType()
{ return 1; 
}
/********************************************************************************/
void CTriangleEntity::Draw(CDC* pDC, Shape* figure)
{  
CPen aPen; 
   COLORREF aColor=RGB(0,0,0);

   if(this == figure)                  
      aColor = RGB(255,0,0);

   if(!aPen.CreatePen(PS_SOLID, 1, aColor))
   {                                           
      AfxMessageBox("Pen creation failed drawing a rectangle", MB_OK);
      AfxAbort();
   }

   CPen* pOldPen = pDC->SelectObject(&aPen);  


   CPoint Start(getX(),getY()+getHeight());
   CPoint End(getX()+getBase()/2,getY());

	pDC->MoveTo(Start);
	pDC->LineTo(End);

  Start=End;
  End.x=getX()+getBase();
  End.y=getY()+getHeight();
	pDC->MoveTo(Start);
	pDC->LineTo(End);

  Start=End;
  End.x=getX();
  End.y=getY()+getHeight();
	pDC->MoveTo(Start);
	pDC->LineTo(End);

   pDC->SelectObject(pOldPen);
}

CRect CTriangleEntity::GetBoundRect()
{	CRect BoundingRect(getX(),getY(),getX()+getBase(),getY()+getHeight()+2);

	return BoundingRect;
}

void CTriangleEntity::writeAr(CArchive& ar)
{ar<<getNumType();
 ar<<getX();
 ar<<getY();
 ar<<getBase();
 ar<<getHeight();
}

void CTriangleEntity::readAr(CArchive& ar)
{int _X,_Y;
 ar>>_X;
 ar>>_Y;
 ar>>mBase;
 ar>>mHeight;

 setX(_X);setY(_Y);
}

CString CTriangleEntity::getName()
{return "Triangle";}
Соседние файлы в папке part32