Magic_Game/core/Node/Shape/EllipseShape.cpp

70 lines
1.3 KiB
C++
Raw Normal View History

2018-04-21 21:24:46 +08:00
#include "..\..\e2dshape.h"
2018-05-22 22:29:42 +08:00
e2d::EllipseShape::EllipseShape()
: _radiusX(0)
, _radiusY(0)
{
this->setPivot(0.5, 0.5);
}
2018-07-28 20:06:27 +08:00
e2d::EllipseShape::EllipseShape(float radiusX, float radiusY)
{
this->setRadiusX(radiusX);
this->setRadiusY(radiusY);
this->setPivot(0.5, 0.5);
}
2018-07-28 20:06:27 +08:00
e2d::EllipseShape::EllipseShape(Point center, float radiusX, float radiusY)
{
this->setRadiusX(radiusX);
this->setRadiusY(radiusY);
this->setPos(center);
this->setPivot(0.5, 0.5);
}
2018-05-22 22:29:42 +08:00
e2d::EllipseShape::~EllipseShape()
{
}
2018-07-28 20:06:27 +08:00
float e2d::EllipseShape::getRadiusX() const
{
return _radiusX;
}
2018-07-28 20:06:27 +08:00
float e2d::EllipseShape::getRadiusY() const
{
return _radiusY;
}
2018-07-28 20:06:27 +08:00
void e2d::EllipseShape::setRadiusX(float radiusX)
{
2018-07-28 20:06:27 +08:00
_radiusX = radiusX;
Node::setWidth(radiusX * 2);
}
2018-07-28 20:06:27 +08:00
void e2d::EllipseShape::setRadiusY(float radiusY)
{
2018-07-28 20:06:27 +08:00
_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(),
2018-05-24 20:10:11 +08:00
_strokeWidth,
_strokeStyle
);
}
void e2d::EllipseShape::_renderFill() const
{
auto renderer = Renderer::getInstance();
renderer->getRenderTarget()->FillEllipse(
D2D1::Ellipse(D2D1::Point2F(_radiusX, _radiusY), _radiusX, _radiusY),
renderer->getSolidColorBrush()
);
}