mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-17 14:16:10 -06:00
48 lines
919 B
C++
48 lines
919 B
C++
#include "DXF.h"
|
|
|
|
// private constructor -- may be created only by DXFEntities
|
|
DXFCircle::DXFCircle(DXFEntities *e) : DXFEntity(e, "CIRCLE")
|
|
{
|
|
center.x = center.y = 0;
|
|
radius = 1;
|
|
}
|
|
|
|
// write to stream
|
|
bool DXFCircle::Write(Stream &s)
|
|
{
|
|
// call base class write
|
|
if(!DXFEntity::Write(s))
|
|
return false;
|
|
|
|
// output line points
|
|
s << "100\nAcDbCircle\n";
|
|
s << "10\n" << center.x << "\n20\n" << center.y << "\n30\n" << 0.0 << "\n";
|
|
s << "40\n" << radius << "\n";
|
|
return true;
|
|
}
|
|
|
|
// setters
|
|
DXFCircle &DXFCircle::Set(Pointf const &c)
|
|
{
|
|
center = T(c);
|
|
return *this;
|
|
}
|
|
|
|
DXFCircle &DXFCircle::Set(double d)
|
|
{
|
|
radius = S(d);
|
|
return *this;
|
|
}
|
|
|
|
DXFCircle &DXFCircle::Set(Pointf c, double d)
|
|
{
|
|
center = T(c);
|
|
radius = S(d);
|
|
return *this;
|
|
}
|
|
|
|
// gets bounding box of element
|
|
Rectf DXFCircle::GetBoundingBox(void) const
|
|
{
|
|
return Rectf(center.x - radius, center.y + radius, center.x + radius, center.y - radius);
|
|
}
|