70 lines
1.3 KiB
C++
70 lines
1.3 KiB
C++
#include "..\..\e2dshape.h"
|
|
|
|
e2d::EllipseShape::EllipseShape()
|
|
: _radiusX(0)
|
|
, _radiusY(0)
|
|
{
|
|
this->setPivot(0.5, 0.5);
|
|
}
|
|
|
|
e2d::EllipseShape::EllipseShape(float radiusX, float radiusY)
|
|
{
|
|
this->setRadiusX(radiusX);
|
|
this->setRadiusY(radiusY);
|
|
this->setPivot(0.5, 0.5);
|
|
}
|
|
|
|
e2d::EllipseShape::EllipseShape(Point center, float radiusX, float radiusY)
|
|
{
|
|
this->setRadiusX(radiusX);
|
|
this->setRadiusY(radiusY);
|
|
this->setPos(center);
|
|
this->setPivot(0.5, 0.5);
|
|
}
|
|
|
|
e2d::EllipseShape::~EllipseShape()
|
|
{
|
|
}
|
|
|
|
float e2d::EllipseShape::getRadiusX() const
|
|
{
|
|
return _radiusX;
|
|
}
|
|
|
|
float e2d::EllipseShape::getRadiusY() const
|
|
{
|
|
return _radiusY;
|
|
}
|
|
|
|
void e2d::EllipseShape::setRadiusX(float radiusX)
|
|
{
|
|
_radiusX = radiusX;
|
|
Node::setWidth(radiusX * 2);
|
|
}
|
|
|
|
void e2d::EllipseShape::setRadiusY(float radiusY)
|
|
{
|
|
_radiusY = radiusY;
|
|
Node::setHeight(radiusY * 2);
|
|
}
|
|
|
|
void e2d::EllipseShape::_renderLine() const
|
|
{
|
|
auto renderer = Renderer::getInstance();
|
|
renderer->getRenderTarget()->DrawEllipse(
|
|
D2D1::Ellipse(D2D1::Point2F(_radiusX, _radiusY), _radiusX, _radiusY),
|
|
renderer->getSolidColorBrush(),
|
|
_strokeWidth,
|
|
_strokeStyle
|
|
);
|
|
}
|
|
|
|
void e2d::EllipseShape::_renderFill() const
|
|
{
|
|
auto renderer = Renderer::getInstance();
|
|
renderer->getRenderTarget()->FillEllipse(
|
|
D2D1::Ellipse(D2D1::Point2F(_radiusX, _radiusY), _radiusX, _radiusY),
|
|
renderer->getSolidColorBrush()
|
|
);
|
|
}
|