| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  | #include "..\eshape.h"
 | 
					
						
							| 
									
										
										
										
											2017-10-29 23:48:32 +08:00
										 |  |  | #include "..\enodes.h"
 | 
					
						
							| 
									
										
										
										
											2017-10-26 17:17:30 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  | e2d::Circle::Circle() | 
					
						
							| 
									
										
										
										
											2017-10-28 18:48:21 +08:00
										 |  |  | 	: m_pD2dCircle(nullptr) | 
					
						
							| 
									
										
										
										
											2017-10-26 17:17:30 +08:00
										 |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  | e2d::Circle::Circle(Point center, double radius) | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  | 	: m_pD2dCircle(nullptr) | 
					
						
							| 
									
										
										
										
											2017-10-26 17:17:30 +08:00
										 |  |  | { | 
					
						
							|  |  |  | 	this->_setCircle(center, radius); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  | e2d::Circle::Circle(Node * node) | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  | 	: m_pD2dCircle(nullptr) | 
					
						
							| 
									
										
										
										
											2017-10-29 23:48:32 +08:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  | 	double minSide = min(node->getRealWidth(), node->getRealHeight()); | 
					
						
							| 
									
										
										
										
											2017-10-29 23:48:32 +08:00
										 |  |  | 	this->_setCircle( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  | 		Point( | 
					
						
							| 
									
										
										
										
											2017-10-29 23:48:32 +08:00
										 |  |  | 			node->getRealWidth() / 2, | 
					
						
							|  |  |  | 			node->getRealHeight() / 2 | 
					
						
							|  |  |  | 		), | 
					
						
							|  |  |  | 		minSide / 2 | 
					
						
							|  |  |  | 	); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  | e2d::Circle::~Circle() | 
					
						
							| 
									
										
										
										
											2017-10-29 23:48:32 +08:00
										 |  |  | { | 
					
						
							|  |  |  | 	SafeReleaseInterface(&m_pD2dCircle); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  | void e2d::Circle::_setCircle(Point center, double radius) | 
					
						
							| 
									
										
										
										
											2017-10-26 17:17:30 +08:00
										 |  |  | { | 
					
						
							|  |  |  | 	SafeReleaseInterface(&m_pD2dCircle); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  | 	Renderer::getID2D1Factory()->CreateEllipseGeometry( | 
					
						
							| 
									
										
										
										
											2017-10-26 17:17:30 +08:00
										 |  |  | 		D2D1::Ellipse( | 
					
						
							|  |  |  | 			D2D1::Point2F( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  | 				static_cast<float>(center.x),  | 
					
						
							|  |  |  | 				static_cast<float>(center.y)), | 
					
						
							|  |  |  | 			static_cast<float>(radius), | 
					
						
							|  |  |  | 			static_cast<float>(radius)), | 
					
						
							| 
									
										
										
										
											2017-10-26 17:17:30 +08:00
										 |  |  | 			&m_pD2dCircle | 
					
						
							|  |  |  | 		); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-07 20:14:58 +08:00
										 |  |  | void e2d::Circle::_resize() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	if (m_pParentNode && m_bEnable) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		double minSide = min(m_pParentNode->getRealWidth(), m_pParentNode->getRealHeight()); | 
					
						
							|  |  |  | 		this->_setCircle( | 
					
						
							|  |  |  | 			Point( | 
					
						
							|  |  |  | 				m_pParentNode->getRealWidth() / 2, | 
					
						
							|  |  |  | 				m_pParentNode->getRealHeight() / 2 | 
					
						
							|  |  |  | 			), | 
					
						
							|  |  |  | 			minSide / 2 | 
					
						
							|  |  |  | 		); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-30 01:41:29 +08:00
										 |  |  | ID2D1EllipseGeometry * e2d::Circle::getD2dGeometry() const | 
					
						
							| 
									
										
										
										
											2017-10-26 17:17:30 +08:00
										 |  |  | { | 
					
						
							|  |  |  | 	return m_pD2dCircle; | 
					
						
							|  |  |  | } |